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,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NewMessageEvent = exports.NewMessage = void 0;
4
+ const common_1 = require("./common");
5
+ const tl_1 = require("../tl");
6
+ const Logger_1 = require("../extensions/Logger");
7
+ /**
8
+ * Occurs whenever a new text message or a message with media arrives.
9
+ * @example
10
+ * ```ts
11
+ * async function eventPrint(event: NewMessageEvent) {
12
+ * const message = event.message;
13
+ *
14
+ * // Checks if it's a private message (from user or bot)
15
+ * if (event.isPrivate){
16
+ * // prints sender id
17
+ * console.log(message.senderId);
18
+ * // read message
19
+ * if (message.text == "hello"){
20
+ * const sender = await message.getSender();
21
+ * console.log("sender is",sender);
22
+ * await client.sendMessage(sender,{
23
+ * message:`hi your id is ${message.senderId}`
24
+ * });
25
+ * }
26
+ * }
27
+ * }
28
+ * // adds an event handler for new messages
29
+ * client.addEventHandler(eventPrint, new NewMessage({}));
30
+ * ```
31
+ */
32
+ class NewMessage extends common_1.EventBuilder {
33
+ constructor(newMessageParams = {}) {
34
+ let { chats, func, incoming, outgoing, fromUsers, forwards, pattern, blacklistChats = false, } = newMessageParams;
35
+ if (incoming && outgoing) {
36
+ incoming = outgoing = undefined;
37
+ }
38
+ else if (incoming != undefined && outgoing == undefined) {
39
+ outgoing = !incoming;
40
+ }
41
+ else if (outgoing != undefined && incoming == undefined) {
42
+ incoming = !outgoing;
43
+ }
44
+ else if (outgoing == false && incoming == false) {
45
+ throw new Error("Don't create an event handler if you don't want neither incoming nor outgoing!");
46
+ }
47
+ super({ chats, blacklistChats, func });
48
+ this.incoming = incoming;
49
+ this.outgoing = outgoing;
50
+ this.fromUsers = fromUsers;
51
+ this.forwards = forwards;
52
+ this.pattern = pattern;
53
+ this._noCheck = [
54
+ incoming,
55
+ outgoing,
56
+ chats,
57
+ pattern,
58
+ fromUsers,
59
+ forwards,
60
+ func,
61
+ ].every((v) => v == undefined);
62
+ }
63
+ async _resolve(client) {
64
+ await super._resolve(client);
65
+ this.fromUsers = await (0, common_1._intoIdSet)(client, this.fromUsers);
66
+ }
67
+ build(update, callback, selfId) {
68
+ if (update instanceof tl_1.Api.UpdateNewMessage ||
69
+ update instanceof tl_1.Api.UpdateNewChannelMessage) {
70
+ if (!(update.message instanceof tl_1.Api.Message)) {
71
+ return undefined;
72
+ }
73
+ const event = new NewMessageEvent(update.message, update);
74
+ this.addAttributes(event);
75
+ return event;
76
+ }
77
+ else if (update instanceof tl_1.Api.UpdateShortMessage) {
78
+ return new NewMessageEvent(new tl_1.Api.Message({
79
+ out: update.out,
80
+ mentioned: update.mentioned,
81
+ mediaUnread: update.mediaUnread,
82
+ silent: update.silent,
83
+ id: update.id,
84
+ peerId: new tl_1.Api.PeerUser({ userId: update.userId }),
85
+ fromId: new tl_1.Api.PeerUser({
86
+ userId: update.out ? selfId : update.userId,
87
+ }),
88
+ message: update.message,
89
+ date: update.date,
90
+ fwdFrom: update.fwdFrom,
91
+ viaBotId: update.viaBotId,
92
+ replyTo: update.replyTo,
93
+ entities: update.entities,
94
+ ttlPeriod: update.ttlPeriod,
95
+ }), update);
96
+ }
97
+ else if (update instanceof tl_1.Api.UpdateShortChatMessage) {
98
+ return new NewMessageEvent(new tl_1.Api.Message({
99
+ out: update.out,
100
+ mentioned: update.mentioned,
101
+ mediaUnread: update.mediaUnread,
102
+ silent: update.silent,
103
+ id: update.id,
104
+ peerId: new tl_1.Api.PeerChat({ chatId: update.chatId }),
105
+ fromId: new tl_1.Api.PeerUser({
106
+ userId: update.out ? selfId : update.fromId,
107
+ }),
108
+ message: update.message,
109
+ date: update.date,
110
+ fwdFrom: update.fwdFrom,
111
+ viaBotId: update.viaBotId,
112
+ replyTo: update.replyTo,
113
+ entities: update.entities,
114
+ ttlPeriod: update.ttlPeriod,
115
+ }), update);
116
+ }
117
+ }
118
+ filter(event) {
119
+ var _a;
120
+ if (this._noCheck) {
121
+ return event;
122
+ }
123
+ if (this.incoming && event.message.out) {
124
+ return;
125
+ }
126
+ if (this.outgoing && !event.message.out) {
127
+ return;
128
+ }
129
+ if (this.forwards != undefined) {
130
+ if (this.forwards != !!event.message.fwdFrom) {
131
+ return;
132
+ }
133
+ }
134
+ if (this.fromUsers != undefined) {
135
+ if (!event.message.senderId ||
136
+ !this.fromUsers.includes(event.message.senderId.toString())) {
137
+ return;
138
+ }
139
+ }
140
+ if (this.pattern) {
141
+ const match = (_a = event.message.message) === null || _a === void 0 ? void 0 : _a.match(this.pattern);
142
+ if (!match) {
143
+ return;
144
+ }
145
+ event.message.patternMatch = match;
146
+ }
147
+ return super.filter(event);
148
+ }
149
+ addAttributes(update) {
150
+ //update.patternMatch =
151
+ }
152
+ }
153
+ exports.NewMessage = NewMessage;
154
+ class NewMessageEvent extends common_1.EventCommon {
155
+ constructor(message, originalUpdate) {
156
+ super({
157
+ msgId: message.id,
158
+ chatPeer: message.peerId,
159
+ broadcast: message.post,
160
+ });
161
+ this.originalUpdate = originalUpdate;
162
+ this.message = message;
163
+ }
164
+ _setClient(client) {
165
+ super._setClient(client);
166
+ const m = this.message;
167
+ try {
168
+ // todo make sure this never fails
169
+ m._finishInit(client, this.originalUpdate._entities || new Map(), undefined);
170
+ }
171
+ catch (e) {
172
+ client._log.error("Got error while trying to finish init message with id " + m.id);
173
+ if (client._errorHandler) {
174
+ client._errorHandler(e);
175
+ }
176
+ if (client._log.canSend(Logger_1.LogLevel.ERROR)) {
177
+ console.error(e);
178
+ }
179
+ }
180
+ }
181
+ }
182
+ exports.NewMessageEvent = NewMessageEvent;
@@ -0,0 +1,29 @@
1
+ import { EventBuilder, EventCommon } from "./common";
2
+ import type { TelegramClient } from "..";
3
+ import { Api } from "../tl";
4
+ export interface RawInterface {
5
+ /**
6
+ * The types that the {@link Api.TypeUpdate} instance must be.
7
+ * Equivalent to ``if (update instanceof type) return update``.
8
+ */
9
+ types?: Function[];
10
+ func?: CallableFunction;
11
+ }
12
+ /**
13
+ * The RAW updates that telegram sends. these are {@link Api.TypeUpdate} objects.
14
+ * The are useful to handle custom events that you need like user typing or games.
15
+ * @example
16
+ * ```ts
17
+ * client.addEventHandler((update) => {
18
+ * console.log("Received new Update");
19
+ * console.log(update);
20
+ * });
21
+ * ```
22
+ */
23
+ export declare class Raw extends EventBuilder {
24
+ private readonly types?;
25
+ constructor(params: RawInterface);
26
+ resolve(client: TelegramClient): Promise<void>;
27
+ build(update: Api.TypeUpdate): Api.TypeUpdate;
28
+ filter(event: EventCommon): EventCommon | import("./common").EventCommonSender | undefined;
29
+ }
package/events/Raw.js ADDED
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Raw = void 0;
4
+ const common_1 = require("./common");
5
+ /**
6
+ * The RAW updates that telegram sends. these are {@link Api.TypeUpdate} objects.
7
+ * The are useful to handle custom events that you need like user typing or games.
8
+ * @example
9
+ * ```ts
10
+ * client.addEventHandler((update) => {
11
+ * console.log("Received new Update");
12
+ * console.log(update);
13
+ * });
14
+ * ```
15
+ */
16
+ class Raw extends common_1.EventBuilder {
17
+ constructor(params) {
18
+ super({ func: params.func });
19
+ this.types = params.types;
20
+ }
21
+ async resolve(client) {
22
+ this.resolved = true;
23
+ }
24
+ build(update) {
25
+ return update;
26
+ }
27
+ filter(event) {
28
+ if (this.types) {
29
+ let correct = false;
30
+ for (const type of this.types) {
31
+ if (event instanceof type) {
32
+ correct = true;
33
+ break;
34
+ }
35
+ }
36
+ if (!correct) {
37
+ return;
38
+ }
39
+ }
40
+ return super.filter(event);
41
+ }
42
+ }
43
+ exports.Raw = Raw;
@@ -0,0 +1,66 @@
1
+ import { Api } from "../tl";
2
+ import type { Entity, EntityLike } from "../define";
3
+ import { ChatGetter } from "../tl/custom";
4
+ import type { TelegramClient } from "..";
5
+ import { SenderGetter } from "../tl/custom/senderGetter";
6
+ import bigInt from "big-integer";
7
+ /** @hidden */
8
+ export declare function _intoIdSet(client: TelegramClient, chats: EntityLike[] | EntityLike | undefined): Promise<string[] | undefined>;
9
+ export interface DefaultEventInterface {
10
+ /**
11
+ * May be one or more entities (username/peer/etc.), preferably IDs.<br/>
12
+ * By default, only matching chats will be handled.
13
+ */
14
+ chats?: EntityLike[];
15
+ /**
16
+ * Whether to treat the chats as a blacklist instead of as a whitelist (default).<br/>
17
+ * This means that every chat will be handled *except* those specified in ``chats``<br/>
18
+ * which will be ignored if ``blacklistChats:true``.
19
+ */
20
+ blacklistChats?: boolean;
21
+ /**
22
+ * A callable function that should accept the event as input
23
+ * parameter, and return a value indicating whether the event
24
+ * should be dispatched or not (any truthy value will do, it
25
+ * does not need to be a `bool`). It works like a custom filter:
26
+ */
27
+ func?: CallableFunction;
28
+ }
29
+ /**
30
+ * The common event builder, with builtin support to filter per chat.<br/>
31
+ * All events inherit this.
32
+ */
33
+ export declare class EventBuilder {
34
+ chats?: string[];
35
+ blacklistChats: boolean;
36
+ resolved: boolean;
37
+ func?: CallableFunction;
38
+ client?: TelegramClient;
39
+ constructor(eventParams: DefaultEventInterface);
40
+ build(update: Api.TypeUpdate, callback?: CallableFunction, selfId?: bigInt.BigInteger): any;
41
+ resolve(client: TelegramClient): Promise<void>;
42
+ _resolve(client: TelegramClient): Promise<void>;
43
+ filter(event: EventCommon | EventCommonSender): undefined | EventCommon | EventCommonSender;
44
+ }
45
+ interface EventCommonInterface {
46
+ chatPeer?: EntityLike;
47
+ msgId?: number;
48
+ broadcast?: boolean;
49
+ }
50
+ export declare class EventCommon extends ChatGetter {
51
+ _eventName: string;
52
+ _entities: Map<string, Entity>;
53
+ _messageId?: number;
54
+ constructor({ chatPeer, msgId, broadcast, }: EventCommonInterface);
55
+ _setClient(client: TelegramClient): void;
56
+ get client(): TelegramClient | undefined;
57
+ }
58
+ export declare class EventCommonSender extends SenderGetter {
59
+ _eventName: string;
60
+ _entities: Map<string, Entity>;
61
+ _messageId?: number;
62
+ constructor({ chatPeer, msgId, broadcast, }: EventCommonInterface);
63
+ _setClient(client: TelegramClient): void;
64
+ get client(): TelegramClient | undefined;
65
+ }
66
+ export {};
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EventCommonSender = exports.EventCommon = exports.EventBuilder = void 0;
7
+ exports._intoIdSet = _intoIdSet;
8
+ const tl_1 = require("../tl");
9
+ const custom_1 = require("../tl/custom");
10
+ const Helpers_1 = require("../Helpers");
11
+ const __1 = require("..");
12
+ const senderGetter_1 = require("../tl/custom/senderGetter");
13
+ const big_integer_1 = __importDefault(require("big-integer"));
14
+ const Utils_1 = require("../Utils");
15
+ /** @hidden */
16
+ async function _intoIdSet(client, chats) {
17
+ if (chats == undefined) {
18
+ return undefined;
19
+ }
20
+ if (!(0, Helpers_1.isArrayLike)(chats)) {
21
+ chats = [chats];
22
+ }
23
+ const result = new Set();
24
+ for (let chat of chats) {
25
+ if (typeof chat == "number" ||
26
+ typeof chat == "bigint" ||
27
+ (typeof chat == "string" && (0, Utils_1.parseID)(chat)) ||
28
+ big_integer_1.default.isInstance(chat)) {
29
+ chat = (0, Helpers_1.returnBigInt)(chat);
30
+ if (chat.lesser(0)) {
31
+ result.add(chat.toString());
32
+ }
33
+ else {
34
+ result.add(__1.utils.getPeerId(new tl_1.Api.PeerUser({
35
+ userId: chat,
36
+ })));
37
+ result.add(__1.utils.getPeerId(new tl_1.Api.PeerChat({
38
+ chatId: chat,
39
+ })));
40
+ result.add(__1.utils.getPeerId(new tl_1.Api.PeerChannel({
41
+ channelId: chat,
42
+ })));
43
+ }
44
+ }
45
+ else if (typeof chat == "object" &&
46
+ chat.SUBCLASS_OF_ID == 0x2d45687) {
47
+ result.add(__1.utils.getPeerId(chat));
48
+ }
49
+ else {
50
+ chat = await client.getInputEntity(chat);
51
+ if (chat instanceof tl_1.Api.InputPeerSelf) {
52
+ chat = await client.getMe(true);
53
+ }
54
+ result.add(__1.utils.getPeerId(chat));
55
+ }
56
+ }
57
+ return Array.from(result);
58
+ }
59
+ /**
60
+ * The common event builder, with builtin support to filter per chat.<br/>
61
+ * All events inherit this.
62
+ */
63
+ class EventBuilder {
64
+ constructor(eventParams) {
65
+ var _a;
66
+ this.chats = (_a = eventParams.chats) === null || _a === void 0 ? void 0 : _a.map((x) => x.toString());
67
+ this.blacklistChats = eventParams.blacklistChats || false;
68
+ this.resolved = false;
69
+ this.func = eventParams.func;
70
+ }
71
+ build(update, callback, selfId) {
72
+ if (update)
73
+ return update;
74
+ }
75
+ async resolve(client) {
76
+ if (this.resolved) {
77
+ return;
78
+ }
79
+ await this._resolve(client);
80
+ this.resolved = true;
81
+ }
82
+ async _resolve(client) {
83
+ this.chats = await _intoIdSet(client, this.chats);
84
+ }
85
+ filter(event) {
86
+ if (!this.resolved) {
87
+ return;
88
+ }
89
+ if (this.chats != undefined) {
90
+ if (event.chatId == undefined) {
91
+ return;
92
+ }
93
+ const inside = this.chats.includes(event.chatId.toString());
94
+ if (inside == this.blacklistChats) {
95
+ // If this chat matches but it's a blacklist ignore.
96
+ // If it doesn't match but it's a whitelist ignore.
97
+ return;
98
+ }
99
+ }
100
+ if (this.func && !this.func(event)) {
101
+ return;
102
+ }
103
+ return event;
104
+ }
105
+ }
106
+ exports.EventBuilder = EventBuilder;
107
+ class EventCommon extends custom_1.ChatGetter {
108
+ constructor({ chatPeer = undefined, msgId = undefined, broadcast = undefined, }) {
109
+ super();
110
+ this._eventName = "Event";
111
+ custom_1.ChatGetter.initChatClass(this, { chatPeer, broadcast });
112
+ this._entities = new Map();
113
+ this._client = undefined;
114
+ this._messageId = msgId;
115
+ }
116
+ _setClient(client) {
117
+ this._client = client;
118
+ }
119
+ get client() {
120
+ return this._client;
121
+ }
122
+ }
123
+ exports.EventCommon = EventCommon;
124
+ class EventCommonSender extends senderGetter_1.SenderGetter {
125
+ constructor({ chatPeer = undefined, msgId = undefined, broadcast = undefined, }) {
126
+ super();
127
+ this._eventName = "Event";
128
+ custom_1.ChatGetter.initChatClass(this, { chatPeer, broadcast });
129
+ senderGetter_1.SenderGetter.initChatClass(this, { chatPeer, broadcast });
130
+ this._entities = new Map();
131
+ this._client = undefined;
132
+ this._messageId = msgId;
133
+ }
134
+ _setClient(client) {
135
+ this._client = client;
136
+ }
137
+ get client() {
138
+ return this._client;
139
+ }
140
+ }
141
+ exports.EventCommonSender = EventCommonSender;
@@ -0,0 +1,2 @@
1
+ export { Raw } from "./Raw";
2
+ export { NewMessage, NewMessageEvent } from "./NewMessage";
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NewMessageEvent = exports.NewMessage = exports.Raw = void 0;
4
+ var Raw_1 = require("./Raw");
5
+ Object.defineProperty(exports, "Raw", { enumerable: true, get: function () { return Raw_1.Raw; } });
6
+ var NewMessage_1 = require("./NewMessage");
7
+ Object.defineProperty(exports, "NewMessage", { enumerable: true, get: function () { return NewMessage_1.NewMessage; } });
8
+ Object.defineProperty(exports, "NewMessageEvent", { enumerable: true, get: function () { return NewMessage_1.NewMessageEvent; } });
@@ -0,0 +1,10 @@
1
+ export declare class AsyncQueue {
2
+ _queue: any[];
3
+ private canGet;
4
+ private resolveGet;
5
+ private canPush;
6
+ private resolvePush;
7
+ constructor();
8
+ push(value: any): Promise<void>;
9
+ pop(): Promise<any>;
10
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AsyncQueue = void 0;
4
+ class AsyncQueue {
5
+ constructor() {
6
+ this._queue = [];
7
+ this.canPush = true;
8
+ this.resolvePush = (value) => { };
9
+ this.resolveGet = (value) => { };
10
+ this.canGet = new Promise((resolve) => {
11
+ this.resolveGet = resolve;
12
+ });
13
+ }
14
+ async push(value) {
15
+ await this.canPush;
16
+ this._queue.push(value);
17
+ this.resolveGet(true);
18
+ this.canPush = new Promise((resolve) => {
19
+ this.resolvePush = resolve;
20
+ });
21
+ }
22
+ async pop() {
23
+ await this.canGet;
24
+ const returned = this._queue.pop();
25
+ this.resolvePush(true);
26
+ this.canGet = new Promise((resolve) => {
27
+ this.resolveGet = resolve;
28
+ });
29
+ return returned;
30
+ }
31
+ }
32
+ exports.AsyncQueue = AsyncQueue;
@@ -0,0 +1,99 @@
1
+ export declare class BinaryReader {
2
+ private readonly stream;
3
+ private _last?;
4
+ offset: number;
5
+ /**
6
+ * Small utility class to read binary data.
7
+ * @param data {Buffer}
8
+ */
9
+ constructor(data: Buffer);
10
+ /**
11
+ * Reads a single byte value.
12
+ */
13
+ readByte(): number;
14
+ /**
15
+ * Reads an integer (4 bytes or 32 bits) value.
16
+ * @param signed {Boolean}
17
+ */
18
+ readInt(signed?: boolean): number;
19
+ /**
20
+ * Reads a long integer (8 bytes or 64 bits) value.
21
+ * @param signed
22
+ * @returns {BigInteger}
23
+ */
24
+ readLong(signed?: boolean): import("big-integer").BigInteger;
25
+ /**
26
+ * Reads a real floating point (4 bytes) value.
27
+ * @returns {number}
28
+ */
29
+ readFloat(): number;
30
+ /**
31
+ * Reads a real floating point (8 bytes) value.
32
+ * @returns {BigInteger}
33
+ */
34
+ readDouble(): number;
35
+ /**
36
+ * Reads a n-bits long integer value.
37
+ * @param bits
38
+ * @param signed {Boolean}
39
+ */
40
+ readLargeInt(bits: number, signed?: boolean): import("big-integer").BigInteger;
41
+ /**
42
+ * Read the given amount of bytes, or -1 to read all remaining.
43
+ * @param length {number}
44
+ * @param checkLength {boolean} whether to check if the length overflows or not.
45
+ */
46
+ read(length?: number, checkLength?: boolean): Buffer<ArrayBuffer>;
47
+ /**
48
+ * Gets the byte array representing the current buffer as a whole.
49
+ * @returns {Buffer}
50
+ */
51
+ getBuffer(): Buffer<ArrayBufferLike>;
52
+ /**
53
+ * Reads a Telegram-encoded byte array, without the need of
54
+ * specifying its length.
55
+ * @returns {Buffer}
56
+ */
57
+ tgReadBytes(): Buffer<ArrayBuffer>;
58
+ /**
59
+ * Reads a Telegram-encoded string.
60
+ * @returns {string}
61
+ */
62
+ tgReadString(): string;
63
+ /**
64
+ * Reads a Telegram boolean value.
65
+ * @returns {boolean}
66
+ */
67
+ tgReadBool(): boolean;
68
+ /**
69
+ * Reads and converts Unix time (used by Telegram)
70
+ * into a Javascript {Date} object.
71
+ * @returns {Date}
72
+ */
73
+ tgReadDate(): Date;
74
+ /**
75
+ * Reads a Telegram object.
76
+ */
77
+ tgReadObject(): any;
78
+ /**
79
+ * Reads a vector (a list) of Telegram objects.
80
+ * @returns {[Buffer]}
81
+ */
82
+ tgReadVector(): any[];
83
+ /**
84
+ * Tells the current position on the stream.
85
+ * @returns {number}
86
+ */
87
+ tellPosition(): number;
88
+ /**
89
+ * Sets the current position on the stream.
90
+ * @param position
91
+ */
92
+ setPosition(position: number): void;
93
+ /**
94
+ * Seeks the stream position given an offset from the current position.
95
+ * The offset may be negative.
96
+ * @param offset
97
+ */
98
+ seek(offset: number): void;
99
+ }