Skip to content

Commit b126cc3

Browse files
committed
Улучшения
1 parent 89bb773 commit b126cc3

5 files changed

Lines changed: 200 additions & 20 deletions

File tree

package.json

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,23 @@
2424
"url": "https://github.com/MaxApiTeam/Node-Max/issues"
2525
},
2626
"homepage": "https://github.com/MaxApiTeam/Node-Max#readme",
27-
"devDependencies": {
28-
"@eslint/js": "^9.39.2",
29-
"eslint": "^9.39.2",
30-
"globals": "^16.5.0"
31-
},
3227
"dependencies": {
3328
"chalk": "^4.1.2",
3429
"qrcode-terminal": "^0.12.0",
3530
"user-agents": "^1.1.669",
3631
"uuid": "^13.0.0",
3732
"ws": "^8.18.3"
33+
},
34+
"devDependencies": {
35+
"@eslint/js": "^9.39.2",
36+
"eslint": "^9.39.2",
37+
"globals": "^16.5.0"
38+
},
39+
"types": "./src/index.d.ts",
40+
"exports": {
41+
".": {
42+
"types": "./src/index.d.ts",
43+
"default": "./src/index.js"
44+
}
3845
}
3946
}

src/core.js

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ var fs = require("fs");
33
var { EventEmitter } = require("events");
44
var util = require("./util.js");
55
var { Opcode } = require("./enums.js");
6-
var { MissingAuth, InvalidPhoneError, AppOldError, FailedToLoginError, InvalidPayloadError, InvalidQRDataError, QRExpiredError } = require("./errors.js");
6+
var { InvalidPhoneError, AppOldError, FailedToLoginError, InvalidPayloadError, InvalidQRDataError, QRExpiredError } = require("./errors.js");
77
var { Dialog, Chat, Channel, User, Me } = require("./types.js");
88
var chalk = require("chalk");
99
var WebSocket = require("ws");
@@ -32,10 +32,7 @@ class BaseClient extends EventEmitter {
3232
deviceId = uuid.v4();
3333
}
3434

35-
if (!phone && !token) {
36-
throw new MissingAuth;
37-
}
38-
if (!util.checkPhone(phone)) {
35+
if (phone && !util.checkPhone(phone)) {
3936
throw new InvalidPhoneError(phone);
4037
}
4138

@@ -289,4 +286,18 @@ class MaxClient extends BaseClient {
289286
}
290287
}
291288

292-
module.exports = { MaxClient };
289+
// TODO
290+
class SocketMaxClient extends BaseClient {
291+
constructor({ host, port, ...options }) {
292+
if (typeof host === "undefined") {
293+
host = "api.oneme.ru";
294+
}
295+
if (typeof port === "undefined") {
296+
port = 443;
297+
}
298+
super({ host, port, ...options });
299+
this._log("debug", `Initialized SocketMaxClient host=${this.host} port=${this.port} workDir=${options.workDir || "."}`);
300+
}
301+
}
302+
303+
module.exports = { MaxClient, SocketMaxClient };

src/errors.js

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
class MissingAuth extends Error {
2-
constructor() {
3-
super("Missing phone number or token to authorize");
4-
}
5-
}
6-
71
class InvalidPhoneError extends Error {
82
constructor(phone) {
93
super(`Invalid phone number format: ${phone}`);
@@ -41,4 +35,4 @@ class QRExpiredError extends Error {
4135
}
4236
}
4337

44-
module.exports = { MissingAuth, InvalidPhoneError, AppOldError, FailedToLoginError, InvalidPayloadError, InvalidQRDataError, QRExpiredError };
38+
module.exports = { InvalidPhoneError, AppOldError, FailedToLoginError, InvalidPayloadError, InvalidQRDataError, QRExpiredError };

src/index.d.ts

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
declare namespace NodeMax {
2+
class MaxClient {}
3+
class SocketMaxClient {}
4+
5+
class InvalidPhoneError extends Error {
6+
phone: string;
7+
}
8+
class AppOldError extends Error {}
9+
class FailedToLoginError extends Error {}
10+
class InvalidPayloadError extends Error {}
11+
class InvalidQRDataError extends Error {}
12+
class QRExpiredError extends Error {}
13+
14+
const Opcode: {
15+
"PING": 1,
16+
"DEBUG": 2,
17+
"RECONNECT": 3,
18+
"LOG": 5,
19+
"SESSION_INIT": 6,
20+
"PROFILE": 16,
21+
"AUTH_REQUEST": 17,
22+
"AUTH": 18,
23+
"LOGIN": 19,
24+
"LOGOUT": 20,
25+
"SYNC": 21,
26+
"CONFIG": 22,
27+
"AUTH_CONFIRM": 23,
28+
"PRESET_AVATARS": 25,
29+
"ASSETS_GET": 26,
30+
"ASSETS_UPDATE": 27,
31+
"ASSETS_GET_BY_IDS": 28,
32+
"ASSETS_ADD": 29,
33+
"SEARCH_FEEDBACK": 31,
34+
"CONTACT_INFO": 32,
35+
"CONTACT_ADD": 33,
36+
"CONTACT_UPDATE": 34,
37+
"CONTACT_PRESENCE": 35,
38+
"CONTACT_LIST": 36,
39+
"CONTACT_SEARCH": 37,
40+
"CONTACT_MUTUAL": 38,
41+
"CONTACT_PHOTOS": 39,
42+
"CONTACT_SORT": 40,
43+
"CONTACT_VERIFY": 42,
44+
"REMOVE_CONTACT_PHOTO": 43,
45+
"CONTACT_INFO_BY_PHONE": 46,
46+
"CHAT_INFO": 48,
47+
"CHAT_HISTORY": 49,
48+
"CHAT_MARK": 50,
49+
"CHAT_MEDIA": 51,
50+
"CHAT_DELETE": 52,
51+
"CHATS_LIST": 53,
52+
"CHAT_CLEAR": 54,
53+
"CHAT_UPDATE": 55,
54+
"CHAT_CHECK_LINK": 56,
55+
"CHAT_JOIN": 57,
56+
"CHAT_LEAVE": 58,
57+
"CHAT_MEMBERS": 59,
58+
"PUBLIC_SEARCH": 60,
59+
"CHAT_CLOSE": 61,
60+
"CHAT_CREATE": 63,
61+
"MSG_SEND": 64,
62+
"MSG_TYPING": 65,
63+
"MSG_DELETE": 66,
64+
"MSG_EDIT": 67,
65+
"CHAT_SEARCH": 68,
66+
"MSG_SHARE_PREVIEW": 70,
67+
"MSG_GET": 71,
68+
"MSG_SEARCH_TOUCH": 72,
69+
"MSG_SEARCH": 73,
70+
"MSG_GET_STAT": 74,
71+
"CHAT_SUBSCRIBE": 75,
72+
"VIDEO_CHAT_START": 76,
73+
"CHAT_MEMBERS_UPDATE": 77,
74+
"VIDEO_CHAT_HISTORY": 79,
75+
"PHOTO_UPLOAD": 80,
76+
"STICKER_UPLOAD": 81,
77+
"VIDEO_UPLOAD": 82,
78+
"VIDEO_PLAY": 83,
79+
"CHAT_PIN_SET_VISIBILITY": 86,
80+
"FILE_UPLOAD": 87,
81+
"FILE_DOWNLOAD": 88,
82+
"LINK_INFO": 89,
83+
"MSG_DELETE_RANGE": 92,
84+
"SESSIONS_INFO": 96,
85+
"SESSIONS_CLOSE": 97,
86+
"PHONE_BIND_REQUEST": 98,
87+
"PHONE_BIND_CONFIRM": 99,
88+
"CONFIRM_PRESENT": 101,
89+
"GET_INBOUND_CALLS": 103,
90+
"EXTERNAL_CALLBACK": 105,
91+
"AUTH_VALIDATE_PASSWORD": 107,
92+
"AUTH_VALIDATE_HINT": 108,
93+
"AUTH_VERIFY_EMAIL": 109,
94+
"AUTH_CHECK_EMAIL": 110,
95+
"AUTH_SET_2FA": 111,
96+
"AUTH_CREATE_TRACK": 112,
97+
"AUTH_LOGIN_CHECK_PASSWORD": 115,
98+
"CHAT_COMPLAIN": 117,
99+
"MSG_SEND_CALLBACK": 118,
100+
"SUSPEND_BOT": 119,
101+
"LOCATION_STOP": 124,
102+
"LOCATION_SEND": 125,
103+
"LOCATION_REQUEST": 126,
104+
"GET_LAST_MENTIONS": 127,
105+
"NOTIF_MESSAGE": 128,
106+
"NOTIF_TYPING": 129,
107+
"NOTIF_MARK": 130,
108+
"NOTIF_CONTACT": 131,
109+
"NOTIF_PRESENCE": 132,
110+
"NOTIF_CONFIG": 134,
111+
"NOTIF_CHAT": 135,
112+
"NOTIF_ATTACH": 136,
113+
"NOTIF_CALL_START": 137,
114+
"NOTIF_CONTACT_SORT": 139,
115+
"NOTIF_MSG_DELETE_RANGE": 140,
116+
"NOTIF_MSG_DELETE": 142,
117+
"NOTIF_CALLBACK_ANSWER": 143,
118+
"CHAT_BOT_COMMANDS": 144,
119+
"BOT_INFO": 145,
120+
"NOTIF_LOCATION": 147,
121+
"NOTIF_LOCATION_REQUEST": 148,
122+
"NOTIF_ASSETS_UPDATE": 150,
123+
"NOTIF_DRAFT": 152,
124+
"NOTIF_DRAFT_DISCARD": 153,
125+
"NOTIF_MSG_DELAYED": 154,
126+
"NOTIF_MSG_REACTIONS_CHANGED": 155,
127+
"NOTIF_MSG_YOU_REACTED": 156,
128+
"CALLS_TOKEN": 158,
129+
"NOTIF_PROFILE": 159,
130+
"WEB_APP_INIT_DATA": 160,
131+
"DRAFT_SAVE": 176,
132+
"DRAFT_DISCARD": 177,
133+
"MSG_REACTION": 178,
134+
"MSG_CANCEL_REACTION": 179,
135+
"MSG_GET_REACTIONS": 180,
136+
"MSG_GET_DETAILED_REACTIONS": 181,
137+
"STICKER_CREATE": 193,
138+
"STICKER_SUGGEST": 194,
139+
"VIDEO_CHAT_MEMBERS": 195,
140+
"CHAT_HIDE": 196,
141+
"CHAT_SEARCH_COMMON_PARTICIPANTS": 198,
142+
"PROFILE_DELETE": 199,
143+
"PROFILE_DELETE_TIME": 200,
144+
"ASSETS_REMOVE": 259,
145+
"ASSETS_MOVE": 260,
146+
"ASSETS_LIST_MODIFY": 261,
147+
"FOLDERS_GET": 272,
148+
"FOLDERS_GET_BY_ID": 273,
149+
"FOLDERS_UPDATE": 274,
150+
"FOLDERS_REORDER": 275,
151+
"FOLDERS_DELETE": 276,
152+
"NOTIF_FOLDERS": 277,
153+
"GET_QR": 288,
154+
"GET_QR_STATUS": 289,
155+
"LOGIN_BY_QR": 291
156+
};
157+
158+
class Dialog {}
159+
class Chat {}
160+
class Channel {}
161+
class User {}
162+
class Me {}
163+
}
164+
165+
export = NodeMax;

src/index.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1-
const { MaxClient } = require("./core.js");
1+
const { MaxClient, SocketMaxClient } = require("./core.js");
2+
const { InvalidPhoneError, AppOldError, FailedToLoginError, InvalidPayloadError, InvalidQRDataError, QRExpiredError } = require("./errors.js");
3+
const { Opcode } = require("./enums.js");
4+
const { Dialog, Chat, Channel, User, Me } = require("./types.js");
25

3-
module.exports = { MaxClient };
6+
module.exports = { MaxClient, SocketMaxClient, InvalidPhoneError, AppOldError, FailedToLoginError, InvalidPayloadError, InvalidQRDataError, QRExpiredError, Opcode, Dialog, Chat, Channel, User, Me };

0 commit comments

Comments
 (0)