@mtcute/core 0.13.3 → 0.14.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/highlevel/base.d.ts +1 -0
- package/cjs/highlevel/base.js +3 -0
- package/cjs/highlevel/base.js.map +1 -1
- package/cjs/highlevel/client.d.ts +2 -4
- package/cjs/highlevel/client.js +3 -0
- package/cjs/highlevel/client.js.map +1 -1
- package/cjs/highlevel/client.types.d.ts +1 -0
- package/cjs/highlevel/client.types.js.map +1 -1
- package/cjs/highlevel/methods/_init.js +3 -0
- package/cjs/highlevel/methods/_init.js.map +1 -1
- package/cjs/highlevel/methods/chats/delete-history.d.ts +2 -4
- package/cjs/highlevel/methods/chats/delete-history.js.map +1 -1
- package/cjs/highlevel/methods/chats/kick-chat-member.js +1 -1
- package/cjs/highlevel/methods/chats/kick-chat-member.js.map +1 -1
- package/cjs/highlevel/methods/messages/find-in-update.js +4 -2
- package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
- package/cjs/highlevel/types/stories/interactive/index.d.ts +3 -2
- package/cjs/highlevel/types/stories/interactive/index.js +5 -1
- package/cjs/highlevel/types/stories/interactive/index.js.map +1 -1
- package/cjs/highlevel/types/stories/interactive/input.d.ts +1 -0
- package/cjs/highlevel/types/stories/interactive/input.js +7 -0
- package/cjs/highlevel/types/stories/interactive/input.js.map +1 -1
- package/cjs/highlevel/types/stories/interactive/url.d.ts +11 -0
- package/cjs/highlevel/types/stories/interactive/url.js +20 -0
- package/cjs/highlevel/types/stories/interactive/url.js.map +1 -0
- package/cjs/highlevel/types/updates/callback-query.d.ts +16 -2
- package/cjs/highlevel/types/updates/callback-query.js +31 -1
- package/cjs/highlevel/types/updates/callback-query.js.map +1 -1
- package/cjs/highlevel/types/updates/index.d.ts +5 -2
- package/cjs/highlevel/types/updates/index.js +2 -1
- package/cjs/highlevel/types/updates/index.js.map +1 -1
- package/cjs/highlevel/types/updates/parse-update.js +2 -0
- package/cjs/highlevel/types/updates/parse-update.js.map +1 -1
- package/cjs/highlevel/worker/port.d.ts +2 -0
- package/cjs/highlevel/worker/port.js +5 -0
- package/cjs/highlevel/worker/port.js.map +1 -1
- package/cjs/highlevel/worker/protocol.d.ts +2 -0
- package/cjs/highlevel/worker/protocol.js.map +1 -1
- package/cjs/highlevel/worker/worker.js +1 -0
- package/cjs/highlevel/worker/worker.js.map +1 -1
- package/cjs/network/client.d.ts +2 -0
- package/cjs/network/client.js +8 -0
- package/cjs/network/client.js.map +1 -1
- package/cjs/network/mtproto-session.js +2 -0
- package/cjs/network/mtproto-session.js.map +1 -1
- package/cjs/network/network-manager.d.ts +9 -2
- package/cjs/network/network-manager.js +26 -13
- package/cjs/network/network-manager.js.map +1 -1
- package/cjs/network/session-connection.js +12 -3
- package/cjs/network/session-connection.js.map +1 -1
- package/cjs/storage/sqlite/repository/peers.d.ts +2 -0
- package/cjs/storage/sqlite/repository/peers.js +14 -0
- package/cjs/storage/sqlite/repository/peers.js.map +1 -1
- package/cjs/utils/misc-utils.d.ts +1 -0
- package/cjs/utils/misc-utils.js +17 -1
- package/cjs/utils/misc-utils.js.map +1 -1
- package/esm/highlevel/base.d.ts +1 -0
- package/esm/highlevel/base.js +3 -0
- package/esm/highlevel/base.js.map +1 -1
- package/esm/highlevel/client.d.ts +2 -4
- package/esm/highlevel/client.js +3 -0
- package/esm/highlevel/client.js.map +1 -1
- package/esm/highlevel/client.types.d.ts +1 -0
- package/esm/highlevel/client.types.js.map +1 -1
- package/esm/highlevel/methods/_init.js +3 -0
- package/esm/highlevel/methods/_init.js.map +1 -1
- package/esm/highlevel/methods/chats/delete-history.d.ts +2 -4
- package/esm/highlevel/methods/chats/delete-history.js.map +1 -1
- package/esm/highlevel/methods/chats/kick-chat-member.js +2 -2
- package/esm/highlevel/methods/chats/kick-chat-member.js.map +1 -1
- package/esm/highlevel/methods/messages/find-in-update.js +4 -2
- package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
- package/esm/highlevel/types/stories/interactive/index.d.ts +3 -2
- package/esm/highlevel/types/stories/interactive/index.js +4 -1
- package/esm/highlevel/types/stories/interactive/index.js.map +1 -1
- package/esm/highlevel/types/stories/interactive/input.d.ts +1 -0
- package/esm/highlevel/types/stories/interactive/input.js +7 -0
- package/esm/highlevel/types/stories/interactive/input.js.map +1 -1
- package/esm/highlevel/types/stories/interactive/url.d.ts +11 -0
- package/esm/highlevel/types/stories/interactive/url.js +16 -0
- package/esm/highlevel/types/stories/interactive/url.js.map +1 -0
- package/esm/highlevel/types/updates/callback-query.d.ts +16 -2
- package/esm/highlevel/types/updates/callback-query.js +30 -0
- package/esm/highlevel/types/updates/callback-query.js.map +1 -1
- package/esm/highlevel/types/updates/index.d.ts +5 -2
- package/esm/highlevel/types/updates/index.js +2 -2
- package/esm/highlevel/types/updates/index.js.map +1 -1
- package/esm/highlevel/types/updates/parse-update.js +3 -1
- package/esm/highlevel/types/updates/parse-update.js.map +1 -1
- package/esm/highlevel/worker/port.d.ts +2 -0
- package/esm/highlevel/worker/port.js +5 -0
- package/esm/highlevel/worker/port.js.map +1 -1
- package/esm/highlevel/worker/protocol.d.ts +2 -0
- package/esm/highlevel/worker/protocol.js.map +1 -1
- package/esm/highlevel/worker/worker.js +1 -0
- package/esm/highlevel/worker/worker.js.map +1 -1
- package/esm/network/client.d.ts +2 -0
- package/esm/network/client.js +8 -0
- package/esm/network/client.js.map +1 -1
- package/esm/network/mtproto-session.js +2 -0
- package/esm/network/mtproto-session.js.map +1 -1
- package/esm/network/network-manager.d.ts +9 -2
- package/esm/network/network-manager.js +27 -14
- package/esm/network/network-manager.js.map +1 -1
- package/esm/network/session-connection.js +12 -3
- package/esm/network/session-connection.js.map +1 -1
- package/esm/storage/sqlite/repository/peers.d.ts +2 -0
- package/esm/storage/sqlite/repository/peers.js +14 -0
- package/esm/storage/sqlite/repository/peers.js.map +1 -1
- package/esm/utils/misc-utils.d.ts +1 -0
- package/esm/utils/misc-utils.js +15 -0
- package/esm/utils/misc-utils.js.map +1 -1
- package/package.json +4 -4
|
@@ -2,7 +2,9 @@ import { IPeersRepository } from '../../../highlevel/storage/repository/peers.js
|
|
|
2
2
|
import { BaseSqliteStorageDriver } from '../driver.js';
|
|
3
3
|
export declare class SqlitePeersRepository implements IPeersRepository {
|
|
4
4
|
readonly _driver: BaseSqliteStorageDriver;
|
|
5
|
+
private _loaded;
|
|
5
6
|
constructor(_driver: BaseSqliteStorageDriver);
|
|
7
|
+
private _ensureLoaded;
|
|
6
8
|
private _store;
|
|
7
9
|
store(peer: IPeersRepository.PeerInfo): void;
|
|
8
10
|
private _getById;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { MtcuteError } from '../../../types/errors.js';
|
|
1
2
|
function mapPeerDto(dto) {
|
|
2
3
|
return {
|
|
3
4
|
id: dto.id,
|
|
@@ -10,6 +11,7 @@ function mapPeerDto(dto) {
|
|
|
10
11
|
}
|
|
11
12
|
export class SqlitePeersRepository {
|
|
12
13
|
_driver;
|
|
14
|
+
_loaded = false;
|
|
13
15
|
constructor(_driver) {
|
|
14
16
|
this._driver = _driver;
|
|
15
17
|
_driver.registerMigration('peers', 1, (db) => {
|
|
@@ -27,6 +29,7 @@ export class SqlitePeersRepository {
|
|
|
27
29
|
`);
|
|
28
30
|
});
|
|
29
31
|
_driver.onLoad((db) => {
|
|
32
|
+
this._loaded = true;
|
|
30
33
|
this._store = db.prepare('insert or replace into peers (id, hash, usernames, updated, phone, complete) values (?, ?, ?, ?, ?, ?)');
|
|
31
34
|
this._getById = db.prepare('select * from peers where id = ?');
|
|
32
35
|
this._getByUsername = db.prepare('select * from peers where exists (select 1 from json_each(usernames) where value = ?)');
|
|
@@ -38,6 +41,14 @@ export class SqlitePeersRepository {
|
|
|
38
41
|
db.exec('drop table entities');
|
|
39
42
|
});
|
|
40
43
|
}
|
|
44
|
+
_ensureLoaded() {
|
|
45
|
+
// this is (so far) the only repo where we do such check because it's a common mistake to forget to call start()
|
|
46
|
+
// or connect() on the client and immediately start using high-level methods, which in turn try to resolve peers
|
|
47
|
+
// from the database, and fail because nothing is initialized yet
|
|
48
|
+
if (!this._loaded) {
|
|
49
|
+
throw new MtcuteError('Peers repository is not loaded. Have you called client.start() (or similar)?');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
41
52
|
_store;
|
|
42
53
|
store(peer) {
|
|
43
54
|
this._driver._writeLater(this._store, [
|
|
@@ -51,6 +62,7 @@ export class SqlitePeersRepository {
|
|
|
51
62
|
}
|
|
52
63
|
_getById;
|
|
53
64
|
getById(id) {
|
|
65
|
+
this._ensureLoaded();
|
|
54
66
|
const row = this._getById.get(id);
|
|
55
67
|
if (!row)
|
|
56
68
|
return null;
|
|
@@ -58,6 +70,7 @@ export class SqlitePeersRepository {
|
|
|
58
70
|
}
|
|
59
71
|
_getByUsername;
|
|
60
72
|
getByUsername(username) {
|
|
73
|
+
this._ensureLoaded();
|
|
61
74
|
const row = this._getByUsername.get(username);
|
|
62
75
|
if (!row)
|
|
63
76
|
return null;
|
|
@@ -65,6 +78,7 @@ export class SqlitePeersRepository {
|
|
|
65
78
|
}
|
|
66
79
|
_getByPhone;
|
|
67
80
|
getByPhone(phone) {
|
|
81
|
+
this._ensureLoaded();
|
|
68
82
|
const row = this._getByPhone.get(phone);
|
|
69
83
|
if (!row)
|
|
70
84
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peers.js","sourceRoot":"","sources":["../../../../../src/storage/sqlite/repository/peers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"peers.js","sourceRoot":"","sources":["../../../../../src/storage/sqlite/repository/peers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAatD,SAAS,UAAU,CAAC,GAAY;IAC5B,OAAO;QACH,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,UAAU,EAAE,GAAG,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAa;QAChD,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;QAC7B,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACzB,CAAA;AACL,CAAC;AAED,MAAM,OAAO,qBAAqB;IAGT;IAFb,OAAO,GAAG,KAAK,CAAA;IAEvB,YAAqB,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;QACjD,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;YACzC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;aAWP,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;YAEnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CACpB,wGAAwG,CAC3G,CAAA;YAED,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAA;YAC9D,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,OAAO,CAC5B,uFAAuF,CAC1F,CAAA;YACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAA;YAEpE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE;YAC5C,qDAAqD;YACrD,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,aAAa;QACjB,gHAAgH;QAChH,gHAAgH;QAChH,iEAAiE;QAEjE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,IAAI,WAAW,CAAC,8EAA8E,CAAC,CAAA;QACzG,CAAC;IACL,CAAC;IAEO,MAAM,CAAmB;IACjC,KAAK,CAAC,IAA+B;QACjC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE;YAClC,IAAI,CAAC,EAAE;YACP,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,KAAK,IAAI,IAAI;YAClB,IAAI,CAAC,QAAQ;SAChB,CAAC,CAAA;IACN,CAAC;IAEO,QAAQ,CAAmB;IACnC,OAAO,CAAC,EAAU;QACd,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,OAAO,UAAU,CAAC,GAAc,CAAC,CAAA;IACrC,CAAC;IAEO,cAAc,CAAmB;IACzC,aAAa,CAAC,QAAgB;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC7C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,OAAO,UAAU,CAAC,GAAc,CAAC,CAAA;IACrC,CAAC;IAEO,WAAW,CAAmB;IACtC,UAAU,CAAC,KAAa;QACpB,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,OAAO,UAAU,CAAC,GAAc,CAAC,CAAA;IACrC,CAAC;IAEO,OAAO,CAAmB;IAClC,SAAS;QACL,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;IACtB,CAAC;CACJ","sourcesContent":["import { IPeersRepository } from '../../../highlevel/storage/repository/peers.js'\nimport { MtcuteError } from '../../../types/errors.js'\nimport { BaseSqliteStorageDriver } from '../driver.js'\nimport { ISqliteStatement } from '../types.js'\n\ninterface PeerDto {\n id: number\n hash: string\n usernames: string\n updated: number\n phone: string | null\n complete: Uint8Array\n}\n\nfunction mapPeerDto(dto: PeerDto): IPeersRepository.PeerInfo {\n return {\n id: dto.id,\n accessHash: dto.hash,\n usernames: JSON.parse(dto.usernames) as string[],\n updated: dto.updated,\n phone: dto.phone || undefined,\n complete: dto.complete,\n }\n}\n\nexport class SqlitePeersRepository implements IPeersRepository {\n private _loaded = false\n\n constructor(readonly _driver: BaseSqliteStorageDriver) {\n _driver.registerMigration('peers', 1, (db) => {\n db.exec(`\n create table peers (\n id integer primary key,\n hash text not null,\n usernames json not null,\n updated integer not null,\n phone text,\n complete blob\n );\n create index idx_peers_usernames on peers (usernames);\n create index idx_peers_phone on peers (phone);\n `)\n })\n _driver.onLoad((db) => {\n this._loaded = true\n\n this._store = db.prepare(\n 'insert or replace into peers (id, hash, usernames, updated, phone, complete) values (?, ?, ?, ?, ?, ?)',\n )\n\n this._getById = db.prepare('select * from peers where id = ?')\n this._getByUsername = db.prepare(\n 'select * from peers where exists (select 1 from json_each(usernames) where value = ?)',\n )\n this._getByPhone = db.prepare('select * from peers where phone = ?')\n\n this._delAll = db.prepare('delete from peers')\n })\n _driver.registerLegacyMigration('peers', (db) => {\n // not too important information, just drop the table\n db.exec('drop table entities')\n })\n }\n\n private _ensureLoaded() {\n // this is (so far) the only repo where we do such check because it's a common mistake to forget to call start()\n // or connect() on the client and immediately start using high-level methods, which in turn try to resolve peers\n // from the database, and fail because nothing is initialized yet\n\n if (!this._loaded) {\n throw new MtcuteError('Peers repository is not loaded. Have you called client.start() (or similar)?')\n }\n }\n\n private _store!: ISqliteStatement\n store(peer: IPeersRepository.PeerInfo): void {\n this._driver._writeLater(this._store, [\n peer.id,\n peer.accessHash,\n JSON.stringify(peer.usernames),\n peer.updated,\n peer.phone ?? null,\n peer.complete,\n ])\n }\n\n private _getById!: ISqliteStatement\n getById(id: number): IPeersRepository.PeerInfo | null {\n this._ensureLoaded()\n const row = this._getById.get(id)\n if (!row) return null\n\n return mapPeerDto(row as PeerDto)\n }\n\n private _getByUsername!: ISqliteStatement\n getByUsername(username: string): IPeersRepository.PeerInfo | null {\n this._ensureLoaded()\n const row = this._getByUsername.get(username)\n if (!row) return null\n\n return mapPeerDto(row as PeerDto)\n }\n\n private _getByPhone!: ISqliteStatement\n getByPhone(phone: string): IPeersRepository.PeerInfo | null {\n this._ensureLoaded()\n const row = this._getByPhone.get(phone)\n if (!row) return null\n\n return mapPeerDto(row as PeerDto)\n }\n\n private _delAll!: ISqliteStatement\n deleteAll(): void {\n this._delAll.run()\n }\n}\n"]}
|
package/esm/utils/misc-utils.js
CHANGED
|
@@ -4,6 +4,21 @@
|
|
|
4
4
|
* @param ms Number of ms to sleep
|
|
5
5
|
*/
|
|
6
6
|
export const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
7
|
+
export function sleepWithAbort(ms, signal) {
|
|
8
|
+
return new Promise((resolve, reject) => {
|
|
9
|
+
// eslint-disable-next-line prefer-const
|
|
10
|
+
let timeout;
|
|
11
|
+
const onAbort = () => {
|
|
12
|
+
clearTimeout(timeout);
|
|
13
|
+
reject(signal.reason);
|
|
14
|
+
};
|
|
15
|
+
signal.addEventListener('abort', onAbort);
|
|
16
|
+
timeout = setTimeout(() => {
|
|
17
|
+
signal.removeEventListener('abort', onAbort);
|
|
18
|
+
resolve();
|
|
19
|
+
}, ms);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
7
22
|
export function getRandomInt(top) {
|
|
8
23
|
return Math.floor(Math.random() * top);
|
|
9
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc-utils.js","sourceRoot":"","sources":["../../../src/utils/misc-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAErG,MAAM,UAAU,YAAY,CAAC,GAAW;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAA;AAC1C,CAAC","sourcesContent":["/**\n * Sleep for the given number of ms\n *\n * @param ms Number of ms to sleep\n */\nexport const sleep = (ms: number): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms))\n\nexport function getRandomInt(top: number): number {\n return Math.floor(Math.random() * top)\n}\n"]}
|
|
1
|
+
{"version":3,"file":"misc-utils.js","sourceRoot":"","sources":["../../../src/utils/misc-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAErG,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,MAAmB;IAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,wCAAwC;QACxC,IAAI,OAAuB,CAAA;QAE3B,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACzB,CAAC,CAAA;QAED,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAEzC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC5C,OAAO,EAAE,CAAA;QACb,CAAC,EAAE,EAAE,CAAC,CAAA;IACV,CAAC,CAAC,CAAA;AACN,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAA;AAC1C,CAAC","sourcesContent":["/**\n * Sleep for the given number of ms\n *\n * @param ms Number of ms to sleep\n */\nexport const sleep = (ms: number): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms))\n\nexport function sleepWithAbort(ms: number, signal: AbortSignal): Promise<void> {\n return new Promise((resolve, reject) => {\n // eslint-disable-next-line prefer-const\n let timeout: NodeJS.Timeout\n\n const onAbort = () => {\n clearTimeout(timeout)\n reject(signal.reason)\n }\n\n signal.addEventListener('abort', onAbort)\n\n timeout = setTimeout(() => {\n signal.removeEventListener('abort', onAbort)\n resolve()\n }, ms)\n })\n}\n\nexport function getRandomInt(top: number): number {\n return Math.floor(Math.random() * top)\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mtcute/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "Type-safe library for MTProto (Telegram API)",
|
|
5
5
|
"author": "alina sireneva <alina@tei.su>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,9 +34,9 @@
|
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@mtcute/tl": "^
|
|
38
|
-
"@mtcute/tl-runtime": "^0.
|
|
39
|
-
"@mtcute/file-id": "^0.
|
|
37
|
+
"@mtcute/tl": "^182.0.0",
|
|
38
|
+
"@mtcute/tl-runtime": "^0.14.0",
|
|
39
|
+
"@mtcute/file-id": "^0.14.0",
|
|
40
40
|
"@types/events": "3.0.0",
|
|
41
41
|
"events": "3.2.0",
|
|
42
42
|
"long": "5.2.3"
|