@mtkruto/node 0.1.111 → 0.1.113
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/esm/4_constants.d.ts +1 -1
- package/esm/4_constants.js +1 -1
- package/esm/5_client.d.ts +2 -1
- package/esm/5_client.js +2 -1
- package/esm/client/3_types.d.ts +21 -7
- package/esm/client/3_types.js +1 -1
- package/esm/client/4_composer.d.ts +22 -0
- package/esm/client/4_composer.js +81 -0
- package/esm/client/{4_client.d.ts → 5_client.d.ts} +47 -10
- package/esm/client/{4_client.js → 5_client.js} +244 -109
- package/esm/client/6_composer.d.ts +4 -0
- package/esm/client/6_composer.js +3 -0
- package/esm/tl/0_tl_raw_reader.d.ts +1 -0
- package/esm/tl/0_tl_raw_reader.js +3 -0
- package/esm/tl/3_deserialize.js +7 -2
- package/esm/types/5_inline_query_result.js +7 -0
- package/package.json +1 -1
- package/script/4_constants.d.ts +1 -1
- package/script/4_constants.js +1 -1
- package/script/5_client.d.ts +2 -1
- package/script/5_client.js +2 -1
- package/script/client/3_types.d.ts +21 -7
- package/script/client/3_types.js +0 -3
- package/script/client/4_composer.d.ts +22 -0
- package/script/client/4_composer.js +88 -0
- package/script/client/{4_client.d.ts → 5_client.d.ts} +47 -10
- package/script/client/{4_client.js → 5_client.js} +247 -111
- package/script/client/6_composer.d.ts +4 -0
- package/script/client/6_composer.js +7 -0
- package/script/tl/0_tl_raw_reader.d.ts +1 -0
- package/script/tl/0_tl_raw_reader.js +3 -0
- package/script/tl/3_deserialize.js +7 -2
- package/script/types/5_inline_query_result.js +7 -0
package/esm/4_constants.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export declare const PUBLIC_KEYS: PublicKeys;
|
|
|
5
5
|
export declare const VECTOR_CONSTRUCTOR = 481674261;
|
|
6
6
|
export declare const INITIAL_DC: DC;
|
|
7
7
|
export declare const LAYER = 166;
|
|
8
|
-
export declare const APP_VERSION = "MTKruto 0.1.
|
|
8
|
+
export declare const APP_VERSION = "MTKruto 0.1.113";
|
|
9
9
|
export declare const DEVICE_MODEL: string;
|
|
10
10
|
export declare const LANG_CODE: string;
|
|
11
11
|
export declare const LANG_PACK = "";
|
package/esm/4_constants.js
CHANGED
|
@@ -54,7 +54,7 @@ export const PUBLIC_KEYS = Object.freeze([
|
|
|
54
54
|
export const VECTOR_CONSTRUCTOR = 0x1CB5C415;
|
|
55
55
|
export const INITIAL_DC = "2";
|
|
56
56
|
export const LAYER = 166;
|
|
57
|
-
export const APP_VERSION = "MTKruto 0.1.
|
|
57
|
+
export const APP_VERSION = "MTKruto 0.1.113";
|
|
58
58
|
// @ts-ignore: lib
|
|
59
59
|
export const DEVICE_MODEL = typeof dntShim.Deno === "undefined" ? typeof navigator === "undefined" ? typeof process === "undefined" ? "Unknown" : process.platform + "-" + process.arch : navigator.userAgent.split(" ")[0] : dntShim.Deno.build.os + "-" + dntShim.Deno.build.arch;
|
|
60
60
|
export const LANG_CODE = typeof navigator === "undefined" ? "en" : navigator.language.split("-")[0];
|
package/esm/5_client.d.ts
CHANGED
package/esm/5_client.js
CHANGED
package/esm/client/3_types.d.ts
CHANGED
|
@@ -37,7 +37,10 @@ export interface ClientParams extends ClientPlainParams {
|
|
|
37
37
|
* Whether to automatically call `start` with no parameters in the first `invoke` call. Defaults to `true`.
|
|
38
38
|
*/
|
|
39
39
|
autoStart?: boolean;
|
|
40
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Whether to use default handlers. Defaults to `true`.
|
|
42
|
+
*/
|
|
43
|
+
defaultHandlers?: boolean;
|
|
41
44
|
}
|
|
42
45
|
export interface AnswerCallbackQueryParams {
|
|
43
46
|
/** A text to be shown to the user. */
|
|
@@ -227,6 +230,10 @@ export type ConnectionState = "notConnected" | "updating" | "ready";
|
|
|
227
230
|
export type AuthorizationState = {
|
|
228
231
|
authorized: boolean;
|
|
229
232
|
};
|
|
233
|
+
export interface ReplyParams extends Omit<SendMessagesParams, "replyToMessageId"> {
|
|
234
|
+
/** Whether to quote the message that is to be replied. Enabled by default for non-private chats. */
|
|
235
|
+
quote?: boolean;
|
|
236
|
+
}
|
|
230
237
|
export type FilterableUpdates = "message" | "editedMessage" | "callbackQuery";
|
|
231
238
|
export interface Update {
|
|
232
239
|
message?: Message;
|
|
@@ -237,11 +244,18 @@ export interface Update {
|
|
|
237
244
|
callbackQuery?: CallbackQuery;
|
|
238
245
|
inlineQuery?: InlineQuery;
|
|
239
246
|
}
|
|
240
|
-
export type NextFn = () => Promise<
|
|
241
|
-
export interface Handler<
|
|
242
|
-
(
|
|
247
|
+
export type NextFn<T = void> = () => Promise<T>;
|
|
248
|
+
export interface Handler<C> {
|
|
249
|
+
(ctx: C, next: NextFn): MaybePromise<void>;
|
|
250
|
+
}
|
|
251
|
+
export interface InvokeErrorHandler<C> {
|
|
252
|
+
(ctx: {
|
|
253
|
+
client: C;
|
|
254
|
+
error: unknown;
|
|
255
|
+
function: types.Type | functions.Function<unknown>;
|
|
256
|
+
n: number;
|
|
257
|
+
}, next: NextFn<boolean>): MaybePromise<boolean>;
|
|
243
258
|
}
|
|
244
|
-
export type FilterUpdate<U extends Update, T extends keyof U, F extends keyof NonNullable<U[T]
|
|
245
|
-
[P in T]-?: With<NonNullable<U[T]>, F>;
|
|
259
|
+
export type FilterUpdate<U extends Update, T extends keyof U, F extends (keyof NonNullable<U[T]>) | null> = With<U, T> & Pick<{
|
|
260
|
+
[P in T]-?: F extends keyof NonNullable<U[T]> ? With<NonNullable<U[T]>, F> : NonNullable<U[T]>;
|
|
246
261
|
}, T>;
|
|
247
|
-
export declare const skip: Handler;
|
package/esm/client/3_types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FilterableUpdates, FilterUpdate, Update } from "./3_types.js";
|
|
2
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
3
|
+
export type NextFunction = () => Promise<void>;
|
|
4
|
+
export type MiddlewareFn<C extends Update = Update> = (ctx: C, next: NextFunction) => MaybePromise<unknown>;
|
|
5
|
+
export interface MiddlewareObj<C extends Update = Update> {
|
|
6
|
+
middleware: () => MiddlewareFn<C>;
|
|
7
|
+
}
|
|
8
|
+
export type Middleware<C extends Update = Update> = MiddlewareFn<C> | MiddlewareObj<C>;
|
|
9
|
+
export declare function flatten<C extends Update = Update>(mw: Middleware<C>): MiddlewareFn<C>;
|
|
10
|
+
export declare function concat<C extends Update = Update>(left: MiddlewareFn<C>, right: MiddlewareFn<C>): MiddlewareFn<C>;
|
|
11
|
+
export declare const skip: MiddlewareFn;
|
|
12
|
+
export declare class Composer<C extends Update> implements MiddlewareObj<C> {
|
|
13
|
+
#private;
|
|
14
|
+
constructor(...middleware: Middleware<C>[]);
|
|
15
|
+
middleware(): MiddlewareFn<C>;
|
|
16
|
+
use(...middleware: Middleware<C>[]): Composer<C>;
|
|
17
|
+
branch(predicate: (ctx: C) => MaybePromise<boolean>, trueHandler_: Middleware<C>, falseHandler_: Middleware<C>): Composer<C>;
|
|
18
|
+
filter<D extends C>(predicate: (ctx: C) => ctx is D, ...middleware: Middleware<D>[]): Composer<D>;
|
|
19
|
+
filter(predicate: (ctx: C) => MaybePromise<boolean>, ...middleware: Middleware<C>[]): Composer<C>;
|
|
20
|
+
on<T extends keyof Update, F extends keyof NonNullable<Update[T]>>(filter: T extends FilterableUpdates ? T | [T, F, ...F[]] : T, ...middleawre: Middleware<FilterUpdate<C, T, F>>[]): Composer<FilterUpdate<C, T, F>>;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _Composer_handle;
|
|
13
|
+
export function flatten(mw) {
|
|
14
|
+
return typeof mw === "function" ? mw : (ctx, next) => mw.middleware()(ctx, next);
|
|
15
|
+
}
|
|
16
|
+
export function concat(left, right) {
|
|
17
|
+
return async (ctx, next) => {
|
|
18
|
+
let called = false;
|
|
19
|
+
await left(ctx, async () => {
|
|
20
|
+
if (called) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
called = true;
|
|
25
|
+
await right(ctx, next);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export const skip = (_ctx, next) => next();
|
|
31
|
+
export class Composer {
|
|
32
|
+
constructor(...middleware) {
|
|
33
|
+
_Composer_handle.set(this, void 0);
|
|
34
|
+
__classPrivateFieldSet(this, _Composer_handle, middleware.length == 0 ? skip : middleware.map(flatten).reduce(concat), "f");
|
|
35
|
+
}
|
|
36
|
+
middleware() {
|
|
37
|
+
return __classPrivateFieldGet(this, _Composer_handle, "f");
|
|
38
|
+
}
|
|
39
|
+
use(...middleware) {
|
|
40
|
+
const composer = new Composer(...middleware);
|
|
41
|
+
__classPrivateFieldSet(this, _Composer_handle, concat(__classPrivateFieldGet(this, _Composer_handle, "f"), flatten(composer)), "f");
|
|
42
|
+
return composer;
|
|
43
|
+
}
|
|
44
|
+
branch(predicate, trueHandler_, falseHandler_) {
|
|
45
|
+
const trueHandler = flatten(trueHandler_);
|
|
46
|
+
const falseHandler = flatten(falseHandler_);
|
|
47
|
+
return this.use(async (upd, next) => {
|
|
48
|
+
if (await predicate(upd)) {
|
|
49
|
+
await trueHandler(upd, next);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
await falseHandler(upd, next);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
filter(predicate, ...middleware) {
|
|
57
|
+
return this.branch(predicate, middleware.length == 0 ? skip : middleware.map(flatten).reduce(concat), skip);
|
|
58
|
+
}
|
|
59
|
+
on(filter, ...middleawre) {
|
|
60
|
+
const type = typeof filter === "string" ? filter : filter[0];
|
|
61
|
+
const keys = Array.isArray(filter) ? filter.slice(1) : [];
|
|
62
|
+
return this.filter((ctx) => {
|
|
63
|
+
if (type in ctx) {
|
|
64
|
+
if (keys.length > 0) {
|
|
65
|
+
for (const key of keys) {
|
|
66
|
+
// deno-lint-ignore ban-ts-comment
|
|
67
|
+
// @ts-ignore
|
|
68
|
+
if (!(key in ctx[type])) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}, ...middleawre);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
_Composer_handle = new WeakMap();
|
|
@@ -2,19 +2,52 @@ import { MaybePromise } from "../1_utilities.js";
|
|
|
2
2
|
import { functions, ReadObject, types } from "../2_tl.js";
|
|
3
3
|
import { Storage } from "../3_storage.js";
|
|
4
4
|
import { DC } from "../3_transport.js";
|
|
5
|
-
import { BotCommand, ChatAction, ChatID, InlineQueryResult, Message, ParseMode, User } from "../3_types.js";
|
|
5
|
+
import { BotCommand, CallbackQuery, ChatAction, ChatID, InlineQuery, InlineQueryResult, Message, ParseMode, User } from "../3_types.js";
|
|
6
6
|
import { Migrate } from "../4_errors.js";
|
|
7
7
|
import { With } from "./0_utilities.js";
|
|
8
8
|
import { ClientAbstract } from "./1_client_abstract.js";
|
|
9
|
-
import { AnswerCallbackQueryParams, AnswerInlineQueryParams, AuthorizeUserParams, ClientParams, DownloadParams, EditMessageParams, FilterableUpdates, FilterUpdate, ForwardMessagesParams, GetMyCommandsParams,
|
|
9
|
+
import { AnswerCallbackQueryParams, AnswerInlineQueryParams, AuthorizeUserParams, ClientParams, DownloadParams, EditMessageParams, FilterableUpdates, FilterUpdate, ForwardMessagesParams, GetMyCommandsParams, InvokeErrorHandler, ReplyParams, SendMessagesParams, SendPollParams, SetMyCommandsParams, Update, UploadParams } from "./3_types.js";
|
|
10
|
+
import { Composer, Middleware } from "./4_composer.js";
|
|
10
11
|
declare const getEntity: unique symbol;
|
|
11
12
|
declare const getStickerSetName: unique symbol;
|
|
12
13
|
export declare const handleMigrationError: unique symbol;
|
|
13
14
|
declare const getMessageWithReply: unique symbol;
|
|
15
|
+
export interface Context extends Update {
|
|
16
|
+
/** The client that received the update. */
|
|
17
|
+
client: Client;
|
|
18
|
+
/** Resolves to `ctx.message ?? ctx.editedMessage ?? ctx.callbackQuery?.message`. */
|
|
19
|
+
msg: undefined extends this["message"] ? undefined extends this["editedMessage"] ? undefined extends this["callbackQuery"] ? never : this["callbackQuery"] extends With<CallbackQuery, "message"> ? this["callbackQuery"]["message"] : this["callbackQuery"] extends With<CallbackQuery, "inlineMessageId"> ? never : (Message | undefined) : this["editedMessage"] : this["message"];
|
|
20
|
+
/** Resolves to `effectiveMessage?.chat`. */
|
|
21
|
+
chat: this["msg"] extends never ? never : this["msg"]["chat"];
|
|
22
|
+
/** Resolves to `(ctx.message ?? ctx.editedMessage)?.from ?? ctx.callbackQuery?.from ?? ctx.inlineQuery?.from`. */
|
|
23
|
+
from: this["message"] extends Message ? this["message"]["from"] : this["editedMessage"] extends Message ? this["editedMessage"]["from"] : this["callbackQuery"] extends CallbackQuery ? this["callbackQuery"]["from"] : this["inlineQuery"] extends InlineQuery ? this["inlineQuery"]["from"] : never;
|
|
24
|
+
/** Resolves to `effectiveMessage?.senderChat`. */
|
|
25
|
+
senderChat: this["msg"] extends never ? never : this["msg"]["senderChat"];
|
|
26
|
+
/** Reply the received message with a text message. */
|
|
27
|
+
reply: (text: string, params?: ReplyParams) => Promise<With<Message, "text">>;
|
|
28
|
+
/** Reply the received message with a poll. */
|
|
29
|
+
replyPoll: (question: string, options: [string, string, ...string[]], params?: SendPollParams) => Promise<With<Message, "poll">>;
|
|
30
|
+
/** Send a chat action to the chat which the message was received from. */
|
|
31
|
+
sendChatAction: (action: ChatAction, params?: {
|
|
32
|
+
messageThreadId?: number;
|
|
33
|
+
}) => Promise<void>;
|
|
34
|
+
/** Edit a message in the chat which the message was received from. */
|
|
35
|
+
editMessageText: (messageId: number, text: string, params?: EditMessageParams) => Promise<With<Message, "text">>;
|
|
36
|
+
/** Answer the received callback query. */
|
|
37
|
+
answerCallbackQuery: (params?: AnswerCallbackQueryParams) => Promise<void>;
|
|
38
|
+
/** Answer the received inline query. */
|
|
39
|
+
answerInlineQuery: (results: InlineQueryResult[], params?: AnswerInlineQueryParams) => Promise<void>;
|
|
40
|
+
/** Retrieve a single message of the chat which the message was received from. */
|
|
41
|
+
getMessage: (messageId: number) => Promise<Omit<Message, "replyToMessage"> | null>;
|
|
42
|
+
/** Retrieve multiple messages of the chat which the message was received from. */
|
|
43
|
+
getMessages: (messageIds: number[]) => Promise<Omit<Message, "replyToMessage">[]>;
|
|
44
|
+
toJSON: () => Update;
|
|
45
|
+
}
|
|
46
|
+
export declare function skipInvoke<C extends Context>(): InvokeErrorHandler<Client<C>>;
|
|
14
47
|
export declare const restartAuth: unique symbol;
|
|
15
48
|
export declare class ConnectionError extends Error {
|
|
16
49
|
}
|
|
17
|
-
export declare class Client extends ClientAbstract {
|
|
50
|
+
export declare class Client<C extends Context = Context> extends ClientAbstract {
|
|
18
51
|
#private;
|
|
19
52
|
readonly apiId: number | null;
|
|
20
53
|
readonly apiHash: string | null;
|
|
@@ -78,8 +111,12 @@ export declare class Client extends ClientAbstract {
|
|
|
78
111
|
*
|
|
79
112
|
* @param function_ The function to invoke.
|
|
80
113
|
*/
|
|
81
|
-
invoke
|
|
82
|
-
|
|
114
|
+
invoke: {
|
|
115
|
+
<T extends types.Type | functions.Function<unknown> = functions.Function<unknown>>(function_: T): Promise<T extends functions.Function<unknown> ? T["__R"] : void>;
|
|
116
|
+
<T_1 extends types.Type | functions.Function<unknown> = functions.Function<unknown>>(function_: T_1, noWait: true): Promise<void>;
|
|
117
|
+
} & {
|
|
118
|
+
use: (handler: InvokeErrorHandler<Client<C>>) => void;
|
|
119
|
+
};
|
|
83
120
|
/**
|
|
84
121
|
* Alias for `invoke` with its second parameter being `true`.
|
|
85
122
|
*/
|
|
@@ -229,11 +266,11 @@ export declare class Client extends ClientAbstract {
|
|
|
229
266
|
* @param results The results to answer with.
|
|
230
267
|
*/
|
|
231
268
|
answerInlineQuery(id: string, results: InlineQueryResult[], params?: AnswerInlineQueryParams): Promise<void>;
|
|
232
|
-
use(
|
|
233
|
-
branch(predicate: (
|
|
234
|
-
filter<D extends
|
|
235
|
-
filter(predicate: (
|
|
236
|
-
on<T extends keyof Update, F extends keyof NonNullable<Update[T]>>(filter: T extends FilterableUpdates ? T | [T, F, ...F[]] : T,
|
|
269
|
+
use(...middleware: Middleware<C>[]): Composer<C>;
|
|
270
|
+
branch(predicate: (ctx: C) => MaybePromise<boolean>, trueHandler_: Middleware<C>, falseHandler_: Middleware<C>): Composer<C>;
|
|
271
|
+
filter<D extends C>(predicate: (ctx: C) => ctx is D, ...middleware: Middleware<D>[]): void;
|
|
272
|
+
filter(predicate: (ctx: C) => MaybePromise<boolean>, ...middleware: Middleware<C>[]): void;
|
|
273
|
+
on<T extends keyof Update, F extends keyof NonNullable<Update[T]>>(filter: T extends FilterableUpdates ? T | [T, F, ...F[]] : T, ...middleawre: Middleware<FilterUpdate<C, T, F>>[]): void;
|
|
237
274
|
/**
|
|
238
275
|
* Set the bot's description in the given language. Bot-only.
|
|
239
276
|
*
|