mezon-sdk 2.7.95 → 2.7.97
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/dist/cjs/api.d.ts +2 -0
- package/dist/cjs/api.js +55 -1
- package/dist/cjs/api.js.map +1 -1
- package/dist/cjs/constants/enum.d.ts +5 -2
- package/dist/cjs/constants/enum.js +3 -0
- package/dist/cjs/constants/enum.js.map +1 -1
- package/dist/cjs/mezon-client/client/MezonClient.d.ts +8 -2
- package/dist/cjs/mezon-client/client/MezonClient.js +111 -58
- package/dist/cjs/mezon-client/client/MezonClient.js.map +1 -1
- package/dist/cjs/mezon-client/manager/channel_manager.js +2 -1
- package/dist/cjs/mezon-client/manager/channel_manager.js.map +1 -1
- package/dist/cjs/mezon-client/manager/socket_manager.d.ts +4 -4
- package/dist/cjs/mezon-client/manager/socket_manager.js +16 -17
- package/dist/cjs/mezon-client/manager/socket_manager.js.map +1 -1
- package/dist/cjs/mezon-client/structures/Clan.d.ts +3 -1
- package/dist/cjs/mezon-client/structures/Clan.js +15 -6
- package/dist/cjs/mezon-client/structures/Clan.js.map +1 -1
- package/dist/cjs/mezon-client/structures/TextChannel.d.ts +3 -1
- package/dist/cjs/mezon-client/structures/TextChannel.js +9 -5
- package/dist/cjs/mezon-client/structures/TextChannel.js.map +1 -1
- package/dist/cjs/mezon-client/structures/User.d.ts +2 -2
- package/dist/cjs/mezon-client/structures/User.js +22 -10
- package/dist/cjs/mezon-client/structures/User.js.map +1 -1
- package/dist/cjs/sqlite/MessageDatabase.d.ts +9 -0
- package/dist/cjs/sqlite/MessageDatabase.js +79 -0
- package/dist/cjs/sqlite/MessageDatabase.js.map +1 -0
- package/dist/cjs/utils/helper.d.ts +3 -2
- package/dist/cjs/utils/helper.js +5 -13
- package/dist/cjs/utils/helper.js.map +1 -1
- package/dist/esm/api.d.ts +2 -0
- package/dist/esm/api.js +55 -1
- package/dist/esm/api.js.map +1 -1
- package/dist/esm/constants/enum.d.ts +5 -2
- package/dist/esm/constants/enum.js +3 -0
- package/dist/esm/constants/enum.js.map +1 -1
- package/dist/esm/mezon-client/client/MezonClient.d.ts +8 -2
- package/dist/esm/mezon-client/client/MezonClient.js +111 -57
- package/dist/esm/mezon-client/client/MezonClient.js.map +1 -1
- package/dist/esm/mezon-client/manager/channel_manager.js +1 -1
- package/dist/esm/mezon-client/manager/channel_manager.js.map +1 -1
- package/dist/esm/mezon-client/manager/socket_manager.d.ts +4 -4
- package/dist/esm/mezon-client/manager/socket_manager.js +17 -19
- package/dist/esm/mezon-client/manager/socket_manager.js.map +1 -1
- package/dist/esm/mezon-client/structures/Clan.d.ts +3 -1
- package/dist/esm/mezon-client/structures/Clan.js +16 -6
- package/dist/esm/mezon-client/structures/Clan.js.map +1 -1
- package/dist/esm/mezon-client/structures/TextChannel.d.ts +3 -1
- package/dist/esm/mezon-client/structures/TextChannel.js +10 -5
- package/dist/esm/mezon-client/structures/TextChannel.js.map +1 -1
- package/dist/esm/mezon-client/structures/User.d.ts +2 -2
- package/dist/esm/mezon-client/structures/User.js +21 -10
- package/dist/esm/mezon-client/structures/User.js.map +1 -1
- package/dist/esm/sqlite/MessageDatabase.d.ts +9 -0
- package/dist/esm/sqlite/MessageDatabase.js +79 -0
- package/dist/esm/sqlite/MessageDatabase.js.map +1 -0
- package/dist/esm/utils/helper.d.ts +3 -2
- package/dist/esm/utils/helper.js +5 -13
- package/dist/esm/utils/helper.js.map +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -1
|
@@ -8,25 +8,24 @@ export class SocketManager {
|
|
|
8
8
|
port;
|
|
9
9
|
useSSL;
|
|
10
10
|
adapter;
|
|
11
|
-
sessionManager;
|
|
12
11
|
apiClient;
|
|
13
|
-
apiKey;
|
|
14
12
|
eventManager;
|
|
15
13
|
messageQueue;
|
|
16
14
|
client;
|
|
15
|
+
messageDB;
|
|
17
16
|
socket;
|
|
18
17
|
isHardDisconnect;
|
|
19
|
-
|
|
18
|
+
isRetrying = false;
|
|
19
|
+
constructor(host, port, useSSL, adapter, apiClient, eventManager, messageQueue, client, messageDB) {
|
|
20
20
|
this.host = host;
|
|
21
21
|
this.port = port;
|
|
22
22
|
this.useSSL = useSSL;
|
|
23
23
|
this.adapter = adapter;
|
|
24
|
-
this.sessionManager = sessionManager;
|
|
25
24
|
this.apiClient = apiClient;
|
|
26
|
-
this.apiKey = apiKey;
|
|
27
25
|
this.eventManager = eventManager;
|
|
28
26
|
this.messageQueue = messageQueue;
|
|
29
27
|
this.client = client;
|
|
28
|
+
this.messageDB = messageDB;
|
|
30
29
|
this.socket = new DefaultSocket(this.host, this.port, this.useSSL, false, this.adapter);
|
|
31
30
|
}
|
|
32
31
|
createSocket() {
|
|
@@ -37,8 +36,8 @@ export class SocketManager {
|
|
|
37
36
|
return this.socket;
|
|
38
37
|
}
|
|
39
38
|
async connect(sockSession) {
|
|
40
|
-
const session = await this.socket.connect(sockSession, true);
|
|
41
39
|
this.isHardDisconnect = false;
|
|
40
|
+
const session = await this.socket.connect(sockSession, true);
|
|
42
41
|
return session;
|
|
43
42
|
}
|
|
44
43
|
closeSocket() {
|
|
@@ -76,7 +75,7 @@ export class SocketManager {
|
|
|
76
75
|
const clanObj = new Clan({
|
|
77
76
|
id: clan.clan_id,
|
|
78
77
|
name: clan?.clan_name ?? "unknown",
|
|
79
|
-
}, this.client, this.apiClient, this, sessionToken, this.messageQueue);
|
|
78
|
+
}, this.client, this.apiClient, this, sessionToken, this.messageQueue, this.messageDB);
|
|
80
79
|
this.client.clans.set(clan.clan_id, clanObj);
|
|
81
80
|
}
|
|
82
81
|
});
|
|
@@ -93,28 +92,27 @@ export class SocketManager {
|
|
|
93
92
|
}
|
|
94
93
|
}
|
|
95
94
|
async retriesConnect() {
|
|
95
|
+
if (this.isRetrying)
|
|
96
|
+
return;
|
|
97
|
+
this.isRetrying = true;
|
|
96
98
|
let retryInterval = 5000;
|
|
97
99
|
const maxRetryInterval = 60000;
|
|
98
100
|
console.log("Reconnecting...");
|
|
99
|
-
const
|
|
101
|
+
const retry = async () => {
|
|
100
102
|
try {
|
|
101
|
-
this.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
if (sessionConnected?.token) {
|
|
105
|
-
await this.connectSocket(sessionConnected.token);
|
|
106
|
-
}
|
|
103
|
+
const sessionStr = await this.client.login();
|
|
104
|
+
console.log("Reconnected session:", sessionStr);
|
|
105
|
+
this.isRetrying = false;
|
|
107
106
|
console.log("Connected successfully!");
|
|
108
|
-
clearInterval(interval);
|
|
109
107
|
}
|
|
110
108
|
catch (e) {
|
|
111
|
-
console.log("Connection failed!");
|
|
109
|
+
console.log("Connection failed!", e);
|
|
112
110
|
retryInterval = Math.min(retryInterval * 2, maxRetryInterval);
|
|
113
111
|
console.log(`Retrying in ${retryInterval / 1000} seconds...`);
|
|
114
|
-
|
|
115
|
-
setTimeout(() => this.retriesConnect(), retryInterval);
|
|
112
|
+
setTimeout(retry, retryInterval);
|
|
116
113
|
}
|
|
117
|
-
}
|
|
114
|
+
};
|
|
115
|
+
retry();
|
|
118
116
|
}
|
|
119
117
|
async writeChatMessage(dataWriteMessage) {
|
|
120
118
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket_manager.js","sourceRoot":"","sources":["../../../../src/mezon-client/manager/socket_manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"socket_manager.js","sourceRoot":"","sources":["../../../../src/mezon-client/manager/socket_manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAIjE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAS1C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,MAAM,OAAO,aAAa;IAMd;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAZF,MAAM,CAAS;IACf,gBAAgB,CAAsB;IACtC,UAAU,GAAG,KAAK,CAAC;IAC3B,YACU,IAAY,EACZ,IAAY,EACZ,MAAe,EACf,OAAyB,EACzB,SAAmB,EACnB,YAA0B,EAC1B,YAAgC,EAChC,MAAmB,EACnB,SAA0B;QAR1B,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAS;QACf,YAAO,GAAP,OAAO,CAAkB;QACzB,cAAS,GAAT,SAAS,CAAU;QACnB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,iBAAY,GAAZ,YAAY,CAAoB;QAChC,WAAM,GAAN,MAAM,CAAa;QACnB,cAAS,GAAT,SAAS,CAAiB;QAElC,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAC7B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,KAAK,EACL,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAC7B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,KAAK,EACL,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAoB;QAChC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC7D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW;QACT,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAe;QAC3B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAClC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;YACxB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,kBAAkB;QAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,CAAa;QACxB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAClC,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,YAAoB;QACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/C,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAQ,CAAC,EAAE;gBACzC,MAAM,OAAO,GAAG,IAAI,IAAI,CACtB;oBACE,EAAE,EAAE,IAAI,CAAC,OAAQ;oBACjB,IAAI,EAAE,IAAI,EAAE,SAAS,IAAI,SAAS;iBACnC,EACD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,IAAI,EACJ,YAAY,EACZ,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,SAAS,CACf,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAQ,EAAE,OAAO,CAAC,CAAC;aAC/C;QACH,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC,cAAc,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAClE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAI,IAAI,CAAC,KAAmB,CAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,KAA4B,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC5D,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;gBAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,MAAM,gBAAgB,GAAG,KAAK,CAAC;QAE/B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE/B,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;YACvB,IAAI;gBACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;gBAEhD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;aACxC;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;gBACrC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,eAAe,aAAa,GAAG,IAAI,aAAa,CAAC,CAAC;gBAE9D,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;aAClC;QACH,CAAC,CAAC;QAEF,KAAK,EAAE,CAAC;IACV,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,gBAAkC;QACvD,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC/C,gBAAgB,CAAC,OAAO,EACxB,gBAAgB,CAAC,UAAU,EAC3B,gBAAgB,CAAC,IAAI,EACrB,gBAAgB,CAAC,SAAS,EAC1B,gBAAgB,CAAC,OAAO,EACxB,gBAAgB,EAAE,QAAQ,IAAI,EAAE,EAChC,gBAAgB,EAAE,WAAW,IAAI,EAAE,EACnC,gBAAgB,EAAE,UAAU,IAAI,EAAE,EAClC,gBAAgB,EAAE,iBAAiB,EACnC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,IAAI,EACtB,gBAAgB,EAAE,QAAQ,CAC3B,CAAC;YACF,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,iBAAoC;QAC1D,IAAI;YACF,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAChD,iBAAiB,CAAC,OAAO,EACzB,iBAAiB,CAAC,UAAU,EAC5B,iBAAiB,CAAC,IAAI,EACtB,iBAAiB,CAAC,SAAS,EAC3B,iBAAiB,CAAC,UAAU,EAC5B,iBAAiB,CAAC,OAAO,EACzB,iBAAiB,EAAE,QAAQ,IAAI,EAAE,EACjC,iBAAiB,EAAE,WAAW,IAAI,EAAE,EACpC,iBAAiB,EAAE,WAAW,IAAI,KAAK,EACvC,iBAAiB,EAAE,QAAQ,CAC5B,CAAC;YACF,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,mBAAqC;QAC9D,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACnD,mBAAmB,CAAC,EAAE,IAAI,EAAE,EAC5B,mBAAmB,CAAC,OAAO,EAC3B,mBAAmB,CAAC,UAAU,EAC9B,mBAAmB,CAAC,IAAI,EACxB,mBAAmB,CAAC,SAAS,EAC7B,mBAAmB,CAAC,UAAU,EAC9B,mBAAmB,CAAC,QAAQ,EAC5B,mBAAmB,CAAC,KAAK,EACzB,mBAAmB,CAAC,KAAK,EACzB,mBAAmB,CAAC,iBAAiB,EACrC,mBAAmB,EAAE,aAAa,IAAI,KAAK,CAC5C,CAAC;YACF,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,iBAAoC;QAC1D,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAChD,iBAAiB,CAAC,OAAO,EACzB,iBAAiB,CAAC,UAAU,EAC5B,iBAAiB,CAAC,IAAI,EACtB,iBAAiB,CAAC,SAAS,EAC3B,iBAAiB,CAAC,UAAU,CAC7B,CAAC;YACF,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAC;SACb;IACH,CAAC;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MezonApi } from "../../api";
|
|
2
2
|
import { ApiRoleListEventResponse, ApiVoiceChannelUserList, MezonUpdateRoleBody } from "../../interfaces";
|
|
3
|
+
import { MessageDatabase } from "../../sqlite/MessageDatabase";
|
|
3
4
|
import { MezonClient } from "../client/MezonClient";
|
|
4
5
|
import { SocketManager } from "../manager/socket_manager";
|
|
5
6
|
import { AsyncThrottleQueue } from "../utils/AsyncThrottleQueue";
|
|
@@ -22,7 +23,8 @@ export declare class Clan {
|
|
|
22
23
|
private readonly client;
|
|
23
24
|
private readonly socketManager;
|
|
24
25
|
private readonly messageQueue;
|
|
25
|
-
|
|
26
|
+
private readonly messageDB;
|
|
27
|
+
constructor(initClanData: ClanInitData, client: MezonClient, apiClient: MezonApi, socketManager: SocketManager, sessionToken: string, messageQueue: AsyncThrottleQueue, messageDB: MessageDatabase);
|
|
26
28
|
loadChannels(): Promise<void>;
|
|
27
29
|
listChannelVoiceUsers(channel_id?: string, channel_type?: number, limit?: number, state?: number, cursor?: string): Promise<ApiVoiceChannelUserList>;
|
|
28
30
|
updateRole(roleId: string, request: MezonUpdateRoleBody): Promise<boolean>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ChannelType } from "../../constants";
|
|
2
2
|
import { CacheManager } from "../utils/CacheManager";
|
|
3
3
|
import { TextChannel } from "./TextChannel";
|
|
4
|
+
import { User } from "./User";
|
|
4
5
|
export class Clan {
|
|
5
6
|
id;
|
|
6
7
|
name;
|
|
@@ -15,7 +16,8 @@ export class Clan {
|
|
|
15
16
|
client;
|
|
16
17
|
socketManager;
|
|
17
18
|
messageQueue;
|
|
18
|
-
|
|
19
|
+
messageDB;
|
|
20
|
+
constructor(initClanData, client, apiClient, socketManager, sessionToken, messageQueue, messageDB) {
|
|
19
21
|
this.id = initClanData.id;
|
|
20
22
|
this.name = initClanData.name;
|
|
21
23
|
this.client = client;
|
|
@@ -23,14 +25,22 @@ export class Clan {
|
|
|
23
25
|
this.socketManager = socketManager;
|
|
24
26
|
this.messageQueue = messageQueue;
|
|
25
27
|
this.sessionToken = sessionToken;
|
|
28
|
+
this.messageDB = messageDB;
|
|
26
29
|
this.channels = new CacheManager(async (channelId) => {
|
|
27
30
|
return this.client.channels.fetch(channelId);
|
|
28
31
|
});
|
|
29
32
|
this.users = new CacheManager(async (user_id) => {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
const dmChannel = await this.client.createDMchannel(user_id);
|
|
34
|
+
if (!dmChannel || !dmChannel?.channel_id) {
|
|
35
|
+
throw Error(`User ${user_id} not found in this clan ${this.id}!`);
|
|
36
|
+
}
|
|
37
|
+
const userRaw = {
|
|
38
|
+
id: user_id,
|
|
39
|
+
dmChannelId: dmChannel.channel_id,
|
|
40
|
+
};
|
|
41
|
+
const user = new User(userRaw, this, this.messageQueue, this.socketManager);
|
|
42
|
+
this.users.set(user_id, user);
|
|
43
|
+
return user;
|
|
34
44
|
});
|
|
35
45
|
}
|
|
36
46
|
async loadChannels() {
|
|
@@ -43,7 +53,7 @@ export class Clan {
|
|
|
43
53
|
const validChannels = channels?.channeldesc?.filter((c) => Object.keys(c).length > 0) ??
|
|
44
54
|
[];
|
|
45
55
|
for (const channel of validChannels) {
|
|
46
|
-
const channelObj = new TextChannel({ ...channel, type: channel?.channel_type || channel?.type }, this, this.socketManager, this.messageQueue);
|
|
56
|
+
const channelObj = new TextChannel({ ...channel, type: channel?.channel_type || channel?.type }, this, this.socketManager, this.messageQueue, this.messageDB);
|
|
47
57
|
this.channels.set(channel.channel_id, channelObj);
|
|
48
58
|
this.client.channels.set(channel.channel_id, channelObj);
|
|
49
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Clan.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/Clan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Clan.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/Clan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ApiChannelDescription, ApiMessageAttachment, ApiMessageMention, ChannelMessageContent } from "../../interfaces";
|
|
2
|
+
import { MessageDatabase } from "../../sqlite/MessageDatabase";
|
|
2
3
|
import { SocketManager } from "../manager/socket_manager";
|
|
3
4
|
import { AsyncThrottleQueue } from "../utils/AsyncThrottleQueue";
|
|
4
5
|
import { CacheManager } from "../utils/CacheManager";
|
|
@@ -16,6 +17,7 @@ export declare class TextChannel {
|
|
|
16
17
|
messages: CacheManager<string, Message>;
|
|
17
18
|
private readonly socketManager;
|
|
18
19
|
private readonly messageQueue;
|
|
19
|
-
|
|
20
|
+
private messageDB;
|
|
21
|
+
constructor(initChannelData: ApiChannelDescription, clan: Clan, socketManager: SocketManager, messageQueue: AsyncThrottleQueue, messageDB: MessageDatabase);
|
|
20
22
|
send(content: ChannelMessageContent, mentions?: Array<ApiMessageMention>, attachments?: Array<ApiMessageAttachment>, mention_everyone?: boolean, anonymous_message?: boolean, topic_id?: string, code?: number): Promise<import("../../interfaces").ChannelMessageAck>;
|
|
21
23
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { convertChanneltypeToChannelMode } from "../../utils/helper";
|
|
2
2
|
import { CacheManager } from "../utils/CacheManager";
|
|
3
|
+
import { Message } from "./Message";
|
|
3
4
|
export class TextChannel {
|
|
4
5
|
id;
|
|
5
6
|
name;
|
|
@@ -12,7 +13,8 @@ export class TextChannel {
|
|
|
12
13
|
messages;
|
|
13
14
|
socketManager;
|
|
14
15
|
messageQueue;
|
|
15
|
-
|
|
16
|
+
messageDB;
|
|
17
|
+
constructor(initChannelData, clan, socketManager, messageQueue, messageDB) {
|
|
16
18
|
this.id = initChannelData.channel_id;
|
|
17
19
|
this.name = initChannelData.channel_label;
|
|
18
20
|
this.channel_type = initChannelData?.type;
|
|
@@ -22,13 +24,16 @@ export class TextChannel {
|
|
|
22
24
|
this.parent_id = initChannelData?.parent_id ?? "";
|
|
23
25
|
this.clan = clan;
|
|
24
26
|
this.messages = new CacheManager(async (message_id) => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
const messageDb = this.messageDB.getMessageById(message_id, this.id);
|
|
28
|
+
if (!messageDb) {
|
|
29
|
+
throw Error(`Message ${message_id} not found on channel ${this.id}!`);
|
|
30
|
+
}
|
|
31
|
+
const newMessage = new Message(messageDb, this, this.socketManager, this.messageQueue);
|
|
32
|
+
return newMessage;
|
|
29
33
|
}, 200);
|
|
30
34
|
this.socketManager = socketManager;
|
|
31
35
|
this.messageQueue = messageQueue;
|
|
36
|
+
this.messageDB = messageDB;
|
|
32
37
|
}
|
|
33
38
|
async send(content, mentions, attachments, mention_everyone, anonymous_message, topic_id, code) {
|
|
34
39
|
return this.messageQueue.enqueue(async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextChannel.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/TextChannel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TextChannel.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/TextChannel.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,OAAO,WAAW;IACf,EAAE,CAAqB;IACvB,IAAI,CAAqB;IACzB,UAAU,CAAU;IACpB,YAAY,CAAqB;IACjC,WAAW,CAAqB;IAChC,aAAa,CAAqB;IAClC,SAAS,CAAqB;IAE9B,IAAI,CAAO;IACX,QAAQ,CAAgC;IAE9B,aAAa,CAAgB;IAC7B,YAAY,CAAqB;IAC1C,SAAS,CAAkB;IAEnC,YACE,eAAsC,EACtC,IAAU,EACV,aAA4B,EAC5B,YAAgC,EAChC,SAA0B;QAE1B,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,eAAe,EAAE,IAAI,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,WAAW,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,aAAa,GAAG,eAAe,EAAE,aAAa,IAAI,EAAE,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,eAAe,EAAE,SAAS,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAkB,KAAK,EAAE,UAAU,EAAE,EAAE;YACrE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,EAAG,CAAC,CAAC;YACtE,IAAI,CAAC,SAAS,EAAE;gBACd,MAAM,KAAK,CAAC,WAAW,UAAU,yBAAyB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;aACvE;YACD,MAAM,UAAU,GAAG,IAAI,OAAO,CAC5B,SAAS,EACT,IAAI,EACJ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,YAAY,CAClB,CAAC;YACF,OAAO,UAAU,CAAC;QACpB,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI,CACR,OAA8B,EAC9B,QAAmC,EACnC,WAAyC,EACzC,gBAA0B,EAC1B,iBAA2B,EAC3B,QAAiB,EACjB,IAAa;QAEb,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1C,MAAM,QAAQ,GAAqB;gBACjC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBACrB,UAAU,EAAE,IAAI,CAAC,EAAG;gBACpB,IAAI,EAAE,+BAA+B,CAAC,IAAI,CAAC,YAAa,CAAC;gBACzD,SAAS,EAAE,CAAC,IAAI,CAAC,UAAU;gBAC3B,OAAO;gBACP,QAAQ;gBACR,WAAW;gBACX,iBAAiB;gBACjB,gBAAgB;gBAChB,IAAI;gBACJ,QAAQ;aACT,CAAC;YACF,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -24,8 +24,8 @@ export declare class User {
|
|
|
24
24
|
private readonly channelManager;
|
|
25
25
|
private readonly messageQueue;
|
|
26
26
|
private readonly socketManager;
|
|
27
|
-
constructor(initUserData: UserInitData, clan: Clan,
|
|
27
|
+
constructor(initUserData: UserInitData, clan: Clan, messageQueue: AsyncThrottleQueue, socketManager: SocketManager, channelManager?: ChannelManager);
|
|
28
28
|
sendToken(sendTokenData: SendTokenData): Promise<any>;
|
|
29
29
|
sendDM(content: ChannelMessageContent, code?: number): Promise<import("../../interfaces").ChannelMessageAck>;
|
|
30
|
-
createDmChannel(): Promise<import("../../interfaces").ApiChannelDescription>;
|
|
30
|
+
createDmChannel(): Promise<import("../../interfaces").ApiChannelDescription | null>;
|
|
31
31
|
}
|
|
@@ -11,14 +11,14 @@ export class User {
|
|
|
11
11
|
channelManager;
|
|
12
12
|
messageQueue;
|
|
13
13
|
socketManager;
|
|
14
|
-
constructor(initUserData, clan,
|
|
14
|
+
constructor(initUserData, clan, messageQueue, socketManager, channelManager) {
|
|
15
15
|
this.id = initUserData.id;
|
|
16
|
-
this.avartar = initUserData.avartar ??
|
|
17
|
-
this.dmChannelId = initUserData?.dmChannelId ??
|
|
18
|
-
this.username = initUserData?.username ??
|
|
19
|
-
this.clan_nick = initUserData?.clan_nick ??
|
|
20
|
-
this.clan_avatar = initUserData?.clan_avatar ??
|
|
21
|
-
this.display_name = initUserData?.display_name ??
|
|
16
|
+
this.avartar = initUserData.avartar ?? "";
|
|
17
|
+
this.dmChannelId = initUserData?.dmChannelId ?? "";
|
|
18
|
+
this.username = initUserData?.username ?? "";
|
|
19
|
+
this.clan_nick = initUserData?.clan_nick ?? "";
|
|
20
|
+
this.clan_avatar = initUserData?.clan_avatar ?? "";
|
|
21
|
+
this.display_name = initUserData?.display_name ?? "";
|
|
22
22
|
this.clan = clan;
|
|
23
23
|
this.channelManager = channelManager;
|
|
24
24
|
this.messageQueue = messageQueue;
|
|
@@ -31,7 +31,12 @@ export class User {
|
|
|
31
31
|
note: sendTokenData?.note ?? "",
|
|
32
32
|
extra_attribute: sendTokenData?.extra_attribute ?? "",
|
|
33
33
|
};
|
|
34
|
-
|
|
34
|
+
try {
|
|
35
|
+
return this.clan.apiClient.sendToken(this.clan.sessionToken, dataSendToken);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
console.log("Error sendToken");
|
|
39
|
+
}
|
|
35
40
|
}
|
|
36
41
|
async sendDM(content, code) {
|
|
37
42
|
return this.messageQueue.enqueue(async () => {
|
|
@@ -53,8 +58,14 @@ export class User {
|
|
|
53
58
|
});
|
|
54
59
|
}
|
|
55
60
|
async createDmChannel() {
|
|
56
|
-
|
|
57
|
-
|
|
61
|
+
try {
|
|
62
|
+
const dmChannel = await this.channelManager?.createDMchannel(this.id);
|
|
63
|
+
return dmChannel ?? {};
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.log("Error createDmChannel User");
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
58
69
|
}
|
|
59
70
|
}
|
|
60
71
|
//# sourceMappingURL=User.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAoBpD,MAAM,OAAO,IAAI;IACR,EAAE,CAAS;IACX,QAAQ,CAAS;IACjB,SAAS,CAAS;IAClB,WAAW,CAAS;IACpB,YAAY,CAAS;IACrB,OAAO,CAAS;IAChB,WAAW,CAAS;IACnB,IAAI,CAAO;IACF,cAAc,
|
|
1
|
+
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/User.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ChannelMessage } from "../interfaces";
|
|
2
|
+
export declare class MessageDatabase {
|
|
3
|
+
private db;
|
|
4
|
+
constructor(dbPath?: string);
|
|
5
|
+
private ensureGitIgnore;
|
|
6
|
+
private init;
|
|
7
|
+
saveMessage(message: ChannelMessage): void;
|
|
8
|
+
getMessageById(messageId: string, channelId: string): any;
|
|
9
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import Database from "better-sqlite3";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
export class MessageDatabase {
|
|
5
|
+
db;
|
|
6
|
+
constructor(dbPath = "./mezon-cache/mezon-messages-cache.db") {
|
|
7
|
+
const dir = path.dirname(dbPath);
|
|
8
|
+
if (!fs.existsSync(dir)) {
|
|
9
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
10
|
+
}
|
|
11
|
+
this.ensureGitIgnore(dbPath);
|
|
12
|
+
this.db = new Database(dbPath);
|
|
13
|
+
this.init();
|
|
14
|
+
}
|
|
15
|
+
ensureGitIgnore(dbPath) {
|
|
16
|
+
const gitignorePath = path.resolve(".gitignore");
|
|
17
|
+
const dirName = path.dirname(dbPath);
|
|
18
|
+
let relativeDir = dirName.replace(/\\/g, "/");
|
|
19
|
+
if (relativeDir.startsWith("./")) {
|
|
20
|
+
relativeDir = relativeDir.slice(2);
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
let gitignoreContent = "";
|
|
24
|
+
if (fs.existsSync(gitignorePath)) {
|
|
25
|
+
gitignoreContent = fs.readFileSync(gitignorePath, "utf-8");
|
|
26
|
+
}
|
|
27
|
+
if (!gitignoreContent.includes(relativeDir)) {
|
|
28
|
+
fs.appendFileSync(gitignorePath, `\n# Mezon cache\n/${relativeDir}`);
|
|
29
|
+
console.log(`[mezon] Added "${relativeDir}" to .gitignore`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
console.warn("[mezon] Could not modify .gitignore:", err);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
init() {
|
|
37
|
+
this.db
|
|
38
|
+
.prepare(`CREATE TABLE IF NOT EXISTS messages (
|
|
39
|
+
id TEXT PRIMARY KEY,
|
|
40
|
+
clan_id TEXT,
|
|
41
|
+
channel_id TEXT,
|
|
42
|
+
sender_id TEXT,
|
|
43
|
+
content TEXT,
|
|
44
|
+
mentions TEXT,
|
|
45
|
+
attachments TEXT,
|
|
46
|
+
reactions TEXT,
|
|
47
|
+
msg_references TEXT,
|
|
48
|
+
topic_id TEXT,
|
|
49
|
+
create_time_seconds INTEGER
|
|
50
|
+
)`)
|
|
51
|
+
.run();
|
|
52
|
+
this.db
|
|
53
|
+
.prepare(`CREATE INDEX IF NOT EXISTS idx_channel_id_id ON messages(channel_id, id)`)
|
|
54
|
+
.run();
|
|
55
|
+
}
|
|
56
|
+
saveMessage(message) {
|
|
57
|
+
const stmt = this.db.prepare(`INSERT OR REPLACE INTO messages (
|
|
58
|
+
id, clan_id, channel_id, sender_id,
|
|
59
|
+
content, mentions, attachments, reactions,
|
|
60
|
+
msg_references, topic_id, create_time_seconds
|
|
61
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
|
|
62
|
+
stmt.run(message.message_id, message.clan_id, message.channel_id, message.sender_id, JSON.stringify(message.content ?? {}), JSON.stringify(message.mentions ?? []), JSON.stringify(message.attachments ?? []), JSON.stringify(message.reactions ?? []), JSON.stringify(message.references ?? []), message.topic_id ?? null, message.create_time_seconds ?? null);
|
|
63
|
+
}
|
|
64
|
+
getMessageById(messageId, channelId) {
|
|
65
|
+
const stmt = this.db.prepare(`SELECT * FROM messages WHERE channel_id = ? AND id = ? LIMIT 1`);
|
|
66
|
+
const row = stmt.get(channelId, messageId);
|
|
67
|
+
if (!row)
|
|
68
|
+
return null;
|
|
69
|
+
return {
|
|
70
|
+
...row,
|
|
71
|
+
content: JSON.parse(row.content),
|
|
72
|
+
mentions: JSON.parse(row.mentions),
|
|
73
|
+
attachments: JSON.parse(row.attachments),
|
|
74
|
+
reactions: JSON.parse(row.reactions),
|
|
75
|
+
references: JSON.parse(row.msg_references),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=MessageDatabase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageDatabase.js","sourceRoot":"","sources":["../../../src/sqlite/MessageDatabase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ChannelStreamMode, InternalEventsSocket } from "../constants";
|
|
2
2
|
export declare function convertInternalEventToEvents(input: InternalEventsSocket): string;
|
|
3
|
-
export declare function convertChanneltypeToChannelMode(channelType: string | number): ChannelStreamMode.STREAM_MODE_CHANNEL | ChannelStreamMode.STREAM_MODE_GROUP | ChannelStreamMode.STREAM_MODE_DM | ChannelStreamMode.STREAM_MODE_THREAD
|
|
3
|
+
export declare function convertChanneltypeToChannelMode(channelType: string | number): 0 | ChannelStreamMode.STREAM_MODE_CHANNEL | ChannelStreamMode.STREAM_MODE_GROUP | ChannelStreamMode.STREAM_MODE_DM | ChannelStreamMode.STREAM_MODE_THREAD;
|
|
4
4
|
export declare function isValidUserId(userId: string | number): boolean;
|
|
5
5
|
export declare function sleep(ms: number): Promise<unknown>;
|
|
6
|
-
export declare function parseUrlToHostAndSSL(
|
|
6
|
+
export declare function parseUrlToHostAndSSL(urlStr: string): {
|
|
7
7
|
host: string;
|
|
8
|
+
port: string;
|
|
8
9
|
useSSL: boolean;
|
|
9
10
|
};
|
package/dist/esm/utils/helper.js
CHANGED
|
@@ -25,20 +25,12 @@ export function isValidUserId(userId) {
|
|
|
25
25
|
export function sleep(ms) {
|
|
26
26
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
27
27
|
}
|
|
28
|
-
export function parseUrlToHostAndSSL(
|
|
29
|
-
const
|
|
30
|
-
const isHttps = trimmedUrl.startsWith("https://");
|
|
31
|
-
const isHttp = trimmedUrl.startsWith("http://");
|
|
32
|
-
if (isHttps || isHttp) {
|
|
33
|
-
const withoutScheme = trimmedUrl.replace(/^https?:\/\//, "");
|
|
34
|
-
return {
|
|
35
|
-
host: withoutScheme.replace(/\/$/, ""),
|
|
36
|
-
useSSL: isHttps,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
28
|
+
export function parseUrlToHostAndSSL(urlStr) {
|
|
29
|
+
const url = new URL(urlStr);
|
|
39
30
|
return {
|
|
40
|
-
host:
|
|
41
|
-
|
|
31
|
+
host: url.hostname,
|
|
32
|
+
port: url.port || (url.protocol === "https:" ? "443" : "80"),
|
|
33
|
+
useSSL: url.protocol === "https:",
|
|
42
34
|
};
|
|
43
35
|
}
|
|
44
36
|
//# sourceMappingURL=helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../src/utils/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,WAAW,GAEZ,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,4BAA4B,CAC1C,KAA2B;IAE3B,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,WAA4B;IAC1E,QAAQ,MAAM,CAAC,WAAW,CAAC,EAAE;QAC3B,KAAK,WAAW,CAAC,eAAe;YAC9B,OAAO,iBAAiB,CAAC,cAAc,CAAC;QAC1C,KAAK,WAAW,CAAC,kBAAkB;YACjC,OAAO,iBAAiB,CAAC,iBAAiB,CAAC;QAC7C,KAAK,WAAW,CAAC,oBAAoB;YACnC,OAAO,iBAAiB,CAAC,mBAAmB,CAAC;QAC/C,KAAK,WAAW,CAAC,mBAAmB;YAClC,OAAO,iBAAiB,CAAC,kBAAkB,CAAC;KAC/C;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAuB;IACnD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEhC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../src/utils/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,WAAW,GAEZ,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,4BAA4B,CAC1C,KAA2B;IAE3B,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,WAA4B;IAC1E,QAAQ,MAAM,CAAC,WAAW,CAAC,EAAE;QAC3B,KAAK,WAAW,CAAC,eAAe;YAC9B,OAAO,iBAAiB,CAAC,cAAc,CAAC;QAC1C,KAAK,WAAW,CAAC,kBAAkB;YACjC,OAAO,iBAAiB,CAAC,iBAAiB,CAAC;QAC7C,KAAK,WAAW,CAAC,oBAAoB;YACnC,OAAO,iBAAiB,CAAC,mBAAmB,CAAC;QAC/C,KAAK,WAAW,CAAC,mBAAmB;YAClC,OAAO,iBAAiB,CAAC,kBAAkB,CAAC;KAC/C;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAuB;IACnD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEhC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAc;IAKjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,QAAQ;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,QAAQ;KAClC,CAAC;AACJ,CAAC"}
|