@mtcute/core 0.23.3 → 0.24.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.
Files changed (71) hide show
  1. package/client.cjs +9 -2
  2. package/client.js +9 -2
  3. package/highlevel/base.cjs +15 -3
  4. package/highlevel/base.d.cts +4 -1
  5. package/highlevel/base.d.ts +4 -1
  6. package/highlevel/base.js +15 -3
  7. package/highlevel/client.d.cts +12 -2
  8. package/highlevel/client.d.ts +12 -2
  9. package/highlevel/client.types.d.cts +2 -1
  10. package/highlevel/client.types.d.ts +2 -1
  11. package/highlevel/methods/files/download-iterable.cjs +1 -1
  12. package/highlevel/methods/files/download-iterable.js +1 -1
  13. package/highlevel/methods/premium/transfer-star-gift.cjs +2 -2
  14. package/highlevel/methods/premium/transfer-star-gift.d.cts +1 -1
  15. package/highlevel/methods/premium/transfer-star-gift.d.ts +1 -1
  16. package/highlevel/methods/premium/transfer-star-gift.js +2 -2
  17. package/highlevel/methods/users/resolve-peer.cjs +63 -70
  18. package/highlevel/methods/users/resolve-peer.d.cts +2 -1
  19. package/highlevel/methods/users/resolve-peer.d.ts +2 -1
  20. package/highlevel/methods/users/resolve-peer.js +61 -68
  21. package/highlevel/methods/users/resolve-phone-number.cjs +36 -0
  22. package/highlevel/methods/users/resolve-phone-number.d.cts +10 -0
  23. package/highlevel/methods/users/resolve-phone-number.d.ts +10 -0
  24. package/highlevel/methods/users/resolve-phone-number.js +31 -0
  25. package/highlevel/methods.d.cts +6 -4
  26. package/highlevel/methods.d.ts +6 -4
  27. package/highlevel/types/peers/peer.d.cts +2 -3
  28. package/highlevel/types/peers/peer.d.ts +2 -3
  29. package/highlevel/types/premium/stars-gift-unique.cjs +2 -1
  30. package/highlevel/types/premium/stars-gift-unique.d.cts +2 -2
  31. package/highlevel/types/premium/stars-gift-unique.d.ts +2 -2
  32. package/highlevel/types/premium/stars-gift-unique.js +2 -1
  33. package/highlevel/types/premium/stars-transaction.cjs +1 -1
  34. package/highlevel/types/premium/stars-transaction.d.cts +2 -2
  35. package/highlevel/types/premium/stars-transaction.d.ts +2 -2
  36. package/highlevel/types/premium/stars-transaction.js +1 -1
  37. package/highlevel/updates/manager.cjs +35 -26
  38. package/highlevel/updates/manager.d.cts +6 -6
  39. package/highlevel/updates/manager.d.ts +6 -6
  40. package/highlevel/updates/manager.js +35 -26
  41. package/highlevel/updates/types.d.cts +6 -6
  42. package/highlevel/updates/types.d.ts +6 -6
  43. package/highlevel/worker/port.cjs +7 -5
  44. package/highlevel/worker/port.d.cts +3 -2
  45. package/highlevel/worker/port.d.ts +3 -2
  46. package/highlevel/worker/port.js +7 -5
  47. package/methods.cjs +2 -0
  48. package/methods.js +2 -0
  49. package/network/client.cjs +12 -8
  50. package/network/client.d.cts +4 -1
  51. package/network/client.d.ts +4 -1
  52. package/network/client.js +12 -8
  53. package/network/network-manager.cjs +1 -1
  54. package/network/network-manager.js +1 -1
  55. package/network/session-connection.cjs +1 -0
  56. package/network/session-connection.js +1 -0
  57. package/package.json +1 -1
  58. package/utils/index.d.cts +0 -1
  59. package/utils/index.d.ts +0 -1
  60. package/utils/sorted-array.cjs +6 -0
  61. package/utils/sorted-array.d.cts +2 -0
  62. package/utils/sorted-array.d.ts +2 -0
  63. package/utils/sorted-array.js +6 -0
  64. package/utils.cjs +0 -2
  65. package/utils.js +0 -2
  66. package/utils/linked-list.cjs +0 -65
  67. package/utils/linked-list.d.cts +0 -21
  68. package/utils/linked-list.d.ts +0 -21
  69. package/utils/linked-list.js +0 -60
  70. package/utils/linked-list.test.d.cts +0 -1
  71. package/utils/linked-list.test.d.ts +0 -1
@@ -142,19 +142,23 @@ class MtClient {
142
142
  async connect() {
143
143
  return this._connect.run();
144
144
  }
145
- /**
146
- * Close all connections and finalize the client.
147
- */
148
- async close() {
149
- this.log.debug("closing client");
150
- this._config.destroy();
145
+ async disconnect() {
151
146
  await this.network.destroy();
152
147
  await this.storage.save();
153
- await this.storage.destroy?.();
148
+ this._config.destroy();
154
149
  this._prepare.reset();
155
150
  this._connect.reset();
156
151
  this._abortController.abort();
157
- this.log.debug("client closed successfully");
152
+ this.log.debug("client disconnected");
153
+ }
154
+ /**
155
+ * Close all connections and finalize the client.
156
+ *
157
+ * **Note**: must be called *after* {@link disconnect}
158
+ */
159
+ async destroy() {
160
+ await this.storage.destroy();
161
+ this.log.debug("client destroyed");
158
162
  }
159
163
  /**
160
164
  * Make an RPC call.
@@ -194,10 +194,13 @@ export declare class MtClient {
194
194
  * implicitly the first time you call {@link call}.
195
195
  */
196
196
  connect(): Promise<void>;
197
+ disconnect(): Promise<void>;
197
198
  /**
198
199
  * Close all connections and finalize the client.
200
+ *
201
+ * **Note**: must be called *after* {@link disconnect}
199
202
  */
200
- close(): Promise<void>;
203
+ destroy(): Promise<void>;
201
204
  /**
202
205
  * Make an RPC call.
203
206
  *
@@ -194,10 +194,13 @@ export declare class MtClient {
194
194
  * implicitly the first time you call {@link call}.
195
195
  */
196
196
  connect(): Promise<void>;
197
+ disconnect(): Promise<void>;
197
198
  /**
198
199
  * Close all connections and finalize the client.
200
+ *
201
+ * **Note**: must be called *after* {@link disconnect}
199
202
  */
200
- close(): Promise<void>;
203
+ destroy(): Promise<void>;
201
204
  /**
202
205
  * Make an RPC call.
203
206
  *
package/network/client.js CHANGED
@@ -135,19 +135,23 @@ class MtClient {
135
135
  async connect() {
136
136
  return this._connect.run();
137
137
  }
138
- /**
139
- * Close all connections and finalize the client.
140
- */
141
- async close() {
142
- this.log.debug("closing client");
143
- this._config.destroy();
138
+ async disconnect() {
144
139
  await this.network.destroy();
145
140
  await this.storage.save();
146
- await this.storage.destroy?.();
141
+ this._config.destroy();
147
142
  this._prepare.reset();
148
143
  this._connect.reset();
149
144
  this._abortController.abort();
150
- this.log.debug("client closed successfully");
145
+ this.log.debug("client disconnected");
146
+ }
147
+ /**
148
+ * Close all connections and finalize the client.
149
+ *
150
+ * **Note**: must be called *after* {@link disconnect}
151
+ */
152
+ async destroy() {
153
+ await this.storage.destroy();
154
+ this.log.debug("client destroyed");
151
155
  }
152
156
  /**
153
157
  * Make an RPC call.
@@ -220,7 +220,7 @@ class NetworkManager {
220
220
  _: "initConnection",
221
221
  deviceModel,
222
222
  systemVersion: "1.0",
223
- appVersion: "0.23.3",
223
+ appVersion: "0.24.0",
224
224
  systemLangCode: "en",
225
225
  langPack: "",
226
226
  // "langPacks are for official apps only"
@@ -213,7 +213,7 @@ class NetworkManager {
213
213
  _: "initConnection",
214
214
  deviceModel,
215
215
  systemVersion: "1.0",
216
- appVersion: "0.23.3",
216
+ appVersion: "0.24.0",
217
217
  systemLangCode: "en",
218
218
  langPack: "",
219
219
  // "langPacks are for official apps only"
@@ -112,6 +112,7 @@ class SessionConnection extends persistentConnection.PersistentConnection {
112
112
  this._session.initConnectionCalled = false;
113
113
  this._flushTimer.reset();
114
114
  this._salts.isFetching = false;
115
+ this._session.resetLastPing(true);
115
116
  if (forever) {
116
117
  utils.timers.clearTimeout(this._pfsUpdateTimeout);
117
118
  this.onDisconnect.clear();
@@ -105,6 +105,7 @@ class SessionConnection extends PersistentConnection {
105
105
  this._session.initConnectionCalled = false;
106
106
  this._flushTimer.reset();
107
107
  this._salts.isFetching = false;
108
+ this._session.resetLastPing(true);
108
109
  if (forever) {
109
110
  timers.clearTimeout(this._pfsUpdateTimeout);
110
111
  this.onDisconnect.clear();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mtcute/core",
3
3
  "type": "module",
4
- "version": "0.23.3",
4
+ "version": "0.24.0",
5
5
  "description": "Type-safe library for MTProto (Telegram API)",
6
6
  "license": "MIT",
7
7
  "scripts": {},
package/utils/index.d.cts CHANGED
@@ -10,7 +10,6 @@ export * from './crypto/index.js';
10
10
  export * from './dcs.js';
11
11
  export * from './early-timer.js';
12
12
  export * from './function-utils.js';
13
- export * from './linked-list.js';
14
13
  export * from './links/index.js';
15
14
  export * from './logger.js';
16
15
  export * from './long-utils.js';
package/utils/index.d.ts CHANGED
@@ -10,7 +10,6 @@ export * from './crypto/index.js';
10
10
  export * from './dcs.js';
11
11
  export * from './early-timer.js';
12
12
  export * from './function-utils.js';
13
- export * from './linked-list.js';
14
13
  export * from './links/index.js';
15
14
  export * from './logger.js';
16
15
  export * from './long-utils.js';
@@ -65,6 +65,9 @@ class SortedArray {
65
65
  if (idx === -1) return;
66
66
  this.raw.splice(idx, 1);
67
67
  }
68
+ removeIndex(idx) {
69
+ this.raw.splice(idx, 1);
70
+ }
68
71
  includes(item) {
69
72
  return this.index(item) !== -1;
70
73
  }
@@ -75,5 +78,8 @@ class SortedArray {
75
78
  clear() {
76
79
  this.raw.length = 0;
77
80
  }
81
+ popFront() {
82
+ return this.raw.shift();
83
+ }
78
84
  }
79
85
  exports.SortedArray = SortedArray;
@@ -11,7 +11,9 @@ export declare class SortedArray<T> {
11
11
  insert(item: T | T[]): number;
12
12
  index(item: T, closest?: boolean): number;
13
13
  remove(item: T): void;
14
+ removeIndex(idx: number): void;
14
15
  includes(item: T): boolean;
15
16
  find(item: T): T | null;
16
17
  clear(): void;
18
+ popFront(): T | undefined;
17
19
  }
@@ -11,7 +11,9 @@ export declare class SortedArray<T> {
11
11
  insert(item: T | T[]): number;
12
12
  index(item: T, closest?: boolean): number;
13
13
  remove(item: T): void;
14
+ removeIndex(idx: number): void;
14
15
  includes(item: T): boolean;
15
16
  find(item: T): T | null;
16
17
  clear(): void;
18
+ popFront(): T | undefined;
17
19
  }
@@ -58,6 +58,9 @@ class SortedArray {
58
58
  if (idx === -1) return;
59
59
  this.raw.splice(idx, 1);
60
60
  }
61
+ removeIndex(idx) {
62
+ this.raw.splice(idx, 1);
63
+ }
61
64
  includes(item) {
62
65
  return this.index(item) !== -1;
63
66
  }
@@ -68,6 +71,9 @@ class SortedArray {
68
71
  clear() {
69
72
  this.raw.length = 0;
70
73
  }
74
+ popFront() {
75
+ return this.raw.shift();
76
+ }
71
77
  }
72
78
  export {
73
79
  SortedArray
package/utils.cjs CHANGED
@@ -15,7 +15,6 @@ const serialization = require("./utils/binary/serialization.cjs");
15
15
  const dcs = require("./utils/dcs.cjs");
16
16
  const earlyTimer = require("./utils/early-timer.cjs");
17
17
  const functionUtils = require("./utils/function-utils.cjs");
18
- const linkedList = require("./utils/linked-list.cjs");
19
18
  const logger = require("./utils/logger.cjs");
20
19
  const longUtils = require("./utils/long-utils.cjs");
21
20
  const miscUtils$1 = require("./utils/misc-utils.cjs");
@@ -64,7 +63,6 @@ exports.serializeBasicDcOption = dcs.serializeBasicDcOption;
64
63
  exports.EarlyTimer = earlyTimer.EarlyTimer;
65
64
  exports.asyncResettable = functionUtils.asyncResettable;
66
65
  exports.throttle = functionUtils.throttle;
67
- exports.SortedLinkedList = linkedList.SortedLinkedList;
68
66
  exports.LogManager = logger.LogManager;
69
67
  exports.Logger = logger.Logger;
70
68
  exports.LongMap = longUtils.LongMap;
package/utils.js CHANGED
@@ -8,7 +8,6 @@ import { deserializeObject, deserializePeersIndex, serializeObject, serializePee
8
8
  import { defaultProductionDc, defaultProductionIpv6Dc, defaultTestDc, defaultTestIpv6Dc, parseBasicDcOption, serializeBasicDcOption } from "./utils/dcs.js";
9
9
  import { EarlyTimer } from "./utils/early-timer.js";
10
10
  import { asyncResettable, throttle } from "./utils/function-utils.js";
11
- import { SortedLinkedList } from "./utils/linked-list.js";
12
11
  import { LogManager, Logger } from "./utils/logger.js";
13
12
  import { LongMap, LongSet, compareLongs, longFromBuffer, longFromFastString, longToFastString, randomLong, removeFromLongArray } from "./utils/long-utils.js";
14
13
  import { getRandomInt, sleepWithAbort } from "./utils/misc-utils.js";
@@ -48,7 +47,6 @@ export {
48
47
  LongSet,
49
48
  RpsMeter,
50
49
  SortedArray,
51
- SortedLinkedList,
52
50
  UpdatesStateService,
53
51
  addPublicKey,
54
52
  assertTrue,
@@ -1,65 +0,0 @@
1
- if (typeof globalThis !== "undefined" && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
2
- globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true;
3
- console.warn("[@mtcute/core] CommonJS support is deprecated and will be removed in 0.25.0. Please consider switching to ESM, it's " + (/* @__PURE__ */ new Date()).getFullYear() + " already.");
4
- console.warn("[@mtcute/core] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c");
5
- }
6
- "use strict";
7
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
8
- class SortedLinkedList {
9
- constructor(comparator) {
10
- this.comparator = comparator;
11
- }
12
- _first;
13
- _last;
14
- _size = 0;
15
- get length() {
16
- return this._size;
17
- }
18
- _remove(item) {
19
- if (this._first === item) {
20
- this._first = item.n;
21
- }
22
- if (this._last === item) {
23
- this._last = item.p;
24
- }
25
- if (item.p) item.p.n = item.n;
26
- if (item.n) item.n.p = item.p;
27
- this._size -= 1;
28
- }
29
- popFront() {
30
- if (!this._first) return void 0;
31
- const it = this._first;
32
- this._first = this._first.n;
33
- if (!this._first) this._last = void 0;
34
- this._size -= 1;
35
- return it.v;
36
- }
37
- add(item) {
38
- const it = { v: item };
39
- if (!this._first) {
40
- this._first = this._last = it;
41
- } else {
42
- let cur = this._first;
43
- while (cur && this.comparator(cur.v, it.v) < 0) {
44
- cur = cur.n;
45
- }
46
- if (!cur) {
47
- this._last.n = it;
48
- it.p = this._last;
49
- this._last = it;
50
- } else {
51
- it.n = cur;
52
- it.p = cur.p;
53
- if (cur.p) cur.p.n = it;
54
- cur.p = it;
55
- if (cur === this._first) this._first = it;
56
- }
57
- }
58
- this._size += 1;
59
- }
60
- clear() {
61
- this._first = this._last = void 0;
62
- this._size = 0;
63
- }
64
- }
65
- exports.SortedLinkedList = SortedLinkedList;
@@ -1,21 +0,0 @@
1
- interface LinkedListItem<T> {
2
- v: T;
3
- n?: LinkedListItem<T>;
4
- p?: LinkedListItem<T>;
5
- }
6
- /**
7
- * A sorted linked list.
8
- */
9
- export declare class SortedLinkedList<T> {
10
- private comparator;
11
- _first?: LinkedListItem<T>;
12
- _last?: LinkedListItem<T>;
13
- _size: number;
14
- constructor(comparator: (a: T, b: T) => number);
15
- get length(): number;
16
- _remove(item: LinkedListItem<T>): void;
17
- popFront(): T | undefined;
18
- add(item: T): void;
19
- clear(): void;
20
- }
21
- export {};
@@ -1,21 +0,0 @@
1
- interface LinkedListItem<T> {
2
- v: T;
3
- n?: LinkedListItem<T>;
4
- p?: LinkedListItem<T>;
5
- }
6
- /**
7
- * A sorted linked list.
8
- */
9
- export declare class SortedLinkedList<T> {
10
- private comparator;
11
- _first?: LinkedListItem<T>;
12
- _last?: LinkedListItem<T>;
13
- _size: number;
14
- constructor(comparator: (a: T, b: T) => number);
15
- get length(): number;
16
- _remove(item: LinkedListItem<T>): void;
17
- popFront(): T | undefined;
18
- add(item: T): void;
19
- clear(): void;
20
- }
21
- export {};
@@ -1,60 +0,0 @@
1
- class SortedLinkedList {
2
- constructor(comparator) {
3
- this.comparator = comparator;
4
- }
5
- _first;
6
- _last;
7
- _size = 0;
8
- get length() {
9
- return this._size;
10
- }
11
- _remove(item) {
12
- if (this._first === item) {
13
- this._first = item.n;
14
- }
15
- if (this._last === item) {
16
- this._last = item.p;
17
- }
18
- if (item.p) item.p.n = item.n;
19
- if (item.n) item.n.p = item.p;
20
- this._size -= 1;
21
- }
22
- popFront() {
23
- if (!this._first) return void 0;
24
- const it = this._first;
25
- this._first = this._first.n;
26
- if (!this._first) this._last = void 0;
27
- this._size -= 1;
28
- return it.v;
29
- }
30
- add(item) {
31
- const it = { v: item };
32
- if (!this._first) {
33
- this._first = this._last = it;
34
- } else {
35
- let cur = this._first;
36
- while (cur && this.comparator(cur.v, it.v) < 0) {
37
- cur = cur.n;
38
- }
39
- if (!cur) {
40
- this._last.n = it;
41
- it.p = this._last;
42
- this._last = it;
43
- } else {
44
- it.n = cur;
45
- it.p = cur.p;
46
- if (cur.p) cur.p.n = it;
47
- cur.p = it;
48
- if (cur === this._first) this._first = it;
49
- }
50
- }
51
- this._size += 1;
52
- }
53
- clear() {
54
- this._first = this._last = void 0;
55
- this._size = 0;
56
- }
57
- }
58
- export {
59
- SortedLinkedList
60
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};