@mtkruto/node 0.70.0 → 0.70.1
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/esm/_dnt.polyfills.d.ts +13 -13
- package/esm/_dnt.polyfills.d.ts.map +1 -1
- package/esm/_dnt.polyfills.js +11 -11
- package/esm/client/0_abortable_loop.d.ts +1 -1
- package/esm/client/0_abortable_loop.d.ts.map +1 -1
- package/esm/client/0_abortable_loop.js +2 -2
- package/esm/client/0_client_abstract.d.ts +1 -0
- package/esm/client/0_client_abstract.d.ts.map +1 -1
- package/esm/client/0_client_abstract.js +3 -0
- package/esm/client/2_client_encrypted.d.ts.map +1 -1
- package/esm/client/2_client_encrypted.js +26 -23
- package/esm/client/2_network_statistics_manager.d.ts +2 -2
- package/esm/client/2_network_statistics_manager.d.ts.map +1 -1
- package/esm/client/2_network_statistics_manager.js +30 -4
- package/esm/client/2_update_manager.js +1 -1
- package/esm/client/5_client.js +9 -9
- package/esm/session/1_session.d.ts +1 -0
- package/esm/session/1_session.d.ts.map +1 -1
- package/esm/session/1_session.js +3 -0
- package/esm/session/2_session_encrypted.d.ts +1 -1
- package/esm/session/2_session_encrypted.d.ts.map +1 -1
- package/esm/session/2_session_encrypted.js +153 -89
- package/esm/tl/2_telegram.d.ts +1 -1
- package/esm/tl/2_telegram.d.ts.map +1 -1
- package/package.json +1 -1
- package/script/_dnt.polyfills.d.ts +13 -13
- package/script/_dnt.polyfills.d.ts.map +1 -1
- package/script/_dnt.polyfills.js +11 -11
- package/script/client/0_abortable_loop.d.ts +1 -1
- package/script/client/0_abortable_loop.d.ts.map +1 -1
- package/script/client/0_abortable_loop.js +2 -2
- package/script/client/0_client_abstract.d.ts +1 -0
- package/script/client/0_client_abstract.d.ts.map +1 -1
- package/script/client/0_client_abstract.js +3 -0
- package/script/client/2_client_encrypted.d.ts.map +1 -1
- package/script/client/2_client_encrypted.js +26 -23
- package/script/client/2_network_statistics_manager.d.ts +2 -2
- package/script/client/2_network_statistics_manager.d.ts.map +1 -1
- package/script/client/2_network_statistics_manager.js +30 -4
- package/script/client/2_update_manager.js +1 -1
- package/script/client/5_client.js +9 -9
- package/script/session/1_session.d.ts +1 -0
- package/script/session/1_session.d.ts.map +1 -1
- package/script/session/1_session.js +3 -0
- package/script/session/2_session_encrypted.d.ts +1 -1
- package/script/session/2_session_encrypted.d.ts.map +1 -1
- package/script/session/2_session_encrypted.js +153 -89
- package/script/tl/2_telegram.d.ts +1 -1
- package/script/tl/2_telegram.d.ts.map +1 -1
package/esm/_dnt.polyfills.d.ts
CHANGED
|
@@ -11,6 +11,19 @@ declare global {
|
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
export {};
|
|
14
|
+
declare global {
|
|
15
|
+
interface PromiseConstructor {
|
|
16
|
+
/**
|
|
17
|
+
* Creates a Promise that can be resolved or rejected using provided functions.
|
|
18
|
+
* @returns An object containing `promise` promise object, `resolve` and `reject` functions.
|
|
19
|
+
*/
|
|
20
|
+
withResolvers<T>(): {
|
|
21
|
+
promise: Promise<T>;
|
|
22
|
+
resolve: (value: T | PromiseLike<T>) => void;
|
|
23
|
+
reject: (reason?: any) => void;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
14
27
|
/**
|
|
15
28
|
* Based on [import-meta-ponyfill](https://github.com/gaubee/import-meta-ponyfill),
|
|
16
29
|
* but instead of using npm to install additional dependencies,
|
|
@@ -110,17 +123,4 @@ interface ImportMetaPonyfill extends ImportMetaPonyfillCommonjs, ImportMetaPonyf
|
|
|
110
123
|
export declare let import_meta_ponyfill_commonjs: ImportMetaPonyfillCommonjs;
|
|
111
124
|
export declare let import_meta_ponyfill_esmodule: ImportMetaPonyfillEsmodule;
|
|
112
125
|
export declare let import_meta_ponyfill: ImportMetaPonyfill;
|
|
113
|
-
declare global {
|
|
114
|
-
interface PromiseConstructor {
|
|
115
|
-
/**
|
|
116
|
-
* Creates a Promise that can be resolved or rejected using provided functions.
|
|
117
|
-
* @returns An object containing `promise` promise object, `resolve` and `reject` functions.
|
|
118
|
-
*/
|
|
119
|
-
withResolvers<T>(): {
|
|
120
|
-
promise: Promise<T>;
|
|
121
|
-
resolve: (value: T | PromiseLike<T>) => void;
|
|
122
|
-
reject: (reason?: any) => void;
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
126
|
//# sourceMappingURL=_dnt.polyfills.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_dnt.polyfills.d.ts","sourceRoot":"","sources":["../src/_dnt.polyfills.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,gBAAgB;QACxB,SAAS,CAAC,CAAC,EACP,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAC7F,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAEhB,SAAS,CAAC,CAAC,EAAE,CAAC,EACV,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAClE,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAC/B,OAAO,CAAC,EAAE,GAAG,GACd,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAC1B;CACF;AAoID,OAAO,EAAE,CAAC;AAAA,OAAO,CAAC,MAAM,CAAC;IACvB,UAAU,KAAK;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;CACF;AAED,OAAO,EAAE,CAAC;AACV;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAgC,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAGlE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,UAAU;QAClB;;;;;;;;;;;;;;WAcG;QACH,GAAG,EAAE,MAAM,CAAC;QACZ;;;;;;;;;;;;WAYG;QACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC;QACtE;;;;;;;;WAQG;QACH,IAAI,EAAE,OAAO,CAAC;QAEd;;;;;;;;;;;;WAYG;QACH,QAAQ,EAAE,MAAM,CAAC;QAEjB;;;;;;;;;;;;WAYG;QACH,OAAO,EAAE,MAAM,CAAC;KACjB;CACF;AAED,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,KAAK,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,UAAU,0BAA0B;IAClC,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;CACxD;AACD,UAAU,0BAA0B;IAClC,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;CACtC;AACD,UAAU,kBACR,SAAQ,0BAA0B,EAAE,0BAA0B;CAC/D;AAiBD,eAAO,IAAI,6BAA6B,EA2BnC,0BAA0B,CAAC;AAMhC,eAAO,IAAI,6BAA6B,EA4DnC,0BAA0B,CAAC;AAMhC,eAAO,IAAI,oBAAoB,EAoB1B,kBAAkB,CAAC
|
|
1
|
+
{"version":3,"file":"_dnt.polyfills.d.ts","sourceRoot":"","sources":["../src/_dnt.polyfills.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,gBAAgB;QACxB,SAAS,CAAC,CAAC,EACP,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAC7F,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAEhB,SAAS,CAAC,CAAC,EAAE,CAAC,EACV,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAClE,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAC/B,OAAO,CAAC,EAAE,GAAG,GACd,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAC1B;CACF;AAoID,OAAO,EAAE,CAAC;AAAA,OAAO,CAAC,MAAM,CAAC;IACvB,UAAU,KAAK;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;CACF;AAED,OAAO,EAAE,CAAC;AACV,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,kBAAkB;QAC1B;;;WAGG;QACH,aAAa,CAAC,CAAC,KAAK;YAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;YAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;SAAE,CAAC;KAC3H;CACF;AAaD;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAgC,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAGlE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,UAAU;QAClB;;;;;;;;;;;;;;WAcG;QACH,GAAG,EAAE,MAAM,CAAC;QACZ;;;;;;;;;;;;WAYG;QACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC;QACtE;;;;;;;;WAQG;QACH,IAAI,EAAE,OAAO,CAAC;QAEd;;;;;;;;;;;;WAYG;QACH,QAAQ,EAAE,MAAM,CAAC;QAEjB;;;;;;;;;;;;WAYG;QACH,OAAO,EAAE,MAAM,CAAC;KACjB;CACF;AAED,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,KAAK,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,UAAU,0BAA0B;IAClC,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;CACxD;AACD,UAAU,0BAA0B;IAClC,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;CACtC;AACD,UAAU,kBACR,SAAQ,0BAA0B,EAAE,0BAA0B;CAC/D;AAiBD,eAAO,IAAI,6BAA6B,EA2BnC,0BAA0B,CAAC;AAMhC,eAAO,IAAI,6BAA6B,EA4DnC,0BAA0B,CAAC;AAMhC,eAAO,IAAI,oBAAoB,EAoB1B,kBAAkB,CAAC"}
|
package/esm/_dnt.polyfills.js
CHANGED
|
@@ -107,6 +107,17 @@ async function fromAsync(items, mapfn, thisArg) {
|
|
|
107
107
|
if (!Array.fromAsync) {
|
|
108
108
|
Array.fromAsync = fromAsync;
|
|
109
109
|
}
|
|
110
|
+
// https://github.com/tc39/proposal-promise-with-resolvers/blob/3a78801e073e99217dbeb2c43ba7212f3bdc8b83/polyfills.js#L1C1-L9C2
|
|
111
|
+
if (Promise.withResolvers === undefined) {
|
|
112
|
+
Promise.withResolvers = () => {
|
|
113
|
+
const out = {};
|
|
114
|
+
out.promise = new Promise((resolve_, reject_) => {
|
|
115
|
+
out.resolve = resolve_;
|
|
116
|
+
out.reject = reject_;
|
|
117
|
+
});
|
|
118
|
+
return out;
|
|
119
|
+
};
|
|
120
|
+
}
|
|
110
121
|
/**
|
|
111
122
|
* Based on [import-meta-ponyfill](https://github.com/gaubee/import-meta-ponyfill),
|
|
112
123
|
* but instead of using npm to install additional dependencies,
|
|
@@ -234,14 +245,3 @@ export let import_meta_ponyfill = ((...args) => {
|
|
|
234
245
|
//@ts-ignore
|
|
235
246
|
return import_meta_ponyfill(...args);
|
|
236
247
|
});
|
|
237
|
-
// https://github.com/tc39/proposal-promise-with-resolvers/blob/3a78801e073e99217dbeb2c43ba7212f3bdc8b83/polyfills.js#L1C1-L9C2
|
|
238
|
-
if (Promise.withResolvers === undefined) {
|
|
239
|
-
Promise.withResolvers = () => {
|
|
240
|
-
const out = {};
|
|
241
|
-
out.promise = new Promise((resolve_, reject_) => {
|
|
242
|
-
out.resolve = resolve_;
|
|
243
|
-
out.reject = reject_;
|
|
244
|
-
});
|
|
245
|
-
return out;
|
|
246
|
-
};
|
|
247
|
-
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
import { type MaybePromise } from "../1_utilities.js";
|
|
21
21
|
export declare class AbortableLoop {
|
|
22
22
|
#private;
|
|
23
|
-
constructor(body: (signal: AbortSignal) => MaybePromise<void>, onError: (err: unknown) => void);
|
|
23
|
+
constructor(body: (loop: AbortableLoop, signal: AbortSignal) => MaybePromise<void>, onError: (loop: AbortableLoop, err: unknown) => void);
|
|
24
24
|
abort(): void;
|
|
25
25
|
start(): void;
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0_abortable_loop.d.ts","sourceRoot":"","sources":["../../src/client/0_abortable_loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAQ,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE5D,qBAAa,aAAa;;gBAIZ,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI;
|
|
1
|
+
{"version":3,"file":"0_abortable_loop.d.ts","sourceRoot":"","sources":["../../src/client/0_abortable_loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAQ,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE5D,qBAAa,aAAa;;gBAIZ,IAAI,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,KAAK,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI;IAOxI,KAAK;IAIL,KAAK;CAiBN"}
|
|
@@ -37,11 +37,11 @@ export class AbortableLoop {
|
|
|
37
37
|
const controller = this.#controller = new AbortController();
|
|
38
38
|
do {
|
|
39
39
|
try {
|
|
40
|
-
await this.#body(controller.signal);
|
|
40
|
+
await this.#body(this, controller.signal);
|
|
41
41
|
}
|
|
42
42
|
catch (err) {
|
|
43
43
|
if (!controller.signal.aborted) {
|
|
44
|
-
this.#onError(err);
|
|
44
|
+
this.#onError(this, err);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
} while (!controller.signal.aborted);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0_client_abstract.d.ts","sourceRoot":"","sources":["../../src/client/0_client_abstract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,8BAAsB,cAAc;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,IAAI,EAAE,IAAI,EAAE,CAEX;IAED,IAAI,GAAG,IAAI,OAAO,CAEjB;IAED,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,EAEhC;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAEK,OAAO;IAIb,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,UAAU;IAIV,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,EAExE;IAED,IAAI,uBAAuB,CAAC,uBAAuB,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAEpF;CACF"}
|
|
1
|
+
{"version":3,"file":"0_client_abstract.d.ts","sourceRoot":"","sources":["../../src/client/0_client_abstract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,8BAAsB,cAAc;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,IAAI,EAAE,IAAI,EAAE,CAEX;IAED,IAAI,GAAG,IAAI,OAAO,CAEjB;IAED,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,EAEhC;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAEK,OAAO;IAIb,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,UAAU;IAIV,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,EAExE;IAED,IAAI,uBAAuB,CAAC,uBAAuB,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAEpF;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2_client_encrypted.d.ts","sourceRoot":"","sources":["../../src/client/2_client_encrypted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAE,GAAG,EAAE,OAAO,EAAK,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAgB,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"2_client_encrypted.d.ts","sourceRoot":"","sources":["../../src/client/2_client_encrypted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAE,GAAG,EAAE,OAAO,EAAK,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAgB,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO1E,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,iKAAiK;IACjK,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8GAA8G;IAC9G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4GAA4G;IAC5G,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mHAAmH;IACnH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8GAA8G;IAC9G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC;IACtD,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACrC;AAED,qBAAa,eAAgB,SAAQ,cAAc;;IAIjD,QAAQ,EAAE,uBAAuB,CAAM;IAIvC,OAAO,EAAE,gBAAgB,CAAC;gBAYd,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,qBAAqB;IAuBlD,OAAO;IAOb,UAAU;IAsCnB,IAAI,OAAO,IAAI,UAAU,CAAC,WAAW,CAAC,CAErC;IAEK,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC;IAKjD,WAAW,CAAC,EAAE,IAAI,CAAC;IA+Db,MAAM,CAAC,CAAC,SAAS,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,EAAE,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAsF3T"}
|
|
@@ -37,7 +37,7 @@ export class ClientEncrypted extends ClientAbstract {
|
|
|
37
37
|
#L;
|
|
38
38
|
#plain;
|
|
39
39
|
session;
|
|
40
|
-
#
|
|
40
|
+
#sentRequests = new Map();
|
|
41
41
|
#apiId;
|
|
42
42
|
#appVersion;
|
|
43
43
|
#deviceModel;
|
|
@@ -176,17 +176,18 @@ export class ClientEncrypted extends ClientAbstract {
|
|
|
176
176
|
async #resend(request) {
|
|
177
177
|
try {
|
|
178
178
|
const messageId = await this.#send(request.call);
|
|
179
|
-
this.#
|
|
179
|
+
this.#sentRequests.set(messageId, request);
|
|
180
180
|
}
|
|
181
181
|
catch (err) {
|
|
182
|
-
request.reject(err);
|
|
182
|
+
request.promiseWithResolvers.reject(err);
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
async invoke(function_) {
|
|
186
186
|
const messageId = await this.#send(function_);
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
187
|
+
this.#L.debug("sent", function_._, "with msg_id", messageId);
|
|
188
|
+
const sentRequest = { call: function_, promiseWithResolvers: Promise.withResolvers() };
|
|
189
|
+
this.#sentRequests.set(messageId, sentRequest);
|
|
190
|
+
return await sentRequest.promiseWithResolvers.promise;
|
|
190
191
|
}
|
|
191
192
|
async #onUpdate(body) {
|
|
192
193
|
let type;
|
|
@@ -209,49 +210,51 @@ export class ClientEncrypted extends ClientAbstract {
|
|
|
209
210
|
this.handlers.onNewServerSalt?.(serverSalt);
|
|
210
211
|
}
|
|
211
212
|
async #onMessageFailed(msgId, error) {
|
|
212
|
-
const request = this.#
|
|
213
|
+
const request = this.#sentRequests.get(msgId);
|
|
213
214
|
if (request) {
|
|
214
|
-
this.#
|
|
215
|
+
this.#sentRequests.delete(msgId);
|
|
215
216
|
if (error instanceof SessionError) {
|
|
216
217
|
await this.#resend(request);
|
|
217
218
|
}
|
|
218
219
|
else {
|
|
219
|
-
request.reject(error);
|
|
220
|
+
request.promiseWithResolvers.reject(error);
|
|
220
221
|
}
|
|
221
222
|
}
|
|
222
223
|
}
|
|
223
224
|
async #onRpcError(msgId, error) {
|
|
224
|
-
const request = this.#
|
|
225
|
+
const request = this.#sentRequests.get(msgId);
|
|
226
|
+
this.#L.debug("received rpc_error with req_msg_id =", msgId, "for", request === undefined ? "unknown" : "known", "request");
|
|
225
227
|
if (request) {
|
|
226
|
-
this.#
|
|
228
|
+
this.#sentRequests.delete(msgId);
|
|
227
229
|
const reason = constructTelegramError(error, request.call);
|
|
228
230
|
if (reason instanceof ConnectionNotInited) {
|
|
229
231
|
this.#connectionInited = false;
|
|
230
232
|
await this.#resend(request);
|
|
231
233
|
}
|
|
232
234
|
else {
|
|
233
|
-
request.reject(constructTelegramError(error, request.call));
|
|
235
|
+
request.promiseWithResolvers.reject(constructTelegramError(error, request.call));
|
|
234
236
|
}
|
|
235
237
|
}
|
|
236
238
|
}
|
|
237
239
|
async #onRpcResult(msgId, body) {
|
|
238
|
-
const
|
|
239
|
-
|
|
240
|
+
const sentRequest = this.#sentRequests.get(msgId);
|
|
241
|
+
this.#L.debug("received rpc_result with req_msg_id =", msgId, "for", sentRequest === undefined ? "unknown" : "known", "request");
|
|
242
|
+
if (sentRequest) {
|
|
240
243
|
let type;
|
|
241
244
|
try {
|
|
242
|
-
type = await Api.deserializeType(Api.mustGetReturnType(
|
|
245
|
+
type = await Api.deserializeType(Api.mustGetReturnType(sentRequest.call._), body);
|
|
243
246
|
this.#L.in(type);
|
|
244
247
|
this.#L.debug("received rpc_result", repr(type));
|
|
245
|
-
|
|
248
|
+
sentRequest.promiseWithResolvers.resolve(type);
|
|
246
249
|
}
|
|
247
250
|
catch (err) {
|
|
248
|
-
|
|
249
|
-
this.#L.error("failed to deserialize
|
|
251
|
+
sentRequest.promiseWithResolvers.reject(err);
|
|
252
|
+
this.#L.error("failed to deserialize rpc_result body:", err);
|
|
250
253
|
this.handlers.onDeserializationError?.();
|
|
251
254
|
return;
|
|
252
255
|
}
|
|
253
256
|
finally {
|
|
254
|
-
this.#
|
|
257
|
+
this.#sentRequests.delete(msgId);
|
|
255
258
|
}
|
|
256
259
|
}
|
|
257
260
|
if (!this.#connectionInited) {
|
|
@@ -259,10 +262,10 @@ export class ClientEncrypted extends ClientAbstract {
|
|
|
259
262
|
}
|
|
260
263
|
}
|
|
261
264
|
#onPong(pong) {
|
|
262
|
-
const
|
|
263
|
-
if (
|
|
264
|
-
|
|
265
|
-
this.#
|
|
265
|
+
const sentRequest = this.#sentRequests.get(pong.msg_id);
|
|
266
|
+
if (sentRequest) {
|
|
267
|
+
sentRequest.promiseWithResolvers.resolve(pong);
|
|
268
|
+
this.#sentRequests.delete(pong.msg_id);
|
|
266
269
|
}
|
|
267
270
|
}
|
|
268
271
|
}
|
|
@@ -32,8 +32,8 @@ export declare class NetworkStatisticsManager {
|
|
|
32
32
|
};
|
|
33
33
|
}>;
|
|
34
34
|
getTransportReadWriteCallback(cdn: boolean): {
|
|
35
|
-
read: (count: number) =>
|
|
36
|
-
write: (count: number) =>
|
|
35
|
+
read: (count: number) => void;
|
|
36
|
+
write: (count: number) => void;
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
39
|
//# sourceMappingURL=2_network_statistics_manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2_network_statistics_manager.d.ts","sourceRoot":"","sources":["../../src/client/2_network_statistics_manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"2_network_statistics_manager.d.ts","sourceRoot":"","sources":["../../src/client/2_network_statistics_manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEtC,qBAAa,wBAAwB;;gBAIvB,CAAC,EAAE,CAAC;IAKV,oBAAoB;;;;;;;;;;IAmB1B,6BAA6B,CAAC,GAAG,EAAE,OAAO;sBAExB,MAAM;uBAKL,MAAM;;CA2B1B"}
|
|
@@ -17,10 +17,13 @@
|
|
|
17
17
|
* You should have received a copy of the GNU Lesser General Public License
|
|
18
18
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
19
19
|
*/
|
|
20
|
+
import { getLogger } from "../utilities/1_logger.js";
|
|
20
21
|
export class NetworkStatisticsManager {
|
|
21
22
|
#c;
|
|
23
|
+
#L;
|
|
22
24
|
constructor(c) {
|
|
23
25
|
this.#c = c;
|
|
26
|
+
this.#L = getLogger("NetworkStatisticsManager");
|
|
24
27
|
}
|
|
25
28
|
async getNetworkStatistics() {
|
|
26
29
|
const [messagesRead, messagesWrite, cdnRead, cdnWrite] = await Promise.all([
|
|
@@ -39,16 +42,39 @@ export class NetworkStatisticsManager {
|
|
|
39
42
|
};
|
|
40
43
|
return { messages, cdn };
|
|
41
44
|
}
|
|
45
|
+
#pendingWrites = {};
|
|
42
46
|
getTransportReadWriteCallback(cdn) {
|
|
43
47
|
return {
|
|
44
|
-
read:
|
|
48
|
+
read: (count) => {
|
|
45
49
|
const key = cdn ? "netstat_cdn_read" : "netstat_messages_read";
|
|
46
|
-
|
|
50
|
+
this.#pendingWrites[key] = (this.#pendingWrites[key] ?? 0) + count;
|
|
51
|
+
this.#write();
|
|
47
52
|
},
|
|
48
|
-
write:
|
|
53
|
+
write: (count) => {
|
|
49
54
|
const key = cdn ? "netstat_cdn_write" : "netstat_messages_write";
|
|
50
|
-
|
|
55
|
+
this.#pendingWrites[key] = (this.#pendingWrites[key] ?? 0) + count;
|
|
56
|
+
this.#write();
|
|
51
57
|
},
|
|
52
58
|
};
|
|
53
59
|
}
|
|
60
|
+
#writing = false;
|
|
61
|
+
async #write() {
|
|
62
|
+
if (this.#writing) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
this.#writing = true;
|
|
66
|
+
for (const [k, v] of Object.entries(this.#pendingWrites)) {
|
|
67
|
+
if (v < 1) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
await this.#c.messageStorage.incr([k], v);
|
|
72
|
+
this.#pendingWrites[k] -= v;
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
this.#L.error("write failed:", err);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
this.#writing = false;
|
|
79
|
+
}
|
|
54
80
|
}
|
|
@@ -959,7 +959,7 @@ export class UpdateManager {
|
|
|
959
959
|
const timeout = await this.#recoverChannelUpdateGap(channelId, "openChat");
|
|
960
960
|
const dT = Date.now() - Ti;
|
|
961
961
|
const delay = Math.max(timeout * 1_000 - dT, 0);
|
|
962
|
-
logger.debug("timeout=", timeout, "delay=", delay, "dT=", dT);
|
|
962
|
+
logger.debug("timeout =", timeout, "delay =", delay, "dT =", dT);
|
|
963
963
|
if (delay) {
|
|
964
964
|
await new Promise((r) => {
|
|
965
965
|
const resolve = () => {
|
package/esm/client/5_client.js
CHANGED
|
@@ -849,10 +849,10 @@ export class Client extends Composer {
|
|
|
849
849
|
return this.#lastGetMe?.isPremium ?? false;
|
|
850
850
|
}
|
|
851
851
|
#lastUpdates = new Date();
|
|
852
|
-
#updateGapRecoveryLoop = new AbortableLoop(async (signal) => {
|
|
852
|
+
#updateGapRecoveryLoop = new AbortableLoop(async (loop, signal) => {
|
|
853
853
|
await delay(60 * SECOND, { signal });
|
|
854
854
|
if (!this.connected) {
|
|
855
|
-
|
|
855
|
+
loop.abort();
|
|
856
856
|
return;
|
|
857
857
|
}
|
|
858
858
|
if (Date.now() - this.#lastUpdates.getTime() >= 15 * MINUTE) {
|
|
@@ -860,18 +860,18 @@ export class Client extends Composer {
|
|
|
860
860
|
this.#lastUpdates = new Date();
|
|
861
861
|
}));
|
|
862
862
|
}
|
|
863
|
-
}, (err) => {
|
|
863
|
+
}, (loop, err) => {
|
|
864
864
|
if (!this.connected) {
|
|
865
|
-
|
|
865
|
+
loop.abort();
|
|
866
866
|
}
|
|
867
867
|
else {
|
|
868
868
|
this.#LupdateGapRecoveryLoop.error(err);
|
|
869
869
|
}
|
|
870
870
|
});
|
|
871
|
-
#clientDisconnectionLoop = new AbortableLoop(async (signal) => {
|
|
871
|
+
#clientDisconnectionLoop = new AbortableLoop(async (loop, signal) => {
|
|
872
872
|
await delay(60 * SECOND, { signal });
|
|
873
873
|
if (!this.connected) {
|
|
874
|
-
|
|
874
|
+
loop.abort();
|
|
875
875
|
return;
|
|
876
876
|
}
|
|
877
877
|
const now = Date.now();
|
|
@@ -881,12 +881,12 @@ export class Client extends Composer {
|
|
|
881
881
|
client?.disconnect();
|
|
882
882
|
}
|
|
883
883
|
}
|
|
884
|
-
}, () => {
|
|
884
|
+
}, (loop) => {
|
|
885
885
|
if (!this.connected) {
|
|
886
|
-
|
|
886
|
+
loop.abort();
|
|
887
887
|
}
|
|
888
888
|
});
|
|
889
|
-
#storageWriteLoop = new AbortableLoop(async (signal) => {
|
|
889
|
+
#storageWriteLoop = new AbortableLoop(async (_loop, signal) => {
|
|
890
890
|
await delay(60 * SECOND, { signal });
|
|
891
891
|
await this.messageStorage.commit();
|
|
892
892
|
await this.storage.commit();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1_session.d.ts","sourceRoot":"","sources":["../../src/session/1_session.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAoD,MAAM,mBAAmB,CAAC;AACtH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQpD,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,8BAAsB,OAAO;;IAG3B,SAAS,CAAC,KAAK,EAAE,YAAY,CAAsB;IACnD,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC;gBAMvC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa;IAc1C,IAAI,uBAAuB,CAAC,uBAAuB,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAEpF;IAED,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,EAExE;IAED,IAAI,EAAE,IAAI,EAAE,CAEX;IAED,IAAI,GAAG,IAAI,OAAO,CAEjB;IAED,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,EAEhC;IA6BD,IAAI,SAAS,IAAI,OAAO,CAEvB;IAGK,OAAO;cAeG,kBAAkB;IAIlC,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,UAAU;IAOV,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;CACjD"}
|
|
1
|
+
{"version":3,"file":"1_session.d.ts","sourceRoot":"","sources":["../../src/session/1_session.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAoD,MAAM,mBAAmB,CAAC;AACtH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQpD,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,8BAAsB,OAAO;;IAG3B,SAAS,CAAC,KAAK,EAAE,YAAY,CAAsB;IACnD,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC;gBAMvC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa;IAc1C,IAAI,uBAAuB,CAAC,uBAAuB,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAEpF;IAED,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,EAExE;IAED,IAAI,EAAE,IAAI,EAAE,CAEX;IAED,IAAI,GAAG,IAAI,OAAO,CAEjB;IAED,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,EAEhC;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IA6BD,IAAI,SAAS,IAAI,OAAO,CAEvB;IAGK,OAAO;cAeG,kBAAkB;IAIlC,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,UAAU;IAOV,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;CACjD"}
|
package/esm/session/1_session.js
CHANGED
|
@@ -36,6 +36,6 @@ export declare class SessionEncrypted extends Session implements Session {
|
|
|
36
36
|
get authKey(): Uint8Array<ArrayBuffer>;
|
|
37
37
|
connect(): Promise<void>;
|
|
38
38
|
disconnect(): void;
|
|
39
|
-
send(body: Uint8Array): Promise<bigint>;
|
|
39
|
+
send(body: Uint8Array<ArrayBuffer>): Promise<bigint>;
|
|
40
40
|
}
|
|
41
41
|
//# sourceMappingURL=2_session_encrypted.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2_session_encrypted.d.ts","sourceRoot":"","sources":["../../src/session/2_session_encrypted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EAAwD,OAAO,EAAuC,MAAM,YAAY,CAAC;AAChI,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAI5C,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"2_session_encrypted.d.ts","sourceRoot":"","sources":["../../src/session/2_session_encrypted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EAAwD,OAAO,EAAuC,MAAM,YAAY,CAAC;AAChI,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAI5C,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAa7D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC;IAC5D,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CACxD;AAED,qBAAa,gBAAiB,SAAQ,OAAQ,YAAW,OAAO;;IAI9D,QAAQ,EAAE,QAAQ,CAAM;gBAiBZ,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa;IAQpC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC;IAM7C,IAAI,OAAO,IAAI,UAAU,CAAC,WAAW,CAAC,CAErC;IAEc,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAe9B,UAAU,IAAI,IAAI;IA6ErB,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CA6W3D"}
|