@mtcute/convert 0.8.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 +8 -0
- package/README.md +46 -0
- package/cjs/dcs.d.ts +4 -0
- package/cjs/dcs.js +113 -0
- package/cjs/dcs.js.map +1 -0
- package/cjs/gramjs/convert.d.ts +4 -0
- package/cjs/gramjs/convert.js +29 -0
- package/cjs/gramjs/convert.js.map +1 -0
- package/cjs/gramjs/index.d.ts +4 -0
- package/cjs/gramjs/index.js +21 -0
- package/cjs/gramjs/index.js.map +1 -0
- package/cjs/gramjs/parse.d.ts +2 -0
- package/cjs/gramjs/parse.js +31 -0
- package/cjs/gramjs/parse.js.map +1 -0
- package/cjs/gramjs/serialize.d.ts +2 -0
- package/cjs/gramjs/serialize.js +24 -0
- package/cjs/gramjs/serialize.js.map +1 -0
- package/cjs/gramjs/types.d.ts +7 -0
- package/cjs/gramjs/types.js +3 -0
- package/cjs/gramjs/types.js.map +1 -0
- package/cjs/index.d.ts +5 -0
- package/cjs/index.js +22 -0
- package/cjs/index.js.map +1 -0
- package/cjs/mtkruto/convert.d.ts +4 -0
- package/cjs/mtkruto/convert.js +32 -0
- package/cjs/mtkruto/convert.js.map +1 -0
- package/cjs/mtkruto/index.d.ts +4 -0
- package/cjs/mtkruto/index.js +21 -0
- package/cjs/mtkruto/index.js.map +1 -0
- package/cjs/mtkruto/parse.d.ts +2 -0
- package/cjs/mtkruto/parse.js +28 -0
- package/cjs/mtkruto/parse.js.map +1 -0
- package/cjs/mtkruto/serialize.d.ts +2 -0
- package/cjs/mtkruto/serialize.js +15 -0
- package/cjs/mtkruto/serialize.js.map +1 -0
- package/cjs/mtkruto/types.d.ts +5 -0
- package/cjs/mtkruto/types.js +3 -0
- package/cjs/mtkruto/types.js.map +1 -0
- package/cjs/package.json +3 -0
- package/cjs/pyrogram/convert.d.ts +6 -0
- package/cjs/pyrogram/convert.js +41 -0
- package/cjs/pyrogram/convert.js.map +1 -0
- package/cjs/pyrogram/index.d.ts +4 -0
- package/cjs/pyrogram/index.js +21 -0
- package/cjs/pyrogram/index.js.map +1 -0
- package/cjs/pyrogram/parse.d.ts +2 -0
- package/cjs/pyrogram/parse.js +56 -0
- package/cjs/pyrogram/parse.js.map +1 -0
- package/cjs/pyrogram/serialize.d.ts +2 -0
- package/cjs/pyrogram/serialize.js +40 -0
- package/cjs/pyrogram/serialize.js.map +1 -0
- package/cjs/pyrogram/types.d.ts +8 -0
- package/cjs/pyrogram/types.js +3 -0
- package/cjs/pyrogram/types.js.map +1 -0
- package/cjs/telethon/convert.d.ts +4 -0
- package/cjs/telethon/convert.js +45 -0
- package/cjs/telethon/convert.js.map +1 -0
- package/cjs/telethon/index.d.ts +4 -0
- package/cjs/telethon/index.js +21 -0
- package/cjs/telethon/index.js.map +1 -0
- package/cjs/telethon/parse.d.ts +2 -0
- package/cjs/telethon/parse.js +33 -0
- package/cjs/telethon/parse.js.map +1 -0
- package/cjs/telethon/serialize.d.ts +2 -0
- package/cjs/telethon/serialize.js +34 -0
- package/cjs/telethon/serialize.js.map +1 -0
- package/cjs/telethon/types.d.ts +7 -0
- package/cjs/telethon/types.js +3 -0
- package/cjs/telethon/types.js.map +1 -0
- package/cjs/types.d.ts +1 -0
- package/cjs/types.js +3 -0
- package/cjs/types.js.map +1 -0
- package/cjs/utils/ip.d.ts +3 -0
- package/cjs/utils/ip.js +45 -0
- package/cjs/utils/ip.js.map +1 -0
- package/cjs/utils/rle.d.ts +3 -0
- package/cjs/utils/rle.js +55 -0
- package/cjs/utils/rle.js.map +1 -0
- package/esm/dcs.d.ts +4 -0
- package/esm/dcs.js +109 -0
- package/esm/dcs.js.map +1 -0
- package/esm/gramjs/convert.d.ts +4 -0
- package/esm/gramjs/convert.js +24 -0
- package/esm/gramjs/convert.js.map +1 -0
- package/esm/gramjs/index.d.ts +4 -0
- package/esm/gramjs/index.js +5 -0
- package/esm/gramjs/index.js.map +1 -0
- package/esm/gramjs/parse.d.ts +2 -0
- package/esm/gramjs/parse.js +27 -0
- package/esm/gramjs/parse.js.map +1 -0
- package/esm/gramjs/serialize.d.ts +2 -0
- package/esm/gramjs/serialize.js +20 -0
- package/esm/gramjs/serialize.js.map +1 -0
- package/esm/gramjs/types.d.ts +7 -0
- package/esm/gramjs/types.js +2 -0
- package/esm/gramjs/types.js.map +1 -0
- package/esm/index.d.ts +5 -0
- package/esm/index.js +6 -0
- package/esm/index.js.map +1 -0
- package/esm/mtkruto/convert.d.ts +4 -0
- package/esm/mtkruto/convert.js +27 -0
- package/esm/mtkruto/convert.js.map +1 -0
- package/esm/mtkruto/index.d.ts +4 -0
- package/esm/mtkruto/index.js +5 -0
- package/esm/mtkruto/index.js.map +1 -0
- package/esm/mtkruto/parse.d.ts +2 -0
- package/esm/mtkruto/parse.js +24 -0
- package/esm/mtkruto/parse.js.map +1 -0
- package/esm/mtkruto/serialize.d.ts +2 -0
- package/esm/mtkruto/serialize.js +11 -0
- package/esm/mtkruto/serialize.js.map +1 -0
- package/esm/mtkruto/types.d.ts +5 -0
- package/esm/mtkruto/types.js +2 -0
- package/esm/mtkruto/types.js.map +1 -0
- package/esm/pyrogram/convert.d.ts +6 -0
- package/esm/pyrogram/convert.js +36 -0
- package/esm/pyrogram/convert.js.map +1 -0
- package/esm/pyrogram/index.d.ts +4 -0
- package/esm/pyrogram/index.js +5 -0
- package/esm/pyrogram/index.js.map +1 -0
- package/esm/pyrogram/parse.d.ts +2 -0
- package/esm/pyrogram/parse.js +52 -0
- package/esm/pyrogram/parse.js.map +1 -0
- package/esm/pyrogram/serialize.d.ts +2 -0
- package/esm/pyrogram/serialize.js +36 -0
- package/esm/pyrogram/serialize.js.map +1 -0
- package/esm/pyrogram/types.d.ts +8 -0
- package/esm/pyrogram/types.js +2 -0
- package/esm/pyrogram/types.js.map +1 -0
- package/esm/telethon/convert.d.ts +4 -0
- package/esm/telethon/convert.js +40 -0
- package/esm/telethon/convert.js.map +1 -0
- package/esm/telethon/index.d.ts +4 -0
- package/esm/telethon/index.js +5 -0
- package/esm/telethon/index.js.map +1 -0
- package/esm/telethon/parse.d.ts +2 -0
- package/esm/telethon/parse.js +29 -0
- package/esm/telethon/parse.js.map +1 -0
- package/esm/telethon/serialize.d.ts +2 -0
- package/esm/telethon/serialize.js +30 -0
- package/esm/telethon/serialize.js.map +1 -0
- package/esm/telethon/types.d.ts +7 -0
- package/esm/telethon/types.js +2 -0
- package/esm/telethon/types.js.map +1 -0
- package/esm/types.d.ts +1 -0
- package/esm/types.js +2 -0
- package/esm/types.js.map +1 -0
- package/esm/utils/ip.d.ts +3 -0
- package/esm/utils/ip.js +39 -0
- package/esm/utils/ip.js.map +1 -0
- package/esm/utils/rle.d.ts +3 -0
- package/esm/utils/rle.js +49 -0
- package/esm/utils/rle.js.map +1 -0
- package/package.json +22 -0
package/esm/dcs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dcs.js","sourceRoot":"","sources":["../../src/dcs.ts"],"names":[],"mappings":"AAEA,kGAAkG;AAClG,8DAA8D;AAC9D,4FAA4F;AAC5F,oDAAoD;AACpD,yDAAyD;AAEzD,MAAM,CAAC,MAAM,eAAe,GAA8B;IACtD,GAAG,EAAE;QACD,IAAI,EAAE;YACF,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,gBAAgB;YAC3B,IAAI,EAAE,GAAG;SACZ;QACD,KAAK,EAAE;YACH,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,iBAAiB;YAC5B,IAAI,EAAE,GAAG;SACZ;KACJ;IACD,GAAG,EAAE;QACD,IAAI,EAAE;YACF,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,gBAAgB;YAC3B,IAAI,EAAE,GAAG;SACZ;QACD,KAAK,EAAE;YACH,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,gBAAgB;YAC3B,IAAI,EAAE,GAAG;SACZ;KACJ;IACD,GAAG,EAAE;QACD,IAAI,EAAE;YACF,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,iBAAiB;YAC5B,IAAI,EAAE,GAAG;SACZ;QACD,KAAK,EAAE;YACH,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,iBAAiB;YAC5B,IAAI,EAAE,GAAG;SACZ;KACJ;IACD,GAAG,EAAE;QACD,IAAI,EAAE;YACF,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,gBAAgB;YAC3B,IAAI,EAAE,GAAG;SACZ;QACD,KAAK,EAAE;YACH,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,iBAAiB;YAC5B,IAAI,EAAE,GAAG;SACZ;KACJ;IACD,GAAG,EAAE;QACD,IAAI,EAAE;YACF,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,eAAe;YAC1B,IAAI,EAAE,GAAG;SACZ;QACD,KAAK,EAAE;YACH,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,iBAAiB;YAC5B,IAAI,EAAE,GAAG;SACZ;KACJ;CACJ,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAA8B;IACtD,GAAG,EAAE;QACD,IAAI,EAAE;YACF,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,gBAAgB;YAC3B,IAAI,EAAE,EAAE;SACX;QACD,KAAK,EAAE;YACH,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,gBAAgB;YAC3B,IAAI,EAAE,EAAE;SACX;KACJ;IACD,GAAG,EAAE;QACD,IAAI,EAAE;YACF,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,gBAAgB;YAC3B,IAAI,EAAE,GAAG;SACZ;QACD,KAAK,EAAE;YACH,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,gBAAgB;YAC3B,IAAI,EAAE,GAAG;SACZ;KACJ;IACD,GAAG,EAAE;QACD,IAAI,EAAE;YACF,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,iBAAiB;YAC5B,IAAI,EAAE,GAAG;SACZ;QACD,KAAK,EAAE;YACH,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,iBAAiB;YAC5B,IAAI,EAAE,GAAG;SACZ;KACJ;CACJ,CAAA;AAED,MAAM,UAAU,QAAQ,CAAC,EAAU;IAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,EAAE,CAAC,CAAA;AAC7G,CAAC","sourcesContent":["import { DcOptions } from '@mtcute/core/utils.js'\n\n// some libraries only store the DCs in the source code, so we need to map them to the correct DCs\n// this may not be very accurate, but it's better than nothing\n// we *could* always map those to the primary dc (the client should handle that gracefully),\n// but imo it's better to be as accurate as possible\n// we'll also only map to ipv4 since that's more portable\n\nexport const DC_MAPPING_PROD: Record<number, DcOptions> = {\n '1': {\n main: {\n id: 1,\n ipAddress: '149.154.175.56',\n port: 443,\n },\n media: {\n id: 1,\n ipAddress: '149.154.175.211',\n port: 443,\n },\n },\n '2': {\n main: {\n id: 2,\n ipAddress: '149.154.167.41',\n port: 443,\n },\n media: {\n id: 2,\n ipAddress: '149.154.167.35',\n port: 443,\n },\n },\n '3': {\n main: {\n id: 3,\n ipAddress: '149.154.175.100',\n port: 443,\n },\n media: {\n id: 3,\n ipAddress: '149.154.175.100',\n port: 443,\n },\n },\n '4': {\n main: {\n id: 4,\n ipAddress: '149.154.167.91',\n port: 443,\n },\n media: {\n id: 4,\n ipAddress: '149.154.167.255',\n port: 443,\n },\n },\n '5': {\n main: {\n id: 5,\n ipAddress: '91.108.56.179',\n port: 443,\n },\n media: {\n id: 5,\n ipAddress: '149.154.171.255',\n port: 443,\n },\n },\n}\n\nexport const DC_MAPPING_TEST: Record<number, DcOptions> = {\n '1': {\n main: {\n id: 1,\n ipAddress: '149.154.175.10',\n port: 80,\n },\n media: {\n id: 1,\n ipAddress: '149.154.175.10',\n port: 80,\n },\n },\n '2': {\n main: {\n id: 2,\n ipAddress: '149.154.167.40',\n port: 443,\n },\n media: {\n id: 2,\n ipAddress: '149.154.167.40',\n port: 443,\n },\n },\n '3': {\n main: {\n id: 3,\n ipAddress: '149.154.175.117',\n port: 443,\n },\n media: {\n id: 3,\n ipAddress: '149.154.175.117',\n port: 443,\n },\n },\n}\n\nexport function isTestDc(ip: string): boolean {\n return Object.values(DC_MAPPING_TEST).some((dc) => dc.main.ipAddress === ip || dc.media.ipAddress === ip)\n}\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { StringSessionData } from '@mtcute/core/utils.js';
|
|
2
|
+
import { TelethonSession } from '../telethon/types.js';
|
|
3
|
+
export declare function convertFromGramjsSession(session: TelethonSession | string): StringSessionData;
|
|
4
|
+
export declare function convertToGramjsSession(session: StringSessionData | string): string;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { readStringSession } from '@mtcute/core/utils.js';
|
|
2
|
+
import { __tlReaderMap } from '@mtcute/tl/binary/reader.js';
|
|
3
|
+
import { convertFromTelethonSession } from '../telethon/convert.js';
|
|
4
|
+
import { parseGramjsSession } from './parse.js';
|
|
5
|
+
import { serializeGramjsSession } from './serialize.js';
|
|
6
|
+
export function convertFromGramjsSession(session) {
|
|
7
|
+
if (typeof session === 'string') {
|
|
8
|
+
session = parseGramjsSession(session);
|
|
9
|
+
}
|
|
10
|
+
return convertFromTelethonSession(session);
|
|
11
|
+
}
|
|
12
|
+
export function convertToGramjsSession(session) {
|
|
13
|
+
if (typeof session === 'string') {
|
|
14
|
+
session = readStringSession(__tlReaderMap, session);
|
|
15
|
+
}
|
|
16
|
+
return serializeGramjsSession({
|
|
17
|
+
dcId: session.primaryDcs.main.id,
|
|
18
|
+
ipAddress: session.primaryDcs.main.ipAddress,
|
|
19
|
+
port: session.primaryDcs.main.port,
|
|
20
|
+
ipv6: session.primaryDcs.main.ipv6 ?? false,
|
|
21
|
+
authKey: session.authKey,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=convert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/gramjs/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,uBAAuB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,MAAM,UAAU,wBAAwB,CAAC,OAAiC;IACtE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC7B,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;KACxC;IAED,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAmC;IACtE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC7B,OAAO,GAAG,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;KACtD;IAED,OAAO,sBAAsB,CAAC;QAC1B,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAChC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS;QAC5C,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;QAClC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAC,CAAA;AACN,CAAC","sourcesContent":["import { readStringSession, StringSessionData } from '@mtcute/core/utils.js'\nimport { __tlReaderMap } from '@mtcute/tl/binary/reader.js'\n\nimport { convertFromTelethonSession } from '../telethon/convert.js'\nimport { TelethonSession } from '../telethon/types.js'\nimport { parseGramjsSession } from './parse.js'\nimport { serializeGramjsSession } from './serialize.js'\n\nexport function convertFromGramjsSession(session: TelethonSession | string): StringSessionData {\n if (typeof session === 'string') {\n session = parseGramjsSession(session)\n }\n\n return convertFromTelethonSession(session)\n}\n\nexport function convertToGramjsSession(session: StringSessionData | string): string {\n if (typeof session === 'string') {\n session = readStringSession(__tlReaderMap, session)\n }\n\n return serializeGramjsSession({\n dcId: session.primaryDcs.main.id,\n ipAddress: session.primaryDcs.main.ipAddress,\n port: session.primaryDcs.main.port,\n ipv6: session.primaryDcs.main.ipv6 ?? false,\n authKey: session.authKey,\n })\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gramjs/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA","sourcesContent":["export * from './convert.js'\nexport * from './parse.js'\nexport * from './serialize.js'\nexport * from './types.js'\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { MtArgumentError } from '@mtcute/core';
|
|
2
|
+
import { getPlatform } from '@mtcute/core/platform.js';
|
|
3
|
+
import { dataViewFromBuffer } from '@mtcute/core/utils.js';
|
|
4
|
+
export function parseGramjsSession(session) {
|
|
5
|
+
if (session[0] !== '1') {
|
|
6
|
+
// version
|
|
7
|
+
throw new MtArgumentError(`Invalid session string (version = ${session[0]})`);
|
|
8
|
+
}
|
|
9
|
+
session = session.slice(1);
|
|
10
|
+
const data = getPlatform().base64Decode(session);
|
|
11
|
+
const dv = dataViewFromBuffer(data);
|
|
12
|
+
const dcId = dv.getUint8(0);
|
|
13
|
+
const ipSize = dv.getUint16(1);
|
|
14
|
+
let pos = 3 + ipSize;
|
|
15
|
+
const ip = getPlatform().utf8Decode(data.subarray(3, pos));
|
|
16
|
+
const port = dv.getUint16(pos);
|
|
17
|
+
pos += 2;
|
|
18
|
+
const authKey = data.subarray(pos, pos + 256);
|
|
19
|
+
return {
|
|
20
|
+
dcId,
|
|
21
|
+
ipAddress: ip,
|
|
22
|
+
ipv6: ip.includes(':'),
|
|
23
|
+
port,
|
|
24
|
+
authKey,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/gramjs/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAI1D,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAC9C,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACpB,UAAU;QACV,MAAM,IAAI,eAAe,CAAC,qCAAqC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;KAChF;IAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE1B,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IAChD,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAEnC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAE3B,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,MAAM,CAAA;IAEpB,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC1D,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAC9B,GAAG,IAAI,CAAC,CAAA;IACR,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAA;IAE7C,OAAO;QACH,IAAI;QACJ,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;QACtB,IAAI;QACJ,OAAO;KACV,CAAA;AACL,CAAC","sourcesContent":["import { MtArgumentError } from '@mtcute/core'\nimport { getPlatform } from '@mtcute/core/platform.js'\nimport { dataViewFromBuffer } from '@mtcute/core/utils.js'\n\nimport { TelethonSession } from '../telethon/types.js'\n\nexport function parseGramjsSession(session: string): TelethonSession {\n if (session[0] !== '1') {\n // version\n throw new MtArgumentError(`Invalid session string (version = ${session[0]})`)\n }\n\n session = session.slice(1)\n\n const data = getPlatform().base64Decode(session)\n const dv = dataViewFromBuffer(data)\n\n const dcId = dv.getUint8(0)\n\n const ipSize = dv.getUint16(1)\n let pos = 3 + ipSize\n\n const ip = getPlatform().utf8Decode(data.subarray(3, pos))\n const port = dv.getUint16(pos)\n pos += 2\n const authKey = data.subarray(pos, pos + 256)\n\n return {\n dcId,\n ipAddress: ip,\n ipv6: ip.includes(':'), // dumb check but gramjs does this\n port,\n authKey,\n }\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MtArgumentError } from '@mtcute/core';
|
|
2
|
+
import { getPlatform } from '@mtcute/core/platform.js';
|
|
3
|
+
import { dataViewFromBuffer } from '@mtcute/core/utils.js';
|
|
4
|
+
export function serializeGramjsSession(session) {
|
|
5
|
+
if (session.authKey.length !== 256) {
|
|
6
|
+
throw new MtArgumentError('authKey must be 256 bytes long');
|
|
7
|
+
}
|
|
8
|
+
const ipEncoded = getPlatform().utf8Encode(session.ipAddress);
|
|
9
|
+
const u8 = new Uint8Array(261 + ipEncoded.length);
|
|
10
|
+
const dv = dataViewFromBuffer(u8);
|
|
11
|
+
dv.setUint8(0, session.dcId);
|
|
12
|
+
dv.setUint16(1, ipEncoded.length);
|
|
13
|
+
u8.set(ipEncoded, 3);
|
|
14
|
+
let pos = 3 + ipEncoded.length;
|
|
15
|
+
dv.setUint16(pos, session.port);
|
|
16
|
+
pos += 2;
|
|
17
|
+
u8.set(session.authKey, pos);
|
|
18
|
+
return '1' + getPlatform().base64Encode(u8);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=serialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/gramjs/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAI1D,MAAM,UAAU,sBAAsB,CAAC,OAAwB;IAC3D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE;QAChC,MAAM,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAA;KAC9D;IAED,MAAM,SAAS,GAAG,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAE7D,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IACjD,MAAM,EAAE,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;IAEjC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACjC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAEpB,IAAI,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAA;IAE9B,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,GAAG,IAAI,CAAC,CAAA;IACR,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAE5B,OAAO,GAAG,GAAG,WAAW,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;AAC/C,CAAC","sourcesContent":["import { MtArgumentError } from '@mtcute/core'\nimport { getPlatform } from '@mtcute/core/platform.js'\nimport { dataViewFromBuffer } from '@mtcute/core/utils.js'\n\nimport { TelethonSession } from '../telethon/types.js'\n\nexport function serializeGramjsSession(session: TelethonSession) {\n if (session.authKey.length !== 256) {\n throw new MtArgumentError('authKey must be 256 bytes long')\n }\n\n const ipEncoded = getPlatform().utf8Encode(session.ipAddress)\n\n const u8 = new Uint8Array(261 + ipEncoded.length)\n const dv = dataViewFromBuffer(u8)\n\n dv.setUint8(0, session.dcId)\n dv.setUint16(1, ipEncoded.length)\n u8.set(ipEncoded, 3)\n\n let pos = 3 + ipEncoded.length\n\n dv.setUint16(pos, session.port)\n pos += 2\n u8.set(session.authKey, pos)\n\n return '1' + getPlatform().base64Encode(u8)\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/gramjs/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface GramjsSession {\n dcId: number\n ipAddress: string\n ipv6: boolean\n port: number\n authKey: Uint8Array\n}\n"]}
|
package/esm/index.d.ts
ADDED
package/esm/index.js
ADDED
package/esm/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA","sourcesContent":["export * from './dcs.js'\nexport * from './gramjs/index.js'\nexport * from './mtkruto/index.js'\nexport * from './pyrogram/index.js'\nexport * from './telethon/index.js'\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { StringSessionData } from '@mtcute/core/utils.js';
|
|
2
|
+
import { MtkrutoSession } from './types.js';
|
|
3
|
+
export declare function convertFromMtkrutoSession(session: MtkrutoSession | string): StringSessionData;
|
|
4
|
+
export declare function convertToMtkrutoSession(session: StringSessionData | string): string;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { readStringSession } from '@mtcute/core/utils.js';
|
|
2
|
+
import { __tlReaderMap } from '@mtcute/tl/binary/reader.js';
|
|
3
|
+
import { DC_MAPPING_PROD, DC_MAPPING_TEST } from '../dcs.js';
|
|
4
|
+
import { parseMtkrutoSession } from './parse.js';
|
|
5
|
+
import { serializeMtkrutoSession } from './serialize.js';
|
|
6
|
+
export function convertFromMtkrutoSession(session) {
|
|
7
|
+
if (typeof session === 'string') {
|
|
8
|
+
session = parseMtkrutoSession(session);
|
|
9
|
+
}
|
|
10
|
+
return {
|
|
11
|
+
version: 3,
|
|
12
|
+
testMode: session.isTest,
|
|
13
|
+
primaryDcs: (session.isTest ? DC_MAPPING_TEST : DC_MAPPING_PROD)[session.dcId],
|
|
14
|
+
authKey: session.authKey,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function convertToMtkrutoSession(session) {
|
|
18
|
+
if (typeof session === 'string') {
|
|
19
|
+
session = readStringSession(__tlReaderMap, session);
|
|
20
|
+
}
|
|
21
|
+
return serializeMtkrutoSession({
|
|
22
|
+
dcId: session.primaryDcs.main.id,
|
|
23
|
+
isTest: session.testMode,
|
|
24
|
+
authKey: session.authKey,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=convert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/mtkruto/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,uBAAuB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAGxD,MAAM,UAAU,yBAAyB,CAAC,OAAgC;IACtE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC7B,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;KACzC;IAED,OAAO;QACH,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,OAAO,CAAC,MAAM;QACxB,UAAU,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9E,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAA;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAmC;IACvE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC7B,OAAO,GAAG,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;KACtD;IAED,OAAO,uBAAuB,CAAC;QAC3B,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAChC,MAAM,EAAE,OAAO,CAAC,QAAQ;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAC,CAAA;AACN,CAAC","sourcesContent":["import { readStringSession, StringSessionData } from '@mtcute/core/utils.js'\nimport { __tlReaderMap } from '@mtcute/tl/binary/reader.js'\n\nimport { DC_MAPPING_PROD, DC_MAPPING_TEST } from '../dcs.js'\nimport { parseMtkrutoSession } from './parse.js'\nimport { serializeMtkrutoSession } from './serialize.js'\nimport { MtkrutoSession } from './types.js'\n\nexport function convertFromMtkrutoSession(session: MtkrutoSession | string): StringSessionData {\n if (typeof session === 'string') {\n session = parseMtkrutoSession(session)\n }\n\n return {\n version: 3,\n testMode: session.isTest,\n primaryDcs: (session.isTest ? DC_MAPPING_TEST : DC_MAPPING_PROD)[session.dcId],\n authKey: session.authKey,\n }\n}\n\nexport function convertToMtkrutoSession(session: StringSessionData | string): string {\n if (typeof session === 'string') {\n session = readStringSession(__tlReaderMap, session)\n }\n\n return serializeMtkrutoSession({\n dcId: session.primaryDcs.main.id,\n isTest: session.testMode,\n authKey: session.authKey,\n })\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mtkruto/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA","sourcesContent":["export * from './convert.js'\nexport * from './parse.js'\nexport * from './serialize.js'\nexport * from './types.js'\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { MtArgumentError } from '@mtcute/core';
|
|
2
|
+
import { getPlatform } from '@mtcute/core/platform.js';
|
|
3
|
+
import { TlBinaryReader } from '@mtcute/core/utils.js';
|
|
4
|
+
import { telegramRleDecode } from '../utils/rle.js';
|
|
5
|
+
export function parseMtkrutoSession(session) {
|
|
6
|
+
const data = telegramRleDecode(getPlatform().base64Decode(session, true));
|
|
7
|
+
const reader = TlBinaryReader.manual(data);
|
|
8
|
+
let dcIdStr = reader.string();
|
|
9
|
+
const authKey = reader.bytes();
|
|
10
|
+
const isTest = dcIdStr.endsWith('-test');
|
|
11
|
+
if (isTest) {
|
|
12
|
+
dcIdStr = dcIdStr.slice(0, -5);
|
|
13
|
+
}
|
|
14
|
+
const dcId = Number(dcIdStr);
|
|
15
|
+
if (isNaN(dcId)) {
|
|
16
|
+
throw new MtArgumentError(`Invalid DC ID: ${dcIdStr}`);
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
dcId,
|
|
20
|
+
isTest,
|
|
21
|
+
authKey,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/mtkruto/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAGnD,MAAM,UAAU,mBAAmB,CAAC,OAAe;IAC/C,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;IACzE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAE1C,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;IAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;IAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAExC,IAAI,MAAM,EAAE;QACR,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;KACjC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAE5B,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;QACb,MAAM,IAAI,eAAe,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAA;KACzD;IAED,OAAO;QACH,IAAI;QACJ,MAAM;QACN,OAAO;KACV,CAAA;AACL,CAAC","sourcesContent":["import { MtArgumentError } from '@mtcute/core'\nimport { getPlatform } from '@mtcute/core/platform.js'\nimport { TlBinaryReader } from '@mtcute/core/utils.js'\n\nimport { telegramRleDecode } from '../utils/rle.js'\nimport { MtkrutoSession } from './types.js'\n\nexport function parseMtkrutoSession(session: string): MtkrutoSession {\n const data = telegramRleDecode(getPlatform().base64Decode(session, true))\n const reader = TlBinaryReader.manual(data)\n\n let dcIdStr = reader.string()\n const authKey = reader.bytes()\n\n const isTest = dcIdStr.endsWith('-test')\n\n if (isTest) {\n dcIdStr = dcIdStr.slice(0, -5)\n }\n const dcId = Number(dcIdStr)\n\n if (isNaN(dcId)) {\n throw new MtArgumentError(`Invalid DC ID: ${dcIdStr}`)\n }\n\n return {\n dcId,\n isTest,\n authKey,\n }\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { getPlatform } from '@mtcute/core/platform.js';
|
|
2
|
+
import { TlBinaryWriter } from '@mtcute/core/utils.js';
|
|
3
|
+
import { telegramRleEncode } from '../utils/rle.js';
|
|
4
|
+
export function serializeMtkrutoSession(session) {
|
|
5
|
+
const dcIdStr = `${session.dcId}${session.isTest ? '-test' : ''}`;
|
|
6
|
+
const writer = TlBinaryWriter.manual(session.authKey.length + dcIdStr.length + 8);
|
|
7
|
+
writer.string(dcIdStr);
|
|
8
|
+
writer.bytes(session.authKey);
|
|
9
|
+
return getPlatform().base64Encode(telegramRleEncode(writer.result()), true);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=serialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/mtkruto/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAGnD,MAAM,UAAU,uBAAuB,CAAC,OAAuB;IAC3D,MAAM,OAAO,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAEjE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAE7B,OAAO,WAAW,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;AAC/E,CAAC","sourcesContent":["import { getPlatform } from '@mtcute/core/platform.js'\nimport { TlBinaryWriter } from '@mtcute/core/utils.js'\n\nimport { telegramRleEncode } from '../utils/rle.js'\nimport { MtkrutoSession } from './types.js'\n\nexport function serializeMtkrutoSession(session: MtkrutoSession): string {\n const dcIdStr = `${session.dcId}${session.isTest ? '-test' : ''}`\n\n const writer = TlBinaryWriter.manual(session.authKey.length + dcIdStr.length + 8)\n\n writer.string(dcIdStr)\n writer.bytes(session.authKey)\n\n return getPlatform().base64Encode(telegramRleEncode(writer.result()), true)\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mtkruto/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface MtkrutoSession {\n dcId: number\n isTest: boolean\n authKey: Uint8Array\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { StringSessionData } from '@mtcute/core/utils.js';
|
|
2
|
+
import { PyrogramSession } from './types.js';
|
|
3
|
+
export declare function convertFromPyrogramSession(session: PyrogramSession | string): StringSessionData;
|
|
4
|
+
export declare function convertToPyrogramSession(session: StringSessionData | string, params?: {
|
|
5
|
+
apiId?: number;
|
|
6
|
+
}): string;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { readStringSession } from '@mtcute/core/utils.js';
|
|
2
|
+
import { __tlReaderMap } from '@mtcute/tl/binary/reader.js';
|
|
3
|
+
import { DC_MAPPING_PROD, DC_MAPPING_TEST } from '../dcs.js';
|
|
4
|
+
import { parsePyrogramSession } from './parse.js';
|
|
5
|
+
import { serializePyrogramSession } from './serialize.js';
|
|
6
|
+
export function convertFromPyrogramSession(session) {
|
|
7
|
+
if (typeof session === 'string') {
|
|
8
|
+
session = parsePyrogramSession(session);
|
|
9
|
+
}
|
|
10
|
+
return {
|
|
11
|
+
version: 3,
|
|
12
|
+
testMode: session.isTest,
|
|
13
|
+
primaryDcs: (session.isTest ? DC_MAPPING_TEST : DC_MAPPING_PROD)[session.dcId],
|
|
14
|
+
authKey: session.authKey,
|
|
15
|
+
self: {
|
|
16
|
+
userId: session.userId,
|
|
17
|
+
isBot: session.isBot,
|
|
18
|
+
isPremium: false,
|
|
19
|
+
usernames: [],
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export function convertToPyrogramSession(session, params) {
|
|
24
|
+
if (typeof session === 'string') {
|
|
25
|
+
session = readStringSession(__tlReaderMap, session);
|
|
26
|
+
}
|
|
27
|
+
return serializePyrogramSession({
|
|
28
|
+
apiId: params?.apiId,
|
|
29
|
+
isBot: session.self?.isBot ?? false,
|
|
30
|
+
isTest: session.testMode,
|
|
31
|
+
userId: session.self?.userId ?? 0,
|
|
32
|
+
dcId: session.primaryDcs.main.id,
|
|
33
|
+
authKey: session.authKey,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=convert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/pyrogram/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,uBAAuB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAGzD,MAAM,UAAU,0BAA0B,CAAC,OAAiC;IACxE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC7B,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;KAC1C;IAED,OAAO;QACH,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,OAAO,CAAC,MAAM;QACxB,UAAU,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9E,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE;YACF,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,EAAE;SAChB;KACJ,CAAA;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CACpC,OAAmC,EACnC,MAEC;IAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC7B,OAAO,GAAG,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;KACtD;IAED,OAAO,wBAAwB,CAAC;QAC5B,KAAK,EAAE,MAAM,EAAE,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,KAAK;QACnC,MAAM,EAAE,OAAO,CAAC,QAAQ;QACxB,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;QACjC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAC,CAAA;AACN,CAAC","sourcesContent":["import { readStringSession, StringSessionData } from '@mtcute/core/utils.js'\nimport { __tlReaderMap } from '@mtcute/tl/binary/reader.js'\n\nimport { DC_MAPPING_PROD, DC_MAPPING_TEST } from '../dcs.js'\nimport { parsePyrogramSession } from './parse.js'\nimport { serializePyrogramSession } from './serialize.js'\nimport { PyrogramSession } from './types.js'\n\nexport function convertFromPyrogramSession(session: PyrogramSession | string): StringSessionData {\n if (typeof session === 'string') {\n session = parsePyrogramSession(session)\n }\n\n return {\n version: 3,\n testMode: session.isTest,\n primaryDcs: (session.isTest ? DC_MAPPING_TEST : DC_MAPPING_PROD)[session.dcId],\n authKey: session.authKey,\n self: {\n userId: session.userId,\n isBot: session.isBot,\n isPremium: false,\n usernames: [],\n },\n }\n}\n\nexport function convertToPyrogramSession(\n session: StringSessionData | string,\n params?: {\n apiId?: number\n },\n): string {\n if (typeof session === 'string') {\n session = readStringSession(__tlReaderMap, session)\n }\n\n return serializePyrogramSession({\n apiId: params?.apiId,\n isBot: session.self?.isBot ?? false,\n isTest: session.testMode,\n userId: session.self?.userId ?? 0,\n dcId: session.primaryDcs.main.id,\n authKey: session.authKey,\n })\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pyrogram/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA","sourcesContent":["export * from './convert.js'\nexport * from './parse.js'\nexport * from './serialize.js'\nexport * from './types.js'\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// source: https://github.com/pyrogram/pyrogram/blob/master/pyrogram/storage/storage.py
|
|
2
|
+
import { Long } from '@mtcute/core';
|
|
3
|
+
import { getPlatform } from '@mtcute/core/platform.js';
|
|
4
|
+
import { dataViewFromBuffer, longFromBuffer } from '@mtcute/core/utils.js';
|
|
5
|
+
const SESSION_STRING_SIZE = 351;
|
|
6
|
+
const SESSION_STRING_SIZE_64 = 356;
|
|
7
|
+
export function parsePyrogramSession(session) {
|
|
8
|
+
const data = getPlatform().base64Decode(session, true);
|
|
9
|
+
const dv = dataViewFromBuffer(data);
|
|
10
|
+
if (session.length === SESSION_STRING_SIZE || session.length === SESSION_STRING_SIZE_64) {
|
|
11
|
+
// old format
|
|
12
|
+
// const OLD_SESSION_STRING_FORMAT = '>B?256sI?'
|
|
13
|
+
// const OLD_SESSION_STRING_FORMAT_64 = '>B?256sQ?'
|
|
14
|
+
const dcId = dv.getUint8(0);
|
|
15
|
+
const isTest = dv.getUint8(1) !== 0;
|
|
16
|
+
const authKey = data.subarray(2, 258);
|
|
17
|
+
let userId;
|
|
18
|
+
if (data.length === SESSION_STRING_SIZE) {
|
|
19
|
+
userId = dv.getUint32(258);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
const high = dv.getUint32(258);
|
|
23
|
+
const low = dv.getUint32(262);
|
|
24
|
+
userId = Long.fromBits(low, high).toNumber();
|
|
25
|
+
}
|
|
26
|
+
const isBot = dv.getUint8(data.length - 1) !== 0;
|
|
27
|
+
return {
|
|
28
|
+
dcId,
|
|
29
|
+
isTest,
|
|
30
|
+
authKey,
|
|
31
|
+
userId,
|
|
32
|
+
isBot,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
// new format
|
|
36
|
+
// const SESSION_STRING_FORMAT = '>BI?256sQ?'
|
|
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 = 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
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/pyrogram/parse.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAEvF,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAI1E,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAC/B,MAAM,sBAAsB,GAAG,GAAG,CAAA;AAElC,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAChD,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACtD,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAEnC,IAAI,OAAO,CAAC,MAAM,KAAK,mBAAmB,IAAI,OAAO,CAAC,MAAM,KAAK,sBAAsB,EAAE;QACrF,aAAa;QACb,gDAAgD;QAChD,mDAAmD;QACnD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3B,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAErC,IAAI,MAAM,CAAA;QAEV,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,EAAE;YACrC,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;SAC7B;aAAM;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAC9B,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAC7B,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;SAC/C;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;QAEhD,OAAO;YACH,IAAI;YACJ,MAAM;YACN,OAAO;YACP,MAAM;YACN,KAAK;SACR,CAAA;KACJ;IAED,aAAa;IACb,6CAA6C;IAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACrC,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC9E,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAEpC,OAAO;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;KACR,CAAA;AACL,CAAC","sourcesContent":["// source: https://github.com/pyrogram/pyrogram/blob/master/pyrogram/storage/storage.py\n\nimport { Long } from '@mtcute/core'\nimport { getPlatform } from '@mtcute/core/platform.js'\nimport { dataViewFromBuffer, longFromBuffer } from '@mtcute/core/utils.js'\n\nimport { PyrogramSession } from './types.js'\n\nconst SESSION_STRING_SIZE = 351\nconst SESSION_STRING_SIZE_64 = 356\n\nexport function parsePyrogramSession(session: string): PyrogramSession {\n const data = getPlatform().base64Decode(session, true)\n const dv = dataViewFromBuffer(data)\n\n if (session.length === SESSION_STRING_SIZE || session.length === SESSION_STRING_SIZE_64) {\n // old format\n // const OLD_SESSION_STRING_FORMAT = '>B?256sI?'\n // const OLD_SESSION_STRING_FORMAT_64 = '>B?256sQ?'\n const dcId = dv.getUint8(0)\n const isTest = dv.getUint8(1) !== 0\n const authKey = data.subarray(2, 258)\n\n let userId\n\n if (data.length === SESSION_STRING_SIZE) {\n userId = dv.getUint32(258)\n } else {\n const high = dv.getUint32(258)\n const low = dv.getUint32(262)\n userId = Long.fromBits(low, high).toNumber()\n }\n\n const isBot = dv.getUint8(data.length - 1) !== 0\n\n return {\n dcId,\n isTest,\n authKey,\n userId,\n isBot,\n }\n }\n\n // new format\n // const SESSION_STRING_FORMAT = '>BI?256sQ?'\n const dcId = dv.getUint8(0)\n const apiId = dv.getUint32(1)\n const isTest = dv.getUint8(5) !== 0\n const authKey = data.subarray(6, 262)\n const userId = longFromBuffer(data.subarray(262, 270), true, false).toNumber()\n const isBot = dv.getUint8(270) !== 0\n\n return {\n dcId,\n apiId,\n isTest,\n authKey,\n userId,\n isBot,\n }\n}\n"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Long, MtArgumentError } from '@mtcute/core';
|
|
2
|
+
import { getPlatform } from '@mtcute/core/platform.js';
|
|
3
|
+
import { dataViewFromBuffer } from '@mtcute/core/utils.js';
|
|
4
|
+
const SESSION_STRING_SIZE_OLD = 267;
|
|
5
|
+
const SESSION_STRING_SIZE = 271;
|
|
6
|
+
export function serializePyrogramSession(session) {
|
|
7
|
+
if (session.authKey.length !== 256) {
|
|
8
|
+
throw new MtArgumentError('authKey must be 256 bytes long');
|
|
9
|
+
}
|
|
10
|
+
const userIdLong = Long.fromNumber(session.userId, true);
|
|
11
|
+
let u8;
|
|
12
|
+
if (session.apiId === undefined) {
|
|
13
|
+
// old format
|
|
14
|
+
u8 = new Uint8Array(SESSION_STRING_SIZE_OLD);
|
|
15
|
+
const dv = dataViewFromBuffer(u8);
|
|
16
|
+
dv.setUint8(0, session.dcId);
|
|
17
|
+
dv.setUint8(1, session.isTest ? 1 : 0);
|
|
18
|
+
u8.set(session.authKey, 2);
|
|
19
|
+
dv.setUint32(258, userIdLong.high);
|
|
20
|
+
dv.setUint32(262, userIdLong.low);
|
|
21
|
+
dv.setUint8(266, session.isBot ? 1 : 0);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
u8 = new Uint8Array(SESSION_STRING_SIZE);
|
|
25
|
+
const dv = dataViewFromBuffer(u8);
|
|
26
|
+
dv.setUint8(0, session.dcId);
|
|
27
|
+
dv.setUint32(1, session.apiId);
|
|
28
|
+
dv.setUint8(5, session.isTest ? 1 : 0);
|
|
29
|
+
u8.set(session.authKey, 6);
|
|
30
|
+
dv.setUint32(262, userIdLong.high);
|
|
31
|
+
dv.setUint32(266, userIdLong.low);
|
|
32
|
+
dv.setUint8(270, session.isBot ? 1 : 0);
|
|
33
|
+
}
|
|
34
|
+
return getPlatform().base64Encode(u8, true);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=serialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/pyrogram/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAI1D,MAAM,uBAAuB,GAAG,GAAG,CAAA;AACnC,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAE/B,MAAM,UAAU,wBAAwB,CAAC,OAAwB;IAC7D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE;QAChC,MAAM,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAA;KAC9D;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAExD,IAAI,EAAc,CAAA;IAElB,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;QAC7B,aAAa;QACb,EAAE,GAAG,IAAI,UAAU,CAAC,uBAAuB,CAAC,CAAA;QAC5C,MAAM,EAAE,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;QAEjC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5B,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACtC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAC1B,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QAClC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA;QACjC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAC1C;SAAM;QACH,EAAE,GAAG,IAAI,UAAU,CAAC,mBAAmB,CAAC,CAAA;QACxC,MAAM,EAAE,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;QAEjC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5B,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAC9B,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACtC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAE1B,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QAClC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA;QACjC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAC1C;IAED,OAAO,WAAW,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;AAC/C,CAAC","sourcesContent":["import { Long, MtArgumentError } from '@mtcute/core'\nimport { getPlatform } from '@mtcute/core/platform.js'\nimport { dataViewFromBuffer } from '@mtcute/core/utils.js'\n\nimport { PyrogramSession } from './types.js'\n\nconst SESSION_STRING_SIZE_OLD = 267\nconst SESSION_STRING_SIZE = 271\n\nexport function serializePyrogramSession(session: PyrogramSession): string {\n if (session.authKey.length !== 256) {\n throw new MtArgumentError('authKey must be 256 bytes long')\n }\n\n const userIdLong = Long.fromNumber(session.userId, true)\n\n let u8: Uint8Array\n\n if (session.apiId === undefined) {\n // old format\n u8 = new Uint8Array(SESSION_STRING_SIZE_OLD)\n const dv = dataViewFromBuffer(u8)\n\n dv.setUint8(0, session.dcId)\n dv.setUint8(1, session.isTest ? 1 : 0)\n u8.set(session.authKey, 2)\n dv.setUint32(258, userIdLong.high)\n dv.setUint32(262, userIdLong.low)\n dv.setUint8(266, session.isBot ? 1 : 0)\n } else {\n u8 = new Uint8Array(SESSION_STRING_SIZE)\n const dv = dataViewFromBuffer(u8)\n\n dv.setUint8(0, session.dcId)\n dv.setUint32(1, session.apiId)\n dv.setUint8(5, session.isTest ? 1 : 0)\n u8.set(session.authKey, 6)\n\n dv.setUint32(262, userIdLong.high)\n dv.setUint32(266, userIdLong.low)\n dv.setUint8(270, session.isBot ? 1 : 0)\n }\n\n return getPlatform().base64Encode(u8, true)\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/pyrogram/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface PyrogramSession {\n apiId?: number\n dcId: number\n isTest: boolean\n authKey: Uint8Array\n userId: number\n isBot: boolean\n}\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { StringSessionData } from '@mtcute/core/utils.js';
|
|
2
|
+
import { TelethonSession } from './types.js';
|
|
3
|
+
export declare function convertFromTelethonSession(session: TelethonSession | string): StringSessionData;
|
|
4
|
+
export declare function convertToTelethonSession(session: StringSessionData | string): string;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { readStringSession } from '@mtcute/core/utils.js';
|
|
2
|
+
import { __tlReaderMap } from '@mtcute/tl/binary/reader.js';
|
|
3
|
+
import { isTestDc } from '../dcs.js';
|
|
4
|
+
import { parseTelethonSession } from './parse.js';
|
|
5
|
+
import { serializeTelethonSession } from './serialize.js';
|
|
6
|
+
export function convertFromTelethonSession(session) {
|
|
7
|
+
if (typeof session === 'string') {
|
|
8
|
+
session = parseTelethonSession(session);
|
|
9
|
+
}
|
|
10
|
+
const dc = {
|
|
11
|
+
id: session.dcId,
|
|
12
|
+
ipAddress: session.ipAddress,
|
|
13
|
+
port: session.port,
|
|
14
|
+
ipv6: session.ipv6,
|
|
15
|
+
};
|
|
16
|
+
return {
|
|
17
|
+
version: 3,
|
|
18
|
+
// we don't exactly have that information. try to deduce it from DC_MAPPING_TEST
|
|
19
|
+
// todo: we should maybe check this at connect?
|
|
20
|
+
testMode: isTestDc(session.ipAddress),
|
|
21
|
+
primaryDcs: {
|
|
22
|
+
main: dc,
|
|
23
|
+
media: dc,
|
|
24
|
+
},
|
|
25
|
+
authKey: session.authKey,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export function convertToTelethonSession(session) {
|
|
29
|
+
if (typeof session === 'string') {
|
|
30
|
+
session = readStringSession(__tlReaderMap, session);
|
|
31
|
+
}
|
|
32
|
+
return serializeTelethonSession({
|
|
33
|
+
dcId: session.primaryDcs.main.id,
|
|
34
|
+
ipAddress: session.primaryDcs.main.ipAddress,
|
|
35
|
+
port: session.primaryDcs.main.port,
|
|
36
|
+
ipv6: session.primaryDcs.main.ipv6 ?? false,
|
|
37
|
+
authKey: session.authKey,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=convert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/telethon/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,iBAAiB,EAAqB,MAAM,uBAAuB,CAAA;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAGzD,MAAM,UAAU,0BAA0B,CAAC,OAAiC;IACxE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC7B,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;KAC1C;IAED,MAAM,EAAE,GAAkB;QACtB,EAAE,EAAE,OAAO,CAAC,IAAI;QAChB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;KACrB,CAAA;IAED,OAAO;QACH,OAAO,EAAE,CAAC;QACV,gFAAgF;QAChF,+CAA+C;QAC/C,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;QACrC,UAAU,EAAE;YACR,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;SACZ;QACD,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAA;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAmC;IACxE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC7B,OAAO,GAAG,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;KACtD;IAED,OAAO,wBAAwB,CAAC;QAC5B,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAChC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS;QAC5C,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;QAClC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAC,CAAA;AACN,CAAC","sourcesContent":["import { BasicDcOption, readStringSession, StringSessionData } from '@mtcute/core/utils.js'\nimport { __tlReaderMap } from '@mtcute/tl/binary/reader.js'\n\nimport { isTestDc } from '../dcs.js'\nimport { parseTelethonSession } from './parse.js'\nimport { serializeTelethonSession } from './serialize.js'\nimport { TelethonSession } from './types.js'\n\nexport function convertFromTelethonSession(session: TelethonSession | string): StringSessionData {\n if (typeof session === 'string') {\n session = parseTelethonSession(session)\n }\n\n const dc: BasicDcOption = {\n id: session.dcId,\n ipAddress: session.ipAddress,\n port: session.port,\n ipv6: session.ipv6,\n }\n\n return {\n version: 3,\n // we don't exactly have that information. try to deduce it from DC_MAPPING_TEST\n // todo: we should maybe check this at connect?\n testMode: isTestDc(session.ipAddress),\n primaryDcs: {\n main: dc,\n media: dc,\n },\n authKey: session.authKey,\n }\n}\n\nexport function convertToTelethonSession(session: StringSessionData | string): string {\n if (typeof session === 'string') {\n session = readStringSession(__tlReaderMap, session)\n }\n\n return serializeTelethonSession({\n dcId: session.primaryDcs.main.id,\n ipAddress: session.primaryDcs.main.ipAddress,\n port: session.primaryDcs.main.port,\n ipv6: session.primaryDcs.main.ipv6 ?? false,\n authKey: session.authKey,\n })\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telethon/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA","sourcesContent":["export * from './convert.js'\nexport * from './parse.js'\nexport * from './serialize.js'\nexport * from './types.js'\n"]}
|