@mtcute/node 0.16.6 → 0.16.9
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/chunks/cjs/BpvQ752Q.js +33 -0
- package/chunks/cjs/D7i-4e0W.js +74 -0
- package/chunks/cjs/HP2yqAk_.js +79 -0
- package/chunks/cjs/package.json +3 -0
- package/chunks/es/CKso6cAV.js +75 -0
- package/chunks/es/CnOjjhdK.js +29 -0
- package/chunks/es/HZgHrOPU.js +69 -0
- package/{cjs/client.d.ts → client.d.ts} +3 -2
- package/index.cjs +449 -0
- package/index.d.ts +8 -1
- package/index.js +410 -1
- package/{cjs/methods → methods}/download-node-stream.d.ts +1 -1
- package/methods.cjs +17 -0
- package/methods.d.ts +3 -1
- package/methods.js +6 -1
- package/package.json +49 -33
- package/{esm/sqlite → sqlite}/driver.d.ts +1 -1
- package/sqlite/sqlite.test.d.ts +1 -0
- package/{cjs/utils → utils}/crypto.d.ts +1 -1
- package/utils/crypto.test.d.ts +1 -0
- package/utils/normalize-file.d.ts +6 -0
- package/{cjs/utils → utils}/stream-utils.d.ts +1 -1
- package/utils/stream-utils.test.d.ts +1 -0
- package/{cjs/utils → utils}/tcp.d.ts +3 -3
- package/utils/tcp.test.d.ts +1 -0
- package/utils.cjs +20 -0
- package/utils.d.ts +3 -1
- package/utils.js +9 -1
- package/{cjs/worker.d.ts → worker.d.ts} +1 -1
- package/cjs/client.js +0 -113
- package/cjs/client.js.map +0 -1
- package/cjs/common-internals-node/exit-hook.js +0 -47
- package/cjs/common-internals-node/exit-hook.js.map +0 -1
- package/cjs/common-internals-node/logging.js +0 -34
- package/cjs/common-internals-node/logging.js.map +0 -1
- package/cjs/common-internals-node/platform.js +0 -85
- package/cjs/common-internals-node/platform.js.map +0 -1
- package/cjs/index.js +0 -31
- package/cjs/index.js.map +0 -1
- package/cjs/methods/download-file.js +0 -34
- package/cjs/methods/download-file.js.map +0 -1
- package/cjs/methods/download-node-stream.js +0 -15
- package/cjs/methods/download-node-stream.js.map +0 -1
- package/cjs/methods.js +0 -29
- package/cjs/methods.js.map +0 -1
- package/cjs/package.json +0 -3
- package/cjs/sqlite/driver.d.ts +0 -25
- package/cjs/sqlite/driver.js +0 -29
- package/cjs/sqlite/driver.js.map +0 -1
- package/cjs/sqlite/index.js +0 -18
- package/cjs/sqlite/index.js.map +0 -1
- package/cjs/utils/crypto.js +0 -73
- package/cjs/utils/crypto.js.map +0 -1
- package/cjs/utils/normalize-file.d.ts +0 -10
- package/cjs/utils/normalize-file.js +0 -31
- package/cjs/utils/normalize-file.js.map +0 -1
- package/cjs/utils/stream-utils.js +0 -77
- package/cjs/utils/stream-utils.js.map +0 -1
- package/cjs/utils/tcp.js +0 -126
- package/cjs/utils/tcp.js.map +0 -1
- package/cjs/utils/version.js +0 -21
- package/cjs/utils/version.js.map +0 -1
- package/cjs/utils.js +0 -26
- package/cjs/utils.js.map +0 -1
- package/cjs/worker.js +0 -48
- package/cjs/worker.js.map +0 -1
- package/esm/client.d.ts +0 -46
- package/esm/client.js +0 -108
- package/esm/client.js.map +0 -1
- package/esm/common-internals-node/exit-hook.d.ts +0 -1
- package/esm/common-internals-node/exit-hook.js +0 -43
- package/esm/common-internals-node/exit-hook.js.map +0 -1
- package/esm/common-internals-node/logging.d.ts +0 -2
- package/esm/common-internals-node/logging.js +0 -31
- package/esm/common-internals-node/logging.js.map +0 -1
- package/esm/common-internals-node/platform.d.ts +0 -18
- package/esm/common-internals-node/platform.js +0 -58
- package/esm/common-internals-node/platform.js.map +0 -1
- package/esm/index.d.ts +0 -8
- package/esm/index.js +0 -9
- package/esm/index.js.map +0 -1
- package/esm/methods/download-file.d.ts +0 -9
- package/esm/methods/download-file.js +0 -30
- package/esm/methods/download-file.js.map +0 -1
- package/esm/methods/download-node-stream.d.ts +0 -8
- package/esm/methods/download-node-stream.js +0 -11
- package/esm/methods/download-node-stream.js.map +0 -1
- package/esm/methods.d.ts +0 -3
- package/esm/methods.js +0 -4
- package/esm/methods.js.map +0 -1
- package/esm/sqlite/driver.js +0 -22
- package/esm/sqlite/driver.js.map +0 -1
- package/esm/sqlite/index.d.ts +0 -8
- package/esm/sqlite/index.js +0 -13
- package/esm/sqlite/index.js.map +0 -1
- package/esm/utils/crypto.d.ts +0 -15
- package/esm/utils/crypto.js +0 -71
- package/esm/utils/crypto.js.map +0 -1
- package/esm/utils/normalize-file.d.ts +0 -10
- package/esm/utils/normalize-file.js +0 -27
- package/esm/utils/normalize-file.js.map +0 -1
- package/esm/utils/stream-utils.d.ts +0 -3
- package/esm/utils/stream-utils.js +0 -72
- package/esm/utils/stream-utils.js.map +0 -1
- package/esm/utils/tcp.d.ts +0 -29
- package/esm/utils/tcp.js +0 -118
- package/esm/utils/tcp.js.map +0 -1
- package/esm/utils/version.d.ts +0 -3
- package/esm/utils/version.js +0 -17
- package/esm/utils/version.js.map +0 -1
- package/esm/utils.d.ts +0 -3
- package/esm/utils.js +0 -4
- package/esm/utils.js.map +0 -1
- package/esm/worker.d.ts +0 -10
- package/esm/worker.js +0 -43
- package/esm/worker.js.map +0 -1
- /package/{cjs/common-internals-node → common-internals-node}/exit-hook.d.ts +0 -0
- /package/{cjs/common-internals-node → common-internals-node}/logging.d.ts +0 -0
- /package/{cjs/common-internals-node → common-internals-node}/platform.d.ts +0 -0
- /package/{cjs/index.d.ts → index.d.cts} +0 -0
- /package/{cjs/methods → methods}/download-file.d.ts +0 -0
- /package/{cjs/methods.d.ts → methods.d.cts} +0 -0
- /package/{cjs/sqlite → sqlite}/index.d.ts +0 -0
- /package/{cjs/utils → utils}/version.d.ts +0 -0
- /package/{cjs/utils.d.ts → utils.d.cts} +0 -0
package/esm/utils/tcp.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import EventEmitter from 'events';
|
|
2
|
-
import { connect } from 'net';
|
|
3
|
-
import { IntermediatePacketCodec, MtcuteError, TransportState } from '@mtcute/core';
|
|
4
|
-
/**
|
|
5
|
-
* Base for TCP transports.
|
|
6
|
-
* Subclasses must provide packet codec in `_packetCodec` property
|
|
7
|
-
*/
|
|
8
|
-
export class BaseTcpTransport extends EventEmitter {
|
|
9
|
-
_currentDc = null;
|
|
10
|
-
_state = TransportState.Idle;
|
|
11
|
-
_socket = null;
|
|
12
|
-
_crypto;
|
|
13
|
-
log;
|
|
14
|
-
packetCodecInitialized = false;
|
|
15
|
-
_updateLogPrefix() {
|
|
16
|
-
if (this._currentDc) {
|
|
17
|
-
this.log.prefix = `[TCP:${this._currentDc.ipAddress}:${this._currentDc.port}] `;
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
this.log.prefix = '[TCP:disconnected] ';
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
setup(crypto, log) {
|
|
24
|
-
this._crypto = crypto;
|
|
25
|
-
this.log = log.create('tcp');
|
|
26
|
-
this._updateLogPrefix();
|
|
27
|
-
}
|
|
28
|
-
state() {
|
|
29
|
-
return this._state;
|
|
30
|
-
}
|
|
31
|
-
currentDc() {
|
|
32
|
-
return this._currentDc;
|
|
33
|
-
}
|
|
34
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
35
|
-
connect(dc, testMode) {
|
|
36
|
-
if (this._state !== TransportState.Idle) {
|
|
37
|
-
throw new MtcuteError('Transport is not IDLE');
|
|
38
|
-
}
|
|
39
|
-
if (!this.packetCodecInitialized) {
|
|
40
|
-
this._packetCodec.setup?.(this._crypto, this.log);
|
|
41
|
-
this._packetCodec.on('error', (err) => this.emit('error', err));
|
|
42
|
-
this._packetCodec.on('packet', (buf) => this.emit('message', buf));
|
|
43
|
-
this.packetCodecInitialized = true;
|
|
44
|
-
}
|
|
45
|
-
this._state = TransportState.Connecting;
|
|
46
|
-
this._currentDc = dc;
|
|
47
|
-
this._updateLogPrefix();
|
|
48
|
-
this.log.debug('connecting to %j', dc);
|
|
49
|
-
this._socket = connect(dc.port, dc.ipAddress, this.handleConnect.bind(this));
|
|
50
|
-
this._socket.on('data', (data) => {
|
|
51
|
-
this._packetCodec.feed(data);
|
|
52
|
-
});
|
|
53
|
-
this._socket.on('error', this.handleError.bind(this));
|
|
54
|
-
this._socket.on('close', this.close.bind(this));
|
|
55
|
-
}
|
|
56
|
-
close() {
|
|
57
|
-
if (this._state === TransportState.Idle)
|
|
58
|
-
return;
|
|
59
|
-
this.log.info('connection closed');
|
|
60
|
-
this._state = TransportState.Idle;
|
|
61
|
-
this._socket.removeAllListeners();
|
|
62
|
-
this._socket.destroy();
|
|
63
|
-
this._socket = null;
|
|
64
|
-
this._currentDc = null;
|
|
65
|
-
this._packetCodec.reset();
|
|
66
|
-
this.emit('close');
|
|
67
|
-
}
|
|
68
|
-
handleError(error) {
|
|
69
|
-
this.log.error('error: %s', error.stack);
|
|
70
|
-
if (this.listenerCount('error') > 0) {
|
|
71
|
-
this.emit('error', error);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
handleConnect() {
|
|
75
|
-
this.log.info('connected');
|
|
76
|
-
Promise.resolve(this._packetCodec.tag())
|
|
77
|
-
.then((initialMessage) => {
|
|
78
|
-
if (initialMessage.length) {
|
|
79
|
-
this._socket.write(initialMessage, (err) => {
|
|
80
|
-
if (err) {
|
|
81
|
-
this.log.error('failed to write initial message: %s', err.stack);
|
|
82
|
-
this.emit('error');
|
|
83
|
-
this.close();
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
this._state = TransportState.Ready;
|
|
87
|
-
this.emit('ready');
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
this._state = TransportState.Ready;
|
|
93
|
-
this.emit('ready');
|
|
94
|
-
}
|
|
95
|
-
})
|
|
96
|
-
.catch((err) => this.emit('error', err));
|
|
97
|
-
}
|
|
98
|
-
async send(bytes) {
|
|
99
|
-
const framed = await this._packetCodec.encode(bytes);
|
|
100
|
-
if (this._state !== TransportState.Ready) {
|
|
101
|
-
throw new MtcuteError('Transport is not READY');
|
|
102
|
-
}
|
|
103
|
-
return new Promise((resolve, reject) => {
|
|
104
|
-
this._socket.write(framed, (error) => {
|
|
105
|
-
if (error) {
|
|
106
|
-
reject(error);
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
resolve();
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
export class TcpTransport extends BaseTcpTransport {
|
|
116
|
-
_packetCodec = new IntermediatePacketCodec();
|
|
117
|
-
}
|
|
118
|
-
//# sourceMappingURL=tcp.js.map
|
package/esm/utils/tcp.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tcp.js","sourceRoot":"","sources":["../../../src/utils/tcp.ts"],"names":[],"mappings":"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","sourcesContent":["import EventEmitter from 'events'\nimport { connect, Socket } from 'net'\n\nimport { IntermediatePacketCodec, IPacketCodec, ITelegramTransport, MtcuteError, TransportState } from '@mtcute/core'\nimport { BasicDcOption, ICryptoProvider, Logger } from '@mtcute/core/utils.js'\n\n/**\n * Base for TCP transports.\n * Subclasses must provide packet codec in `_packetCodec` property\n */\nexport abstract class BaseTcpTransport extends EventEmitter implements ITelegramTransport {\n protected _currentDc: BasicDcOption | null = null\n protected _state: TransportState = TransportState.Idle\n protected _socket: Socket | null = null\n\n abstract _packetCodec: IPacketCodec\n protected _crypto!: ICryptoProvider\n protected log!: Logger\n\n packetCodecInitialized = false\n\n private _updateLogPrefix() {\n if (this._currentDc) {\n this.log.prefix = `[TCP:${this._currentDc.ipAddress}:${this._currentDc.port}] `\n } else {\n this.log.prefix = '[TCP:disconnected] '\n }\n }\n\n setup(crypto: ICryptoProvider, log: Logger): void {\n this._crypto = crypto\n this.log = log.create('tcp')\n this._updateLogPrefix()\n }\n\n state(): TransportState {\n return this._state\n }\n\n currentDc(): BasicDcOption | null {\n return this._currentDc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n connect(dc: BasicDcOption, testMode: boolean): void {\n if (this._state !== TransportState.Idle) {\n throw new MtcuteError('Transport is not IDLE')\n }\n\n if (!this.packetCodecInitialized) {\n this._packetCodec.setup?.(this._crypto, this.log)\n this._packetCodec.on('error', (err) => this.emit('error', err))\n this._packetCodec.on('packet', (buf) => this.emit('message', buf))\n this.packetCodecInitialized = true\n }\n\n this._state = TransportState.Connecting\n this._currentDc = dc\n this._updateLogPrefix()\n\n this.log.debug('connecting to %j', dc)\n\n this._socket = connect(dc.port, dc.ipAddress, this.handleConnect.bind(this))\n\n this._socket.on('data', (data) => {\n this._packetCodec.feed(data)\n })\n this._socket.on('error', this.handleError.bind(this))\n this._socket.on('close', this.close.bind(this))\n }\n\n close(): void {\n if (this._state === TransportState.Idle) return\n this.log.info('connection closed')\n\n this._state = TransportState.Idle\n this._socket!.removeAllListeners()\n this._socket!.destroy()\n this._socket = null\n this._currentDc = null\n this._packetCodec.reset()\n this.emit('close')\n }\n\n handleError(error: Error): void {\n this.log.error('error: %s', error.stack)\n\n if (this.listenerCount('error') > 0) {\n this.emit('error', error)\n }\n }\n\n handleConnect(): void {\n this.log.info('connected')\n\n Promise.resolve(this._packetCodec.tag())\n .then((initialMessage) => {\n if (initialMessage.length) {\n this._socket!.write(initialMessage, (err) => {\n if (err) {\n this.log.error('failed to write initial message: %s', err.stack)\n this.emit('error')\n this.close()\n } else {\n this._state = TransportState.Ready\n this.emit('ready')\n }\n })\n } else {\n this._state = TransportState.Ready\n this.emit('ready')\n }\n })\n .catch((err) => this.emit('error', err))\n }\n\n async send(bytes: Uint8Array): Promise<void> {\n const framed = await this._packetCodec.encode(bytes)\n\n if (this._state !== TransportState.Ready) {\n throw new MtcuteError('Transport is not READY')\n }\n\n return new Promise((resolve, reject) => {\n this._socket!.write(framed, (error) => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n })\n })\n }\n}\n\nexport class TcpTransport extends BaseTcpTransport {\n _packetCodec = new IntermediatePacketCodec()\n}\n"]}
|
package/esm/utils/version.d.ts
DELETED
package/esm/utils/version.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export const NODE_VERSION = typeof process !== 'undefined' && 'node' in process.versions ? process.versions.node : null;
|
|
2
|
-
export const NODE_VERSION_TUPLE = NODE_VERSION ? /*#__PURE__*/ NODE_VERSION.split('.').map(Number) : null;
|
|
3
|
-
export function isNodeVersionAfter(major, minor, patch) {
|
|
4
|
-
if (!NODE_VERSION_TUPLE)
|
|
5
|
-
return true; // assume non-node environment is always "after"
|
|
6
|
-
const [a, b, c] = NODE_VERSION_TUPLE;
|
|
7
|
-
if (a > major)
|
|
8
|
-
return true;
|
|
9
|
-
if (a < major)
|
|
10
|
-
return false;
|
|
11
|
-
if (b > minor)
|
|
12
|
-
return true;
|
|
13
|
-
if (b < minor)
|
|
14
|
-
return false;
|
|
15
|
-
return c >= patch;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=version.js.map
|
package/esm/utils/version.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/utils/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;AACvH,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAEzG,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,KAAa,EAAE,KAAa;IAC1E,IAAI,CAAC,kBAAkB;QAAE,OAAO,IAAI,CAAA,CAAC,gDAAgD;IAErF,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAA;IACpC,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,IAAI,CAAA;IAC1B,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,IAAI,CAAA;IAC1B,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,KAAK,CAAA;IAE3B,OAAO,CAAC,IAAI,KAAK,CAAA;AACrB,CAAC","sourcesContent":["export const NODE_VERSION = typeof process !== 'undefined' && 'node' in process.versions ? process.versions.node : null\nexport const NODE_VERSION_TUPLE = NODE_VERSION ? /*#__PURE__*/ NODE_VERSION.split('.').map(Number) : null\n\nexport function isNodeVersionAfter(major: number, minor: number, patch: number): boolean {\n if (!NODE_VERSION_TUPLE) return true // assume non-node environment is always \"after\"\n\n const [a, b, c] = NODE_VERSION_TUPLE\n if (a > major) return true\n if (a < major) return false\n if (b > minor) return true\n if (b < minor) return false\n\n return c >= patch\n}\n"]}
|
package/esm/utils.d.ts
DELETED
package/esm/utils.js
DELETED
package/esm/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA","sourcesContent":["export * from './utils/crypto.js'\nexport * from './utils/stream-utils.js'\nexport * from '@mtcute/core/utils.js'\n"]}
|
package/esm/worker.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ClientMessageHandler, RespondFn, SendFn, SomeWorker, TelegramWorker as TelegramWorkerBase, TelegramWorkerOptions, TelegramWorkerPort as TelegramWorkerPortBase, TelegramWorkerPortOptions, WorkerCustomMethods, WorkerMessageHandler } from '@mtcute/core/worker.js';
|
|
2
|
-
export type { TelegramWorkerOptions, TelegramWorkerPortOptions, WorkerCustomMethods };
|
|
3
|
-
export declare class TelegramWorker<T extends WorkerCustomMethods> extends TelegramWorkerBase<T> {
|
|
4
|
-
registerWorker(handler: WorkerMessageHandler): RespondFn;
|
|
5
|
-
}
|
|
6
|
-
export declare class TelegramWorkerPort<T extends WorkerCustomMethods> extends TelegramWorkerPortBase<T> {
|
|
7
|
-
readonly options: TelegramWorkerPortOptions;
|
|
8
|
-
constructor(options: TelegramWorkerPortOptions);
|
|
9
|
-
connectToWorker(worker: SomeWorker, handler: ClientMessageHandler): [SendFn, () => void];
|
|
10
|
-
}
|
package/esm/worker.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { parentPort, Worker } from 'worker_threads';
|
|
2
|
-
import { setPlatform } from '@mtcute/core/platform.js';
|
|
3
|
-
import { TelegramWorker as TelegramWorkerBase, TelegramWorkerPort as TelegramWorkerPortBase, } from '@mtcute/core/worker.js';
|
|
4
|
-
import { NodePlatform } from './common-internals-node/platform.js';
|
|
5
|
-
let _registered = false;
|
|
6
|
-
export class TelegramWorker extends TelegramWorkerBase {
|
|
7
|
-
registerWorker(handler) {
|
|
8
|
-
if (!parentPort) {
|
|
9
|
-
throw new Error('TelegramWorker must be created from a worker thread');
|
|
10
|
-
}
|
|
11
|
-
if (_registered) {
|
|
12
|
-
throw new Error('TelegramWorker must be created only once');
|
|
13
|
-
}
|
|
14
|
-
_registered = true;
|
|
15
|
-
const port = parentPort;
|
|
16
|
-
const respond = port.postMessage.bind(port);
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
18
|
-
parentPort.on('message', (message) => handler(message, respond));
|
|
19
|
-
return respond;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
export class TelegramWorkerPort extends TelegramWorkerPortBase {
|
|
23
|
-
options;
|
|
24
|
-
constructor(options) {
|
|
25
|
-
setPlatform(new NodePlatform());
|
|
26
|
-
super(options);
|
|
27
|
-
this.options = options;
|
|
28
|
-
}
|
|
29
|
-
connectToWorker(worker, handler) {
|
|
30
|
-
if (!(worker instanceof Worker)) {
|
|
31
|
-
throw new Error('Only worker_threads are supported');
|
|
32
|
-
}
|
|
33
|
-
const send = worker.postMessage.bind(worker);
|
|
34
|
-
worker.on('message', handler);
|
|
35
|
-
return [
|
|
36
|
-
send,
|
|
37
|
-
() => {
|
|
38
|
-
worker.off('message', handler);
|
|
39
|
-
},
|
|
40
|
-
];
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=worker.js.map
|
package/esm/worker.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAKH,cAAc,IAAI,kBAAkB,EAEpC,kBAAkB,IAAI,sBAAsB,GAI/C,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AAIlE,IAAI,WAAW,GAAG,KAAK,CAAA;AAEvB,MAAM,OAAO,cAA8C,SAAQ,kBAAqB;IACpF,cAAc,CAAC,OAA6B;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;QAC1E,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;QAC/D,CAAC;QAED,WAAW,GAAG,IAAI,CAAA;QAElB,MAAM,IAAI,GAAG,UAAU,CAAA;QAEvB,MAAM,OAAO,GAAc,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEtD,iEAAiE;QACjE,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAEhE,OAAO,OAAO,CAAA;IAClB,CAAC;CACJ;AAED,MAAM,OAAO,kBAAkD,SAAQ,sBAAyB;IACvE;IAArB,YAAqB,OAAkC;QACnD,WAAW,CAAC,IAAI,YAAY,EAAE,CAAC,CAAA;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAA;QAFG,YAAO,GAAP,OAAO,CAA2B;IAGvD,CAAC;IAED,eAAe,CAAC,MAAkB,EAAE,OAA6B;QAC7D,IAAI,CAAC,CAAC,MAAM,YAAY,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,IAAI,GAAW,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEpD,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAE7B,OAAO;YACH,IAAI;YACJ,GAAG,EAAE;gBACD,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAClC,CAAC;SACJ,CAAA;IACL,CAAC;CACJ","sourcesContent":["import { parentPort, Worker } from 'worker_threads'\n\nimport { setPlatform } from '@mtcute/core/platform.js'\nimport {\n ClientMessageHandler,\n RespondFn,\n SendFn,\n SomeWorker,\n TelegramWorker as TelegramWorkerBase,\n TelegramWorkerOptions,\n TelegramWorkerPort as TelegramWorkerPortBase,\n TelegramWorkerPortOptions,\n WorkerCustomMethods,\n WorkerMessageHandler,\n} from '@mtcute/core/worker.js'\n\nimport { NodePlatform } from './common-internals-node/platform.js'\n\nexport type { TelegramWorkerOptions, TelegramWorkerPortOptions, WorkerCustomMethods }\n\nlet _registered = false\n\nexport class TelegramWorker<T extends WorkerCustomMethods> extends TelegramWorkerBase<T> {\n registerWorker(handler: WorkerMessageHandler): RespondFn {\n if (!parentPort) {\n throw new Error('TelegramWorker must be created from a worker thread')\n }\n if (_registered) {\n throw new Error('TelegramWorker must be created only once')\n }\n\n _registered = true\n\n const port = parentPort\n\n const respond: RespondFn = port.postMessage.bind(port)\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n parentPort.on('message', (message) => handler(message, respond))\n\n return respond\n }\n}\n\nexport class TelegramWorkerPort<T extends WorkerCustomMethods> extends TelegramWorkerPortBase<T> {\n constructor(readonly options: TelegramWorkerPortOptions) {\n setPlatform(new NodePlatform())\n super(options)\n }\n\n connectToWorker(worker: SomeWorker, handler: ClientMessageHandler): [SendFn, () => void] {\n if (!(worker instanceof Worker)) {\n throw new Error('Only worker_threads are supported')\n }\n\n const send: SendFn = worker.postMessage.bind(worker)\n\n worker.on('message', handler)\n\n return [\n send,\n () => {\n worker.off('message', handler)\n },\n ]\n }\n}\n"]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|