@will-17173/telegram-cli 0.2.0 → 0.4.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 +241 -61
- package/README.zh-CN.md +250 -73
- package/dist/account/account-authenticator.js +95 -0
- package/dist/account/account-authenticator.js.map +1 -0
- package/dist/account/account-context.js +7 -0
- package/dist/account/account-context.js.map +1 -1
- package/dist/account/account-name.js +17 -0
- package/dist/account/account-name.js.map +1 -0
- package/dist/account/account-presets.js +20 -3
- package/dist/account/account-presets.js.map +1 -1
- package/dist/account/account-store.js +277 -37
- package/dist/account/account-store.js.map +1 -1
- package/dist/cli/app.js +12 -1
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/output.js +21 -6
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/secure-input.js +408 -0
- package/dist/cli/secure-input.js.map +1 -0
- package/dist/commands/account-options.js +37 -7
- package/dist/commands/account-options.js.map +1 -1
- package/dist/commands/account.js +192 -66
- package/dist/commands/account.js.map +1 -1
- package/dist/commands/archive.js +151 -0
- package/dist/commands/archive.js.map +1 -0
- package/dist/commands/config.js +119 -12
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/contact.js +58 -0
- package/dist/commands/contact.js.map +1 -0
- package/dist/commands/data.js +14 -7
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/dialog.js +156 -0
- package/dist/commands/dialog.js.map +1 -0
- package/dist/commands/folder.js +113 -0
- package/dist/commands/folder.js.map +1 -0
- package/dist/commands/group-write.js +128 -0
- package/dist/commands/group-write.js.map +1 -0
- package/dist/commands/group.js +43 -7
- package/dist/commands/group.js.map +1 -1
- package/dist/commands/notification.js +76 -0
- package/dist/commands/notification.js.map +1 -0
- package/dist/commands/query.js +22 -15
- package/dist/commands/query.js.map +1 -1
- package/dist/commands/telegram-runner.js +40 -18
- package/dist/commands/telegram-runner.js.map +1 -1
- package/dist/commands/telegram.js +172 -109
- package/dist/commands/telegram.js.map +1 -1
- package/dist/commands/time-range.js +39 -0
- package/dist/commands/time-range.js.map +1 -0
- package/dist/commands/types.js +3 -2
- package/dist/commands/types.js.map +1 -1
- package/dist/config/credential-store.js +24 -4
- package/dist/config/credential-store.js.map +1 -1
- package/dist/config/env.js +4 -1
- package/dist/config/env.js.map +1 -1
- package/dist/group-commands/catalog.js +79 -0
- package/dist/group-commands/catalog.js.map +1 -0
- package/dist/group-commands/executor.js +102 -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/index.js +0 -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 +40 -0
- package/dist/presenters/group.js.map +1 -1
- package/dist/presenters/human.js +135 -0
- 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 +23 -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 +9 -4
- package/dist/presenters/ink/listen-scroll.js.map +1 -1
- package/dist/presenters/ink/listen.js +572 -52
- package/dist/presenters/ink/listen.js.map +1 -1
- package/dist/presenters/ink/mouse-scroll.js +12 -0
- package/dist/presenters/ink/mouse-scroll.js.map +1 -1
- package/dist/presenters/ink/secure-input.js +68 -0
- package/dist/presenters/ink/secure-input.js.map +1 -0
- package/dist/presenters/ink/use-group-command.js +186 -0
- package/dist/presenters/ink/use-group-command.js.map +1 -0
- package/dist/presenters/listen-message.js +23 -6
- 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/presenters/markdown.js +54 -0
- package/dist/presenters/markdown.js.map +1 -0
- package/dist/presenters/structured.js +8 -3
- package/dist/presenters/structured.js.map +1 -1
- package/dist/services/account-session-service.js +241 -0
- package/dist/services/account-session-service.js.map +1 -0
- package/dist/services/archive-layout.js +61 -0
- package/dist/services/archive-layout.js.map +1 -0
- package/dist/services/archive-manifest.js +187 -0
- package/dist/services/archive-manifest.js.map +1 -0
- package/dist/services/archive-markdown.js +383 -0
- package/dist/services/archive-markdown.js.map +1 -0
- package/dist/services/archive-service.js +718 -0
- package/dist/services/archive-service.js.map +1 -0
- package/dist/services/archive-types.js +2 -0
- package/dist/services/archive-types.js.map +1 -0
- package/dist/services/attachment-download.js +7 -2
- package/dist/services/attachment-download.js.map +1 -1
- package/dist/services/auto-download-coordinator.js +2 -4
- package/dist/services/auto-download-coordinator.js.map +1 -1
- package/dist/services/contact-service.js +78 -0
- package/dist/services/contact-service.js.map +1 -0
- package/dist/services/dialog-service.js +140 -0
- package/dist/services/dialog-service.js.map +1 -0
- package/dist/services/folder-service.js +200 -0
- package/dist/services/folder-service.js.map +1 -0
- package/dist/services/group-service.js.map +1 -1
- package/dist/services/group-write-service.js +225 -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 +23 -6
- package/dist/services/listen-attachment.js.map +1 -1
- 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 +17 -1
- package/dist/services/message-service.js.map +1 -1
- package/dist/services/notification-service.js +142 -0
- package/dist/services/notification-service.js.map +1 -0
- package/dist/services/query-service.js +59 -3
- 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/write-access-policy.js +19 -0
- package/dist/services/write-access-policy.js.map +1 -0
- package/dist/storage/message-db.js +241 -5
- package/dist/storage/message-db.js.map +1 -1
- package/dist/telegram/archive-types.js +2 -0
- package/dist/telegram/archive-types.js.map +1 -0
- package/dist/telegram/client-factory.js +51 -11
- package/dist/telegram/client-factory.js.map +1 -1
- package/dist/telegram/contact-types.js +10 -0
- package/dist/telegram/contact-types.js.map +1 -0
- package/dist/telegram/dialog-types.js +2 -0
- package/dist/telegram/dialog-types.js.map +1 -0
- package/dist/telegram/errors.js +14 -0
- package/dist/telegram/errors.js.map +1 -0
- package/dist/telegram/fake-group-management.js +122 -0
- package/dist/telegram/fake-group-management.js.map +1 -1
- package/dist/telegram/folder-types.js +13 -0
- package/dist/telegram/folder-types.js.map +1 -0
- package/dist/telegram/group-types.js +40 -0
- package/dist/telegram/group-types.js.map +1 -1
- package/dist/telegram/group-write-types.js +29 -0
- package/dist/telegram/group-write-types.js.map +1 -0
- package/dist/telegram/mtcute-archive.js +190 -0
- package/dist/telegram/mtcute-archive.js.map +1 -0
- package/dist/telegram/mtcute-client.js +73 -12
- package/dist/telegram/mtcute-client.js.map +1 -1
- package/dist/telegram/mtcute-contacts.js +90 -0
- package/dist/telegram/mtcute-contacts.js.map +1 -0
- package/dist/telegram/mtcute-dialogs.js +186 -0
- package/dist/telegram/mtcute-dialogs.js.map +1 -0
- package/dist/telegram/mtcute-folders.js +318 -0
- package/dist/telegram/mtcute-folders.js.map +1 -0
- 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 +60 -31
- package/dist/telegram/mtcute-group-management.js.map +1 -1
- package/dist/telegram/mtcute-group-members.js +158 -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/mtcute-message-normalizer.js +63 -0
- package/dist/telegram/mtcute-message-normalizer.js.map +1 -0
- package/dist/telegram/mtcute-notifications.js +101 -0
- package/dist/telegram/mtcute-notifications.js.map +1 -0
- package/dist/telegram/notification-types.js +11 -0
- package/dist/telegram/notification-types.js.map +1 -0
- package/dist/telegram/raw-message.js +46 -0
- package/dist/telegram/raw-message.js.map +1 -0
- package/dist/telegram/types.js +6 -1
- package/dist/telegram/types.js.map +1 -1
- package/package.json +20 -10
|
@@ -32,16 +32,22 @@ export function readCredentials(path) {
|
|
|
32
32
|
export function readProxy(path) {
|
|
33
33
|
return readStoredConfiguration(path)?.proxy;
|
|
34
34
|
}
|
|
35
|
+
export function readWriteAccess(path) {
|
|
36
|
+
return readStoredConfiguration(path)?.writeAccess ?? true;
|
|
37
|
+
}
|
|
35
38
|
export function writeConfiguration(path, update) {
|
|
36
39
|
const existing = readStoredConfiguration(path) ?? {};
|
|
37
40
|
const credentials = update.credentials === undefined
|
|
38
41
|
? existing.credentials
|
|
39
42
|
: validateCredentials(update.credentials);
|
|
40
43
|
const proxy = update.proxy === undefined ? existing.proxy : normalizeProxy(update.proxy);
|
|
41
|
-
|
|
44
|
+
const writeAccess = update.writeAccess === undefined
|
|
45
|
+
? existing.writeAccess
|
|
46
|
+
: validateWriteAccess(update.writeAccess);
|
|
47
|
+
if (!credentials && !proxy && writeAccess === undefined) {
|
|
42
48
|
throw new Error(INVALID_CREDENTIALS_MESSAGE);
|
|
43
49
|
}
|
|
44
|
-
writeDocument(path, createDocument({ credentials, proxy }));
|
|
50
|
+
writeDocument(path, createDocument({ credentials, proxy, writeAccess }));
|
|
45
51
|
}
|
|
46
52
|
export function writeCredentials(path, credentials) {
|
|
47
53
|
const normalized = validateCredentials(credentials);
|
|
@@ -72,6 +78,7 @@ function parseDocument(value) {
|
|
|
72
78
|
const hasApiId = Object.prototype.hasOwnProperty.call(document, 'api_id');
|
|
73
79
|
const hasApiHash = Object.prototype.hasOwnProperty.call(document, 'api_hash');
|
|
74
80
|
const hasProxy = Object.prototype.hasOwnProperty.call(document, 'proxy');
|
|
81
|
+
const hasWriteAccess = Object.prototype.hasOwnProperty.call(document, 'write_access');
|
|
75
82
|
if (hasApiId !== hasApiHash) {
|
|
76
83
|
throw new Error(INVALID_CREDENTIALS_MESSAGE);
|
|
77
84
|
}
|
|
@@ -89,10 +96,11 @@ function parseDocument(value) {
|
|
|
89
96
|
});
|
|
90
97
|
}
|
|
91
98
|
const proxy = hasProxy ? normalizeProxy(document.proxy) : undefined;
|
|
92
|
-
|
|
99
|
+
const writeAccess = hasWriteAccess ? normalizeWriteAccess(document.write_access) : undefined;
|
|
100
|
+
if (!credentials && !proxy && writeAccess === undefined) {
|
|
93
101
|
throw new Error(INVALID_CREDENTIALS_MESSAGE);
|
|
94
102
|
}
|
|
95
|
-
return { credentials, proxy };
|
|
103
|
+
return { credentials, proxy, writeAccess };
|
|
96
104
|
}
|
|
97
105
|
function normalizeProxy(value) {
|
|
98
106
|
if (typeof value !== 'string' || value.trim().length === 0) {
|
|
@@ -100,6 +108,15 @@ function normalizeProxy(value) {
|
|
|
100
108
|
}
|
|
101
109
|
return value.trim();
|
|
102
110
|
}
|
|
111
|
+
function validateWriteAccess(value) {
|
|
112
|
+
return normalizeWriteAccess(value);
|
|
113
|
+
}
|
|
114
|
+
function normalizeWriteAccess(value) {
|
|
115
|
+
if (typeof value !== 'boolean') {
|
|
116
|
+
throw new Error(INVALID_CREDENTIALS_MESSAGE);
|
|
117
|
+
}
|
|
118
|
+
return value;
|
|
119
|
+
}
|
|
103
120
|
function createDocument(configuration) {
|
|
104
121
|
const document = {};
|
|
105
122
|
if (configuration.credentials) {
|
|
@@ -109,6 +126,9 @@ function createDocument(configuration) {
|
|
|
109
126
|
if (configuration.proxy) {
|
|
110
127
|
document.proxy = configuration.proxy;
|
|
111
128
|
}
|
|
129
|
+
if (configuration.writeAccess !== undefined) {
|
|
130
|
+
document.write_access = configuration.writeAccess;
|
|
131
|
+
}
|
|
112
132
|
return document;
|
|
113
133
|
}
|
|
114
134
|
function writeDocument(path, value) {
|
|
@@ -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":"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;AAmBnF,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD;QACE,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAClC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAA;IACvC,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,KAGnC;IACC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAExC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,aAAa,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;IACnD,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,uBAAuB,EAAE,CAAA;IACrC,CAAC;IACD,OAAO,aAAa,CAAC,WAAW,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,uBAAuB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,uBAAuB,CAAC,IAAI,CAAC,EAAE,WAAW,IAAI,IAAI,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,MAAmC;IAEnC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IACpD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,KAAK,SAAS;QAClD,CAAC,CAAC,QAAQ,CAAC,WAAW;QACtB,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACxF,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,KAAK,SAAS;QAClD,CAAC,CAAC,QAAQ,CAAC,WAAW;QACtB,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAE3C,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IAED,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;AAC1E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,WAAgC;IAC7E,MAAM,UAAU,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAA;IACnD,kBAAkB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY;IAC3C,IAAI,QAAgB,CAAA;IACpB,IAAI,CAAC;QACH,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAA;QACnE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IAED,MAAM,QAAQ,GAAG,KAAgC,CAAA;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACzE,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACxE,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;IAErF,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,WAA4C,CAAA;IAChD,IAAI,QAAQ,EAAE,CAAC;QACb,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,QAAQ,CAAC,MAAiB,IAAI,CAAC;YAChC,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ;YACrC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACrC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC9C,CAAC;QACD,WAAW,GAAG,mBAAmB,CAAC;YAChC,KAAK,EAAE,QAAQ,CAAC,MAAgB;YAChC,OAAO,EAAE,QAAQ,CAAC,QAAQ;SAC3B,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACnE,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC5F,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;AAC5C,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;AACrB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,cAAc,CAAC,aAA0C;IAChE,MAAM,QAAQ,GAA4B,EAAE,CAAA;IAC5C,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;QAC9B,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,KAAK,CAAA;QACjD,QAAQ,CAAC,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,OAAO,CAAA;IACvD,CAAC;IACD,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;QACxB,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAA;IACtC,CAAC;IACD,IAAI,aAAa,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC5C,QAAQ,CAAC,YAAY,GAAG,aAAa,CAAC,WAAW,CAAA;IACnD,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,KAA8B;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,UAAU,EAAE,MAAM,CAAC,CAAA;IAC1D,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;IAEtD,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEtC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,CAAC;QACH,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACrF,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;QAC/B,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;QAC/B,OAAO,GAAG,IAAI,CAAA;QACd,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACxB,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,CAAA;AAClD,CAAC"}
|
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, readProxy, validateCredentials, } from './credential-store.js';
|
|
4
|
+
import { MissingCredentialsError, readCredentials, readProxy, readWriteAccess, 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';
|
|
@@ -45,6 +45,9 @@ export function getTelegramProxyConfiguration() {
|
|
|
45
45
|
export function getTelegramProxy() {
|
|
46
46
|
return getTelegramProxyConfiguration()?.url;
|
|
47
47
|
}
|
|
48
|
+
export function getTelegramWriteAccess() {
|
|
49
|
+
return readWriteAccess(getConfigPath());
|
|
50
|
+
}
|
|
48
51
|
export function getSessionName() {
|
|
49
52
|
const raw = process.env.TG_SESSION_NAME;
|
|
50
53
|
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,SAAS,EACT,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;AAe1F,MAAM,UAAU,sBAAsB;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAErD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;QACrB,OAAO;YACL,GAAG,mBAAmB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YAC1C,MAAM,EAAE,aAAa;SACtB,CAAA;IACH,CAAC;IAED,IAAI,CAAC;QACH,OAAO;YACL,GAAG,eAAe,CAAC,aAAa,EAAE,CAAC;YACnC,MAAM,EAAE,QAAQ;SACjB,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,uBAAuB,CAAC;YAAE,MAAM,KAAK,CAAA;QAE5D,OAAO;YACL,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,gBAAgB;YACzB,MAAM,EAAE,SAAS;SAClB,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;IAC1C,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;IAC9C,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,CAAA;IAC9C,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACzE,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,6BAA6B,EAAE,EAAE,GAAG,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA;IACvC,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAA;IAChC,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,CAAA;IACpF,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACnC,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;IAC5E,OAAO,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAA;IAC/B,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC,CAAA;IACrF,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACnD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,UAAU,CAAC,CAAA;IAC1C,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACnC,OAAO,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAC3E,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;AAC3E,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAA;IAC/D,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAA;IAC3F,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IACxG,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;AAC3C,CAAC"}
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
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
|
+
export const READ_ONLY_GROUP_COMMANDS = [
|
|
70
|
+
'invite list',
|
|
71
|
+
'invite show',
|
|
72
|
+
'invite members',
|
|
73
|
+
'topic list',
|
|
74
|
+
];
|
|
75
|
+
const readOnlyGroupCommands = new Set(READ_ONLY_GROUP_COMMANDS);
|
|
76
|
+
export function isReadOnlyGroupCommand(key) {
|
|
77
|
+
return readOnlyGroupCommands.has(key);
|
|
78
|
+
}
|
|
79
|
+
//# 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,102 @@
|
|
|
1
|
+
import { isReadOnlyGroupCommand } from './catalog.js';
|
|
2
|
+
import { ADMIN_RIGHT_KEYS, canonicalCommandKey } from '../services/group-write-service.js';
|
|
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
|
+
if (request.key === 'admin transfer-owner' && !context.ownershipPassword) {
|
|
24
|
+
return { ok: false, secretRequired: { kind: 'ownership_password' } };
|
|
25
|
+
}
|
|
26
|
+
const result = request.key === 'admin transfer-owner'
|
|
27
|
+
? await context.groups.execute({ ...request, chat: context.chat }, { ownershipPassword: context.ownershipPassword })
|
|
28
|
+
: await context.groups.execute({ ...request, chat: context.chat });
|
|
29
|
+
if (result.ok && !isReadOnlyGroupCommand(key) && context.invalidateGroup) {
|
|
30
|
+
const invalidation = Promise.resolve(context.invalidateGroup(context.chat)).catch(() => undefined);
|
|
31
|
+
if (request.key === 'admin transfer-owner')
|
|
32
|
+
void invalidation;
|
|
33
|
+
else
|
|
34
|
+
await invalidation;
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
function isConfirmationRequest(request) { return request.definition.risk !== 'none'; }
|
|
39
|
+
function confirmationContext(request, context) {
|
|
40
|
+
switch (request.key) {
|
|
41
|
+
case 'member kick':
|
|
42
|
+
case 'member ban':
|
|
43
|
+
case 'member unban':
|
|
44
|
+
case 'member unmute':
|
|
45
|
+
case 'member purge': return { target: String(request.values.user), details: { user: request.values.user } };
|
|
46
|
+
case 'member mute': return { target: String(request.values.user), details: { user: request.values.user, durationSeconds: request.values.durationSeconds ?? null } };
|
|
47
|
+
case 'admin promote': return { target: String(request.values.user), details: { user: request.values.user, permissions: [...(request.values.permissions ?? [])] } };
|
|
48
|
+
case 'admin demote':
|
|
49
|
+
case 'admin transfer-owner': return { target: String(request.values.user), details: { user: request.values.user } };
|
|
50
|
+
case 'admin rank': return { target: String(request.values.user), details: { user: request.values.user, rank: request.values.text } };
|
|
51
|
+
case 'invite revoke': return { target: request.values.invite, details: { invite: request.values.invite } };
|
|
52
|
+
case 'topic delete': return { target: `topic ${request.values.id}`, details: { topicId: request.values.id } };
|
|
53
|
+
case 'message delete': return { target: `messages ${request.values.ids.join(', ')}`, details: { messageIds: [...request.values.ids] } };
|
|
54
|
+
case 'chat delete': return { target: context.knownGroup?.title ?? String(context.chat), details: { chat: context.chat, ...(context.knownGroup ? { title: context.knownGroup.title } : {}) } };
|
|
55
|
+
case 'chat leave': return { target: context.knownGroup?.title ?? String(context.chat), details: { chat: context.chat } };
|
|
56
|
+
case 'chat ttl': return { target: context.knownGroup?.title ?? String(context.chat), details: { durationSeconds: request.values.durationSeconds } };
|
|
57
|
+
case 'chat default-permissions': return { target: context.knownGroup?.title ?? String(context.chat), details: { permissions: [...request.values.permissions] } };
|
|
58
|
+
case 'invite approve-all':
|
|
59
|
+
case 'invite decline-all':
|
|
60
|
+
case 'message unpin-all': return { target: context.knownGroup?.title ?? String(context.chat), details: { chat: context.chat } };
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function preflight(request, group) {
|
|
64
|
+
return evaluateGroupCommandAvailability(request.definition, group);
|
|
65
|
+
}
|
|
66
|
+
export function evaluateGroupCommandAvailability(definition, group) {
|
|
67
|
+
if (!group)
|
|
68
|
+
return undefined;
|
|
69
|
+
const capabilityError = evaluateGroupCapability(definition.capability, group);
|
|
70
|
+
if (capabilityError)
|
|
71
|
+
return capabilityError;
|
|
72
|
+
const permission = requiredPermission[definition.path.join(' ')];
|
|
73
|
+
if (group.current_user_role !== 'creator' && permission && (group.permissions == null || !group.permissions[permission])) {
|
|
74
|
+
return { ok: false, error: { code: 'permission_missing', message: `Missing Telegram group permission: ${permission}`, details: { permission } } };
|
|
75
|
+
}
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
export function evaluateGroupCapability(capability, group) {
|
|
79
|
+
if (!group)
|
|
80
|
+
return undefined;
|
|
81
|
+
if (capability === 'group' && group.type !== 'group' && group.type !== 'supergroup')
|
|
82
|
+
return error('unsupported_group', 'This command requires a group.');
|
|
83
|
+
if (capability === 'supergroup' && group.type !== 'supergroup')
|
|
84
|
+
return error('unsupported_group', 'This command requires a supergroup.');
|
|
85
|
+
if (capability === 'forum' && !group.forum)
|
|
86
|
+
return error('unsupported_group', 'This command requires a forum.');
|
|
87
|
+
if (capability === 'creator' && group.current_user_role != null && group.current_user_role !== 'creator')
|
|
88
|
+
return error('permission_missing', 'This command requires the group creator.');
|
|
89
|
+
if (capability === 'admin' && group.current_user_role != null && group.current_user_role !== 'admin' && group.current_user_role !== 'creator')
|
|
90
|
+
return error('permission_missing', 'This command requires a group administrator.');
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
function error(code, message) { return { ok: false, error: { code, message } }; }
|
|
94
|
+
const requiredPermission = {
|
|
95
|
+
'member add': 'invite_users', 'member kick': 'ban_users', 'member ban': 'ban_users', 'member unban': 'ban_users', 'member mute': 'ban_users', 'member unmute': 'ban_users',
|
|
96
|
+
'admin promote': 'add_admins', 'admin demote': 'add_admins', 'admin rank': 'add_admins',
|
|
97
|
+
'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',
|
|
98
|
+
'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',
|
|
99
|
+
'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',
|
|
100
|
+
'message pin': 'pin_messages', 'message unpin': 'pin_messages', 'message unpin-all': 'pin_messages', 'message delete': 'delete_messages', 'member purge': 'delete_messages',
|
|
101
|
+
};
|
|
102
|
+
//# 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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"}
|