teleproto 1.214.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 (222) hide show
  1. package/CryptoFile.d.ts +2 -0
  2. package/CryptoFile.js +37 -0
  3. package/Helpers.d.ts +150 -0
  4. package/Helpers.js +477 -0
  5. package/LICENSE +23 -0
  6. package/Password.d.ts +14 -0
  7. package/Password.js +270 -0
  8. package/README.md +98 -0
  9. package/Utils.d.ts +227 -0
  10. package/Utils.js +1247 -0
  11. package/Version.d.ts +1 -0
  12. package/Version.js +4 -0
  13. package/client/2fa.d.ts +48 -0
  14. package/client/2fa.js +108 -0
  15. package/client/TelegramClient.d.ts +1043 -0
  16. package/client/TelegramClient.js +1181 -0
  17. package/client/account.d.ts +0 -0
  18. package/client/account.js +1 -0
  19. package/client/auth.d.ts +92 -0
  20. package/client/auth.js +388 -0
  21. package/client/bots.d.ts +6 -0
  22. package/client/bots.js +23 -0
  23. package/client/buttons.d.ts +4 -0
  24. package/client/buttons.js +86 -0
  25. package/client/chats.d.ts +45 -0
  26. package/client/chats.js +350 -0
  27. package/client/dialogs.d.ts +52 -0
  28. package/client/dialogs.js +174 -0
  29. package/client/downloads.d.ts +156 -0
  30. package/client/downloads.js +614 -0
  31. package/client/fs.d.ts +1 -0
  32. package/client/fs.js +17 -0
  33. package/client/index.d.ts +15 -0
  34. package/client/index.js +64 -0
  35. package/client/messageParse.d.ts +17 -0
  36. package/client/messageParse.js +191 -0
  37. package/client/messages.d.ts +263 -0
  38. package/client/messages.js +813 -0
  39. package/client/os.d.ts +2 -0
  40. package/client/os.js +37 -0
  41. package/client/path.d.ts +2 -0
  42. package/client/path.js +7 -0
  43. package/client/telegramBaseClient.d.ts +237 -0
  44. package/client/telegramBaseClient.js +368 -0
  45. package/client/updates.d.ts +33 -0
  46. package/client/updates.js +260 -0
  47. package/client/uploads.d.ts +136 -0
  48. package/client/uploads.js +514 -0
  49. package/client/users.d.ts +29 -0
  50. package/client/users.js +490 -0
  51. package/crypto/AuthKey.d.ts +19 -0
  52. package/crypto/AuthKey.js +76 -0
  53. package/crypto/CTR.d.ts +5 -0
  54. package/crypto/CTR.js +16 -0
  55. package/crypto/Factorizator.d.ts +19 -0
  56. package/crypto/Factorizator.js +74 -0
  57. package/crypto/IGE.d.ts +11 -0
  58. package/crypto/IGE.js +115 -0
  59. package/crypto/RSA.d.ts +14 -0
  60. package/crypto/RSA.js +70 -0
  61. package/crypto/converters.d.ts +19 -0
  62. package/crypto/converters.js +52 -0
  63. package/crypto/crypto.d.ts +19 -0
  64. package/crypto/crypto.js +58 -0
  65. package/crypto/words.d.ts +6 -0
  66. package/crypto/words.js +47 -0
  67. package/define.d.ts +77 -0
  68. package/entityCache.d.ts +7 -0
  69. package/entityCache.js +79 -0
  70. package/errors/Common.d.ts +71 -0
  71. package/errors/Common.js +122 -0
  72. package/errors/RPCBaseErrors.d.ts +84 -0
  73. package/errors/RPCBaseErrors.js +134 -0
  74. package/errors/RPCErrorList.d.ts +37 -0
  75. package/errors/RPCErrorList.js +117 -0
  76. package/errors/index.d.ts +11 -0
  77. package/errors/index.js +32 -0
  78. package/events/Album.d.ts +36 -0
  79. package/events/Album.js +104 -0
  80. package/events/CallbackQuery.d.ts +73 -0
  81. package/events/CallbackQuery.js +193 -0
  82. package/events/DeletedMessage.d.ts +45 -0
  83. package/events/DeletedMessage.js +63 -0
  84. package/events/EditedMessage.d.ts +30 -0
  85. package/events/EditedMessage.js +41 -0
  86. package/events/NewMessage.d.ts +89 -0
  87. package/events/NewMessage.js +182 -0
  88. package/events/Raw.d.ts +29 -0
  89. package/events/Raw.js +43 -0
  90. package/events/common.d.ts +66 -0
  91. package/events/common.js +141 -0
  92. package/events/index.d.ts +2 -0
  93. package/events/index.js +8 -0
  94. package/extensions/AsyncQueue.d.ts +10 -0
  95. package/extensions/AsyncQueue.js +32 -0
  96. package/extensions/BinaryReader.d.ts +99 -0
  97. package/extensions/BinaryReader.js +242 -0
  98. package/extensions/BinaryWriter.d.ts +6 -0
  99. package/extensions/BinaryWriter.js +15 -0
  100. package/extensions/Deferred.d.ts +8 -0
  101. package/extensions/Deferred.js +16 -0
  102. package/extensions/Logger.d.ts +54 -0
  103. package/extensions/Logger.js +128 -0
  104. package/extensions/MessagePacker.d.ts +21 -0
  105. package/extensions/MessagePacker.js +154 -0
  106. package/extensions/PendingState.d.ts +12 -0
  107. package/extensions/PendingState.js +29 -0
  108. package/extensions/PromisedNetSockets.d.ts +24 -0
  109. package/extensions/PromisedNetSockets.js +192 -0
  110. package/extensions/PromisedWebSockets.d.ts +18 -0
  111. package/extensions/PromisedWebSockets.js +124 -0
  112. package/extensions/html.d.ts +5 -0
  113. package/extensions/html.js +228 -0
  114. package/extensions/index.d.ts +7 -0
  115. package/extensions/index.js +17 -0
  116. package/extensions/markdown.d.ts +5 -0
  117. package/extensions/markdown.js +76 -0
  118. package/extensions/markdownv2.d.ts +5 -0
  119. package/extensions/markdownv2.js +51 -0
  120. package/extensions/net.d.ts +1 -0
  121. package/extensions/net.js +17 -0
  122. package/extensions/socks.d.ts +1 -0
  123. package/extensions/socks.js +17 -0
  124. package/index.d.ts +14 -0
  125. package/index.js +62 -0
  126. package/inspect.d.ts +1 -0
  127. package/inspect.js +5 -0
  128. package/network/Authenticator.d.ts +12 -0
  129. package/network/Authenticator.js +192 -0
  130. package/network/MTProtoPlainSender.d.ts +19 -0
  131. package/network/MTProtoPlainSender.js +74 -0
  132. package/network/MTProtoSender.d.ts +290 -0
  133. package/network/MTProtoSender.js +873 -0
  134. package/network/MTProtoState.d.ts +102 -0
  135. package/network/MTProtoState.js +267 -0
  136. package/network/RequestState.d.ts +18 -0
  137. package/network/RequestState.js +35 -0
  138. package/network/connection/Connection.d.ts +69 -0
  139. package/network/connection/Connection.js +162 -0
  140. package/network/connection/TCPAbridged.d.ts +19 -0
  141. package/network/connection/TCPAbridged.js +58 -0
  142. package/network/connection/TCPFull.d.ts +16 -0
  143. package/network/connection/TCPFull.js +61 -0
  144. package/network/connection/TCPMTProxy.d.ts +49 -0
  145. package/network/connection/TCPMTProxy.js +121 -0
  146. package/network/connection/TCPObfuscated.d.ts +18 -0
  147. package/network/connection/TCPObfuscated.js +78 -0
  148. package/network/connection/index.d.ts +4 -0
  149. package/network/connection/index.js +11 -0
  150. package/network/index.d.ts +11 -0
  151. package/network/index.js +23 -0
  152. package/package.json +50 -0
  153. package/requestIter.d.ts +24 -0
  154. package/requestIter.js +109 -0
  155. package/sessions/Abstract.d.ts +103 -0
  156. package/sessions/Abstract.js +6 -0
  157. package/sessions/Memory.d.ts +38 -0
  158. package/sessions/Memory.js +272 -0
  159. package/sessions/StoreSession.d.ts +14 -0
  160. package/sessions/StoreSession.js +77 -0
  161. package/sessions/StringSession.d.ts +32 -0
  162. package/sessions/StringSession.js +116 -0
  163. package/sessions/index.d.ts +4 -0
  164. package/sessions/index.js +11 -0
  165. package/sessions/localStorage.d.ts +1 -0
  166. package/sessions/localStorage.js +4 -0
  167. package/tl/AllTLObjects.d.ts +3 -0
  168. package/tl/AllTLObjects.js +17 -0
  169. package/tl/MTProtoRequest.d.ts +18 -0
  170. package/tl/MTProtoRequest.js +38 -0
  171. package/tl/api.d.ts +32488 -0
  172. package/tl/api.js +507 -0
  173. package/tl/apiTl.d.ts +2 -0
  174. package/tl/apiTl.js +2209 -0
  175. package/tl/core/GZIPPacked.d.ts +15 -0
  176. package/tl/core/GZIPPacked.js +51 -0
  177. package/tl/core/MessageContainer.d.ts +12 -0
  178. package/tl/core/MessageContainer.js +42 -0
  179. package/tl/core/RPCResult.d.ts +14 -0
  180. package/tl/core/RPCResult.js +32 -0
  181. package/tl/core/TLMessage.d.ts +10 -0
  182. package/tl/core/TLMessage.js +14 -0
  183. package/tl/core/index.d.ts +6 -0
  184. package/tl/core/index.js +16 -0
  185. package/tl/custom/button.d.ts +24 -0
  186. package/tl/custom/button.js +78 -0
  187. package/tl/custom/chatGetter.d.ts +29 -0
  188. package/tl/custom/chatGetter.js +116 -0
  189. package/tl/custom/dialog.d.ts +30 -0
  190. package/tl/custom/dialog.js +40 -0
  191. package/tl/custom/draft.d.ts +21 -0
  192. package/tl/custom/draft.js +48 -0
  193. package/tl/custom/file.d.ts +21 -0
  194. package/tl/custom/file.js +68 -0
  195. package/tl/custom/forward.d.ts +15 -0
  196. package/tl/custom/forward.js +47 -0
  197. package/tl/custom/index.d.ts +1 -0
  198. package/tl/custom/index.js +5 -0
  199. package/tl/custom/inlineResult.d.ts +32 -0
  200. package/tl/custom/inlineResult.js +87 -0
  201. package/tl/custom/inlineResults.d.ts +20 -0
  202. package/tl/custom/inlineResults.js +26 -0
  203. package/tl/custom/message.d.ts +427 -0
  204. package/tl/custom/message.js +716 -0
  205. package/tl/custom/messageButton.d.ts +54 -0
  206. package/tl/custom/messageButton.js +152 -0
  207. package/tl/custom/senderGetter.d.ts +28 -0
  208. package/tl/custom/senderGetter.js +55 -0
  209. package/tl/generateModule.d.ts +1 -0
  210. package/tl/generateModule.js +17 -0
  211. package/tl/generationHelpers.d.ts +11 -0
  212. package/tl/generationHelpers.js +289 -0
  213. package/tl/index.d.ts +3 -0
  214. package/tl/index.js +10 -0
  215. package/tl/patched/index.d.ts +2 -0
  216. package/tl/patched/index.js +76 -0
  217. package/tl/schemaTl.d.ts +2 -0
  218. package/tl/schemaTl.js +64 -0
  219. package/tl/types-generator/generate.d.ts +1 -0
  220. package/tl/types-generator/generate.js +84 -0
  221. package/tl/types-generator/template.d.ts +6 -0
  222. package/tl/types-generator/template.js +257 -0
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlbumEvent = exports.Album = void 0;
4
+ const common_1 = require("./common");
5
+ const tl_1 = require("../tl");
6
+ const Logger_1 = require("../extensions/Logger");
7
+ const _ALBUM_DELAY = 500; // 0.5 sec
8
+ /**
9
+ * Occurs whenever an album (multiple grouped messages with media) arrive.
10
+ * @example
11
+ * ```ts
12
+ * // Albums are basically a list of messages. so event is a list
13
+ * async function listenForAlbums(event: AlbumEvent) {
14
+ * const messages = event.messages;
15
+ * for (const message of messages){
16
+ * console.log("Caption is",message.text);
17
+ * console.log("Message id is",message.id);
18
+ * console.log("Chat id is",message.chatId);
19
+ * }
20
+ * }
21
+ * // adds an event handler for new messages
22
+ * client.addEventHandler(listenForAlbums, new Album({}));
23
+ * ```
24
+ */
25
+ class Album extends common_1.EventBuilder {
26
+ constructor(albumParams) {
27
+ let { chats, func, blacklistChats = false } = albumParams;
28
+ super({ chats, blacklistChats, func });
29
+ }
30
+ build(update, dispatch) {
31
+ if (!("message" in update && update.message instanceof tl_1.Api.Message)) {
32
+ return;
33
+ }
34
+ const groupedId = update.message.groupedId;
35
+ if (!groupedId) {
36
+ return;
37
+ }
38
+ const albums = this.client._ALBUMS;
39
+ const oldTimeout = albums.get(groupedId.toString());
40
+ let oldValues = [];
41
+ if (oldTimeout) {
42
+ clearTimeout(oldTimeout[0]);
43
+ oldValues.push(...oldTimeout[1]);
44
+ }
45
+ albums.set(groupedId.toString(), [
46
+ setTimeout(() => {
47
+ const values = albums.get(groupedId.toString());
48
+ albums.delete(groupedId.toString());
49
+ if (!values) {
50
+ return;
51
+ }
52
+ const updates = values[1];
53
+ if (!updates) {
54
+ return;
55
+ }
56
+ const messages = [];
57
+ for (const update of updates) {
58
+ // there is probably an easier way
59
+ if ("message" in update &&
60
+ update.message instanceof tl_1.Api.Message) {
61
+ messages.push(update.message);
62
+ }
63
+ }
64
+ const event = new AlbumEvent(messages, values[1]);
65
+ event._setClient(this.client);
66
+ event._entities = messages[0]._entities;
67
+ dispatch(event);
68
+ }, _ALBUM_DELAY),
69
+ [...oldValues, update],
70
+ ]);
71
+ }
72
+ }
73
+ exports.Album = Album;
74
+ class AlbumEvent extends common_1.EventCommon {
75
+ constructor(messages, originalUpdates) {
76
+ super({
77
+ msgId: messages[0].id,
78
+ chatPeer: messages[0].peerId,
79
+ broadcast: messages[0].post,
80
+ });
81
+ this.originalUpdates = originalUpdates;
82
+ this.messages = messages;
83
+ }
84
+ _setClient(client) {
85
+ super._setClient(client);
86
+ for (let i = 0; i < this.messages.length; i++) {
87
+ try {
88
+ // todo make sure this never fails
89
+ this.messages[i]._finishInit(client, this.originalUpdates[i]._entities || new Map(), undefined);
90
+ }
91
+ catch (e) {
92
+ client._log.error("Got error while trying to finish init message with id " +
93
+ this.messages[i].id);
94
+ if (client._errorHandler) {
95
+ client._errorHandler(e);
96
+ }
97
+ if (client._log.canSend(Logger_1.LogLevel.ERROR)) {
98
+ console.error(e);
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+ exports.AlbumEvent = AlbumEvent;
@@ -0,0 +1,73 @@
1
+ import { EntityLike } from "../define";
2
+ import { EventBuilder, EventCommonSender } from "./common";
3
+ import { Api } from "../tl";
4
+ import { TelegramClient } from "..";
5
+ import { EditMessageParams, SendMessageParams } from "../client/messages";
6
+ export interface NewCallbackQueryInterface {
7
+ chats: EntityLike[];
8
+ func?: {
9
+ (event: CallbackQuery): boolean;
10
+ };
11
+ fromUsers: EntityLike[];
12
+ blacklistUsers: EntityLike[];
13
+ pattern?: RegExp;
14
+ }
15
+ export declare const NewCallbackQueryDefaults: NewCallbackQueryInterface;
16
+ /**
17
+ * Occurs whenever you sign in as a bot and a user
18
+ * clicks one of the inline buttons on your messages.
19
+ * Note that the `chats` parameter will **not** work with normal
20
+ * IDs or peers if the clicked inline button comes from a "via bot"
21
+ * message. The `chats` parameter also supports checking against the
22
+ * `chat_instance` which should be used for inline callbacks.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * async function printQuery(event: NewCallbackQueryEvent) {
27
+ * // TODO
28
+ * }
29
+ * ```
30
+ */
31
+ export declare class CallbackQuery extends EventBuilder {
32
+ match?: RegExp;
33
+ private _noCheck;
34
+ constructor(inlineQueryParams?: Partial<NewCallbackQueryInterface>);
35
+ build(update: Api.TypeUpdate | Api.TypeUpdates, callback: undefined, selfId?: undefined): CallbackQueryEvent | undefined;
36
+ filter(event: CallbackQueryEvent): any;
37
+ }
38
+ export interface AnswerCallbackQueryParams {
39
+ message: string;
40
+ cacheTime: number;
41
+ url: string;
42
+ alert: boolean;
43
+ }
44
+ export declare class CallbackQueryEvent extends EventCommonSender {
45
+ /**
46
+ * The original {@link Api.UpdateBotCallbackQuery} or {@link Api.UpdateInlineBotCallbackQuery} object.
47
+ */
48
+ query: Api.UpdateBotCallbackQuery | Api.UpdateInlineBotCallbackQuery;
49
+ /**
50
+ * The regex match object returned from successfully matching the
51
+ * query `data` with the provided pattern in your event handler.
52
+ */
53
+ patternMatch: RegExpMatchArray | undefined;
54
+ private _message;
55
+ private _answered;
56
+ constructor(query: Api.UpdateBotCallbackQuery | Api.UpdateInlineBotCallbackQuery, peer: Api.TypePeer, msgId: number);
57
+ _setClient(client: TelegramClient): void;
58
+ get id(): import("big-integer").BigInteger;
59
+ get messageId(): number;
60
+ get data(): Api.bytes | undefined;
61
+ get chatInstance(): import("big-integer").BigInteger;
62
+ getMessage(): Promise<Api.Message>;
63
+ _refetchSender(): Promise<void>;
64
+ answer({ message, cacheTime, url, alert, }?: Partial<AnswerCallbackQueryParams>): Promise<boolean | undefined>;
65
+ get viaInline(): boolean;
66
+ respond(params?: SendMessageParams): Promise<void>;
67
+ reply(params?: SendMessageParams): Promise<void>;
68
+ edit(params: EditMessageParams): Promise<Api.Message>;
69
+ delete({ revoke }?: {
70
+ revoke: boolean;
71
+ }): Promise<Api.messages.AffectedMessages[] | undefined>;
72
+ get sender(): import("../define").Entity | undefined;
73
+ }
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CallbackQueryEvent = exports.CallbackQuery = exports.NewCallbackQueryDefaults = void 0;
4
+ const common_1 = require("./common");
5
+ const tl_1 = require("../tl");
6
+ const Helpers_1 = require("../Helpers");
7
+ const Utils_1 = require("../Utils");
8
+ exports.NewCallbackQueryDefaults = {
9
+ chats: [],
10
+ fromUsers: [],
11
+ blacklistUsers: [],
12
+ };
13
+ /**
14
+ * Occurs whenever you sign in as a bot and a user
15
+ * clicks one of the inline buttons on your messages.
16
+ * Note that the `chats` parameter will **not** work with normal
17
+ * IDs or peers if the clicked inline button comes from a "via bot"
18
+ * message. The `chats` parameter also supports checking against the
19
+ * `chat_instance` which should be used for inline callbacks.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * async function printQuery(event: NewCallbackQueryEvent) {
24
+ * // TODO
25
+ * }
26
+ * ```
27
+ */
28
+ class CallbackQuery extends common_1.EventBuilder {
29
+ constructor(inlineQueryParams = {}) {
30
+ const { chats, func, pattern } = inlineQueryParams;
31
+ super({ chats, func, blacklistChats: false });
32
+ this.match = pattern;
33
+ this._noCheck = [this.chats, this.func, this.match].every((i) => i === null || i === undefined);
34
+ }
35
+ build(update, callback, selfId = undefined) {
36
+ if (update instanceof tl_1.Api.UpdateBotCallbackQuery) {
37
+ return new CallbackQueryEvent(update, update.peer, update.msgId);
38
+ }
39
+ else if (update instanceof tl_1.Api.UpdateInlineBotCallbackQuery) {
40
+ const b = (0, Helpers_1.toSignedLittleBuffer)(update.msgId.id, 8);
41
+ const msgId = b.readInt32LE(0);
42
+ const peerId = b.readInt32LE(4);
43
+ const peer = peerId < 0
44
+ ? new tl_1.Api.PeerChannel({ channelId: (0, Helpers_1.returnBigInt)(-peerId) })
45
+ : new tl_1.Api.PeerUser({ userId: (0, Helpers_1.returnBigInt)(peerId) });
46
+ return new CallbackQueryEvent(update, peer, msgId);
47
+ }
48
+ }
49
+ filter(event) {
50
+ if (this._noCheck)
51
+ return event;
52
+ if (this.chats) {
53
+ let inside = this.chats.includes(event.query.chatInstance.toString());
54
+ if (event.chatId) {
55
+ inside = inside || this.chats.includes(event.chatId.toString());
56
+ }
57
+ if (inside === this.blacklistChats) {
58
+ return;
59
+ }
60
+ }
61
+ if (this.match) {
62
+ const data = new TextDecoder().decode(event.query.data);
63
+ const result = this.match.exec(data);
64
+ this.match.lastIndex = 0;
65
+ if (result) {
66
+ event.patternMatch = result;
67
+ }
68
+ else {
69
+ return;
70
+ }
71
+ }
72
+ if (this.func) {
73
+ return this.func(event);
74
+ }
75
+ return true;
76
+ }
77
+ }
78
+ exports.CallbackQuery = CallbackQuery;
79
+ class CallbackQueryEvent extends common_1.EventCommonSender {
80
+ constructor(query, peer, msgId) {
81
+ super({
82
+ msgId,
83
+ chatPeer: peer,
84
+ broadcast: false,
85
+ });
86
+ this.query = query;
87
+ this.patternMatch = undefined;
88
+ this._senderId = (0, Helpers_1.returnBigInt)(query.userId);
89
+ this._message = undefined;
90
+ this._answered = false;
91
+ }
92
+ _setClient(client) {
93
+ super._setClient(client);
94
+ const [sender, inputSender] = (0, Utils_1._getEntityPair)(this._senderId.toString(), this._entities, client._entityCache);
95
+ this._sender = sender;
96
+ this._inputSender = inputSender;
97
+ }
98
+ get id() {
99
+ return this.query.queryId;
100
+ }
101
+ get messageId() {
102
+ return this._messageId;
103
+ }
104
+ get data() {
105
+ return this.query.data;
106
+ }
107
+ get chatInstance() {
108
+ return this.query.chatInstance;
109
+ }
110
+ async getMessage() {
111
+ if (this._message) {
112
+ return this._message;
113
+ }
114
+ const chat = this.isChannel ? await this.getInputChat() : undefined;
115
+ const messages = await this._client.getMessages(chat, {
116
+ ids: this._messageId,
117
+ });
118
+ this._message = messages[0];
119
+ return this._message;
120
+ }
121
+ async _refetchSender() {
122
+ if (this._entities.has(this.senderId.toString())) {
123
+ this._sender = this._entities.get(this.senderId.toString());
124
+ }
125
+ if (!this._sender)
126
+ return;
127
+ this._inputSender = (0, Utils_1.getInputPeer)(this._chat);
128
+ if (!this._inputSender.hasOwnProperty("accessHash")) {
129
+ try {
130
+ this._inputSender = this._client._entityCache.get(this._senderId);
131
+ }
132
+ catch (e) {
133
+ const m = await this.getMessage();
134
+ if (m) {
135
+ this._sender = m._sender;
136
+ this._inputSender = m._inputSender;
137
+ }
138
+ }
139
+ }
140
+ }
141
+ async answer({ message, cacheTime, url, alert, } = {}) {
142
+ if (this._answered)
143
+ return;
144
+ return await this._client.invoke(new tl_1.Api.messages.SetBotCallbackAnswer({
145
+ queryId: this.query.queryId,
146
+ cacheTime,
147
+ alert,
148
+ message,
149
+ url,
150
+ })).then((res) => {
151
+ this._answered = true;
152
+ return res;
153
+ });
154
+ }
155
+ get viaInline() {
156
+ return this.query instanceof tl_1.Api.UpdateInlineBotCallbackQuery;
157
+ }
158
+ async respond(params = {}) {
159
+ await this.answer();
160
+ const inputChat = await this.getInputChat();
161
+ await this._client.sendMessage(inputChat, params);
162
+ }
163
+ async reply(params = {}) {
164
+ await this.answer();
165
+ params.replyTo = this.messageId;
166
+ const inputChat = await this.getInputChat();
167
+ await this._client.sendMessage(inputChat, params);
168
+ }
169
+ async edit(params) {
170
+ if (this.query.msgId instanceof tl_1.Api.InputBotInlineMessageID) {
171
+ return await this._client.editMessage(this.messageId, params).then(async (res) => {
172
+ await this.answer();
173
+ return res;
174
+ });
175
+ }
176
+ else {
177
+ const inputChat = await this.getInputChat();
178
+ return await this._client.editMessage(inputChat, params).then(async (res) => {
179
+ await this.answer();
180
+ return res;
181
+ });
182
+ }
183
+ }
184
+ async delete({ revoke } = { revoke: false }) {
185
+ if (this._client) {
186
+ return this._client.deleteMessages(await this.getInputChat(), [this.messageId], { revoke });
187
+ }
188
+ }
189
+ get sender() {
190
+ return this._sender;
191
+ }
192
+ }
193
+ exports.CallbackQueryEvent = CallbackQueryEvent;
@@ -0,0 +1,45 @@
1
+ import { EntityLike } from "../define";
2
+ import { Api } from "../tl";
3
+ import { EventBuilder, EventCommon, DefaultEventInterface } from "./common";
4
+ /**
5
+ * Occurs whenever a message is deleted. Note that this event isn't 100%
6
+ * reliable, since Telegram doesn't always notify the clients that a message
7
+ * was deleted.
8
+ *
9
+ * @remarks
10
+ * Telegram **does not** send information about *where* a message
11
+ * was deleted if it occurs in private conversations with other users
12
+ * or in small group chats, because message IDs are *unique* and you
13
+ * can identify the chat with the message ID alone if you saved it
14
+ * previously.
15
+ *
16
+ * teleproto **does not** save information of where messages occur,
17
+ * so it cannot know in which chat a message was deleted (this will
18
+ * only work in channels, where the channel ID *is* present).
19
+ *
20
+ * This means that the `chats:` parameter will not work reliably,
21
+ * unless you intend on working with channels and super-groups only.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * async function deletedMessageEventPrint(event: DeletedMessageEvent) {
26
+ *
27
+ * for (let index = 0; index < update.deletedIds.length; index++) {
28
+ * const deletedMsgId = update.deletedIds[index];
29
+ * console.log(`Message ${deletedMsgId} was deleted.`)
30
+ * }
31
+ *
32
+ * }
33
+ * // adds an event handler for deleted messages
34
+ * client.addEventHandler(deletedMessageEventPrint, new DeletedMessage({}));
35
+ * ```
36
+ */
37
+ export declare class DeletedMessage extends EventBuilder {
38
+ constructor(eventParams: DefaultEventInterface);
39
+ build(update: Api.TypeUpdate | Api.TypeUpdates, callback: undefined, selfId: bigInt.BigInteger): DeletedMessageEvent | undefined;
40
+ }
41
+ export declare class DeletedMessageEvent extends EventCommon {
42
+ deletedIds: number[];
43
+ peer?: EntityLike;
44
+ constructor(deletedIds: number[], peer?: EntityLike);
45
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeletedMessageEvent = exports.DeletedMessage = void 0;
4
+ const tl_1 = require("../tl");
5
+ const common_1 = require("./common");
6
+ /**
7
+ * Occurs whenever a message is deleted. Note that this event isn't 100%
8
+ * reliable, since Telegram doesn't always notify the clients that a message
9
+ * was deleted.
10
+ *
11
+ * @remarks
12
+ * Telegram **does not** send information about *where* a message
13
+ * was deleted if it occurs in private conversations with other users
14
+ * or in small group chats, because message IDs are *unique* and you
15
+ * can identify the chat with the message ID alone if you saved it
16
+ * previously.
17
+ *
18
+ * teleproto **does not** save information of where messages occur,
19
+ * so it cannot know in which chat a message was deleted (this will
20
+ * only work in channels, where the channel ID *is* present).
21
+ *
22
+ * This means that the `chats:` parameter will not work reliably,
23
+ * unless you intend on working with channels and super-groups only.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * async function deletedMessageEventPrint(event: DeletedMessageEvent) {
28
+ *
29
+ * for (let index = 0; index < update.deletedIds.length; index++) {
30
+ * const deletedMsgId = update.deletedIds[index];
31
+ * console.log(`Message ${deletedMsgId} was deleted.`)
32
+ * }
33
+ *
34
+ * }
35
+ * // adds an event handler for deleted messages
36
+ * client.addEventHandler(deletedMessageEventPrint, new DeletedMessage({}));
37
+ * ```
38
+ */
39
+ class DeletedMessage extends common_1.EventBuilder {
40
+ constructor(eventParams) {
41
+ super(eventParams);
42
+ }
43
+ build(update, callback, selfId) {
44
+ if (update instanceof tl_1.Api.UpdateDeleteChannelMessages) {
45
+ return new DeletedMessageEvent(update.messages, new tl_1.Api.PeerChannel({ channelId: update.channelId }));
46
+ }
47
+ else if (update instanceof tl_1.Api.UpdateDeleteMessages) {
48
+ return new DeletedMessageEvent(update.messages);
49
+ }
50
+ }
51
+ }
52
+ exports.DeletedMessage = DeletedMessage;
53
+ class DeletedMessageEvent extends common_1.EventCommon {
54
+ constructor(deletedIds, peer) {
55
+ super({
56
+ chatPeer: peer,
57
+ msgId: Array.isArray(deletedIds) ? deletedIds[0] : 0,
58
+ });
59
+ this.deletedIds = deletedIds;
60
+ this.peer = peer;
61
+ }
62
+ }
63
+ exports.DeletedMessageEvent = DeletedMessageEvent;
@@ -0,0 +1,30 @@
1
+ import { Api } from "../tl";
2
+ import { NewMessage, NewMessageEvent, NewMessageInterface } from "./NewMessage";
3
+ export interface EditedMessageInterface extends NewMessageInterface {
4
+ func?: {
5
+ (event: EditedMessageEvent): boolean;
6
+ };
7
+ }
8
+ /**
9
+ * Occurs whenever a text message or a message with media was edited.
10
+ * @example
11
+ * ```ts
12
+ * async function editedEventPrint(event: EditedMessageEvent) {
13
+ * const message = event.message as Api.Message;
14
+ *
15
+ * console.log(`Message ${message.id} from channel ${message.chatId!.toString();} was edited at ${message.editDate}`)
16
+ * }
17
+ * // adds an event handler for edited messages
18
+ * client.addEventHandler(editedEventPrint, new EditedMessage({}));
19
+ * ```
20
+ */
21
+ export declare class EditedMessage extends NewMessage {
22
+ func?: {
23
+ (event: EditedMessageEvent): boolean;
24
+ };
25
+ constructor(editedMessageParams: EditedMessageInterface);
26
+ build(update: Api.TypeUpdate | Api.TypeUpdates, callback: undefined, selfId: bigInt.BigInteger): EditedMessageEvent | undefined;
27
+ }
28
+ export declare class EditedMessageEvent extends NewMessageEvent {
29
+ constructor(message: Api.Message, originalUpdate: Api.TypeUpdate | Api.TypeUpdates);
30
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EditedMessageEvent = exports.EditedMessage = void 0;
4
+ const tl_1 = require("../tl");
5
+ const NewMessage_1 = require("./NewMessage");
6
+ /**
7
+ * Occurs whenever a text message or a message with media was edited.
8
+ * @example
9
+ * ```ts
10
+ * async function editedEventPrint(event: EditedMessageEvent) {
11
+ * const message = event.message as Api.Message;
12
+ *
13
+ * console.log(`Message ${message.id} from channel ${message.chatId!.toString();} was edited at ${message.editDate}`)
14
+ * }
15
+ * // adds an event handler for edited messages
16
+ * client.addEventHandler(editedEventPrint, new EditedMessage({}));
17
+ * ```
18
+ */
19
+ class EditedMessage extends NewMessage_1.NewMessage {
20
+ constructor(editedMessageParams) {
21
+ super(editedMessageParams);
22
+ }
23
+ build(update, callback, selfId) {
24
+ if (update instanceof tl_1.Api.UpdateEditChannelMessage ||
25
+ update instanceof tl_1.Api.UpdateEditMessage) {
26
+ if (!(update.message instanceof tl_1.Api.Message)) {
27
+ return undefined;
28
+ }
29
+ const event = new EditedMessageEvent(update.message, update);
30
+ this.addAttributes(event);
31
+ return event;
32
+ }
33
+ }
34
+ }
35
+ exports.EditedMessage = EditedMessage;
36
+ class EditedMessageEvent extends NewMessage_1.NewMessageEvent {
37
+ constructor(message, originalUpdate) {
38
+ super(message, originalUpdate);
39
+ }
40
+ }
41
+ exports.EditedMessageEvent = EditedMessageEvent;
@@ -0,0 +1,89 @@
1
+ import { DefaultEventInterface, EventBuilder, EventCommon } from "./common";
2
+ import type { Entity, EntityLike } from "../define";
3
+ import type { TelegramClient } from "..";
4
+ import { Api } from "../tl";
5
+ import bigInt from "big-integer";
6
+ export interface NewMessageInterface extends DefaultEventInterface {
7
+ func?: {
8
+ (event: NewMessageEvent): boolean;
9
+ };
10
+ /**
11
+ * If set to `true`, only **incoming** messages will be handled.
12
+ Mutually exclusive with ``outgoing`` (can only set one of either).
13
+ */
14
+ incoming?: boolean;
15
+ /**
16
+ * If set to `true`, only **outgoing** messages will be handled.
17
+ * Mutually exclusive with ``incoming`` (can only set one of either).
18
+ */
19
+ outgoing?: boolean;
20
+ /**
21
+ * Unlike `chats`, this parameter filters the *senders* of the
22
+ * message. That is, only messages *sent by these users* will be
23
+ * handled. Use `chats` if you want private messages with this/these
24
+ * users. `from_users` lets you filter by messages sent by *one or
25
+ * more* users across the desired chats (doesn't need a list).
26
+ */
27
+ fromUsers?: EntityLike[];
28
+ /**
29
+ * Whether forwarded messages should be handled or not. By default,
30
+ * both forwarded and normal messages are included. If it's `True`
31
+ * **only** forwards will be handled. If it's `False` only messages
32
+ * that are *not* forwards will be handled.
33
+ */
34
+ forwards?: boolean;
35
+ /**
36
+ * If set, only messages matching this pattern will be handled.
37
+ */
38
+ pattern?: RegExp;
39
+ }
40
+ /**
41
+ * Occurs whenever a new text message or a message with media arrives.
42
+ * @example
43
+ * ```ts
44
+ * async function eventPrint(event: NewMessageEvent) {
45
+ * const message = event.message;
46
+ *
47
+ * // Checks if it's a private message (from user or bot)
48
+ * if (event.isPrivate){
49
+ * // prints sender id
50
+ * console.log(message.senderId);
51
+ * // read message
52
+ * if (message.text == "hello"){
53
+ * const sender = await message.getSender();
54
+ * console.log("sender is",sender);
55
+ * await client.sendMessage(sender,{
56
+ * message:`hi your id is ${message.senderId}`
57
+ * });
58
+ * }
59
+ * }
60
+ * }
61
+ * // adds an event handler for new messages
62
+ * client.addEventHandler(eventPrint, new NewMessage({}));
63
+ * ```
64
+ */
65
+ export declare class NewMessage extends EventBuilder {
66
+ func?: {
67
+ (event: NewMessageEvent): boolean;
68
+ };
69
+ incoming?: boolean;
70
+ outgoing?: boolean;
71
+ fromUsers?: EntityLike[];
72
+ forwards?: boolean;
73
+ pattern?: RegExp;
74
+ /** @hidden */
75
+ private readonly _noCheck;
76
+ constructor(newMessageParams?: NewMessageInterface);
77
+ _resolve(client: TelegramClient): Promise<void>;
78
+ build(update: Api.TypeUpdate | Api.TypeUpdates, callback: undefined, selfId: bigInt.BigInteger): NewMessageEvent | undefined;
79
+ filter(event: NewMessageEvent): EventCommon | import("./common").EventCommonSender | undefined;
80
+ addAttributes(update: any): void;
81
+ }
82
+ export declare class NewMessageEvent extends EventCommon {
83
+ message: Api.Message;
84
+ originalUpdate: (Api.TypeUpdate | Api.TypeUpdates) & {
85
+ _entities?: Map<number, Entity>;
86
+ };
87
+ constructor(message: Api.Message, originalUpdate: Api.TypeUpdate | Api.TypeUpdates);
88
+ _setClient(client: TelegramClient): void;
89
+ }