Socket
Socket
Sign inDemoInstall

@mtproto/core

Package Overview
Dependencies
12
Maintainers
1
Versions
43
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 4.0.1 to 5.0.0

src/utils/common/logger/index.cjs

42

package.json
{
"name": "@mtproto/core",
"version": "4.0.1",
"version": "5.0.0",
"description": "Telegram API JS (MTProto) client library for browser and nodejs",

@@ -81,7 +81,2 @@ "keywords": [

},
"./src/tl/package.json": "./src/tl/package.json",
"./src/tl": {
"require": "./src/tl/index.cjs",
"import": "./src/tl/index.js"
},
"./src/transport/package.json": "./src/transport/package.json",

@@ -104,2 +99,17 @@ "./src/transport": {

},
"./src/transport/obfuscated/package.json": "./src/transport/obfuscated/package.json",
"./src/transport/obfuscated": {
"require": "./src/transport/obfuscated/index.cjs",
"import": "./src/transport/obfuscated/index.js"
},
"./src/transport/socket/package.json": "./src/transport/socket/package.json",
"./src/transport/socket": {
"require": "./src/transport/socket/index.cjs",
"import": "./src/transport/socket/index.js"
},
"./src/transport/tcp/package.json": "./src/transport/tcp/package.json",
"./src/transport/tcp": {
"require": "./src/transport/tcp/index.cjs",
"import": "./src/transport/tcp/index.js"
},
"./src/tl/builder/package.json": "./src/tl/builder/package.json",

@@ -125,17 +135,2 @@ "./src/tl/builder": {

},
"./src/transport/obfuscated/package.json": "./src/transport/obfuscated/package.json",
"./src/transport/obfuscated": {
"require": "./src/transport/obfuscated/index.cjs",
"import": "./src/transport/obfuscated/index.js"
},
"./src/transport/socket/package.json": "./src/transport/socket/package.json",
"./src/transport/socket": {
"require": "./src/transport/socket/index.cjs",
"import": "./src/transport/socket/index.js"
},
"./src/transport/tcp/package.json": "./src/transport/tcp/package.json",
"./src/transport/tcp": {
"require": "./src/transport/tcp/index.cjs",
"import": "./src/transport/tcp/index.js"
},
"./src/utils/common/package.json": "./src/utils/common/package.json",

@@ -161,2 +156,7 @@ "./src/utils/common": {

},
"./src/utils/common/logger/package.json": "./src/utils/common/logger/package.json",
"./src/utils/common/logger": {
"require": "./src/utils/common/logger/index.cjs",
"import": "./src/utils/common/logger/index.js"
},
"./src/utils/common/random/package.json": "./src/utils/common/random/package.json",

@@ -163,0 +163,0 @@ "./src/utils/common/random": {

@@ -21,4 +21,5 @@ import bigInt from 'big-integer';

import { getRsaKeyByFingerprints } from '../utils/rsa/index.js';
import { createLogger } from '../utils/common/logger/index.js';
import { tlParse, tlBuild } from '../tl/index.js';
const logger = createLogger('RPC');

@@ -61,7 +62,11 @@ class RPC {

const bytes = tlBuild({
const serializer = new Serializer();
serializer.predicate({
_: 'mt_msgs_ack',
msg_ids: this.pendingAcks,
}).getBytes();
});
const bytes = serializer.getBytes();
this.pendingAcks = [];

@@ -133,3 +138,3 @@

const responsePQ = tlParse(deserializer);
const responsePQ = deserializer.predicate();
const {

@@ -155,3 +160,5 @@ pq,

const serializer = tlBuild({
const serializer = new Serializer();
serializer.predicate({
_: 'mt_p_q_inner_data',

@@ -194,3 +201,3 @@ pq: pq,

const serverDH = tlParse(deserializer);
const serverDH = deserializer.predicate();
const { nonce, server_nonce, encrypted_answer } = serverDH;

@@ -221,3 +228,3 @@

const innerDeserializer = new Deserializer(decryptedData.slice(20).buffer);
const serverDHInnerData = tlParse(innerDeserializer);
const serverDHInnerData = innerDeserializer.predicate();

@@ -295,3 +302,5 @@ if (

const innerData = tlBuild({
const serializer = new Serializer();
serializer.predicate({
_: 'mt_client_DH_inner_data',

@@ -302,4 +311,6 @@ nonce: this.nonce,

g_b: bigIntToBytes(this.g.modPow(b, this.dhPrime)),
}).getBytes();
});
const innerData = serializer.getBytes();
const innerDataHash = await SHA1(innerData);

@@ -328,3 +339,3 @@ const paddingLength = 16 - ((innerDataHash.length + innerData.length) % 16);

const serverDHAnswer = tlParse(deserializer);
const serverDHAnswer = deserializer.predicate();

@@ -443,4 +454,14 @@ const { nonce, server_nonce } = serverDHAnswer;

const result = tlParse(plainDeserializer);
logger.bytes({
name: 'handleEncryptedMessage plainDeserializer.byteView',
bytes: plainDeserializer.byteView,
});
const result = plainDeserializer.predicate();
logger.log({
name: 'handleEncryptedMessage result',
result,
});
this.handleDecryptedMessage(result, { messageId, seqNo });

@@ -450,5 +471,2 @@ }

async handleDecryptedMessage(message, params = {}) {
// console.log(`---handleDecryptedMessage ${message._}`);
// console.log(`message:`, message);
const { messageId } = params;

@@ -552,3 +570,3 @@

device_model: '@mtproto/core',
system_version: '4.0.1',
system_version: '5.0.0',
app_version: '1.0.0',

@@ -560,3 +578,5 @@ system_lang_code: 'en',

const bytes = tlBuild({
const serializer = new Serializer();
serializer.predicate({
_: 'invokeWithLayer',

@@ -574,4 +594,16 @@ layer: 113,

},
}).getBytes();
});
logger.log({
name: 'call params',
params,
});
const bytes = serializer.getBytes();
logger.bytes({
name: 'call bytes',
bytes,
});
return new Promise(async (resolve, reject) => {

@@ -645,3 +677,6 @@ const messageId = await this.sendEncryptedMessage(bytes);

async sendPlainMessage(params) {
const requestBytes = tlBuild(params).getBytes();
const serializer = new Serializer();
serializer.predicate(params);
const requestBytes = serializer.getBytes();
const requestLength = requestBytes.length;

@@ -648,0 +683,0 @@

@@ -0,1 +1,3 @@

import { inflate } from 'pako/lib/inflate';
import parserMap from '../parser/index.js';
import { intsToLong } from '../../utils/common/index.js';

@@ -73,4 +75,48 @@

}
int() {
return this.int32();
}
vector(fn, bare = false) {
if (!bare) {
this.int32();
}
const length = this.int32();
const result = [];
for (let i = 0; i < length; i++) {
result.push(fn.call(this));
}
return result;
}
gzip() {
const deserializer = new Deserializer(inflate(this.bytes()).buffer);
return deserializer.predicate();
}
mt_message() {
const fn = parserMap.get(1538843921);
return fn.call(this);
}
predicate() {
const id = this.int32() >>> 0;
const fn = parserMap.get(id);
if (!fn) {
console.log('Not found predicate with id:', id);
return;
}
return fn.call(this);
}
}
export default Deserializer;
import bigInt from 'big-integer';
import builderMap from '../builder/index.js';

@@ -92,2 +93,44 @@ class Serializer {

int(value) {
this.int32(value);
}
// TODO: Convert method name to 'bool'
Bool(value) {
this.predicate({ _: value ? 'boolTrue' : 'boolFalse' });
}
has(value) {
return +!!(Array.isArray(value) ? value.length : value);
}
flag(fn, value) {
if (this.has(value)) {
fn.call(this, value);
}
}
flagVector(fn, value) {
if (value === undefined || value.length === 0) {
return;
}
this.vector(fn, value);
}
vector(fn, value) {
this.int32(0x1cb5c415);
this.int32(value.length);
for (let i = 0; i < value.length; i++) {
fn.call(this, value[i]);
}
}
predicate(params, bare = false) {
const fn = builderMap[params._];
fn.call(this, params);
}
getBytes() {

@@ -94,0 +137,0 @@ const resultBuffer = new ArrayBuffer(this.offset);

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc