@mtkruto/node 0.0.900 → 0.0.901

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.
@@ -1,5 +1,5 @@
1
1
  import { debug, gunzip, Mutex, queue } from "../deps.js";
2
- import { ackThreshold, CHANNEL_DIFFERENCE_LIMIT_BOT, CHANNEL_DIFFERENCE_LIMIT_USER, DEFAULT_APP_VERSION, DEFAULT_DEVICE_MODEL, DEFAULT_INITIAL_DC, DEFAULT_LANG_CODE, DEFAULT_LANG_PACK, DEFAULT_SYSTEM_LANG_CODE, DEFAULT_SYSTEM_VERSION, LAYER, MAX_CHANNEL_ID, MAX_CHAT_ID, USERNAME_TTL, ZERO_CHANNEL_ID } from "../constants.js";
2
+ import { ackThreshold, CHANNEL_DIFFERENCE_LIMIT_BOT, CHANNEL_DIFFERENCE_LIMIT_USER, DEFAULT_APP_VERSION, DEFAULT_DEVICE_MODEL, DEFAULT_LANG_CODE, DEFAULT_LANG_PACK, DEFAULT_SYSTEM_LANG_CODE, DEFAULT_SYSTEM_VERSION, LAYER, MAX_CHANNEL_ID, MAX_CHAT_ID, USERNAME_TTL, ZERO_CHANNEL_ID } from "../constants.js";
3
3
  import { bigIntFromBuffer, getRandomBigInt, getRandomId } from "../utilities/0_bigint.js";
4
4
  import { UNREACHABLE } from "../utilities/0_control.js";
5
5
  import { sha1 } from "../utilities/0_hash.js";
@@ -247,6 +247,7 @@ export class Client extends ClientAbstract {
247
247
  if (await this.storage.getDc() != dc) {
248
248
  await this.storage.setDc(dc);
249
249
  await this.storage.setAuthKey(null);
250
+ await this.storage.getAuthKey();
250
251
  }
251
252
  super.setDc(dc);
252
253
  }
@@ -288,7 +289,7 @@ export class Client extends ClientAbstract {
288
289
  }
289
290
  await super.connect();
290
291
  if (dc == null) {
291
- await this.storage.setDc(DEFAULT_INITIAL_DC);
292
+ await this.storage.setDc(this.transportProvider.initialDc);
292
293
  }
293
294
  d("enrypted client connected");
294
295
  this.receiveLoop();
@@ -7,6 +7,8 @@ export declare abstract class ClientAbstract {
7
7
  protected connection: Connection;
8
8
  protected transport: Transport;
9
9
  private _dcId;
10
+ private _initialDc;
11
+ get initialDc(): DC;
10
12
  constructor(transportProvider?: import("../transport/transport_provider.js").TransportProvider);
11
13
  get dcId(): number;
12
14
  setDc(dc: DC): MaybePromise<void>;
@@ -2,6 +2,9 @@ import { initTgCrypto } from "../deps.js";
2
2
  import { DEFAULT_INITIAL_DC } from "../constants.js";
3
3
  import { defaultTransportProvider } from "../transport/transport_provider.js";
4
4
  export class ClientAbstract {
5
+ get initialDc() {
6
+ return this._initialDc;
7
+ }
5
8
  constructor(transportProvider = defaultTransportProvider({ initialDc: DEFAULT_INITIAL_DC })) {
6
9
  Object.defineProperty(this, "transportProvider", {
7
10
  enumerable: true,
@@ -27,7 +30,15 @@ export class ClientAbstract {
27
30
  writable: true,
28
31
  value: void 0
29
32
  });
30
- const { connection, transport, dcId } = transportProvider({ cdn: false });
33
+ Object.defineProperty(this, "_initialDc", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: void 0
38
+ });
39
+ const { initialDc, createTransport } = transportProvider;
40
+ this._initialDc = initialDc;
41
+ const { connection, transport, dcId } = createTransport({ cdn: false });
31
42
  this.connection = connection;
32
43
  this.transport = transport;
33
44
  this._dcId = dcId;
@@ -37,7 +48,7 @@ export class ClientAbstract {
37
48
  }
38
49
  // MaybePromise since `Client` has to deal with `Storage.set()`
39
50
  setDc(dc) {
40
- const { connection, transport, dcId } = this.transportProvider({ dc, cdn: false });
51
+ const { connection, transport, dcId } = this.transportProvider.createTransport({ dc, cdn: false });
41
52
  this.connection = connection;
42
53
  this.transport = transport;
43
54
  this._dcId = dcId;
@@ -53,7 +64,7 @@ export class ClientAbstract {
53
64
  async reconnect(dc) {
54
65
  await this.disconnect();
55
66
  if (dc) {
56
- this.setDc(dc);
67
+ await this.setDc(dc);
57
68
  }
58
69
  await this.connect();
59
70
  }
@@ -2,6 +2,7 @@ import { assertEquals, assertInstanceOf, debug, factorize, ige256Decrypt, ige256
2
2
  import { publicKeys } from "../constants.js";
3
3
  import { bigIntFromBuffer, getRandomBigInt, modExp } from "../utilities/0_bigint.js";
4
4
  import { bufferFromBigInt, concat } from "../utilities/0_buffer.js";
5
+ import { UNREACHABLE } from "../utilities/0_control.js";
5
6
  import { sha1 } from "../utilities/0_hash.js";
6
7
  import { rsaPad } from "../utilities/1_auth.js";
7
8
  import { serialize } from "../tl/1_tl_object.js";
@@ -28,10 +29,23 @@ export class ClientPlain extends ClientAbstract {
28
29
  async createAuthKey() {
29
30
  const nonce = getRandomBigInt(16, false, true);
30
31
  d("auth key creation started");
31
- const resPq = await this.invoke(new ReqPQMulti({ nonce }));
32
- assertInstanceOf(resPq, ResPQ);
33
- assertEquals(resPq.nonce, nonce);
34
- d("got res_pq");
32
+ let resPq = null;
33
+ for (let i = 0; i < 10; i++) {
34
+ try {
35
+ d("req_pq_multi [%d]", i + 1);
36
+ resPq = await this.invoke(new ReqPQMulti({ nonce }));
37
+ assertInstanceOf(resPq, ResPQ);
38
+ assertEquals(resPq.nonce, nonce);
39
+ d("got res_pq");
40
+ break;
41
+ }
42
+ catch (err) {
43
+ d("req_pq_multi error: %o", err);
44
+ }
45
+ }
46
+ if (!resPq) {
47
+ UNREACHABLE();
48
+ }
35
49
  const pq_ = bigIntFromBuffer(resPq.pq, false, false);
36
50
  const [p_, q_] = factorize(pq_);
37
51
  d("factorized pq");
@@ -4,12 +4,12 @@ export declare const publicKeys: Map<bigint, [bigint, bigint]>;
4
4
  export declare const VECTOR_CONSTRUCTOR = 481674261;
5
5
  export declare const DEFAULT_INITIAL_DC: DC;
6
6
  export declare const LAYER = 158;
7
- export declare const DEFAULT_APP_VERSION = "MTKruto Unstable <v1.0.0";
8
- export declare const DEFAULT_DEVICE_MODEL = "Krutaya Device";
9
- export declare const DEFAULT_LANG_CODE = "en";
7
+ export declare const DEFAULT_APP_VERSION = "MTKruto 0.0.901";
8
+ export declare const DEFAULT_DEVICE_MODEL: string;
9
+ export declare const DEFAULT_LANG_CODE: string;
10
10
  export declare const DEFAULT_LANG_PACK = "";
11
- export declare const DEFAULT_SYSTEM_LANG_CODE = "en";
12
- export declare const DEFAULT_SYSTEM_VERSION = "1.0";
11
+ export declare const DEFAULT_SYSTEM_LANG_CODE: string;
12
+ export declare const DEFAULT_SYSTEM_VERSION: string;
13
13
  export declare const USERNAME_TTL = 86400;
14
14
  export declare const MAX_CHAT_ID = 999999999999;
15
15
  export declare const MAX_CHANNEL_ID = 997852516352;
package/esm/constants.js CHANGED
@@ -1,3 +1,4 @@
1
+ import * as dntShim from "./_dnt.shims.js";
1
2
  export const ackThreshold = 10;
2
3
  export const publicKeys = new Map([
3
4
  [
@@ -61,13 +62,14 @@ export const publicKeys = new Map([
61
62
  export const VECTOR_CONSTRUCTOR = 0x1CB5C415;
62
63
  export const DEFAULT_INITIAL_DC = "2-test";
63
64
  export const LAYER = 158;
64
- // TODO
65
- export const DEFAULT_APP_VERSION = "MTKruto Unstable <v1.0.0";
66
- export const DEFAULT_DEVICE_MODEL = "Krutaya Device";
67
- export const DEFAULT_LANG_CODE = "en";
65
+ export const DEFAULT_APP_VERSION = "MTKruto 0.0.901";
66
+ // @ts-ignore: lib
67
+ export const DEFAULT_DEVICE_MODEL = typeof dntShim.Deno === "undefined" ? typeof navigator === "undefined" ? typeof process === "undefined" ? "Unknown" : process.platform + "-" + process.arch : navigator.userAgent.split(" ")[0] : dntShim.Deno.build.os + "-" + dntShim.Deno.build.arch;
68
+ export const DEFAULT_LANG_CODE = typeof navigator === "undefined" ? "en" : navigator.language.split("-")[0];
68
69
  export const DEFAULT_LANG_PACK = "";
69
- export const DEFAULT_SYSTEM_LANG_CODE = "en";
70
- export const DEFAULT_SYSTEM_VERSION = "1.0";
70
+ export const DEFAULT_SYSTEM_LANG_CODE = typeof navigator === "undefined" ? "en" : navigator.language.split("-")[0];
71
+ // @ts-ignore: lib
72
+ export const DEFAULT_SYSTEM_VERSION = typeof navigator === "undefined" ? typeof process === "undefined" ? "Unknown" : "Node.js/" + process.versions.node : navigator.userAgent;
71
73
  export const USERNAME_TTL = 86400;
72
74
  export const MAX_CHAT_ID = 999999999999;
73
75
  export const MAX_CHANNEL_ID = 997852516352;
@@ -5,10 +5,13 @@ export interface TransportProviderParams {
5
5
  dc?: DC;
6
6
  cdn: boolean;
7
7
  }
8
- export type TransportProvider = (params: TransportProviderParams) => {
9
- connection: Connection;
10
- transport: Transport;
11
- dcId: number;
8
+ export type TransportProvider = {
9
+ initialDc: DC;
10
+ createTransport: (params: TransportProviderParams) => {
11
+ connection: Connection;
12
+ transport: Transport;
13
+ dcId: number;
14
+ };
12
15
  };
13
16
  export interface TransportProviderCreatorParams {
14
17
  initialDc: DC;
@@ -11,13 +11,16 @@ const dcToNameMap = {
11
11
  "5": "flora",
12
12
  };
13
13
  export const defaultTransportProvider = ({ initialDc, wss }) => {
14
- return ({ dc, cdn }) => {
15
- dc ??= initialDc;
16
- wss ??= typeof location !== "undefined" && location.protocol == "http:" ? false : true;
17
- const url = `${wss ? "wss" : "ws"}://${dcToNameMap[dc]}${cdn ? "-1" : ""}.web.telegram.org/${dc.endsWith("-test") ? "apiws_test" : "apiws"}`;
18
- const connection = new ConnectionWebSocket(url);
19
- const transport = new TransportIntermediate(connection, true);
20
- const dcId = Number(dc[0]) + (dc.endsWith("-test") ? 10000 : 0) * (cdn ? -1 : 1);
21
- return { connection, transport, dcId };
14
+ return {
15
+ initialDc,
16
+ createTransport: ({ dc, cdn }) => {
17
+ dc ??= initialDc;
18
+ wss ??= typeof location !== "undefined" && location.protocol == "http:" ? false : true;
19
+ const url = `${wss ? "wss" : "ws"}://${dcToNameMap[dc]}${cdn ? "-1" : ""}.web.telegram.org/${dc.endsWith("-test") ? "apiws_test" : "apiws"}`;
20
+ const connection = new ConnectionWebSocket(url);
21
+ const transport = new TransportIntermediate(connection, true);
22
+ const dcId = Number(dc[0]) + (dc.endsWith("-test") ? 10000 : 0) * (cdn ? -1 : 1);
23
+ return { connection, transport, dcId };
24
+ },
22
25
  };
23
26
  };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "module": "./esm/mod.js",
3
3
  "main": "./script/mod.js",
4
4
  "name": "@mtkruto/node",
5
- "version": "0.0.900",
5
+ "version": "0.0.901",
6
6
  "description": "MTKruto for Node.js",
7
7
  "author": "Roj <rojvv@icloud.com>",
8
8
  "license": "LGPL-3.0-or-later",
@@ -273,6 +273,7 @@ class Client extends client_abstract_js_1.ClientAbstract {
273
273
  if (await this.storage.getDc() != dc) {
274
274
  await this.storage.setDc(dc);
275
275
  await this.storage.setAuthKey(null);
276
+ await this.storage.getAuthKey();
276
277
  }
277
278
  super.setDc(dc);
278
279
  }
@@ -314,7 +315,7 @@ class Client extends client_abstract_js_1.ClientAbstract {
314
315
  }
315
316
  await super.connect();
316
317
  if (dc == null) {
317
- await this.storage.setDc(constants_js_1.DEFAULT_INITIAL_DC);
318
+ await this.storage.setDc(this.transportProvider.initialDc);
318
319
  }
319
320
  d("enrypted client connected");
320
321
  this.receiveLoop();
@@ -7,6 +7,8 @@ export declare abstract class ClientAbstract {
7
7
  protected connection: Connection;
8
8
  protected transport: Transport;
9
9
  private _dcId;
10
+ private _initialDc;
11
+ get initialDc(): DC;
10
12
  constructor(transportProvider?: import("../transport/transport_provider.js").TransportProvider);
11
13
  get dcId(): number;
12
14
  setDc(dc: DC): MaybePromise<void>;
@@ -5,6 +5,9 @@ const deps_js_1 = require("../deps.js");
5
5
  const constants_js_1 = require("../constants.js");
6
6
  const transport_provider_js_1 = require("../transport/transport_provider.js");
7
7
  class ClientAbstract {
8
+ get initialDc() {
9
+ return this._initialDc;
10
+ }
8
11
  constructor(transportProvider = (0, transport_provider_js_1.defaultTransportProvider)({ initialDc: constants_js_1.DEFAULT_INITIAL_DC })) {
9
12
  Object.defineProperty(this, "transportProvider", {
10
13
  enumerable: true,
@@ -30,7 +33,15 @@ class ClientAbstract {
30
33
  writable: true,
31
34
  value: void 0
32
35
  });
33
- const { connection, transport, dcId } = transportProvider({ cdn: false });
36
+ Object.defineProperty(this, "_initialDc", {
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true,
40
+ value: void 0
41
+ });
42
+ const { initialDc, createTransport } = transportProvider;
43
+ this._initialDc = initialDc;
44
+ const { connection, transport, dcId } = createTransport({ cdn: false });
34
45
  this.connection = connection;
35
46
  this.transport = transport;
36
47
  this._dcId = dcId;
@@ -40,7 +51,7 @@ class ClientAbstract {
40
51
  }
41
52
  // MaybePromise since `Client` has to deal with `Storage.set()`
42
53
  setDc(dc) {
43
- const { connection, transport, dcId } = this.transportProvider({ dc, cdn: false });
54
+ const { connection, transport, dcId } = this.transportProvider.createTransport({ dc, cdn: false });
44
55
  this.connection = connection;
45
56
  this.transport = transport;
46
57
  this._dcId = dcId;
@@ -56,7 +67,7 @@ class ClientAbstract {
56
67
  async reconnect(dc) {
57
68
  await this.disconnect();
58
69
  if (dc) {
59
- this.setDc(dc);
70
+ await this.setDc(dc);
60
71
  }
61
72
  await this.connect();
62
73
  }
@@ -5,6 +5,7 @@ const deps_js_1 = require("../deps.js");
5
5
  const constants_js_1 = require("../constants.js");
6
6
  const _0_bigint_js_1 = require("../utilities/0_bigint.js");
7
7
  const _0_buffer_js_1 = require("../utilities/0_buffer.js");
8
+ const _0_control_js_1 = require("../utilities/0_control.js");
8
9
  const _0_hash_js_1 = require("../utilities/0_hash.js");
9
10
  const _1_auth_js_1 = require("../utilities/1_auth.js");
10
11
  const _1_tl_object_js_1 = require("../tl/1_tl_object.js");
@@ -31,10 +32,23 @@ class ClientPlain extends client_abstract_js_1.ClientAbstract {
31
32
  async createAuthKey() {
32
33
  const nonce = (0, _0_bigint_js_1.getRandomBigInt)(16, false, true);
33
34
  d("auth key creation started");
34
- const resPq = await this.invoke(new _3_functions_js_1.ReqPQMulti({ nonce }));
35
- (0, deps_js_1.assertInstanceOf)(resPq, _2_types_js_1.ResPQ);
36
- (0, deps_js_1.assertEquals)(resPq.nonce, nonce);
37
- d("got res_pq");
35
+ let resPq = null;
36
+ for (let i = 0; i < 10; i++) {
37
+ try {
38
+ d("req_pq_multi [%d]", i + 1);
39
+ resPq = await this.invoke(new _3_functions_js_1.ReqPQMulti({ nonce }));
40
+ (0, deps_js_1.assertInstanceOf)(resPq, _2_types_js_1.ResPQ);
41
+ (0, deps_js_1.assertEquals)(resPq.nonce, nonce);
42
+ d("got res_pq");
43
+ break;
44
+ }
45
+ catch (err) {
46
+ d("req_pq_multi error: %o", err);
47
+ }
48
+ }
49
+ if (!resPq) {
50
+ (0, _0_control_js_1.UNREACHABLE)();
51
+ }
38
52
  const pq_ = (0, _0_bigint_js_1.bigIntFromBuffer)(resPq.pq, false, false);
39
53
  const [p_, q_] = (0, deps_js_1.factorize)(pq_);
40
54
  d("factorized pq");
@@ -4,12 +4,12 @@ export declare const publicKeys: Map<bigint, [bigint, bigint]>;
4
4
  export declare const VECTOR_CONSTRUCTOR = 481674261;
5
5
  export declare const DEFAULT_INITIAL_DC: DC;
6
6
  export declare const LAYER = 158;
7
- export declare const DEFAULT_APP_VERSION = "MTKruto Unstable <v1.0.0";
8
- export declare const DEFAULT_DEVICE_MODEL = "Krutaya Device";
9
- export declare const DEFAULT_LANG_CODE = "en";
7
+ export declare const DEFAULT_APP_VERSION = "MTKruto 0.0.901";
8
+ export declare const DEFAULT_DEVICE_MODEL: string;
9
+ export declare const DEFAULT_LANG_CODE: string;
10
10
  export declare const DEFAULT_LANG_PACK = "";
11
- export declare const DEFAULT_SYSTEM_LANG_CODE = "en";
12
- export declare const DEFAULT_SYSTEM_VERSION = "1.0";
11
+ export declare const DEFAULT_SYSTEM_LANG_CODE: string;
12
+ export declare const DEFAULT_SYSTEM_VERSION: string;
13
13
  export declare const USERNAME_TTL = 86400;
14
14
  export declare const MAX_CHAT_ID = 999999999999;
15
15
  export declare const MAX_CHANNEL_ID = 997852516352;
@@ -1,6 +1,30 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.CHANNEL_DIFFERENCE_LIMIT_BOT = exports.CHANNEL_DIFFERENCE_LIMIT_USER = exports.ZERO_CHANNEL_ID = exports.MAX_CHANNEL_ID = exports.MAX_CHAT_ID = exports.USERNAME_TTL = exports.DEFAULT_SYSTEM_VERSION = exports.DEFAULT_SYSTEM_LANG_CODE = exports.DEFAULT_LANG_PACK = exports.DEFAULT_LANG_CODE = exports.DEFAULT_DEVICE_MODEL = exports.DEFAULT_APP_VERSION = exports.LAYER = exports.DEFAULT_INITIAL_DC = exports.VECTOR_CONSTRUCTOR = exports.publicKeys = exports.ackThreshold = void 0;
27
+ const dntShim = __importStar(require("./_dnt.shims.js"));
4
28
  exports.ackThreshold = 10;
5
29
  exports.publicKeys = new Map([
6
30
  [
@@ -64,13 +88,14 @@ exports.publicKeys = new Map([
64
88
  exports.VECTOR_CONSTRUCTOR = 0x1CB5C415;
65
89
  exports.DEFAULT_INITIAL_DC = "2-test";
66
90
  exports.LAYER = 158;
67
- // TODO
68
- exports.DEFAULT_APP_VERSION = "MTKruto Unstable <v1.0.0";
69
- exports.DEFAULT_DEVICE_MODEL = "Krutaya Device";
70
- exports.DEFAULT_LANG_CODE = "en";
91
+ exports.DEFAULT_APP_VERSION = "MTKruto 0.0.901";
92
+ // @ts-ignore: lib
93
+ exports.DEFAULT_DEVICE_MODEL = typeof dntShim.Deno === "undefined" ? typeof navigator === "undefined" ? typeof process === "undefined" ? "Unknown" : process.platform + "-" + process.arch : navigator.userAgent.split(" ")[0] : dntShim.Deno.build.os + "-" + dntShim.Deno.build.arch;
94
+ exports.DEFAULT_LANG_CODE = typeof navigator === "undefined" ? "en" : navigator.language.split("-")[0];
71
95
  exports.DEFAULT_LANG_PACK = "";
72
- exports.DEFAULT_SYSTEM_LANG_CODE = "en";
73
- exports.DEFAULT_SYSTEM_VERSION = "1.0";
96
+ exports.DEFAULT_SYSTEM_LANG_CODE = typeof navigator === "undefined" ? "en" : navigator.language.split("-")[0];
97
+ // @ts-ignore: lib
98
+ exports.DEFAULT_SYSTEM_VERSION = typeof navigator === "undefined" ? typeof process === "undefined" ? "Unknown" : "Node.js/" + process.versions.node : navigator.userAgent;
74
99
  exports.USERNAME_TTL = 86400;
75
100
  exports.MAX_CHAT_ID = 999999999999;
76
101
  exports.MAX_CHANNEL_ID = 997852516352;
@@ -5,10 +5,13 @@ export interface TransportProviderParams {
5
5
  dc?: DC;
6
6
  cdn: boolean;
7
7
  }
8
- export type TransportProvider = (params: TransportProviderParams) => {
9
- connection: Connection;
10
- transport: Transport;
11
- dcId: number;
8
+ export type TransportProvider = {
9
+ initialDc: DC;
10
+ createTransport: (params: TransportProviderParams) => {
11
+ connection: Connection;
12
+ transport: Transport;
13
+ dcId: number;
14
+ };
12
15
  };
13
16
  export interface TransportProviderCreatorParams {
14
17
  initialDc: DC;
@@ -14,14 +14,17 @@ const dcToNameMap = {
14
14
  "5": "flora",
15
15
  };
16
16
  const defaultTransportProvider = ({ initialDc, wss }) => {
17
- return ({ dc, cdn }) => {
18
- dc ??= initialDc;
19
- wss ??= typeof location !== "undefined" && location.protocol == "http:" ? false : true;
20
- const url = `${wss ? "wss" : "ws"}://${dcToNameMap[dc]}${cdn ? "-1" : ""}.web.telegram.org/${dc.endsWith("-test") ? "apiws_test" : "apiws"}`;
21
- const connection = new connection_web_socket_js_1.ConnectionWebSocket(url);
22
- const transport = new transport_intermediate_js_1.TransportIntermediate(connection, true);
23
- const dcId = Number(dc[0]) + (dc.endsWith("-test") ? 10000 : 0) * (cdn ? -1 : 1);
24
- return { connection, transport, dcId };
17
+ return {
18
+ initialDc,
19
+ createTransport: ({ dc, cdn }) => {
20
+ dc ??= initialDc;
21
+ wss ??= typeof location !== "undefined" && location.protocol == "http:" ? false : true;
22
+ const url = `${wss ? "wss" : "ws"}://${dcToNameMap[dc]}${cdn ? "-1" : ""}.web.telegram.org/${dc.endsWith("-test") ? "apiws_test" : "apiws"}`;
23
+ const connection = new connection_web_socket_js_1.ConnectionWebSocket(url);
24
+ const transport = new transport_intermediate_js_1.TransportIntermediate(connection, true);
25
+ const dcId = Number(dc[0]) + (dc.endsWith("-test") ? 10000 : 0) * (cdn ? -1 : 1);
26
+ return { connection, transport, dcId };
27
+ },
25
28
  };
26
29
  };
27
30
  exports.defaultTransportProvider = defaultTransportProvider;