@mtcute/convert 0.10.0 → 0.12.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/cjs/gramjs/convert.js +1 -2
- package/cjs/gramjs/convert.js.map +1 -1
- package/cjs/gramjs/parse.js +1 -1
- package/cjs/gramjs/parse.js.map +1 -1
- package/cjs/gramjs/serialize.js.map +1 -1
- package/cjs/index.js +6 -0
- package/cjs/mtkruto/convert.js +1 -2
- package/cjs/mtkruto/convert.js.map +1 -1
- package/cjs/mtkruto/parse.js.map +1 -1
- package/cjs/pyrogram/convert.js +1 -2
- package/cjs/pyrogram/convert.js.map +1 -1
- package/cjs/pyrogram/parse.js.map +1 -1
- package/cjs/pyrogram/serialize.js.map +1 -1
- package/cjs/telethon/convert.js +1 -2
- package/cjs/telethon/convert.js.map +1 -1
- package/cjs/telethon/parse.js.map +1 -1
- package/cjs/telethon/serialize.js.map +1 -1
- package/cjs/utils/ip.js.map +1 -1
- package/cjs/utils/rle.js.map +1 -1
- package/esm/gramjs/convert.js +1 -2
- package/esm/gramjs/convert.js.map +1 -1
- package/esm/gramjs/parse.js +1 -1
- package/esm/gramjs/parse.js.map +1 -1
- package/esm/gramjs/serialize.js.map +1 -1
- package/esm/mtkruto/convert.js +1 -2
- package/esm/mtkruto/convert.js.map +1 -1
- package/esm/mtkruto/parse.js.map +1 -1
- package/esm/pyrogram/convert.js +1 -2
- package/esm/pyrogram/convert.js.map +1 -1
- package/esm/pyrogram/parse.js.map +1 -1
- package/esm/pyrogram/serialize.js.map +1 -1
- package/esm/telethon/convert.js +1 -2
- package/esm/telethon/convert.js.map +1 -1
- package/esm/telethon/parse.js.map +1 -1
- package/esm/telethon/serialize.js.map +1 -1
- package/esm/utils/ip.js.map +1 -1
- package/esm/utils/rle.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +7 -8
package/cjs/gramjs/convert.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertToGramjsSession = exports.convertFromGramjsSession = void 0;
|
|
4
4
|
const utils_js_1 = require("@mtcute/core/utils.js");
|
|
5
|
-
const reader_js_1 = require("@mtcute/tl/binary/reader.js");
|
|
6
5
|
const convert_js_1 = require("../telethon/convert.js");
|
|
7
6
|
const parse_js_1 = require("./parse.js");
|
|
8
7
|
const serialize_js_1 = require("./serialize.js");
|
|
@@ -15,7 +14,7 @@ function convertFromGramjsSession(session) {
|
|
|
15
14
|
exports.convertFromGramjsSession = convertFromGramjsSession;
|
|
16
15
|
function convertToGramjsSession(session) {
|
|
17
16
|
if (typeof session === 'string') {
|
|
18
|
-
session = (0, utils_js_1.readStringSession)(
|
|
17
|
+
session = (0, utils_js_1.readStringSession)(session);
|
|
19
18
|
}
|
|
20
19
|
return (0, serialize_js_1.serializeGramjsSession)({
|
|
21
20
|
dcId: session.primaryDcs.main.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/gramjs/convert.ts"],"names":[],"mappings":";;;AAAA,oDAA4E;
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/gramjs/convert.ts"],"names":[],"mappings":";;;AAAA,oDAA4E;AAE5E,uDAAmE;AAEnE,yCAA+C;AAC/C,iDAAuD;AAEvD,SAAgB,wBAAwB,CAAC,OAAiC;IACtE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,IAAA,6BAAkB,EAAC,OAAO,CAAC,CAAA;IACzC,CAAC;IAED,OAAO,IAAA,uCAA0B,EAAC,OAAO,CAAC,CAAA;AAC9C,CAAC;AAND,4DAMC;AAED,SAAgB,sBAAsB,CAAC,OAAmC;IACtE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,IAAA,4BAAiB,EAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,IAAA,qCAAsB,EAAC;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;AAZD,wDAYC","sourcesContent":["import { readStringSession, StringSessionData } from '@mtcute/core/utils.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(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"]}
|
package/cjs/gramjs/parse.js
CHANGED
package/cjs/gramjs/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/gramjs/parse.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAC9C,0DAAsD;AACtD,oDAA0D;AAI1D,SAAgB,kBAAkB,CAAC,OAAe;IAC9C,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/gramjs/parse.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAC9C,0DAAsD;AACtD,oDAA0D;AAI1D,SAAgB,kBAAkB,CAAC,OAAe;IAC9C,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACrB,UAAU;QACV,MAAM,IAAI,sBAAe,CAAC,qCAAqC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACjF,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE1B,MAAM,IAAI,GAAG,IAAA,yBAAW,GAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IAChD,MAAM,EAAE,GAAG,IAAA,6BAAkB,EAAC,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,IAAA,yBAAW,GAAE,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,EAAE,kCAAkC;QAC1D,IAAI;QACJ,OAAO;KACV,CAAA;AACL,CAAC;AA5BD,gDA4BC","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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/gramjs/serialize.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAC9C,0DAAsD;AACtD,oDAA0D;AAI1D,SAAgB,sBAAsB,CAAC,OAAwB;IAC3D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/gramjs/serialize.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAC9C,0DAAsD;AACtD,oDAA0D;AAI1D,SAAgB,sBAAsB,CAAC,OAAwB;IAC3D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACjC,MAAM,IAAI,sBAAe,CAAC,gCAAgC,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,yBAAW,GAAE,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,IAAA,6BAAkB,EAAC,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,IAAA,yBAAW,GAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;AAC/C,CAAC;AArBD,wDAqBC","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"]}
|
package/cjs/index.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
if (typeof globalThis !== 'undefined' && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
|
|
3
|
+
globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true
|
|
4
|
+
console.warn("[@mtcute/convert] CommonJS support is deprecated and will be removed soon. Please consider switching to ESM, it's "+(new Date()).getFullYear()+" already.")
|
|
5
|
+
console.warn("[@mtcute/convert] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c")
|
|
6
|
+
}
|
|
7
|
+
"use strict";
|
|
2
8
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
9
|
if (k2 === undefined) k2 = k;
|
|
4
10
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
package/cjs/mtkruto/convert.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertToMtkrutoSession = exports.convertFromMtkrutoSession = void 0;
|
|
4
4
|
const utils_js_1 = require("@mtcute/core/utils.js");
|
|
5
|
-
const reader_js_1 = require("@mtcute/tl/binary/reader.js");
|
|
6
5
|
const dcs_js_1 = require("../dcs.js");
|
|
7
6
|
const parse_js_1 = require("./parse.js");
|
|
8
7
|
const serialize_js_1 = require("./serialize.js");
|
|
@@ -20,7 +19,7 @@ function convertFromMtkrutoSession(session) {
|
|
|
20
19
|
exports.convertFromMtkrutoSession = convertFromMtkrutoSession;
|
|
21
20
|
function convertToMtkrutoSession(session) {
|
|
22
21
|
if (typeof session === 'string') {
|
|
23
|
-
session = (0, utils_js_1.readStringSession)(
|
|
22
|
+
session = (0, utils_js_1.readStringSession)(session);
|
|
24
23
|
}
|
|
25
24
|
return (0, serialize_js_1.serializeMtkrutoSession)({
|
|
26
25
|
dcId: session.primaryDcs.main.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/mtkruto/convert.ts"],"names":[],"mappings":";;;AAAA,oDAA4E;
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/mtkruto/convert.ts"],"names":[],"mappings":";;;AAAA,oDAA4E;AAE5E,sCAA4D;AAC5D,yCAAgD;AAChD,iDAAwD;AAGxD,SAAgB,yBAAyB,CAAC,OAAgC;IACtE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,IAAA,8BAAmB,EAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO;QACH,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,OAAO,CAAC,MAAM;QACxB,UAAU,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAe,CAAC,CAAC,CAAC,wBAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9E,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAA;AACL,CAAC;AAXD,8DAWC;AAED,SAAgB,uBAAuB,CAAC,OAAmC;IACvE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,IAAA,4BAAiB,EAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,IAAA,sCAAuB,EAAC;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;AAVD,0DAUC","sourcesContent":["import { readStringSession, StringSessionData } from '@mtcute/core/utils.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(session)\n }\n\n return serializeMtkrutoSession({\n dcId: session.primaryDcs.main.id,\n isTest: session.testMode,\n authKey: session.authKey,\n })\n}\n"]}
|
package/cjs/mtkruto/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/mtkruto/parse.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAC9C,0DAAsD;AACtD,oDAAsD;AAEtD,4CAAmD;AAGnD,SAAgB,mBAAmB,CAAC,OAAe;IAC/C,MAAM,IAAI,GAAG,IAAA,0BAAiB,EAAC,IAAA,yBAAW,GAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;IACzE,MAAM,MAAM,GAAG,yBAAc,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;
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/mtkruto/parse.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAC9C,0DAAsD;AACtD,oDAAsD;AAEtD,4CAAmD;AAGnD,SAAgB,mBAAmB,CAAC,OAAe;IAC/C,MAAM,IAAI,GAAG,IAAA,0BAAiB,EAAC,IAAA,yBAAW,GAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;IACzE,MAAM,MAAM,GAAG,yBAAc,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,CAAC;QACT,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAE5B,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,sBAAe,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO;QACH,IAAI;QACJ,MAAM;QACN,OAAO;KACV,CAAA;AACL,CAAC;AAvBD,kDAuBC","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"]}
|
package/cjs/pyrogram/convert.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertToPyrogramSession = exports.convertFromPyrogramSession = void 0;
|
|
4
4
|
const utils_js_1 = require("@mtcute/core/utils.js");
|
|
5
|
-
const reader_js_1 = require("@mtcute/tl/binary/reader.js");
|
|
6
5
|
const dcs_js_1 = require("../dcs.js");
|
|
7
6
|
const parse_js_1 = require("./parse.js");
|
|
8
7
|
const serialize_js_1 = require("./serialize.js");
|
|
@@ -26,7 +25,7 @@ function convertFromPyrogramSession(session) {
|
|
|
26
25
|
exports.convertFromPyrogramSession = convertFromPyrogramSession;
|
|
27
26
|
function convertToPyrogramSession(session, params) {
|
|
28
27
|
if (typeof session === 'string') {
|
|
29
|
-
session = (0, utils_js_1.readStringSession)(
|
|
28
|
+
session = (0, utils_js_1.readStringSession)(session);
|
|
30
29
|
}
|
|
31
30
|
return (0, serialize_js_1.serializePyrogramSession)({
|
|
32
31
|
apiId: params?.apiId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/pyrogram/convert.ts"],"names":[],"mappings":";;;AAAA,oDAA4E;
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/pyrogram/convert.ts"],"names":[],"mappings":";;;AAAA,oDAA4E;AAE5E,sCAA4D;AAC5D,yCAAiD;AACjD,iDAAyD;AAGzD,SAAgB,0BAA0B,CAAC,OAAiC;IACxE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,IAAA,+BAAoB,EAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO;QACH,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,OAAO,CAAC,MAAM;QACxB,UAAU,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAe,CAAC,CAAC,CAAC,wBAAe,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;AAjBD,gEAiBC;AAED,SAAgB,wBAAwB,CACpC,OAAmC,EACnC,MAEC;IAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,IAAA,4BAAiB,EAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,IAAA,uCAAwB,EAAC;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;AAlBD,4DAkBC","sourcesContent":["import { readStringSession, StringSessionData } from '@mtcute/core/utils.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(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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/pyrogram/parse.ts"],"names":[],"mappings":";AAAA,uFAAuF;;;AAEvF,uCAAmC;AACnC,0DAAsD;AACtD,oDAA0E;AAI1E,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAC/B,MAAM,sBAAsB,GAAG,GAAG,CAAA;AAElC,SAAgB,oBAAoB,CAAC,OAAe;IAChD,MAAM,IAAI,GAAG,IAAA,yBAAW,GAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACtD,MAAM,EAAE,GAAG,IAAA,6BAAkB,EAAC,IAAI,CAAC,CAAA;IAEnC,IAAI,OAAO,CAAC,MAAM,KAAK,mBAAmB,IAAI,OAAO,CAAC,MAAM,KAAK,sBAAsB,EAAE;
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/pyrogram/parse.ts"],"names":[],"mappings":";AAAA,uFAAuF;;;AAEvF,uCAAmC;AACnC,0DAAsD;AACtD,oDAA0E;AAI1E,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAC/B,MAAM,sBAAsB,GAAG,GAAG,CAAA;AAElC,SAAgB,oBAAoB,CAAC,OAAe;IAChD,MAAM,IAAI,GAAG,IAAA,yBAAW,GAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACtD,MAAM,EAAE,GAAG,IAAA,6BAAkB,EAAC,IAAI,CAAC,CAAA;IAEnC,IAAI,OAAO,CAAC,MAAM,KAAK,mBAAmB,IAAI,OAAO,CAAC,MAAM,KAAK,sBAAsB,EAAE,CAAC;QACtF,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,CAAC;YACtC,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAC9B,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAC7B,MAAM,GAAG,WAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;QAChD,CAAC;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;IACL,CAAC;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,IAAA,yBAAc,EAAC,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;AAlDD,oDAkDC","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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/pyrogram/serialize.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AACpD,0DAAsD;AACtD,oDAA0D;AAI1D,MAAM,uBAAuB,GAAG,GAAG,CAAA;AACnC,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAE/B,SAAgB,wBAAwB,CAAC,OAAwB;IAC7D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/pyrogram/serialize.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AACpD,0DAAsD;AACtD,oDAA0D;AAI1D,MAAM,uBAAuB,GAAG,GAAG,CAAA;AACnC,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAE/B,SAAgB,wBAAwB,CAAC,OAAwB;IAC7D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACjC,MAAM,IAAI,sBAAe,CAAC,gCAAgC,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,UAAU,GAAG,WAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAExD,IAAI,EAAc,CAAA;IAElB,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,aAAa;QACb,EAAE,GAAG,IAAI,UAAU,CAAC,uBAAuB,CAAC,CAAA;QAC5C,MAAM,EAAE,GAAG,IAAA,6BAAkB,EAAC,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;IAC3C,CAAC;SAAM,CAAC;QACJ,EAAE,GAAG,IAAI,UAAU,CAAC,mBAAmB,CAAC,CAAA;QACxC,MAAM,EAAE,GAAG,IAAA,6BAAkB,EAAC,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;IAC3C,CAAC;IAED,OAAO,IAAA,yBAAW,GAAE,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;AAC/C,CAAC;AAnCD,4DAmCC","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"]}
|
package/cjs/telethon/convert.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertToTelethonSession = exports.convertFromTelethonSession = void 0;
|
|
4
4
|
const utils_js_1 = require("@mtcute/core/utils.js");
|
|
5
|
-
const reader_js_1 = require("@mtcute/tl/binary/reader.js");
|
|
6
5
|
const dcs_js_1 = require("../dcs.js");
|
|
7
6
|
const parse_js_1 = require("./parse.js");
|
|
8
7
|
const serialize_js_1 = require("./serialize.js");
|
|
@@ -31,7 +30,7 @@ function convertFromTelethonSession(session) {
|
|
|
31
30
|
exports.convertFromTelethonSession = convertFromTelethonSession;
|
|
32
31
|
function convertToTelethonSession(session) {
|
|
33
32
|
if (typeof session === 'string') {
|
|
34
|
-
session = (0, utils_js_1.readStringSession)(
|
|
33
|
+
session = (0, utils_js_1.readStringSession)(session);
|
|
35
34
|
}
|
|
36
35
|
return (0, serialize_js_1.serializeTelethonSession)({
|
|
37
36
|
dcId: session.primaryDcs.main.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/telethon/convert.ts"],"names":[],"mappings":";;;AAAA,oDAA2F;
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/telethon/convert.ts"],"names":[],"mappings":";;;AAAA,oDAA2F;AAE3F,sCAAoC;AACpC,yCAAiD;AACjD,iDAAyD;AAGzD,SAAgB,0BAA0B,CAAC,OAAiC;IACxE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,IAAA,+BAAoB,EAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;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,IAAA,iBAAQ,EAAC,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;AAvBD,gEAuBC;AAED,SAAgB,wBAAwB,CAAC,OAAmC;IACxE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,IAAA,4BAAiB,EAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,IAAA,uCAAwB,EAAC;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;AAZD,4DAYC","sourcesContent":["import { BasicDcOption, readStringSession, StringSessionData } from '@mtcute/core/utils.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(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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/telethon/parse.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAC9C,0DAAsD;AACtD,oDAA0D;AAE1D,0CAAiD;AAGjD,SAAgB,oBAAoB,CAAC,OAAe;IAChD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/telethon/parse.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAC9C,0DAAsD;AACtD,oDAA0D;AAE1D,0CAAiD;AAGjD,SAAgB,oBAAoB,CAAC,OAAe;IAChD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACrB,UAAU;QACV,MAAM,IAAI,sBAAe,CAAC,qCAAqC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACjF,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE1B,MAAM,IAAI,GAAG,IAAA,yBAAW,GAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACtD,MAAM,EAAE,GAAG,IAAA,6BAAkB,EAAC,IAAI,CAAC,CAAA;IAEnC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAE3B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9C,IAAI,GAAG,GAAG,CAAC,GAAG,MAAM,CAAA;IAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACrC,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,MAAM,EAAE,GAAG,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAA;IAEpC,OAAO;QACH,IAAI;QACJ,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,MAAM,KAAK,EAAE;QACnB,IAAI;QACJ,OAAO;KACV,CAAA;AACL,CAAC;AA9BD,oDA8BC","sourcesContent":["import { MtArgumentError } from '@mtcute/core'\nimport { getPlatform } from '@mtcute/core/platform.js'\nimport { dataViewFromBuffer } from '@mtcute/core/utils.js'\n\nimport { parseIpFromBytes } from '../utils/ip.js'\nimport { TelethonSession } from './types.js'\n\nexport function parseTelethonSession(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, true)\n const dv = dataViewFromBuffer(data)\n\n const dcId = dv.getUint8(0)\n\n const ipSize = session.length === 352 ? 4 : 16\n let pos = 1 + ipSize\n\n const ipBytes = data.subarray(1, pos)\n const port = dv.getUint16(pos)\n pos += 2\n const authKey = data.subarray(pos, pos + 256)\n\n const ip = parseIpFromBytes(ipBytes)\n\n return {\n dcId,\n ipAddress: ip,\n ipv6: ipSize === 16,\n port,\n authKey,\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/telethon/serialize.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAC9C,0DAAsD;AACtD,oDAA0D;AAE1D,0CAA2E;AAG3E,SAAgB,wBAAwB,CAAC,OAAwB;IAC7D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/telethon/serialize.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAC9C,0DAAsD;AACtD,oDAA0D;AAE1D,0CAA2E;AAG3E,SAAgB,wBAAwB,CAAC,OAAwB;IAC7D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACjC,MAAM,IAAI,sBAAe,CAAC,gCAAgC,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACpC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC,CAAA;IACvC,MAAM,EAAE,GAAG,IAAA,6BAAkB,EAAC,EAAE,CAAC,CAAA;IAEjC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5B,IAAI,GAAG,CAAA;IAEP,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,IAAA,4BAAoB,EAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QAC3D,GAAG,GAAG,EAAE,CAAA;IACZ,CAAC;SAAM,CAAC;QACJ,IAAA,4BAAoB,EAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC1D,GAAG,GAAG,CAAC,CAAA;IACX,CAAC;IAED,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,IAAI,GAAG,GAAG,IAAA,yBAAW,GAAE,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAC9C,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;QAAE,GAAG,IAAI,GAAG,CAAA,CAAC,wCAAwC;IAEhF,OAAO,GAAG,GAAG,GAAG,CAAA;AACpB,CAAC;AA7BD,4DA6BC","sourcesContent":["import { MtArgumentError } from '@mtcute/core'\nimport { getPlatform } from '@mtcute/core/platform.js'\nimport { dataViewFromBuffer } from '@mtcute/core/utils.js'\n\nimport { serializeIpv4ToBytes, serializeIpv6ToBytes } from '../utils/ip.js'\nimport { TelethonSession } from './types.js'\n\nexport function serializeTelethonSession(session: TelethonSession) {\n if (session.authKey.length !== 256) {\n throw new MtArgumentError('authKey must be 256 bytes long')\n }\n\n const ipSize = session.ipv6 ? 16 : 4\n const u8 = new Uint8Array(259 + ipSize)\n const dv = dataViewFromBuffer(u8)\n\n dv.setUint8(0, session.dcId)\n\n let pos\n\n if (session.ipv6) {\n serializeIpv6ToBytes(session.ipAddress, u8.subarray(1, 17))\n pos = 17\n } else {\n serializeIpv4ToBytes(session.ipAddress, u8.subarray(1, 5))\n pos = 5\n }\n\n dv.setUint16(pos, session.port)\n pos += 2\n u8.set(session.authKey, pos)\n\n let b64 = getPlatform().base64Encode(u8, true)\n while (b64.length % 4 !== 0) b64 += '=' // for some reason telethon uses padding\n\n return '1' + b64\n}\n"]}
|
package/cjs/utils/ip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ip.js","sourceRoot":"","sources":["../../../src/utils/ip.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAE9C,SAAgB,gBAAgB,CAAC,IAAgB;IAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"ip.js","sourceRoot":"","sources":["../../../src/utils/ip.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAE9C,SAAgB,gBAAgB,CAAC,IAAgB;IAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IACxD,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACrB,IAAI,GAAG,GAAG,EAAE,CAAA;QAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YAC5C,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YAChD,IAAI,CAAC,GAAG,EAAE;gBAAE,GAAG,IAAI,GAAG,CAAA;QAC1B,CAAC;QAED,OAAO,GAAG,CAAA;IACd,CAAC;IAED,MAAM,IAAI,sBAAe,CAAC,2BAA2B,CAAC,CAAA;AAC1D,CAAC;AAlBD,4CAkBC;AAED,SAAgB,oBAAoB,CAAC,EAAU,EAAE,GAAe;IAC5D,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE3B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,sBAAe,CAAC,sBAAsB,CAAC,CAAA;IACrD,CAAC;IAED,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7B,CAAC;AAXD,oDAWC;AAED,SAAgB,oBAAoB,CAAC,EAAU,EAAE,GAAe;IAC5D,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE3B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,sBAAe,CAAC,sBAAsB,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;QACrB,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAA;IAC/B,CAAC;AACL,CAAC;AAZD,oDAYC","sourcesContent":["import { MtArgumentError } from '@mtcute/core'\n\nexport function parseIpFromBytes(data: Uint8Array): string {\n if (data.length === 4) {\n return `${data[0]}.${data[1]}.${data[2]}.${data[3]}`\n }\n\n if (data.length === 16) {\n let res = ''\n\n for (let i = 0; i < 16; i += 2) {\n res += data[i].toString(16).padStart(2, '0')\n res += data[i + 1].toString(16).padStart(2, '0')\n if (i < 14) res += ':'\n }\n\n return res\n }\n\n throw new MtArgumentError('Invalid IP address length')\n}\n\nexport function serializeIpv4ToBytes(ip: string, buf: Uint8Array) {\n const parts = ip.split('.')\n\n if (parts.length !== 4) {\n throw new MtArgumentError('Invalid IPv4 address')\n }\n\n buf[0] = Number(parts[0])\n buf[1] = Number(parts[1])\n buf[2] = Number(parts[2])\n buf[3] = Number(parts[3])\n}\n\nexport function serializeIpv6ToBytes(ip: string, buf: Uint8Array) {\n const parts = ip.split(':')\n\n if (parts.length !== 8) {\n throw new MtArgumentError('Invalid IPv6 address')\n }\n\n for (let i = 0; i < 8; i++) {\n const val = parseInt(parts[i], 16)\n buf[i * 2] = val >> 8\n buf[i * 2 + 1] = val & 0xff\n }\n}\n"]}
|
package/cjs/utils/rle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rle.js","sourceRoot":"","sources":["../../../src/utils/rle.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;AAE5C,SAAgB,iBAAiB,CAAC,GAAe;IAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;IACtB,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"rle.js","sourceRoot":"","sources":["../../../src/utils/rle.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;AAE5C,SAAgB,iBAAiB,CAAC,GAAe;IAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;IACtB,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAElB,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACZ,KAAK,IAAI,CAAC,CAAA;QACd,CAAC;aAAM,CAAC;YACJ,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;gBAClB,KAAK,GAAG,CAAC,CAAA;YACb,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjB,CAAC;IACL,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACtB,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;AAC9B,CAAC;AAzBD,8CAyBC;AAED,SAAgB,iBAAiB,CAAC,GAAe;IAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;IACtB,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,IAAI,GAAG,CAAC,CAAC,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAElB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClB,CAAC;YACD,IAAI,GAAG,CAAC,CAAC,CAAA;QACb,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,KAAK,CAAC,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,GAAG,GAAG,CAAA;QACd,CAAC;IACL,CAAC;IAED,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE/B,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;AAC9B,CAAC;AAtBD,8CAsBC;AAED,SAAgB,WAAW,CAAC,CAAQ;IAChC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;AAClC,CAAC;AAFD,kCAEC","sourcesContent":["// tdlib's RLE only encodes consecutive \\x00\n\nexport function telegramRleEncode(buf: Uint8Array): Uint8Array {\n const len = buf.length\n const ret: number[] = []\n let count = 0\n\n for (let i = 0; i < len; i++) {\n const cur = buf[i]\n\n if (cur === 0) {\n count += 1\n } else {\n if (count > 0) {\n ret.push(0, count)\n count = 0\n }\n\n ret.push(cur)\n }\n }\n\n if (count > 0) {\n ret.push(0, count)\n }\n\n return new Uint8Array(ret)\n}\n\nexport function telegramRleDecode(buf: Uint8Array): Uint8Array {\n const len = buf.length\n const ret: number[] = []\n let prev = -1\n\n for (let i = 0; i < len; i++) {\n const cur = buf[i]\n\n if (prev === 0) {\n for (let j = 0; j < cur; j++) {\n ret.push(prev)\n }\n prev = -1\n } else {\n if (prev !== -1) ret.push(prev)\n prev = cur\n }\n }\n\n if (prev !== -1) ret.push(prev)\n\n return new Uint8Array(ret)\n}\n\nexport function assertNever(_: never): never {\n throw new Error('unreachable')\n}\n"]}
|
package/esm/gramjs/convert.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { readStringSession } from '@mtcute/core/utils.js';
|
|
2
|
-
import { __tlReaderMap } from '@mtcute/tl/binary/reader.js';
|
|
3
2
|
import { convertFromTelethonSession } from '../telethon/convert.js';
|
|
4
3
|
import { parseGramjsSession } from './parse.js';
|
|
5
4
|
import { serializeGramjsSession } from './serialize.js';
|
|
@@ -11,7 +10,7 @@ export function convertFromGramjsSession(session) {
|
|
|
11
10
|
}
|
|
12
11
|
export function convertToGramjsSession(session) {
|
|
13
12
|
if (typeof session === 'string') {
|
|
14
|
-
session = readStringSession(
|
|
13
|
+
session = readStringSession(session);
|
|
15
14
|
}
|
|
16
15
|
return serializeGramjsSession({
|
|
17
16
|
dcId: session.primaryDcs.main.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/gramjs/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/gramjs/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,uBAAuB,CAAA;AAE5E,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,CAAC;QAC9B,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;IAED,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAmC;IACtE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;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'\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(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"]}
|
package/esm/gramjs/parse.js
CHANGED
package/esm/gramjs/parse.js.map
CHANGED
|
@@ -1 +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;
|
|
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,CAAC;QACrB,UAAU;QACV,MAAM,IAAI,eAAe,CAAC,qCAAqC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACjF,CAAC;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,EAAE,kCAAkC;QAC1D,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"]}
|
|
@@ -1 +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;
|
|
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,CAAC;QACjC,MAAM,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAA;IAC/D,CAAC;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"]}
|
package/esm/mtkruto/convert.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { readStringSession } from '@mtcute/core/utils.js';
|
|
2
|
-
import { __tlReaderMap } from '@mtcute/tl/binary/reader.js';
|
|
3
2
|
import { DC_MAPPING_PROD, DC_MAPPING_TEST } from '../dcs.js';
|
|
4
3
|
import { parseMtkrutoSession } from './parse.js';
|
|
5
4
|
import { serializeMtkrutoSession } from './serialize.js';
|
|
@@ -16,7 +15,7 @@ export function convertFromMtkrutoSession(session) {
|
|
|
16
15
|
}
|
|
17
16
|
export function convertToMtkrutoSession(session) {
|
|
18
17
|
if (typeof session === 'string') {
|
|
19
|
-
session = readStringSession(
|
|
18
|
+
session = readStringSession(session);
|
|
20
19
|
}
|
|
21
20
|
return serializeMtkrutoSession({
|
|
22
21
|
dcId: session.primaryDcs.main.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/mtkruto/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/mtkruto/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,uBAAuB,CAAA;AAE5E,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,CAAC;QAC9B,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;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,CAAC;QAC9B,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;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'\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(session)\n }\n\n return serializeMtkrutoSession({\n dcId: session.primaryDcs.main.id,\n isTest: session.testMode,\n authKey: session.authKey,\n })\n}\n"]}
|
package/esm/mtkruto/parse.js.map
CHANGED
|
@@ -1 +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;
|
|
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,CAAC;QACT,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAE5B,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,eAAe,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC;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"]}
|
package/esm/pyrogram/convert.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { readStringSession } from '@mtcute/core/utils.js';
|
|
2
|
-
import { __tlReaderMap } from '@mtcute/tl/binary/reader.js';
|
|
3
2
|
import { DC_MAPPING_PROD, DC_MAPPING_TEST } from '../dcs.js';
|
|
4
3
|
import { parsePyrogramSession } from './parse.js';
|
|
5
4
|
import { serializePyrogramSession } from './serialize.js';
|
|
@@ -22,7 +21,7 @@ export function convertFromPyrogramSession(session) {
|
|
|
22
21
|
}
|
|
23
22
|
export function convertToPyrogramSession(session, params) {
|
|
24
23
|
if (typeof session === 'string') {
|
|
25
|
-
session = readStringSession(
|
|
24
|
+
session = readStringSession(session);
|
|
26
25
|
}
|
|
27
26
|
return serializePyrogramSession({
|
|
28
27
|
apiId: params?.apiId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/pyrogram/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/pyrogram/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,uBAAuB,CAAA;AAE5E,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,CAAC;QAC9B,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;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,CAAC;QAC9B,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;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'\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(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"]}
|
|
@@ -1 +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;
|
|
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,CAAC;QACtF,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,CAAC;YACtC,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACJ,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;QAChD,CAAC;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;IACL,CAAC;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"]}
|
|
@@ -1 +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;
|
|
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,CAAC;QACjC,MAAM,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAA;IAC/D,CAAC;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,CAAC;QAC9B,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;IAC3C,CAAC;SAAM,CAAC;QACJ,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;IAC3C,CAAC;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"]}
|
package/esm/telethon/convert.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { readStringSession } from '@mtcute/core/utils.js';
|
|
2
|
-
import { __tlReaderMap } from '@mtcute/tl/binary/reader.js';
|
|
3
2
|
import { isTestDc } from '../dcs.js';
|
|
4
3
|
import { parseTelethonSession } from './parse.js';
|
|
5
4
|
import { serializeTelethonSession } from './serialize.js';
|
|
@@ -27,7 +26,7 @@ export function convertFromTelethonSession(session) {
|
|
|
27
26
|
}
|
|
28
27
|
export function convertToTelethonSession(session) {
|
|
29
28
|
if (typeof session === 'string') {
|
|
30
|
-
session = readStringSession(
|
|
29
|
+
session = readStringSession(session);
|
|
31
30
|
}
|
|
32
31
|
return serializeTelethonSession({
|
|
33
32
|
dcId: session.primaryDcs.main.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/telethon/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,iBAAiB,EAAqB,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/telethon/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,iBAAiB,EAAqB,MAAM,uBAAuB,CAAA;AAE3F,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,CAAC;QAC9B,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;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,CAAC;QAC9B,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;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'\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(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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/telethon/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;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGjD,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAChD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/telethon/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;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGjD,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAChD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACrB,UAAU;QACV,MAAM,IAAI,eAAe,CAAC,qCAAqC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACjF,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE1B,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACtD,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAEnC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAE3B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9C,IAAI,GAAG,GAAG,CAAC,GAAG,MAAM,CAAA;IAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACrC,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,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAEpC,OAAO;QACH,IAAI;QACJ,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,MAAM,KAAK,EAAE;QACnB,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 { parseIpFromBytes } from '../utils/ip.js'\nimport { TelethonSession } from './types.js'\n\nexport function parseTelethonSession(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, true)\n const dv = dataViewFromBuffer(data)\n\n const dcId = dv.getUint8(0)\n\n const ipSize = session.length === 352 ? 4 : 16\n let pos = 1 + ipSize\n\n const ipBytes = data.subarray(1, pos)\n const port = dv.getUint16(pos)\n pos += 2\n const authKey = data.subarray(pos, pos + 256)\n\n const ip = parseIpFromBytes(ipBytes)\n\n return {\n dcId,\n ipAddress: ip,\n ipv6: ipSize === 16,\n port,\n authKey,\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/telethon/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;AAE1D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAG3E,MAAM,UAAU,wBAAwB,CAAC,OAAwB;IAC7D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/telethon/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;AAE1D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAG3E,MAAM,UAAU,wBAAwB,CAAC,OAAwB;IAC7D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACjC,MAAM,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACpC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC,CAAA;IACvC,MAAM,EAAE,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;IAEjC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5B,IAAI,GAAG,CAAA;IAEP,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,oBAAoB,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QAC3D,GAAG,GAAG,EAAE,CAAA;IACZ,CAAC;SAAM,CAAC;QACJ,oBAAoB,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC1D,GAAG,GAAG,CAAC,CAAA;IACX,CAAC;IAED,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,IAAI,GAAG,GAAG,WAAW,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAC9C,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;QAAE,GAAG,IAAI,GAAG,CAAA,CAAC,wCAAwC;IAEhF,OAAO,GAAG,GAAG,GAAG,CAAA;AACpB,CAAC","sourcesContent":["import { MtArgumentError } from '@mtcute/core'\nimport { getPlatform } from '@mtcute/core/platform.js'\nimport { dataViewFromBuffer } from '@mtcute/core/utils.js'\n\nimport { serializeIpv4ToBytes, serializeIpv6ToBytes } from '../utils/ip.js'\nimport { TelethonSession } from './types.js'\n\nexport function serializeTelethonSession(session: TelethonSession) {\n if (session.authKey.length !== 256) {\n throw new MtArgumentError('authKey must be 256 bytes long')\n }\n\n const ipSize = session.ipv6 ? 16 : 4\n const u8 = new Uint8Array(259 + ipSize)\n const dv = dataViewFromBuffer(u8)\n\n dv.setUint8(0, session.dcId)\n\n let pos\n\n if (session.ipv6) {\n serializeIpv6ToBytes(session.ipAddress, u8.subarray(1, 17))\n pos = 17\n } else {\n serializeIpv4ToBytes(session.ipAddress, u8.subarray(1, 5))\n pos = 5\n }\n\n dv.setUint16(pos, session.port)\n pos += 2\n u8.set(session.authKey, pos)\n\n let b64 = getPlatform().base64Encode(u8, true)\n while (b64.length % 4 !== 0) b64 += '=' // for some reason telethon uses padding\n\n return '1' + b64\n}\n"]}
|
package/esm/utils/ip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ip.js","sourceRoot":"","sources":["../../../src/utils/ip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,UAAU,gBAAgB,CAAC,IAAgB;IAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"ip.js","sourceRoot":"","sources":["../../../src/utils/ip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,UAAU,gBAAgB,CAAC,IAAgB;IAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IACxD,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACrB,IAAI,GAAG,GAAG,EAAE,CAAA;QAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YAC5C,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YAChD,IAAI,CAAC,GAAG,EAAE;gBAAE,GAAG,IAAI,GAAG,CAAA;QAC1B,CAAC;QAED,OAAO,GAAG,CAAA;IACd,CAAC;IAED,MAAM,IAAI,eAAe,CAAC,2BAA2B,CAAC,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAU,EAAE,GAAe;IAC5D,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE3B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;IACrD,CAAC;IAED,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAU,EAAE,GAAe;IAC5D,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE3B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;QACrB,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAA;IAC/B,CAAC;AACL,CAAC","sourcesContent":["import { MtArgumentError } from '@mtcute/core'\n\nexport function parseIpFromBytes(data: Uint8Array): string {\n if (data.length === 4) {\n return `${data[0]}.${data[1]}.${data[2]}.${data[3]}`\n }\n\n if (data.length === 16) {\n let res = ''\n\n for (let i = 0; i < 16; i += 2) {\n res += data[i].toString(16).padStart(2, '0')\n res += data[i + 1].toString(16).padStart(2, '0')\n if (i < 14) res += ':'\n }\n\n return res\n }\n\n throw new MtArgumentError('Invalid IP address length')\n}\n\nexport function serializeIpv4ToBytes(ip: string, buf: Uint8Array) {\n const parts = ip.split('.')\n\n if (parts.length !== 4) {\n throw new MtArgumentError('Invalid IPv4 address')\n }\n\n buf[0] = Number(parts[0])\n buf[1] = Number(parts[1])\n buf[2] = Number(parts[2])\n buf[3] = Number(parts[3])\n}\n\nexport function serializeIpv6ToBytes(ip: string, buf: Uint8Array) {\n const parts = ip.split(':')\n\n if (parts.length !== 8) {\n throw new MtArgumentError('Invalid IPv6 address')\n }\n\n for (let i = 0; i < 8; i++) {\n const val = parseInt(parts[i], 16)\n buf[i * 2] = val >> 8\n buf[i * 2 + 1] = val & 0xff\n }\n}\n"]}
|
package/esm/utils/rle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rle.js","sourceRoot":"","sources":["../../../src/utils/rle.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,MAAM,UAAU,iBAAiB,CAAC,GAAe;IAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;IACtB,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"rle.js","sourceRoot":"","sources":["../../../src/utils/rle.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,MAAM,UAAU,iBAAiB,CAAC,GAAe;IAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;IACtB,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAElB,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACZ,KAAK,IAAI,CAAC,CAAA;QACd,CAAC;aAAM,CAAC;YACJ,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;gBAClB,KAAK,GAAG,CAAC,CAAA;YACb,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjB,CAAC;IACL,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACtB,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAe;IAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;IACtB,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,IAAI,GAAG,CAAC,CAAC,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAElB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClB,CAAC;YACD,IAAI,GAAG,CAAC,CAAC,CAAA;QACb,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,KAAK,CAAC,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,GAAG,GAAG,CAAA;QACd,CAAC;IACL,CAAC;IAED,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE/B,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAQ;IAChC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;AAClC,CAAC","sourcesContent":["// tdlib's RLE only encodes consecutive \\x00\n\nexport function telegramRleEncode(buf: Uint8Array): Uint8Array {\n const len = buf.length\n const ret: number[] = []\n let count = 0\n\n for (let i = 0; i < len; i++) {\n const cur = buf[i]\n\n if (cur === 0) {\n count += 1\n } else {\n if (count > 0) {\n ret.push(0, count)\n count = 0\n }\n\n ret.push(cur)\n }\n }\n\n if (count > 0) {\n ret.push(0, count)\n }\n\n return new Uint8Array(ret)\n}\n\nexport function telegramRleDecode(buf: Uint8Array): Uint8Array {\n const len = buf.length\n const ret: number[] = []\n let prev = -1\n\n for (let i = 0; i < len; i++) {\n const cur = buf[i]\n\n if (prev === 0) {\n for (let j = 0; j < cur; j++) {\n ret.push(prev)\n }\n prev = -1\n } else {\n if (prev !== -1) ret.push(prev)\n prev = cur\n }\n }\n\n if (prev !== -1) ret.push(prev)\n\n return new Uint8Array(ret)\n}\n\nexport function assertNever(_: never): never {\n throw new Error('unreachable')\n}\n"]}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './esm/index.js'
|
package/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './esm/index.js'
|
package/package.json
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mtcute/convert",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Cross-library session conversion utilities",
|
|
5
5
|
"author": "alina sireneva <alina@tei.su>",
|
|
6
6
|
"license": "MIT",
|
|
7
|
-
"main": "cjs/index.js",
|
|
8
7
|
"type": "module",
|
|
9
8
|
"sideEffects": false,
|
|
10
9
|
"scripts": {},
|
|
11
|
-
"dependencies": {
|
|
12
|
-
"@mtcute/core": "^0.10.0",
|
|
13
|
-
"@mtcute/tl": "*"
|
|
14
|
-
},
|
|
15
|
-
"module": "esm/index.js",
|
|
16
10
|
"exports": {
|
|
17
11
|
".": {
|
|
18
12
|
"import": "./esm/index.js",
|
|
19
13
|
"require": "./cjs/index.js"
|
|
20
14
|
}
|
|
21
|
-
}
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@mtcute/core": "^0.12.0"
|
|
18
|
+
},
|
|
19
|
+
"main": "cjs/index.js",
|
|
20
|
+
"module": "esm/index.js"
|
|
22
21
|
}
|