@mtcute/convert 0.17.0 → 0.18.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/convert/src/dcs.cjs +119 -0
- package/convert/src/dcs.js +114 -0
- package/convert/src/gramjs/convert.cjs +30 -0
- package/convert/src/gramjs/convert.js +25 -0
- package/convert/src/gramjs/parse.cjs +33 -0
- package/convert/src/gramjs/parse.js +28 -0
- package/convert/src/gramjs/serialize.cjs +26 -0
- package/convert/src/gramjs/serialize.js +21 -0
- package/convert/src/mtkruto/convert.cjs +33 -0
- package/convert/src/mtkruto/convert.js +28 -0
- package/convert/src/mtkruto/parse.cjs +31 -0
- package/convert/src/mtkruto/parse.js +26 -0
- package/convert/src/mtkruto/serialize.cjs +18 -0
- package/convert/src/mtkruto/serialize.js +13 -0
- package/convert/src/pyrogram/convert.cjs +42 -0
- package/convert/src/pyrogram/convert.js +37 -0
- package/convert/src/pyrogram/parse.cjs +52 -0
- package/convert/src/pyrogram/parse.js +47 -0
- package/convert/src/pyrogram/serialize.cjs +40 -0
- package/convert/src/pyrogram/serialize.js +35 -0
- package/convert/src/tdesktop/convert.cjs +66 -0
- package/convert/src/tdesktop/convert.js +61 -0
- package/convert/src/tdesktop/qt-bundle.cjs +11 -0
- package/convert/src/tdesktop/qt-bundle.js +6 -0
- package/convert/src/tdesktop/qt-reader.cjs +38 -0
- package/convert/src/tdesktop/qt-reader.js +33 -0
- package/convert/src/tdesktop/qt-writer.cjs +34 -0
- package/convert/src/tdesktop/qt-writer.js +29 -0
- package/convert/src/tdesktop/tdata.cjs +359 -0
- package/convert/src/tdesktop/tdata.js +332 -0
- package/convert/src/telethon/convert.cjs +47 -0
- package/convert/src/telethon/convert.js +42 -0
- package/convert/src/telethon/parse.cjs +39 -0
- package/convert/src/telethon/parse.js +34 -0
- package/convert/src/telethon/serialize.cjs +34 -0
- package/convert/src/telethon/serialize.js +29 -0
- package/convert/src/utils/crypto.cjs +53 -0
- package/convert/src/utils/crypto.js +26 -0
- package/convert/src/utils/rle.cjs +49 -0
- package/convert/src/utils/rle.js +44 -0
- package/dcs.d.cts +4 -0
- package/gramjs/__fixtures__/session.d.cts +1 -0
- package/gramjs/convert.d.cts +4 -0
- package/gramjs/convert.test.d.cts +1 -0
- package/gramjs/index.d.cts +4 -0
- package/gramjs/parse.d.cts +2 -0
- package/gramjs/parse.test.d.cts +1 -0
- package/gramjs/serialize.d.cts +2 -0
- package/gramjs/serialize.test.d.cts +1 -0
- package/gramjs/types.d.cts +7 -0
- package/index.cjs +41 -488
- package/index.d.cts +1 -0
- package/index.d.ts +1 -0
- package/index.js +20 -467
- package/mtkruto/__fixtures__/session.d.cts +1 -0
- package/mtkruto/convert.d.cts +4 -0
- package/mtkruto/convert.test.d.cts +1 -0
- package/mtkruto/index.d.cts +4 -0
- package/mtkruto/parse.d.cts +2 -0
- package/mtkruto/parse.test.d.cts +1 -0
- package/mtkruto/serialize.d.cts +2 -0
- package/mtkruto/serialize.test.d.cts +1 -0
- package/mtkruto/types.d.cts +5 -0
- package/node/src/utils/crypto.cjs +75 -0
- package/node/src/utils/crypto.js +69 -0
- package/node/src/utils.cjs +34 -0
- package/node/src/utils.js +7 -0
- package/package.json +12 -9
- package/pyrogram/__fixtures__/session.d.cts +1 -0
- package/pyrogram/__fixtures__/session_old.d.cts +1 -0
- package/pyrogram/convert.d.cts +6 -0
- package/pyrogram/convert.test.d.cts +1 -0
- package/pyrogram/index.d.cts +4 -0
- package/pyrogram/parse.d.cts +2 -0
- package/pyrogram/parse.test.d.cts +1 -0
- package/pyrogram/serialize.d.cts +2 -0
- package/pyrogram/serialize.test.d.cts +1 -0
- package/pyrogram/types.d.cts +8 -0
- package/tdesktop/convert.d.cts +5 -0
- package/tdesktop/convert.d.ts +5 -0
- package/tdesktop/index.d.cts +5 -0
- package/tdesktop/index.d.ts +5 -0
- package/tdesktop/qt-bundle.d.cts +3 -0
- package/tdesktop/qt-bundle.d.ts +3 -0
- package/tdesktop/qt-reader.d.cts +6 -0
- package/tdesktop/qt-reader.d.ts +6 -0
- package/tdesktop/qt-writer.d.cts +6 -0
- package/tdesktop/qt-writer.d.ts +6 -0
- package/tdesktop/tdata.d.cts +65 -0
- package/tdesktop/tdata.d.ts +65 -0
- package/tdesktop/tdata.test.d.cts +1 -0
- package/tdesktop/tdata.test.d.ts +1 -0
- package/tdesktop/types.d.cts +22 -0
- package/tdesktop/types.d.ts +22 -0
- package/telethon/__fixtures__/session.d.cts +1 -0
- package/telethon/__fixtures__/session_v6.d.cts +1 -0
- package/telethon/convert.d.cts +4 -0
- package/telethon/convert.test.d.cts +1 -0
- package/telethon/index.d.cts +4 -0
- package/telethon/parse.d.cts +2 -0
- package/telethon/parse.test.d.cts +1 -0
- package/telethon/serialize.d.cts +2 -0
- package/telethon/serialize.test.d.cts +1 -0
- package/telethon/types.d.cts +7 -0
- package/types.d.cts +0 -0
- package/utils/crypto.d.cts +9 -0
- package/utils/crypto.d.ts +9 -0
- package/utils/fs.d.cts +11 -0
- package/utils/fs.d.ts +11 -0
- package/utils/rle.d.cts +3 -0
- package/wasm/src/index.cjs +64 -0
- package/wasm/src/index.js +59 -0
- package/utils/ip.d.ts +0 -3
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
if (typeof globalThis !== "undefined" && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
|
|
2
|
+
globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true;
|
|
3
|
+
console.warn("[mtcute-workspace] CommonJS support is deprecated and will be removed in 0.20.0. Please consider switching to ESM, it's " + (/* @__PURE__ */ new Date()).getFullYear() + " already.");
|
|
4
|
+
console.warn("[mtcute-workspace] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c");
|
|
5
|
+
}
|
|
6
|
+
"use strict";
|
|
7
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
8
|
+
const utils = require("@fuman/utils");
|
|
9
|
+
const core = require("@mtcute/core");
|
|
10
|
+
const utils_js = require("@mtcute/core/utils.js");
|
|
11
|
+
const SESSION_STRING_SIZE = 351;
|
|
12
|
+
const SESSION_STRING_SIZE_64 = 356;
|
|
13
|
+
function parsePyrogramSession(session) {
|
|
14
|
+
const data = utils.base64.decode(session, true);
|
|
15
|
+
const dv = utils.typed.toDataView(data);
|
|
16
|
+
if (session.length === SESSION_STRING_SIZE || session.length === SESSION_STRING_SIZE_64) {
|
|
17
|
+
const dcId2 = dv.getUint8(0);
|
|
18
|
+
const isTest2 = dv.getUint8(1) !== 0;
|
|
19
|
+
const authKey2 = data.subarray(2, 258);
|
|
20
|
+
let userId2;
|
|
21
|
+
if (data.length === SESSION_STRING_SIZE) {
|
|
22
|
+
userId2 = dv.getUint32(258);
|
|
23
|
+
} else {
|
|
24
|
+
const high = dv.getUint32(258);
|
|
25
|
+
const low = dv.getUint32(262);
|
|
26
|
+
userId2 = core.Long.fromBits(low, high).toNumber();
|
|
27
|
+
}
|
|
28
|
+
const isBot2 = dv.getUint8(data.length - 1) !== 0;
|
|
29
|
+
return {
|
|
30
|
+
dcId: dcId2,
|
|
31
|
+
isTest: isTest2,
|
|
32
|
+
authKey: authKey2,
|
|
33
|
+
userId: userId2,
|
|
34
|
+
isBot: isBot2
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const dcId = dv.getUint8(0);
|
|
38
|
+
const apiId = dv.getUint32(1);
|
|
39
|
+
const isTest = dv.getUint8(5) !== 0;
|
|
40
|
+
const authKey = data.subarray(6, 262);
|
|
41
|
+
const userId = utils_js.longFromBuffer(data.subarray(262, 270), true, false).toNumber();
|
|
42
|
+
const isBot = dv.getUint8(270) !== 0;
|
|
43
|
+
return {
|
|
44
|
+
dcId,
|
|
45
|
+
apiId,
|
|
46
|
+
isTest,
|
|
47
|
+
authKey,
|
|
48
|
+
userId,
|
|
49
|
+
isBot
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
exports.parsePyrogramSession = parsePyrogramSession;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { base64, typed } from "@fuman/utils";
|
|
2
|
+
import { Long } from "@mtcute/core";
|
|
3
|
+
import { longFromBuffer } from "@mtcute/core/utils.js";
|
|
4
|
+
const SESSION_STRING_SIZE = 351;
|
|
5
|
+
const SESSION_STRING_SIZE_64 = 356;
|
|
6
|
+
function parsePyrogramSession(session) {
|
|
7
|
+
const data = base64.decode(session, true);
|
|
8
|
+
const dv = typed.toDataView(data);
|
|
9
|
+
if (session.length === SESSION_STRING_SIZE || session.length === SESSION_STRING_SIZE_64) {
|
|
10
|
+
const dcId2 = dv.getUint8(0);
|
|
11
|
+
const isTest2 = dv.getUint8(1) !== 0;
|
|
12
|
+
const authKey2 = data.subarray(2, 258);
|
|
13
|
+
let userId2;
|
|
14
|
+
if (data.length === SESSION_STRING_SIZE) {
|
|
15
|
+
userId2 = dv.getUint32(258);
|
|
16
|
+
} else {
|
|
17
|
+
const high = dv.getUint32(258);
|
|
18
|
+
const low = dv.getUint32(262);
|
|
19
|
+
userId2 = Long.fromBits(low, high).toNumber();
|
|
20
|
+
}
|
|
21
|
+
const isBot2 = dv.getUint8(data.length - 1) !== 0;
|
|
22
|
+
return {
|
|
23
|
+
dcId: dcId2,
|
|
24
|
+
isTest: isTest2,
|
|
25
|
+
authKey: authKey2,
|
|
26
|
+
userId: userId2,
|
|
27
|
+
isBot: isBot2
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const dcId = dv.getUint8(0);
|
|
31
|
+
const apiId = dv.getUint32(1);
|
|
32
|
+
const isTest = dv.getUint8(5) !== 0;
|
|
33
|
+
const authKey = data.subarray(6, 262);
|
|
34
|
+
const userId = longFromBuffer(data.subarray(262, 270), true, false).toNumber();
|
|
35
|
+
const isBot = dv.getUint8(270) !== 0;
|
|
36
|
+
return {
|
|
37
|
+
dcId,
|
|
38
|
+
apiId,
|
|
39
|
+
isTest,
|
|
40
|
+
authKey,
|
|
41
|
+
userId,
|
|
42
|
+
isBot
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export {
|
|
46
|
+
parsePyrogramSession
|
|
47
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
if (typeof globalThis !== "undefined" && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
|
|
2
|
+
globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true;
|
|
3
|
+
console.warn("[mtcute-workspace] CommonJS support is deprecated and will be removed in 0.20.0. Please consider switching to ESM, it's " + (/* @__PURE__ */ new Date()).getFullYear() + " already.");
|
|
4
|
+
console.warn("[mtcute-workspace] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c");
|
|
5
|
+
}
|
|
6
|
+
"use strict";
|
|
7
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
8
|
+
const utils = require("@fuman/utils");
|
|
9
|
+
const core = require("@mtcute/core");
|
|
10
|
+
const SESSION_STRING_SIZE_OLD = 267;
|
|
11
|
+
const SESSION_STRING_SIZE = 271;
|
|
12
|
+
function serializePyrogramSession(session) {
|
|
13
|
+
if (session.authKey.length !== 256) {
|
|
14
|
+
throw new core.MtArgumentError("authKey must be 256 bytes long");
|
|
15
|
+
}
|
|
16
|
+
const userIdLong = core.Long.fromNumber(session.userId, true);
|
|
17
|
+
let buf;
|
|
18
|
+
if (session.apiId === void 0) {
|
|
19
|
+
buf = utils.u8.alloc(SESSION_STRING_SIZE_OLD);
|
|
20
|
+
const dv = utils.typed.toDataView(buf);
|
|
21
|
+
dv.setUint8(0, session.dcId);
|
|
22
|
+
dv.setUint8(1, session.isTest ? 1 : 0);
|
|
23
|
+
buf.set(session.authKey, 2);
|
|
24
|
+
dv.setUint32(258, userIdLong.high);
|
|
25
|
+
dv.setUint32(262, userIdLong.low);
|
|
26
|
+
dv.setUint8(266, session.isBot ? 1 : 0);
|
|
27
|
+
} else {
|
|
28
|
+
buf = utils.u8.alloc(SESSION_STRING_SIZE);
|
|
29
|
+
const dv = utils.typed.toDataView(buf);
|
|
30
|
+
dv.setUint8(0, session.dcId);
|
|
31
|
+
dv.setUint32(1, session.apiId);
|
|
32
|
+
dv.setUint8(5, session.isTest ? 1 : 0);
|
|
33
|
+
buf.set(session.authKey, 6);
|
|
34
|
+
dv.setUint32(262, userIdLong.high);
|
|
35
|
+
dv.setUint32(266, userIdLong.low);
|
|
36
|
+
dv.setUint8(270, session.isBot ? 1 : 0);
|
|
37
|
+
}
|
|
38
|
+
return utils.base64.encode(buf, true);
|
|
39
|
+
}
|
|
40
|
+
exports.serializePyrogramSession = serializePyrogramSession;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { u8, typed, base64 } from "@fuman/utils";
|
|
2
|
+
import { MtArgumentError, Long } from "@mtcute/core";
|
|
3
|
+
const SESSION_STRING_SIZE_OLD = 267;
|
|
4
|
+
const SESSION_STRING_SIZE = 271;
|
|
5
|
+
function serializePyrogramSession(session) {
|
|
6
|
+
if (session.authKey.length !== 256) {
|
|
7
|
+
throw new MtArgumentError("authKey must be 256 bytes long");
|
|
8
|
+
}
|
|
9
|
+
const userIdLong = Long.fromNumber(session.userId, true);
|
|
10
|
+
let buf;
|
|
11
|
+
if (session.apiId === void 0) {
|
|
12
|
+
buf = u8.alloc(SESSION_STRING_SIZE_OLD);
|
|
13
|
+
const dv = typed.toDataView(buf);
|
|
14
|
+
dv.setUint8(0, session.dcId);
|
|
15
|
+
dv.setUint8(1, session.isTest ? 1 : 0);
|
|
16
|
+
buf.set(session.authKey, 2);
|
|
17
|
+
dv.setUint32(258, userIdLong.high);
|
|
18
|
+
dv.setUint32(262, userIdLong.low);
|
|
19
|
+
dv.setUint8(266, session.isBot ? 1 : 0);
|
|
20
|
+
} else {
|
|
21
|
+
buf = u8.alloc(SESSION_STRING_SIZE);
|
|
22
|
+
const dv = typed.toDataView(buf);
|
|
23
|
+
dv.setUint8(0, session.dcId);
|
|
24
|
+
dv.setUint32(1, session.apiId);
|
|
25
|
+
dv.setUint8(5, session.isTest ? 1 : 0);
|
|
26
|
+
buf.set(session.authKey, 6);
|
|
27
|
+
dv.setUint32(262, userIdLong.high);
|
|
28
|
+
dv.setUint32(266, userIdLong.low);
|
|
29
|
+
dv.setUint8(270, session.isBot ? 1 : 0);
|
|
30
|
+
}
|
|
31
|
+
return base64.encode(buf, true);
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
serializePyrogramSession
|
|
35
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
if (typeof globalThis !== "undefined" && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
|
|
2
|
+
globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true;
|
|
3
|
+
console.warn("[mtcute-workspace] CommonJS support is deprecated and will be removed in 0.20.0. Please consider switching to ESM, it's " + (/* @__PURE__ */ new Date()).getFullYear() + " already.");
|
|
4
|
+
console.warn("[mtcute-workspace] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c");
|
|
5
|
+
}
|
|
6
|
+
"use strict";
|
|
7
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
8
|
+
const core = require("@mtcute/core");
|
|
9
|
+
const utils_js = require("@mtcute/core/utils.js");
|
|
10
|
+
const dcs = require("../dcs.cjs");
|
|
11
|
+
const tdata = require("./tdata.cjs");
|
|
12
|
+
async function convertFromTdata(tdata$1, accountIdx = 0) {
|
|
13
|
+
if (!(tdata$1 instanceof tdata.Tdata)) {
|
|
14
|
+
tdata$1 = await tdata.Tdata.open(tdata$1);
|
|
15
|
+
}
|
|
16
|
+
const auth = await tdata$1.readMtpAuthorization(accountIdx);
|
|
17
|
+
const authKey = auth.authKeys.find((it) => it.dcId === auth.mainDcId);
|
|
18
|
+
if (!authKey) throw new Error("Failed to find auth key");
|
|
19
|
+
return {
|
|
20
|
+
version: 3,
|
|
21
|
+
primaryDcs: dcs.DC_MAPPING_PROD[auth.mainDcId],
|
|
22
|
+
authKey: authKey.key,
|
|
23
|
+
self: {
|
|
24
|
+
userId: auth.userId.toNumber(),
|
|
25
|
+
isBot: false,
|
|
26
|
+
isPremium: false,
|
|
27
|
+
usernames: []
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
async function convertToTdata(sessions, tdata$1) {
|
|
32
|
+
if (!Array.isArray(sessions)) {
|
|
33
|
+
sessions = [sessions];
|
|
34
|
+
}
|
|
35
|
+
if (!(tdata$1 instanceof tdata.Tdata)) {
|
|
36
|
+
const keyData = {
|
|
37
|
+
count: sessions.length,
|
|
38
|
+
order: Array.from({ length: sessions.length }, (_, i) => i),
|
|
39
|
+
active: 0
|
|
40
|
+
};
|
|
41
|
+
tdata$1 = await tdata.Tdata.create({
|
|
42
|
+
keyData,
|
|
43
|
+
...tdata$1
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
for (let i = 0; i < sessions.length; i++) {
|
|
47
|
+
let session = sessions[i];
|
|
48
|
+
if (typeof session === "string") {
|
|
49
|
+
session = utils_js.readStringSession(session);
|
|
50
|
+
}
|
|
51
|
+
await tdata$1.writeMtpAuthorization({
|
|
52
|
+
userId: core.Long.fromNumber(session.self?.userId ?? 0),
|
|
53
|
+
mainDcId: session.primaryDcs.main.id,
|
|
54
|
+
authKeys: [
|
|
55
|
+
{
|
|
56
|
+
dcId: session.primaryDcs.main.id,
|
|
57
|
+
key: session.authKey
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
authKeysToDestroy: []
|
|
61
|
+
}, i);
|
|
62
|
+
await tdata$1.writeEmptyMapFile(i);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.convertFromTdata = convertFromTdata;
|
|
66
|
+
exports.convertToTdata = convertToTdata;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Long } from "@mtcute/core";
|
|
2
|
+
import { readStringSession } from "@mtcute/core/utils.js";
|
|
3
|
+
import { DC_MAPPING_PROD } from "../dcs.js";
|
|
4
|
+
import { Tdata } from "./tdata.js";
|
|
5
|
+
async function convertFromTdata(tdata, accountIdx = 0) {
|
|
6
|
+
if (!(tdata instanceof Tdata)) {
|
|
7
|
+
tdata = await Tdata.open(tdata);
|
|
8
|
+
}
|
|
9
|
+
const auth = await tdata.readMtpAuthorization(accountIdx);
|
|
10
|
+
const authKey = auth.authKeys.find((it) => it.dcId === auth.mainDcId);
|
|
11
|
+
if (!authKey) throw new Error("Failed to find auth key");
|
|
12
|
+
return {
|
|
13
|
+
version: 3,
|
|
14
|
+
primaryDcs: DC_MAPPING_PROD[auth.mainDcId],
|
|
15
|
+
authKey: authKey.key,
|
|
16
|
+
self: {
|
|
17
|
+
userId: auth.userId.toNumber(),
|
|
18
|
+
isBot: false,
|
|
19
|
+
isPremium: false,
|
|
20
|
+
usernames: []
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
async function convertToTdata(sessions, tdata) {
|
|
25
|
+
if (!Array.isArray(sessions)) {
|
|
26
|
+
sessions = [sessions];
|
|
27
|
+
}
|
|
28
|
+
if (!(tdata instanceof Tdata)) {
|
|
29
|
+
const keyData = {
|
|
30
|
+
count: sessions.length,
|
|
31
|
+
order: Array.from({ length: sessions.length }, (_, i) => i),
|
|
32
|
+
active: 0
|
|
33
|
+
};
|
|
34
|
+
tdata = await Tdata.create({
|
|
35
|
+
keyData,
|
|
36
|
+
...tdata
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
for (let i = 0; i < sessions.length; i++) {
|
|
40
|
+
let session = sessions[i];
|
|
41
|
+
if (typeof session === "string") {
|
|
42
|
+
session = readStringSession(session);
|
|
43
|
+
}
|
|
44
|
+
await tdata.writeMtpAuthorization({
|
|
45
|
+
userId: Long.fromNumber(session.self?.userId ?? 0),
|
|
46
|
+
mainDcId: session.primaryDcs.main.id,
|
|
47
|
+
authKeys: [
|
|
48
|
+
{
|
|
49
|
+
dcId: session.primaryDcs.main.id,
|
|
50
|
+
key: session.authKey
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
authKeysToDestroy: []
|
|
54
|
+
}, i);
|
|
55
|
+
await tdata.writeEmptyMapFile(i);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export {
|
|
59
|
+
convertFromTdata,
|
|
60
|
+
convertToTdata
|
|
61
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
if (typeof globalThis !== "undefined" && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
|
|
2
|
+
globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true;
|
|
3
|
+
console.warn("[mtcute-workspace] CommonJS support is deprecated and will be removed in 0.20.0. Please consider switching to ESM, it's " + (/* @__PURE__ */ new Date()).getFullYear() + " already.");
|
|
4
|
+
console.warn("[mtcute-workspace] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c");
|
|
5
|
+
}
|
|
6
|
+
"use strict";
|
|
7
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
8
|
+
const qtReader = require("./qt-reader.cjs");
|
|
9
|
+
const qtWriter = require("./qt-writer.cjs");
|
|
10
|
+
exports.read = qtReader;
|
|
11
|
+
exports.write = qtWriter;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
if (typeof globalThis !== "undefined" && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
|
|
2
|
+
globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true;
|
|
3
|
+
console.warn("[mtcute-workspace] CommonJS support is deprecated and will be removed in 0.20.0. Please consider switching to ESM, it's " + (/* @__PURE__ */ new Date()).getFullYear() + " already.");
|
|
4
|
+
console.warn("[mtcute-workspace] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c");
|
|
5
|
+
}
|
|
6
|
+
"use strict";
|
|
7
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
8
|
+
const io = require("@fuman/io");
|
|
9
|
+
const utils = require("@fuman/utils");
|
|
10
|
+
const core = require("@mtcute/core");
|
|
11
|
+
function readQByteArray(readable) {
|
|
12
|
+
const length = io.read.uint32be(readable);
|
|
13
|
+
if (length === 0 || length === 4294967295) {
|
|
14
|
+
return utils.u8.empty;
|
|
15
|
+
}
|
|
16
|
+
return io.read.exactly(readable, length);
|
|
17
|
+
}
|
|
18
|
+
function readLong(readable) {
|
|
19
|
+
const high = io.read.int32be(readable);
|
|
20
|
+
const low = io.read.int32be(readable);
|
|
21
|
+
return new core.Long(low, high);
|
|
22
|
+
}
|
|
23
|
+
function readCharArray(readable) {
|
|
24
|
+
const buf = readQByteArray(readable);
|
|
25
|
+
if (buf.length > 0) {
|
|
26
|
+
return buf.subarray(0, buf.length - 1);
|
|
27
|
+
}
|
|
28
|
+
return buf;
|
|
29
|
+
}
|
|
30
|
+
const u16Decoder = new TextDecoder("utf-16be");
|
|
31
|
+
function readQString(readable) {
|
|
32
|
+
const bytes = readQByteArray(readable);
|
|
33
|
+
return u16Decoder.decode(bytes);
|
|
34
|
+
}
|
|
35
|
+
exports.readCharArray = readCharArray;
|
|
36
|
+
exports.readLong = readLong;
|
|
37
|
+
exports.readQByteArray = readQByteArray;
|
|
38
|
+
exports.readQString = readQString;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { read } from "@fuman/io";
|
|
2
|
+
import { u8 } from "@fuman/utils";
|
|
3
|
+
import { Long } from "@mtcute/core";
|
|
4
|
+
function readQByteArray(readable) {
|
|
5
|
+
const length = read.uint32be(readable);
|
|
6
|
+
if (length === 0 || length === 4294967295) {
|
|
7
|
+
return u8.empty;
|
|
8
|
+
}
|
|
9
|
+
return read.exactly(readable, length);
|
|
10
|
+
}
|
|
11
|
+
function readLong(readable) {
|
|
12
|
+
const high = read.int32be(readable);
|
|
13
|
+
const low = read.int32be(readable);
|
|
14
|
+
return new Long(low, high);
|
|
15
|
+
}
|
|
16
|
+
function readCharArray(readable) {
|
|
17
|
+
const buf = readQByteArray(readable);
|
|
18
|
+
if (buf.length > 0) {
|
|
19
|
+
return buf.subarray(0, buf.length - 1);
|
|
20
|
+
}
|
|
21
|
+
return buf;
|
|
22
|
+
}
|
|
23
|
+
const u16Decoder = new TextDecoder("utf-16be");
|
|
24
|
+
function readQString(readable) {
|
|
25
|
+
const bytes = readQByteArray(readable);
|
|
26
|
+
return u16Decoder.decode(bytes);
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
readCharArray,
|
|
30
|
+
readLong,
|
|
31
|
+
readQByteArray,
|
|
32
|
+
readQString
|
|
33
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
if (typeof globalThis !== "undefined" && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
|
|
2
|
+
globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true;
|
|
3
|
+
console.warn("[mtcute-workspace] CommonJS support is deprecated and will be removed in 0.20.0. Please consider switching to ESM, it's " + (/* @__PURE__ */ new Date()).getFullYear() + " already.");
|
|
4
|
+
console.warn("[mtcute-workspace] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c");
|
|
5
|
+
}
|
|
6
|
+
"use strict";
|
|
7
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
8
|
+
const io = require("@fuman/io");
|
|
9
|
+
const utils = require("@fuman/utils");
|
|
10
|
+
function writeQByteArray(into, buf) {
|
|
11
|
+
io.write.uint32be(into, buf.length);
|
|
12
|
+
io.write.bytes(into, buf);
|
|
13
|
+
}
|
|
14
|
+
function writeLong(into, long) {
|
|
15
|
+
io.write.int32be(into, long.high);
|
|
16
|
+
io.write.int32be(into, long.low);
|
|
17
|
+
}
|
|
18
|
+
function writeCharArray(into, buf) {
|
|
19
|
+
const bytes = utils.u8.alloc(buf.length + 1);
|
|
20
|
+
bytes.set(buf);
|
|
21
|
+
bytes[buf.length] = 0;
|
|
22
|
+
writeQByteArray(into, bytes);
|
|
23
|
+
}
|
|
24
|
+
function writeQString(into, str) {
|
|
25
|
+
const length = str.length * 2;
|
|
26
|
+
io.write.uint32be(into, length);
|
|
27
|
+
for (let i = 0; i < length; i++) {
|
|
28
|
+
io.write.uint16be(into, str.charCodeAt(i));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.writeCharArray = writeCharArray;
|
|
32
|
+
exports.writeLong = writeLong;
|
|
33
|
+
exports.writeQByteArray = writeQByteArray;
|
|
34
|
+
exports.writeQString = writeQString;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { write } from "@fuman/io";
|
|
2
|
+
import { u8 } from "@fuman/utils";
|
|
3
|
+
function writeQByteArray(into, buf) {
|
|
4
|
+
write.uint32be(into, buf.length);
|
|
5
|
+
write.bytes(into, buf);
|
|
6
|
+
}
|
|
7
|
+
function writeLong(into, long) {
|
|
8
|
+
write.int32be(into, long.high);
|
|
9
|
+
write.int32be(into, long.low);
|
|
10
|
+
}
|
|
11
|
+
function writeCharArray(into, buf) {
|
|
12
|
+
const bytes = u8.alloc(buf.length + 1);
|
|
13
|
+
bytes.set(buf);
|
|
14
|
+
bytes[buf.length] = 0;
|
|
15
|
+
writeQByteArray(into, bytes);
|
|
16
|
+
}
|
|
17
|
+
function writeQString(into, str) {
|
|
18
|
+
const length = str.length * 2;
|
|
19
|
+
write.uint32be(into, length);
|
|
20
|
+
for (let i = 0; i < length; i++) {
|
|
21
|
+
write.uint16be(into, str.charCodeAt(i));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
writeCharArray,
|
|
26
|
+
writeLong,
|
|
27
|
+
writeQByteArray,
|
|
28
|
+
writeQString
|
|
29
|
+
};
|