@bruch/max-client 0.1.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/LICENSE +22 -0
- package/README.md +168 -0
- package/UPSTREAM.md +10 -0
- package/dist/api/account.d.ts +24 -0
- package/dist/api/account.d.ts.map +1 -0
- package/dist/api/auth.d.ts +57 -0
- package/dist/api/auth.d.ts.map +1 -0
- package/dist/api/bots.d.ts +8 -0
- package/dist/api/bots.d.ts.map +1 -0
- package/dist/api/chats.d.ts +41 -0
- package/dist/api/chats.d.ts.map +1 -0
- package/dist/api/facade.d.ts +19 -0
- package/dist/api/facade.d.ts.map +1 -0
- package/dist/api/index.d.ts +10 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/messages.d.ts +35 -0
- package/dist/api/messages.d.ts.map +1 -0
- package/dist/api/response.d.ts +7 -0
- package/dist/api/response.d.ts.map +1 -0
- package/dist/api/runtime.d.ts +19 -0
- package/dist/api/runtime.d.ts.map +1 -0
- package/dist/api/uploads.d.ts +23 -0
- package/dist/api/uploads.d.ts.map +1 -0
- package/dist/api/users.d.ts +25 -0
- package/dist/api/users.d.ts.map +1 -0
- package/dist/app.d.ts +55 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/auth/flows.d.ts +27 -0
- package/dist/auth/flows.d.ts.map +1 -0
- package/dist/auth/index.d.ts +3 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +109 -0
- package/dist/auth/index.js.map +11 -0
- package/dist/auth/providers.d.ts +11 -0
- package/dist/auth/providers.d.ts.map +1 -0
- package/dist/client.d.ts +139 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/config.d.ts +80 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/connection/connection.d.ts +25 -0
- package/dist/connection/connection.d.ts.map +1 -0
- package/dist/connection/index.d.ts +4 -0
- package/dist/connection/index.d.ts.map +1 -0
- package/dist/connection/pending.d.ts +9 -0
- package/dist/connection/pending.d.ts.map +1 -0
- package/dist/connection/readers.d.ts +17 -0
- package/dist/connection/readers.d.ts.map +1 -0
- package/dist/dispatch/dispatcher.d.ts +16 -0
- package/dist/dispatch/dispatcher.d.ts.map +1 -0
- package/dist/dispatch/index.d.ts +3 -0
- package/dist/dispatch/index.d.ts.map +1 -0
- package/dist/dispatch/router.d.ts +64 -0
- package/dist/dispatch/router.d.ts.map +1 -0
- package/dist/errors.d.ts +24 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/files/file.d.ts +29 -0
- package/dist/files/file.d.ts.map +1 -0
- package/dist/files/index.d.ts +2 -0
- package/dist/files/index.d.ts.map +1 -0
- package/dist/files/index.js +95 -0
- package/dist/files/index.js.map +10 -0
- package/dist/formatting/index.d.ts +2 -0
- package/dist/formatting/index.d.ts.map +1 -0
- package/dist/formatting/markdown.d.ts +13 -0
- package/dist/formatting/markdown.d.ts.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3967 -0
- package/dist/index.js.map +48 -0
- package/dist/logging.d.ts +10 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/protocol/compression.d.ts +8 -0
- package/dist/protocol/compression.d.ts.map +1 -0
- package/dist/protocol/enums.d.ts +175 -0
- package/dist/protocol/enums.d.ts.map +1 -0
- package/dist/protocol/index.d.ts +6 -0
- package/dist/protocol/index.d.ts.map +1 -0
- package/dist/protocol/index.js +438 -0
- package/dist/protocol/index.js.map +13 -0
- package/dist/protocol/tcp.d.ts +35 -0
- package/dist/protocol/tcp.d.ts.map +1 -0
- package/dist/protocol/types.d.ts +38 -0
- package/dist/protocol/types.d.ts.map +1 -0
- package/dist/protocol/websocket.d.ts +7 -0
- package/dist/protocol/websocket.d.ts.map +1 -0
- package/dist/session/index.d.ts +3 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +179 -0
- package/dist/session/index.js.map +12 -0
- package/dist/session/store.d.ts +18 -0
- package/dist/session/store.d.ts.map +1 -0
- package/dist/session/types.d.ts +29 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/telemetry/index.d.ts +4 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +831 -0
- package/dist/telemetry/index.js.map +17 -0
- package/dist/telemetry/navigation.d.ts +41 -0
- package/dist/telemetry/navigation.d.ts.map +1 -0
- package/dist/telemetry/payloads.d.ts +30 -0
- package/dist/telemetry/payloads.d.ts.map +1 -0
- package/dist/telemetry/service.d.ts +53 -0
- package/dist/telemetry/service.d.ts.map +1 -0
- package/dist/transport/base.d.ts +18 -0
- package/dist/transport/base.d.ts.map +1 -0
- package/dist/transport/index.d.ts +4 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/tcp.d.ts +28 -0
- package/dist/transport/tcp.d.ts.map +1 -0
- package/dist/transport/websocket.d.ts +14 -0
- package/dist/transport/websocket.d.ts.map +1 -0
- package/dist/types/attachments.d.ts +18 -0
- package/dist/types/attachments.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +376 -0
- package/dist/types/index.js.map +12 -0
- package/dist/types/models.d.ts +210 -0
- package/dist/types/models.d.ts.map +1 -0
- package/dist/types/utils.d.ts +10 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/package.json +95 -0
- package/src/api/account.ts +93 -0
- package/src/api/auth.ts +312 -0
- package/src/api/bots.ts +21 -0
- package/src/api/chats.ts +234 -0
- package/src/api/facade.ts +28 -0
- package/src/api/index.ts +9 -0
- package/src/api/messages.ts +230 -0
- package/src/api/response.ts +24 -0
- package/src/api/runtime.ts +27 -0
- package/src/api/uploads.ts +91 -0
- package/src/api/users.ts +68 -0
- package/src/app.ts +271 -0
- package/src/auth/flows.ts +103 -0
- package/src/auth/index.ts +2 -0
- package/src/auth/providers.ts +30 -0
- package/src/client.ts +506 -0
- package/src/config.ts +161 -0
- package/src/connection/connection.ts +93 -0
- package/src/connection/index.ts +3 -0
- package/src/connection/pending.ts +49 -0
- package/src/connection/readers.ts +33 -0
- package/src/dispatch/dispatcher.ts +194 -0
- package/src/dispatch/index.ts +2 -0
- package/src/dispatch/router.ts +149 -0
- package/src/errors.ts +41 -0
- package/src/files/file.ts +92 -0
- package/src/files/index.ts +1 -0
- package/src/formatting/index.ts +1 -0
- package/src/formatting/markdown.ts +123 -0
- package/src/index.ts +15 -0
- package/src/logging.ts +67 -0
- package/src/protocol/compression.ts +69 -0
- package/src/protocol/enums.ts +175 -0
- package/src/protocol/index.ts +5 -0
- package/src/protocol/tcp.ts +139 -0
- package/src/protocol/types.ts +45 -0
- package/src/protocol/websocket.ts +47 -0
- package/src/session/index.ts +2 -0
- package/src/session/store.ts +154 -0
- package/src/session/types.ts +45 -0
- package/src/telemetry/index.ts +3 -0
- package/src/telemetry/navigation.ts +160 -0
- package/src/telemetry/payloads.ts +84 -0
- package/src/telemetry/service.ts +194 -0
- package/src/transport/base.ts +43 -0
- package/src/transport/index.ts +3 -0
- package/src/transport/tcp.ts +296 -0
- package/src/transport/websocket.ts +63 -0
- package/src/types/attachments.ts +24 -0
- package/src/types/index.ts +3 -0
- package/src/types/models.ts +461 -0
- package/src/types/utils.ts +45 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// src/auth/providers.ts
|
|
3
|
+
import QRCode from "qrcode";
|
|
4
|
+
var consoleSmsCodeProvider = (phone) => {
|
|
5
|
+
const code = prompt(`SMS code for ${phone}:`);
|
|
6
|
+
if (!code)
|
|
7
|
+
throw new Error("SMS code is required");
|
|
8
|
+
return code;
|
|
9
|
+
};
|
|
10
|
+
var consolePasswordProvider = (hint) => {
|
|
11
|
+
const password = prompt(`2FA password${hint ? ` (${hint})` : ""}:`);
|
|
12
|
+
if (!password)
|
|
13
|
+
throw new Error("2FA password is required");
|
|
14
|
+
return password;
|
|
15
|
+
};
|
|
16
|
+
var consoleEmailCodeProvider = (email) => {
|
|
17
|
+
const code = prompt(`Email code for ${email}:`);
|
|
18
|
+
if (!code)
|
|
19
|
+
throw new Error("Email code is required");
|
|
20
|
+
return code;
|
|
21
|
+
};
|
|
22
|
+
var consoleQrHandler = async (link) => {
|
|
23
|
+
console.log(await QRCode.toString(link, { type: "terminal", small: true }));
|
|
24
|
+
console.log(link);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// src/auth/flows.ts
|
|
28
|
+
class SmsAuthFlow {
|
|
29
|
+
codeProvider;
|
|
30
|
+
passwordProvider;
|
|
31
|
+
constructor(codeProvider = consoleSmsCodeProvider, passwordProvider = consolePasswordProvider) {
|
|
32
|
+
this.codeProvider = codeProvider;
|
|
33
|
+
this.passwordProvider = passwordProvider;
|
|
34
|
+
}
|
|
35
|
+
async authenticate(app) {
|
|
36
|
+
const phone = app.config.phone;
|
|
37
|
+
if (!phone)
|
|
38
|
+
throw new Error("Phone is required for SMS authentication");
|
|
39
|
+
const start = await app.api.auth.requestCode(phone);
|
|
40
|
+
const token = typeof start.token === "string" ? start.token : "";
|
|
41
|
+
if (!token)
|
|
42
|
+
throw new Error("SMS request returned no token");
|
|
43
|
+
const result = await app.api.auth.sendCode(token, await this.codeProvider(phone));
|
|
44
|
+
if (result.loginToken)
|
|
45
|
+
return { token: result.loginToken };
|
|
46
|
+
if (result.passwordChallenge) {
|
|
47
|
+
return {
|
|
48
|
+
token: await this.passwordLogin(app, result.passwordChallenge.trackId, result.passwordChallenge.hint)
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (result.registerToken) {
|
|
52
|
+
const registration = app.config.registrationConfig;
|
|
53
|
+
if (!registration)
|
|
54
|
+
throw new Error("registrationConfig is required for a new account");
|
|
55
|
+
return {
|
|
56
|
+
token: await app.api.auth.confirmRegistration(registration.firstName, registration.lastName ?? null, result.registerToken)
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
throw new Error("Authentication returned no login, registration, or password challenge");
|
|
60
|
+
}
|
|
61
|
+
async passwordLogin(app, trackId, hint) {
|
|
62
|
+
for (;; ) {
|
|
63
|
+
const result = await app.api.auth.checkPassword(trackId, await this.passwordProvider(hint));
|
|
64
|
+
if (result.loginToken)
|
|
65
|
+
return result.loginToken;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
class QrAuthFlow {
|
|
71
|
+
qrHandler;
|
|
72
|
+
passwordProvider;
|
|
73
|
+
constructor(qrHandler = consoleQrHandler, passwordProvider = consolePasswordProvider) {
|
|
74
|
+
this.qrHandler = qrHandler;
|
|
75
|
+
this.passwordProvider = passwordProvider;
|
|
76
|
+
}
|
|
77
|
+
async authenticate(app) {
|
|
78
|
+
const request = await app.api.auth.requestQr();
|
|
79
|
+
await this.qrHandler(request.qrLink);
|
|
80
|
+
while (Date.now() < request.expiresAt) {
|
|
81
|
+
const status = await app.api.auth.checkQr(request.trackId);
|
|
82
|
+
if (status.loginAvailable) {
|
|
83
|
+
const result = await app.api.auth.confirmQr(request.trackId);
|
|
84
|
+
if (result.loginToken)
|
|
85
|
+
return { token: result.loginToken };
|
|
86
|
+
if (result.passwordChallenge) {
|
|
87
|
+
for (;; ) {
|
|
88
|
+
const checked = await app.api.auth.checkPassword(result.passwordChallenge.trackId, await this.passwordProvider(result.passwordChallenge.hint));
|
|
89
|
+
if (checked.loginToken)
|
|
90
|
+
return { token: checked.loginToken };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
await Bun.sleep(request.pollingInterval);
|
|
96
|
+
}
|
|
97
|
+
throw new Error("QR authentication expired");
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export {
|
|
101
|
+
consoleSmsCodeProvider,
|
|
102
|
+
consoleQrHandler,
|
|
103
|
+
consolePasswordProvider,
|
|
104
|
+
consoleEmailCodeProvider,
|
|
105
|
+
SmsAuthFlow,
|
|
106
|
+
QrAuthFlow
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
//# debugId=6750212D858071F164756E2164756E21
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/auth/providers.ts", "../src/auth/flows.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import QRCode from \"qrcode\";\n\ntype MaybePromise<T> = T | Promise<T>;\nexport type SmsCodeProvider = (phone: string) => MaybePromise<string>;\nexport type PasswordProvider = (hint: string | null) => MaybePromise<string>;\nexport type EmailCodeProvider = (email: string) => MaybePromise<string>;\nexport type QrHandler = (link: string) => MaybePromise<void>;\n\nexport const consoleSmsCodeProvider: SmsCodeProvider = (phone) => {\n const code = prompt(`SMS code for ${phone}:`);\n if (!code) throw new Error(\"SMS code is required\");\n return code;\n};\n\nexport const consolePasswordProvider: PasswordProvider = (hint) => {\n const password = prompt(`2FA password${hint ? ` (${hint})` : \"\"}:`);\n if (!password) throw new Error(\"2FA password is required\");\n return password;\n};\n\nexport const consoleEmailCodeProvider: EmailCodeProvider = (email) => {\n const code = prompt(`Email code for ${email}:`);\n if (!code) throw new Error(\"Email code is required\");\n return code;\n};\n\nexport const consoleQrHandler: QrHandler = async (link) => {\n console.log(await QRCode.toString(link, { type: \"terminal\", small: true }));\n console.log(link);\n};\n",
|
|
6
|
+
"import type { ApiFacade } from \"../api/index.ts\";\nimport type { ResolvedConfig } from \"../config.ts\";\nimport {\n consolePasswordProvider,\n consoleQrHandler,\n consoleSmsCodeProvider,\n type PasswordProvider,\n type QrHandler,\n type SmsCodeProvider,\n} from \"./providers.ts\";\n\nexport interface AuthResult {\n token: string | null;\n}\n\nexport interface AuthRuntime {\n readonly api: ApiFacade;\n readonly config: ResolvedConfig;\n}\n\nexport interface AuthFlow {\n authenticate(app: AuthRuntime): Promise<AuthResult>;\n}\n\nexport class SmsAuthFlow implements AuthFlow {\n constructor(\n readonly codeProvider: SmsCodeProvider = consoleSmsCodeProvider,\n readonly passwordProvider: PasswordProvider = consolePasswordProvider,\n ) {}\n\n async authenticate(app: AuthRuntime): Promise<AuthResult> {\n const phone = app.config.phone;\n if (!phone) throw new Error(\"Phone is required for SMS authentication\");\n const start = await app.api.auth.requestCode(phone);\n const token = typeof start.token === \"string\" ? start.token : \"\";\n if (!token) throw new Error(\"SMS request returned no token\");\n const result = await app.api.auth.sendCode(token, await this.codeProvider(phone));\n if (result.loginToken) return { token: result.loginToken };\n if (result.passwordChallenge) {\n return {\n token: await this.passwordLogin(\n app,\n result.passwordChallenge.trackId,\n result.passwordChallenge.hint,\n ),\n };\n }\n if (result.registerToken) {\n const registration = app.config.registrationConfig;\n if (!registration) throw new Error(\"registrationConfig is required for a new account\");\n return {\n token: await app.api.auth.confirmRegistration(\n registration.firstName,\n registration.lastName ?? null,\n result.registerToken,\n ),\n };\n }\n throw new Error(\"Authentication returned no login, registration, or password challenge\");\n }\n\n private async passwordLogin(\n app: AuthRuntime,\n trackId: string,\n hint: string | null,\n ): Promise<string> {\n for (;;) {\n const result = await app.api.auth.checkPassword(trackId, await this.passwordProvider(hint));\n if (result.loginToken) return result.loginToken;\n }\n }\n}\n\nexport class QrAuthFlow implements AuthFlow {\n constructor(\n readonly qrHandler: QrHandler = consoleQrHandler,\n readonly passwordProvider: PasswordProvider = consolePasswordProvider,\n ) {}\n\n async authenticate(app: AuthRuntime): Promise<AuthResult> {\n const request = await app.api.auth.requestQr();\n await this.qrHandler(request.qrLink);\n while (Date.now() < request.expiresAt) {\n const status = await app.api.auth.checkQr(request.trackId);\n if (status.loginAvailable) {\n const result = await app.api.auth.confirmQr(request.trackId);\n if (result.loginToken) return { token: result.loginToken };\n if (result.passwordChallenge) {\n for (;;) {\n const checked = await app.api.auth.checkPassword(\n result.passwordChallenge.trackId,\n await this.passwordProvider(result.passwordChallenge.hint),\n );\n if (checked.loginToken) return { token: checked.loginToken };\n }\n }\n break;\n }\n await Bun.sleep(request.pollingInterval);\n }\n throw new Error(\"QR authentication expired\");\n }\n}\n"
|
|
7
|
+
],
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "6750212D858071F164756E2164756E21",
|
|
10
|
+
"names": []
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
2
|
+
export type SmsCodeProvider = (phone: string) => MaybePromise<string>;
|
|
3
|
+
export type PasswordProvider = (hint: string | null) => MaybePromise<string>;
|
|
4
|
+
export type EmailCodeProvider = (email: string) => MaybePromise<string>;
|
|
5
|
+
export type QrHandler = (link: string) => MaybePromise<void>;
|
|
6
|
+
export declare const consoleSmsCodeProvider: SmsCodeProvider;
|
|
7
|
+
export declare const consolePasswordProvider: PasswordProvider;
|
|
8
|
+
export declare const consoleEmailCodeProvider: EmailCodeProvider;
|
|
9
|
+
export declare const consoleQrHandler: QrHandler;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/auth/providers.ts"],"names":[],"mappings":"AAEA,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACtC,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;AAC7E,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;AACxE,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;AAE7D,eAAO,MAAM,sBAAsB,EAAE,eAIpC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,gBAIrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,iBAItC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,SAG9B,CAAC"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import type { AccountApi, AuthApi, BotsApi, ChatApi, ContactInfo, UserApi } from "./api/index.ts";
|
|
2
|
+
import { App } from "./app.ts";
|
|
3
|
+
import { type AuthFlow, type PasswordProvider, type QrHandler, type SmsCodeProvider } from "./auth/index.ts";
|
|
4
|
+
import { type ExtraConfig, type ResolvedConfig } from "./config.ts";
|
|
5
|
+
import { Router, type DisconnectHandler, type ErrorHandler, type Filter, type Handler, type StartHandler } from "./dispatch/index.ts";
|
|
6
|
+
import { type InboundFrame } from "./protocol/index.ts";
|
|
7
|
+
import type { SessionInfo } from "./session/index.ts";
|
|
8
|
+
import type { Chat, ChatActions, EditMessageOptions, ForwardMessageOptions, HistoryOptions, MaxId, Message, MessageActions, MessageDeleteEvent, MessageReadEvent, PresenceEvent, ReactionInfo, ReactionUpdateEvent, ReadState, SendMessageOptions, TypingEvent, User, UserActions } from "./types/index.ts";
|
|
9
|
+
export interface ClientOptions {
|
|
10
|
+
phone: string;
|
|
11
|
+
sessionName?: string;
|
|
12
|
+
workDir?: string;
|
|
13
|
+
extraConfig?: ExtraConfig;
|
|
14
|
+
authFlow?: AuthFlow;
|
|
15
|
+
smsCodeProvider?: SmsCodeProvider;
|
|
16
|
+
passwordProvider?: PasswordProvider;
|
|
17
|
+
}
|
|
18
|
+
export interface WebClientOptions {
|
|
19
|
+
sessionName?: string;
|
|
20
|
+
workDir?: string;
|
|
21
|
+
extraConfig?: ExtraConfig;
|
|
22
|
+
authFlow?: AuthFlow;
|
|
23
|
+
qrHandler?: QrHandler;
|
|
24
|
+
passwordProvider?: PasswordProvider;
|
|
25
|
+
}
|
|
26
|
+
export declare abstract class BaseClient implements MessageActions, ChatActions, UserActions {
|
|
27
|
+
readonly router: Router<BaseClient>;
|
|
28
|
+
protected app: App<BaseClient>;
|
|
29
|
+
readonly config: ResolvedConfig;
|
|
30
|
+
private stopping;
|
|
31
|
+
protected constructor(config: ResolvedConfig, _authFlow: AuthFlow, app: App<BaseClient>);
|
|
32
|
+
get me(): import("./index.ts").Profile | null;
|
|
33
|
+
get chats(): Chat[];
|
|
34
|
+
get contacts(): Array<User | null>;
|
|
35
|
+
get messages(): Map<bigint, Message[]>;
|
|
36
|
+
get session(): SessionInfo | null;
|
|
37
|
+
get api(): import("./index.ts").ApiFacade;
|
|
38
|
+
get account(): AccountApi;
|
|
39
|
+
get auth(): AuthApi;
|
|
40
|
+
get bots(): BotsApi;
|
|
41
|
+
get chatApi(): ChatApi;
|
|
42
|
+
get users(): UserApi;
|
|
43
|
+
start(): Promise<void>;
|
|
44
|
+
stop(): Promise<void>;
|
|
45
|
+
close(): Promise<void>;
|
|
46
|
+
relogin(start?: boolean): Promise<void>;
|
|
47
|
+
includeRouter(router: Router<BaseClient>): () => void;
|
|
48
|
+
onStart(handler: StartHandler<BaseClient>): () => void;
|
|
49
|
+
onError(handler: ErrorHandler<BaseClient>): () => void;
|
|
50
|
+
onDisconnect(handler: DisconnectHandler): () => void;
|
|
51
|
+
onMessage(handler: Handler<Message, BaseClient>, ...filters: Filter<Message>[]): () => void;
|
|
52
|
+
onMessageEdit(handler: Handler<Message, BaseClient>, ...filters: Filter<Message>[]): () => void;
|
|
53
|
+
onMessageDelete(handler: Handler<MessageDeleteEvent, BaseClient>, ...filters: Filter<MessageDeleteEvent>[]): () => void;
|
|
54
|
+
onMessageRead(handler: Handler<MessageReadEvent, BaseClient>, ...filters: Filter<MessageReadEvent>[]): () => void;
|
|
55
|
+
onTyping(handler: Handler<TypingEvent, BaseClient>, ...filters: Filter<TypingEvent>[]): () => void;
|
|
56
|
+
onPresence(handler: Handler<PresenceEvent, BaseClient>, ...filters: Filter<PresenceEvent>[]): () => void;
|
|
57
|
+
onReactionUpdate(handler: Handler<ReactionUpdateEvent, BaseClient>, ...filters: Filter<ReactionUpdateEvent>[]): () => void;
|
|
58
|
+
onChatUpdate(handler: Handler<Chat, BaseClient>, ...filters: Filter<Chat>[]): () => void;
|
|
59
|
+
onRaw(handler: Handler<InboundFrame, BaseClient>, ...filters: Filter<InboundFrame>[]): () => void;
|
|
60
|
+
sendMessage(options: SendMessageOptions): Promise<Message | null>;
|
|
61
|
+
forwardMessage(options: ForwardMessageOptions): Promise<Message | null>;
|
|
62
|
+
getMessages(chatId: MaxId, messageIds: MaxId[]): Promise<Message[]>;
|
|
63
|
+
getMessage(chatId: MaxId, messageId: MaxId): Promise<Message | null>;
|
|
64
|
+
editMessage(options: EditMessageOptions): Promise<Message>;
|
|
65
|
+
fetchHistory(options: HistoryOptions): Promise<Message[] | null>;
|
|
66
|
+
deleteMessage(options: {
|
|
67
|
+
chatId: MaxId;
|
|
68
|
+
messageIds: MaxId[];
|
|
69
|
+
forMe: boolean;
|
|
70
|
+
}): Promise<boolean>;
|
|
71
|
+
pinMessage(options: {
|
|
72
|
+
chatId: MaxId;
|
|
73
|
+
messageId: MaxId;
|
|
74
|
+
notifyPin: boolean;
|
|
75
|
+
}): Promise<boolean>;
|
|
76
|
+
readMessage(messageId: MaxId, chatId: MaxId): Promise<ReadState>;
|
|
77
|
+
addReaction(chatId: MaxId, messageId: MaxId, reaction: string): Promise<ReactionInfo | null>;
|
|
78
|
+
removeReaction(chatId: MaxId, messageId: MaxId): Promise<ReactionInfo | null>;
|
|
79
|
+
getReactions(chatId: MaxId, messageIds: MaxId[]): Promise<Map<MaxId, ReactionInfo> | null>;
|
|
80
|
+
getVideoById(chatId: MaxId, messageId: MaxId, videoId: number): Promise<Record<string, unknown> | null>;
|
|
81
|
+
getFileById(chatId: MaxId, messageId: MaxId, fileId: number): Promise<Record<string, unknown> | null>;
|
|
82
|
+
createGroup(name: string, participantIds?: MaxId[], notify?: boolean): Promise<[Chat, Message] | null>;
|
|
83
|
+
inviteUsersToGroup(chatId: MaxId, userIds: MaxId[], showHistory?: boolean): Promise<Chat | null>;
|
|
84
|
+
inviteUsersToChannel(chatId: MaxId, userIds: MaxId[], showHistory?: boolean): Promise<Chat | null>;
|
|
85
|
+
removeUsersFromGroup(chatId: MaxId, userIds: MaxId[]): Promise<Chat | null>;
|
|
86
|
+
getChats(chatIds: MaxId[]): Promise<Chat[]>;
|
|
87
|
+
getChat(chatId: MaxId): Promise<Chat>;
|
|
88
|
+
fetchChats(marker?: number): Promise<Chat[]>;
|
|
89
|
+
joinGroup(link: string): Promise<Chat>;
|
|
90
|
+
joinChannel(link: string): Promise<Chat>;
|
|
91
|
+
leaveGroup(chatId: MaxId): Promise<void>;
|
|
92
|
+
leaveChannel(chatId: MaxId): Promise<void>;
|
|
93
|
+
deleteChat(chatId: MaxId, forMe?: boolean): Promise<boolean>;
|
|
94
|
+
changeGroupSettings(chatId: MaxId, settings: Parameters<ChatApi["changeGroupSettings"]>[1]): Promise<void>;
|
|
95
|
+
changeGroupProfile(chatId: MaxId, name: string | null, description?: string | null): Promise<void>;
|
|
96
|
+
resolveGroupByLink(link: string): Promise<Chat | null>;
|
|
97
|
+
reworkInviteLink(chatId: MaxId): Promise<Chat>;
|
|
98
|
+
getJoinRequests(chatId: MaxId, count?: number): Promise<Record<string, unknown>[]>;
|
|
99
|
+
confirmJoinRequests(chatId: MaxId, userIds: MaxId[], showHistory?: boolean): Promise<Chat | null>;
|
|
100
|
+
confirmJoinRequest(chatId: MaxId, userId: MaxId, showHistory?: boolean): Promise<Chat | null>;
|
|
101
|
+
declineJoinRequests(chatId: MaxId, userIds: MaxId[]): Promise<Chat | null>;
|
|
102
|
+
declineJoinRequest(chatId: MaxId, userId: MaxId): Promise<Chat | null>;
|
|
103
|
+
getCachedUser(userId: MaxId): User | null;
|
|
104
|
+
getUsers(userIds: MaxId[]): Promise<User[]>;
|
|
105
|
+
getUser(userId: MaxId): Promise<User | null>;
|
|
106
|
+
fetchUsers(userIds: MaxId[]): Promise<User[]>;
|
|
107
|
+
searchByPhone(phone: string): Promise<User>;
|
|
108
|
+
addContact(contactId: MaxId): Promise<User>;
|
|
109
|
+
removeContact(contactId: MaxId): Promise<boolean>;
|
|
110
|
+
importContacts(contacts: ContactInfo[]): Promise<User[]>;
|
|
111
|
+
getChatId(firstUserId: MaxId, secondUserId: MaxId): MaxId;
|
|
112
|
+
setTwoFactor(options: Parameters<AuthApi["setTwoFactor"]>[0]): Promise<boolean>;
|
|
113
|
+
removeTwoFactor(password: string): Promise<boolean>;
|
|
114
|
+
changePassword(oldPassword: string, newPassword: string): Promise<boolean>;
|
|
115
|
+
authorizeQrLogin(qrLink: string): Promise<boolean>;
|
|
116
|
+
checkTwoFactor(): Promise<boolean>;
|
|
117
|
+
changeProfile(options: Parameters<AccountApi["changeProfile"]>[0]): Promise<boolean>;
|
|
118
|
+
requestProfilePhotoUploadUrl(): Promise<string>;
|
|
119
|
+
createFolder(title: string, chatInclude: MaxId[], filters?: unknown[]): Promise<Record<string, unknown>>;
|
|
120
|
+
getFolders(folderSync?: number): Promise<Record<string, unknown>>;
|
|
121
|
+
updateFolder(folderId: string, title: string, chatInclude?: MaxId[], filters?: unknown[], options?: unknown[]): Promise<Record<string, unknown>>;
|
|
122
|
+
deleteFolder(folderId: string): Promise<Record<string, unknown>>;
|
|
123
|
+
closeAllSessions(): Promise<boolean>;
|
|
124
|
+
logout(): Promise<boolean>;
|
|
125
|
+
getSessions(): Promise<Record<string, unknown>[]>;
|
|
126
|
+
getBotInitData(botId: MaxId, chatId?: MaxId | null, startParam?: string | null): Promise<Record<string, unknown>>;
|
|
127
|
+
protected abstract rebuildApp(): App<BaseClient>;
|
|
128
|
+
}
|
|
129
|
+
export declare class Client extends BaseClient {
|
|
130
|
+
private readonly authFlow;
|
|
131
|
+
constructor(options: ClientOptions);
|
|
132
|
+
protected rebuildApp(): App<BaseClient>;
|
|
133
|
+
}
|
|
134
|
+
export declare class WebClient extends BaseClient {
|
|
135
|
+
private readonly authFlow;
|
|
136
|
+
constructor(options?: WebClientOptions);
|
|
137
|
+
protected rebuildApp(): App<BaseClient>;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { type SessionStore, type SyncOverrides } from "./session/index.ts";
|
|
2
|
+
export declare const DeviceType: {
|
|
3
|
+
readonly WEB: "WEB";
|
|
4
|
+
readonly ANDROID: "ANDROID";
|
|
5
|
+
readonly IOS: "IOS";
|
|
6
|
+
readonly DESKTOP: "DESKTOP";
|
|
7
|
+
};
|
|
8
|
+
export type DeviceType = (typeof DeviceType)[keyof typeof DeviceType];
|
|
9
|
+
export interface UserAgent {
|
|
10
|
+
deviceType: DeviceType;
|
|
11
|
+
appVersion: string;
|
|
12
|
+
osVersion: string;
|
|
13
|
+
timezone: string;
|
|
14
|
+
screen: string;
|
|
15
|
+
locale: string;
|
|
16
|
+
deviceName: string;
|
|
17
|
+
deviceLocale: string;
|
|
18
|
+
pushDeviceType?: string;
|
|
19
|
+
arch?: string;
|
|
20
|
+
buildNumber?: number;
|
|
21
|
+
release?: number;
|
|
22
|
+
headerUserAgent?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface RegistrationConfig {
|
|
25
|
+
firstName: string;
|
|
26
|
+
lastName?: string | null;
|
|
27
|
+
}
|
|
28
|
+
export interface ExtraConfig {
|
|
29
|
+
token?: string | null;
|
|
30
|
+
registrationConfig?: RegistrationConfig | null;
|
|
31
|
+
host?: string;
|
|
32
|
+
port?: number;
|
|
33
|
+
url?: string;
|
|
34
|
+
useTls?: boolean;
|
|
35
|
+
proxy?: string | null;
|
|
36
|
+
reconnect?: boolean;
|
|
37
|
+
reconnectDelay?: number;
|
|
38
|
+
deviceId?: string;
|
|
39
|
+
deviceType?: DeviceType;
|
|
40
|
+
userAgent?: UserAgent;
|
|
41
|
+
mtInstanceId?: string;
|
|
42
|
+
requestTimeout?: number;
|
|
43
|
+
logLevel?: "DEBUG" | "INFO" | "WARN" | "ERROR" | "SILENT";
|
|
44
|
+
telemetry?: boolean;
|
|
45
|
+
store?: SessionStore;
|
|
46
|
+
sync?: SyncOverrides;
|
|
47
|
+
}
|
|
48
|
+
export interface ResolvedConfig {
|
|
49
|
+
phone: string | null;
|
|
50
|
+
workDir: string;
|
|
51
|
+
sessionName: string;
|
|
52
|
+
token: string | null;
|
|
53
|
+
registrationConfig: RegistrationConfig | null;
|
|
54
|
+
host: string;
|
|
55
|
+
port: number;
|
|
56
|
+
url: string;
|
|
57
|
+
useTls: boolean;
|
|
58
|
+
proxy: string | null;
|
|
59
|
+
reconnect: boolean;
|
|
60
|
+
reconnectDelay: number;
|
|
61
|
+
requestTimeout: number;
|
|
62
|
+
logLevel: "DEBUG" | "INFO" | "WARN" | "ERROR" | "SILENT";
|
|
63
|
+
telemetry: boolean;
|
|
64
|
+
store?: SessionStore;
|
|
65
|
+
sync: SyncOverrides;
|
|
66
|
+
device: {
|
|
67
|
+
deviceId: string;
|
|
68
|
+
mtInstanceId: string;
|
|
69
|
+
clientSessionId: number;
|
|
70
|
+
userAgent: UserAgent;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export declare function resolveConfig(options: {
|
|
74
|
+
phone?: string | null;
|
|
75
|
+
workDir?: string;
|
|
76
|
+
sessionName?: string;
|
|
77
|
+
web?: boolean;
|
|
78
|
+
extra?: ExtraConfig;
|
|
79
|
+
}): ResolvedConfig;
|
|
80
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type InboundFrame, type OutboundFrame, type Protocol } from "../protocol/index.ts";
|
|
2
|
+
import type { Transport } from "../transport/index.ts";
|
|
3
|
+
import { PendingRequests } from "./pending.ts";
|
|
4
|
+
import type { Reader } from "./readers.ts";
|
|
5
|
+
export declare class ConnectionManager<Raw extends string | Uint8Array> {
|
|
6
|
+
readonly reader: Reader<Raw>;
|
|
7
|
+
readonly transport: Transport<Raw>;
|
|
8
|
+
readonly protocol: Protocol<Raw>;
|
|
9
|
+
readonly requests: PendingRequests;
|
|
10
|
+
onEvent: ((frame: InboundFrame) => void | Promise<void>) | null;
|
|
11
|
+
onClose: ((error: Error | null) => void) | null;
|
|
12
|
+
private sequence;
|
|
13
|
+
private receiveTask;
|
|
14
|
+
private abortController;
|
|
15
|
+
constructor(reader: Reader<Raw>, transport: Transport<Raw>, protocol: Protocol<Raw>);
|
|
16
|
+
get isOpen(): boolean;
|
|
17
|
+
open(): Promise<void>;
|
|
18
|
+
close(): Promise<void>;
|
|
19
|
+
send(frame: OutboundFrame): Promise<void>;
|
|
20
|
+
request(frame: OutboundFrame, timeoutSeconds?: number): Promise<InboundFrame>;
|
|
21
|
+
waitClosed(): Promise<void>;
|
|
22
|
+
nextSequence(): number;
|
|
23
|
+
private receiveLoop;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/connection/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,qBAAa,iBAAiB,CAAC,GAAG,SAAS,MAAM,GAAG,UAAU;IAS1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC;IAVlC,QAAQ,CAAC,QAAQ,kBAAyB;IAC1C,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAQ;IACvE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IACvD,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,eAAe,CAAgC;gBAG5C,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EACnB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,EACzB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC;IAGlC,IAAI,MAAM,IAAI,OAAO,CAEpB;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAatB,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAW7E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,YAAY,IAAI,MAAM;YAKR,WAAW;CAkB1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connection/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { InboundFrame } from "../protocol/index.ts";
|
|
2
|
+
export declare class PendingRequests {
|
|
3
|
+
private readonly requests;
|
|
4
|
+
create(sequence: number, timeoutSeconds?: number): Promise<InboundFrame>;
|
|
5
|
+
resolve(sequence: number, frame: InboundFrame): boolean;
|
|
6
|
+
discard(sequence: number): void;
|
|
7
|
+
cancelAll(reason?: Error): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=pending.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending.d.ts","sourceRoot":"","sources":["../../src/connection/pending.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AASzD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAE9D,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAcxE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO;IASvD,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM/B,SAAS,CAAC,MAAM,GAAE,KAAgD,GAAG,IAAI;CAO1E"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TcpPacketFramer } from "../protocol/index.ts";
|
|
2
|
+
import type { Transport } from "../transport/index.ts";
|
|
3
|
+
export interface Reader<Raw extends string | Uint8Array> {
|
|
4
|
+
read(): Promise<Raw>;
|
|
5
|
+
}
|
|
6
|
+
export declare class TcpReader implements Reader<Uint8Array> {
|
|
7
|
+
private readonly transport;
|
|
8
|
+
private readonly framer;
|
|
9
|
+
constructor(transport: Transport<Uint8Array>, framer?: TcpPacketFramer);
|
|
10
|
+
read(): Promise<Uint8Array>;
|
|
11
|
+
}
|
|
12
|
+
export declare class WsReader implements Reader<string> {
|
|
13
|
+
private readonly transport;
|
|
14
|
+
constructor(transport: Transport<string>);
|
|
15
|
+
read(): Promise<string>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=readers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readers.d.ts","sourceRoot":"","sources":["../../src/connection/readers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,WAAW,MAAM,CAAC,GAAG,SAAS,MAAM,GAAG,UAAU;IACrD,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;CACtB;AAED,qBAAa,SAAU,YAAW,MAAM,CAAC,UAAU,CAAC;IAEhD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,EAChC,MAAM,kBAAwB;IAG3C,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;CAWlC;AAED,qBAAa,QAAS,YAAW,MAAM,CAAC,MAAM,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC;IACnD,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAG9B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type InboundFrame } from "../protocol/index.ts";
|
|
2
|
+
import { type Router } from "./router.ts";
|
|
3
|
+
export declare class Dispatcher<Client> {
|
|
4
|
+
readonly rootRouter: Router<Client>;
|
|
5
|
+
private client;
|
|
6
|
+
constructor(rootRouter: Router<Client>);
|
|
7
|
+
bindClient(client: Client): void;
|
|
8
|
+
emitStart(): Promise<void>;
|
|
9
|
+
emitDisconnect(error: Error, reconnect: boolean, delay: number): Promise<void>;
|
|
10
|
+
dispatch(frame: InboundFrame): Promise<void>;
|
|
11
|
+
private dispatchEvent;
|
|
12
|
+
private emitError;
|
|
13
|
+
private routers;
|
|
14
|
+
private requireClient;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/dispatch/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAiB1E,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAEpE,qBAAa,UAAU,CAAC,MAAM;IAGhB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;IAF/C,OAAO,CAAC,MAAM,CAAuB;gBAEhB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;IAE/C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAa1B,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9E,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAOpC,aAAa;YA4Bb,SAAS;IAkBvB,OAAO,CAAE,OAAO;IAKhB,OAAO,CAAC,aAAa;CAItB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dispatch/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { InboundFrame } from "../protocol/index.ts";
|
|
2
|
+
import type { Chat, Message, MessageDeleteEvent, MessageReadEvent, PresenceEvent, ReactionUpdateEvent, TypingEvent } from "../types/index.ts";
|
|
3
|
+
export declare const EventType: {
|
|
4
|
+
readonly MESSAGE_NEW: "messageNew";
|
|
5
|
+
readonly MESSAGE_EDIT: "messageEdit";
|
|
6
|
+
readonly MESSAGE_DELETE: "messageDelete";
|
|
7
|
+
readonly MESSAGE_READ: "messageRead";
|
|
8
|
+
readonly TYPING: "typing";
|
|
9
|
+
readonly PRESENCE: "presence";
|
|
10
|
+
readonly REACTION_UPDATE: "reactionUpdate";
|
|
11
|
+
readonly CHAT_UPDATE: "chatUpdate";
|
|
12
|
+
readonly RAW: "raw";
|
|
13
|
+
};
|
|
14
|
+
export type EventType = (typeof EventType)[keyof typeof EventType];
|
|
15
|
+
export interface EventMap {
|
|
16
|
+
messageNew: Message;
|
|
17
|
+
messageEdit: Message;
|
|
18
|
+
messageDelete: MessageDeleteEvent;
|
|
19
|
+
messageRead: MessageReadEvent;
|
|
20
|
+
typing: TypingEvent;
|
|
21
|
+
presence: PresenceEvent;
|
|
22
|
+
reactionUpdate: ReactionUpdateEvent;
|
|
23
|
+
chatUpdate: Chat;
|
|
24
|
+
raw: InboundFrame;
|
|
25
|
+
}
|
|
26
|
+
export type MaybePromise<T> = T | Promise<T>;
|
|
27
|
+
export type Handler<Event, Client> = (event: Event, client: Client) => MaybePromise<void>;
|
|
28
|
+
export type Filter<Event> = (event: Event) => MaybePromise<boolean>;
|
|
29
|
+
export type StartHandler<Client> = (client: Client) => MaybePromise<void>;
|
|
30
|
+
export type DisconnectHandler = (error: Error, reconnect: boolean, delay: number) => MaybePromise<void>;
|
|
31
|
+
export interface ErrorContext<Client> {
|
|
32
|
+
client: Client;
|
|
33
|
+
eventType: EventType | "start";
|
|
34
|
+
event: unknown;
|
|
35
|
+
router: Router<Client>;
|
|
36
|
+
}
|
|
37
|
+
export type ErrorHandler<Client> = (error: Error, context: ErrorContext<Client>) => MaybePromise<void>;
|
|
38
|
+
interface HandlerEntry<Event, Client> {
|
|
39
|
+
handler: Handler<Event, Client>;
|
|
40
|
+
filters: Filter<Event>[];
|
|
41
|
+
}
|
|
42
|
+
export declare class Router<Client> {
|
|
43
|
+
readonly children: Router<Client>[];
|
|
44
|
+
readonly handlers: Map<EventType, HandlerEntry<unknown, Client>[]>;
|
|
45
|
+
readonly startHandlers: StartHandler<Client>[];
|
|
46
|
+
readonly errorHandlers: ErrorHandler<Client>[];
|
|
47
|
+
readonly disconnectHandlers: DisconnectHandler[];
|
|
48
|
+
includeRouter(router: Router<Client>): () => void;
|
|
49
|
+
on<Key extends keyof EventMap>(event: Key, handler: Handler<EventMap[Key], Client>, ...filters: Filter<EventMap[Key]>[]): () => void;
|
|
50
|
+
onStart(handler: StartHandler<Client>): () => void;
|
|
51
|
+
onError(handler: ErrorHandler<Client>): () => void;
|
|
52
|
+
onDisconnect(handler: DisconnectHandler): () => void;
|
|
53
|
+
onMessage(handler: Handler<Message, Client>, ...filters: Filter<Message>[]): () => void;
|
|
54
|
+
onMessageEdit(handler: Handler<Message, Client>, ...filters: Filter<Message>[]): () => void;
|
|
55
|
+
onMessageDelete(handler: Handler<MessageDeleteEvent, Client>, ...filters: Filter<MessageDeleteEvent>[]): () => void;
|
|
56
|
+
onMessageRead(handler: Handler<MessageReadEvent, Client>, ...filters: Filter<MessageReadEvent>[]): () => void;
|
|
57
|
+
onTyping(handler: Handler<TypingEvent, Client>, ...filters: Filter<TypingEvent>[]): () => void;
|
|
58
|
+
onPresence(handler: Handler<PresenceEvent, Client>, ...filters: Filter<PresenceEvent>[]): () => void;
|
|
59
|
+
onReactionUpdate(handler: Handler<ReactionUpdateEvent, Client>, ...filters: Filter<ReactionUpdateEvent>[]): () => void;
|
|
60
|
+
onChatUpdate(handler: Handler<Chat, Client>, ...filters: Filter<Chat>[]): () => void;
|
|
61
|
+
onRaw(handler: Handler<InboundFrame, Client>, ...filters: Filter<InboundFrame>[]): () => void;
|
|
62
|
+
}
|
|
63
|
+
export {};
|
|
64
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/dispatch/router.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare class TsMaxError extends Error {
|
|
2
|
+
constructor(message: string, options?: ErrorOptions);
|
|
3
|
+
}
|
|
4
|
+
export declare class UploadError extends TsMaxError {
|
|
5
|
+
}
|
|
6
|
+
export declare class ConnectionError extends TsMaxError {
|
|
7
|
+
}
|
|
8
|
+
export declare class TimeoutError extends TsMaxError {
|
|
9
|
+
}
|
|
10
|
+
export declare class ApiError extends TsMaxError {
|
|
11
|
+
readonly opcode: number;
|
|
12
|
+
readonly payload: Record<string, unknown>;
|
|
13
|
+
constructor(opcode: number, options?: {
|
|
14
|
+
error?: string | null;
|
|
15
|
+
title?: string | null;
|
|
16
|
+
message?: string | null;
|
|
17
|
+
localizedMessage?: string | null;
|
|
18
|
+
payload?: Record<string, unknown> | null;
|
|
19
|
+
});
|
|
20
|
+
readonly error: string | null;
|
|
21
|
+
readonly title: string | null;
|
|
22
|
+
readonly localizedMessage: string | null;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AAED,qBAAa,WAAY,SAAQ,UAAU;CAAG;AAC9C,qBAAa,eAAgB,SAAQ,UAAU;CAAG;AAClD,qBAAa,YAAa,SAAQ,UAAU;CAAG;AAE/C,qBAAa,QAAS,SAAQ,UAAU;IAIpC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAHzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAG/B,MAAM,EAAE,MAAM,EACvB,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;KACrC;IAeR,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C"}
|