abmqtt-dist 0.0.4
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/README.md +14 -0
- package/dist/errors/abort.error.d.ts +3 -0
- package/dist/errors/abort.error.js +8 -0
- package/dist/errors/abort.error.js.map +1 -0
- package/dist/errors/connect.error.d.ts +5 -0
- package/dist/errors/connect.error.js +12 -0
- package/dist/errors/connect.error.js.map +1 -0
- package/dist/errors/end-of-stream.error.d.ts +3 -0
- package/dist/errors/end-of-stream.error.js +8 -0
- package/dist/errors/end-of-stream.error.js.map +1 -0
- package/dist/errors/flow-stopped.error.d.ts +3 -0
- package/dist/errors/flow-stopped.error.js +8 -0
- package/dist/errors/flow-stopped.error.js.map +1 -0
- package/dist/errors/illegal-state.error.d.ts +3 -0
- package/dist/errors/illegal-state.error.js +8 -0
- package/dist/errors/illegal-state.error.js.map +1 -0
- package/dist/errors/index.d.ts +8 -0
- package/dist/errors/index.js +25 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/malformed-packet.error.d.ts +3 -0
- package/dist/errors/malformed-packet.error.js +8 -0
- package/dist/errors/malformed-packet.error.js.map +1 -0
- package/dist/errors/subscribe.error.d.ts +3 -0
- package/dist/errors/subscribe.error.js +8 -0
- package/dist/errors/subscribe.error.js.map +1 -0
- package/dist/errors/unexpected-packet.error.d.ts +3 -0
- package/dist/errors/unexpected-packet.error.js +8 -0
- package/dist/errors/unexpected-packet.error.js.map +1 -0
- package/dist/flow/incoming.flows.d.ts +6 -0
- package/dist/flow/incoming.flows.js +39 -0
- package/dist/flow/incoming.flows.js.map +1 -0
- package/dist/flow/index.d.ts +3 -0
- package/dist/flow/index.js +20 -0
- package/dist/flow/index.js.map +1 -0
- package/dist/flow/outgoing.flows.d.ts +12 -0
- package/dist/flow/outgoing.flows.js +115 -0
- package/dist/flow/outgoing.flows.js.map +1 -0
- package/dist/flow/packet-flow.d.ts +17 -0
- package/dist/flow/packet-flow.js +3 -0
- package/dist/flow/packet-flow.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/mqtt.base-client.d.ts +54 -0
- package/dist/mqtt.base-client.js +102 -0
- package/dist/mqtt.base-client.js.map +1 -0
- package/dist/mqtt.client.d.ts +75 -0
- package/dist/mqtt.client.js +423 -0
- package/dist/mqtt.client.js.map +1 -0
- package/dist/mqtt.constants.d.ts +34 -0
- package/dist/mqtt.constants.js +26 -0
- package/dist/mqtt.constants.js.map +1 -0
- package/dist/mqtt.listener.d.ts +21 -0
- package/dist/mqtt.listener.js +29 -0
- package/dist/mqtt.listener.js.map +1 -0
- package/dist/mqtt.message.d.ts +14 -0
- package/dist/mqtt.message.js +3 -0
- package/dist/mqtt.message.js.map +1 -0
- package/dist/mqtt.packet.d.ts +9 -0
- package/dist/mqtt.packet.js +15 -0
- package/dist/mqtt.packet.js.map +1 -0
- package/dist/mqtt.parser.d.ts +21 -0
- package/dist/mqtt.parser.js +71 -0
- package/dist/mqtt.parser.js.map +1 -0
- package/dist/mqtt.types.d.ts +52 -0
- package/dist/mqtt.types.js +3 -0
- package/dist/mqtt.types.js.map +1 -0
- package/dist/mqtt.utilities.d.ts +32 -0
- package/dist/mqtt.utilities.js +139 -0
- package/dist/mqtt.utilities.js.map +1 -0
- package/dist/packet-stream.d.ts +37 -0
- package/dist/packet-stream.js +150 -0
- package/dist/packet-stream.js.map +1 -0
- package/dist/packets/connect.request.packet.d.ts +22 -0
- package/dist/packets/connect.request.packet.js +41 -0
- package/dist/packets/connect.request.packet.js.map +1 -0
- package/dist/packets/connect.response.packet.d.ts +18 -0
- package/dist/packets/connect.response.packet.js +43 -0
- package/dist/packets/connect.response.packet.js.map +1 -0
- package/dist/packets/disconnect.request.packet.d.ts +2 -0
- package/dist/packets/disconnect.request.packet.js +7 -0
- package/dist/packets/disconnect.request.packet.js.map +1 -0
- package/dist/packets/index.d.ts +16 -0
- package/dist/packets/index.js +33 -0
- package/dist/packets/index.js.map +1 -0
- package/dist/packets/packet-reader.d.ts +31 -0
- package/dist/packets/packet-reader.js +27 -0
- package/dist/packets/packet-reader.js.map +1 -0
- package/dist/packets/packet-writer.d.ts +48 -0
- package/dist/packets/packet-writer.js +58 -0
- package/dist/packets/packet-writer.js.map +1 -0
- package/dist/packets/ping.request.packet.d.ts +5 -0
- package/dist/packets/ping.request.packet.js +17 -0
- package/dist/packets/ping.request.packet.js.map +1 -0
- package/dist/packets/ping.response.packet.d.ts +5 -0
- package/dist/packets/ping.response.packet.js +17 -0
- package/dist/packets/ping.response.packet.js.map +1 -0
- package/dist/packets/publish.ack.packet.d.ts +8 -0
- package/dist/packets/publish.ack.packet.js +19 -0
- package/dist/packets/publish.ack.packet.js.map +1 -0
- package/dist/packets/publish.complete.packet.d.ts +8 -0
- package/dist/packets/publish.complete.packet.js +19 -0
- package/dist/packets/publish.complete.packet.js.map +1 -0
- package/dist/packets/publish.received.packet.d.ts +8 -0
- package/dist/packets/publish.received.packet.js +19 -0
- package/dist/packets/publish.received.packet.js.map +1 -0
- package/dist/packets/publish.release.packet.d.ts +8 -0
- package/dist/packets/publish.release.packet.js +19 -0
- package/dist/packets/publish.release.packet.js.map +1 -0
- package/dist/packets/publish.request.packet.d.ts +21 -0
- package/dist/packets/publish.request.packet.js +55 -0
- package/dist/packets/publish.request.packet.js.map +1 -0
- package/dist/packets/subscribe.request.packet.d.ts +10 -0
- package/dist/packets/subscribe.request.packet.js +15 -0
- package/dist/packets/subscribe.request.packet.js.map +1 -0
- package/dist/packets/subscribe.response.packet.d.ts +14 -0
- package/dist/packets/subscribe.response.packet.js +35 -0
- package/dist/packets/subscribe.response.packet.js.map +1 -0
- package/dist/packets/unsubscribe.request.packet.d.ts +7 -0
- package/dist/packets/unsubscribe.request.packet.js +13 -0
- package/dist/packets/unsubscribe.request.packet.js.map +1 -0
- package/dist/packets/unsubscribe.response.packet.d.ts +5 -0
- package/dist/packets/unsubscribe.response.packet.js +14 -0
- package/dist/packets/unsubscribe.response.packet.js.map +1 -0
- package/dist/reconnect-strategy/index.d.ts +2 -0
- package/dist/reconnect-strategy/index.js +19 -0
- package/dist/reconnect-strategy/index.js.map +1 -0
- package/dist/reconnect-strategy/mqtts.reconnect-strategy.d.ts +14 -0
- package/dist/reconnect-strategy/mqtts.reconnect-strategy.default.d.ts +24 -0
- package/dist/reconnect-strategy/mqtts.reconnect-strategy.default.js +56 -0
- package/dist/reconnect-strategy/mqtts.reconnect-strategy.default.js.map +1 -0
- package/dist/reconnect-strategy/mqtts.reconnect-strategy.js +3 -0
- package/dist/reconnect-strategy/mqtts.reconnect-strategy.js.map +1 -0
- package/dist/transport/index.d.ts +5 -0
- package/dist/transport/index.js +22 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/socks-tls.transport.d.ts +13 -0
- package/dist/transport/socks-tls.transport.js +56 -0
- package/dist/transport/socks-tls.transport.js.map +1 -0
- package/dist/transport/tcp.transport.d.ts +12 -0
- package/dist/transport/tcp.transport.js +26 -0
- package/dist/transport/tcp.transport.js.map +1 -0
- package/dist/transport/tls.transport.d.ts +13 -0
- package/dist/transport/tls.transport.js +46 -0
- package/dist/transport/tls.transport.js.map +1 -0
- package/dist/transport/transport.d.ts +19 -0
- package/dist/transport/transport.js +16 -0
- package/dist/transport/transport.js.map +1 -0
- package/dist/transport/websocket.transport.d.ts +15 -0
- package/dist/transport/websocket.transport.js +40 -0
- package/dist/transport/websocket.transport.js.map +1 -0
- package/package.json +74 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IdentifierPacket, PacketWriteResult } from '../mqtt.packet';
|
|
2
|
+
import { PacketStream } from '../packet-stream';
|
|
3
|
+
import { IdentifierData } from '../mqtt.types';
|
|
4
|
+
export declare class PublishCompletePacket extends IdentifierPacket {
|
|
5
|
+
}
|
|
6
|
+
export declare function writePublishCompletePacket(stream: PacketStream, options: PublishCompletePacketOptions): PacketWriteResult;
|
|
7
|
+
export declare function readPublishCompletePacket(stream: PacketStream, remaining: number): PublishCompletePacket;
|
|
8
|
+
export type PublishCompletePacketOptions = IdentifierData;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PublishCompletePacket = void 0;
|
|
4
|
+
exports.writePublishCompletePacket = writePublishCompletePacket;
|
|
5
|
+
exports.readPublishCompletePacket = readPublishCompletePacket;
|
|
6
|
+
const mqtt_packet_1 = require("../mqtt.packet");
|
|
7
|
+
const mqtt_utilities_1 = require("../mqtt.utilities");
|
|
8
|
+
class PublishCompletePacket extends mqtt_packet_1.IdentifierPacket {
|
|
9
|
+
}
|
|
10
|
+
exports.PublishCompletePacket = PublishCompletePacket;
|
|
11
|
+
function writePublishCompletePacket(stream, options) {
|
|
12
|
+
stream.writeWord(options.identifier);
|
|
13
|
+
return { identifier: options.identifier };
|
|
14
|
+
}
|
|
15
|
+
function readPublishCompletePacket(stream, remaining) {
|
|
16
|
+
(0, mqtt_utilities_1.expectRemainingLength)(remaining, 2);
|
|
17
|
+
return new PublishCompletePacket(stream.readWord());
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=publish.complete.packet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.complete.packet.js","sourceRoot":"","sources":["../../src/packets/publish.complete.packet.ts"],"names":[],"mappings":";;;AAOA,gEAMC;AAED,8DAGC;AAlBD,gDAAqE;AAGrE,sDAA0D;AAE1D,MAAa,qBAAsB,SAAQ,8BAAgB;CAAG;AAA9D,sDAA8D;AAE9D,SAAgB,0BAA0B,CACtC,MAAoB,EACpB,OAAqC;IAErC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;AAC9C,CAAC;AAED,SAAgB,yBAAyB,CAAC,MAAoB,EAAE,SAAiB;IAC7E,IAAA,sCAAqB,EAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACpC,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IdentifierPacket, PacketWriteResult } from '../mqtt.packet';
|
|
2
|
+
import { PacketStream } from '../packet-stream';
|
|
3
|
+
import { IdentifierData } from '../mqtt.types';
|
|
4
|
+
export declare class PublishReceivedPacket extends IdentifierPacket {
|
|
5
|
+
}
|
|
6
|
+
export declare function writePublishReceivedPacket(stream: PacketStream, options: PublishReceivedPacketOptions): PacketWriteResult;
|
|
7
|
+
export declare function readPublishReceivedPacket(stream: PacketStream, remaining: number): PublishReceivedPacket;
|
|
8
|
+
export type PublishReceivedPacketOptions = IdentifierData;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PublishReceivedPacket = void 0;
|
|
4
|
+
exports.writePublishReceivedPacket = writePublishReceivedPacket;
|
|
5
|
+
exports.readPublishReceivedPacket = readPublishReceivedPacket;
|
|
6
|
+
const mqtt_packet_1 = require("../mqtt.packet");
|
|
7
|
+
const mqtt_utilities_1 = require("../mqtt.utilities");
|
|
8
|
+
class PublishReceivedPacket extends mqtt_packet_1.IdentifierPacket {
|
|
9
|
+
}
|
|
10
|
+
exports.PublishReceivedPacket = PublishReceivedPacket;
|
|
11
|
+
function writePublishReceivedPacket(stream, options) {
|
|
12
|
+
stream.writeWord(options.identifier);
|
|
13
|
+
return { identifier: options.identifier };
|
|
14
|
+
}
|
|
15
|
+
function readPublishReceivedPacket(stream, remaining) {
|
|
16
|
+
(0, mqtt_utilities_1.expectRemainingLength)(remaining, 2);
|
|
17
|
+
return new PublishReceivedPacket(stream.readWord());
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=publish.received.packet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.received.packet.js","sourceRoot":"","sources":["../../src/packets/publish.received.packet.ts"],"names":[],"mappings":";;;AAOA,gEAMC;AAED,8DAGC;AAlBD,gDAAqE;AAGrE,sDAA0D;AAE1D,MAAa,qBAAsB,SAAQ,8BAAgB;CAAG;AAA9D,sDAA8D;AAE9D,SAAgB,0BAA0B,CACtC,MAAoB,EACpB,OAAqC;IAErC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;AAC9C,CAAC;AAED,SAAgB,yBAAyB,CAAC,MAAoB,EAAE,SAAiB;IAC7E,IAAA,sCAAqB,EAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACpC,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IdentifierPacket, PacketWriteResult } from '../mqtt.packet';
|
|
2
|
+
import { PacketStream } from '../packet-stream';
|
|
3
|
+
import { IdentifierData } from '../mqtt.types';
|
|
4
|
+
export declare class PublishReleasePacket extends IdentifierPacket {
|
|
5
|
+
}
|
|
6
|
+
export declare function writePublishReleasePacket(stream: PacketStream, options: PublishReleasedPacketOptions): PacketWriteResult;
|
|
7
|
+
export declare function readPublishReleasePacket(stream: PacketStream, remaining: number): PublishReleasePacket;
|
|
8
|
+
export type PublishReleasedPacketOptions = IdentifierData;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PublishReleasePacket = void 0;
|
|
4
|
+
exports.writePublishReleasePacket = writePublishReleasePacket;
|
|
5
|
+
exports.readPublishReleasePacket = readPublishReleasePacket;
|
|
6
|
+
const mqtt_packet_1 = require("../mqtt.packet");
|
|
7
|
+
const mqtt_utilities_1 = require("../mqtt.utilities");
|
|
8
|
+
class PublishReleasePacket extends mqtt_packet_1.IdentifierPacket {
|
|
9
|
+
}
|
|
10
|
+
exports.PublishReleasePacket = PublishReleasePacket;
|
|
11
|
+
function writePublishReleasePacket(stream, options) {
|
|
12
|
+
stream.writeWord(options.identifier);
|
|
13
|
+
return { flags: 2, identifier: options.identifier };
|
|
14
|
+
}
|
|
15
|
+
function readPublishReleasePacket(stream, remaining) {
|
|
16
|
+
(0, mqtt_utilities_1.expectRemainingLength)(remaining, 2);
|
|
17
|
+
return new PublishReleasePacket(stream.readWord());
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=publish.release.packet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.release.packet.js","sourceRoot":"","sources":["../../src/packets/publish.release.packet.ts"],"names":[],"mappings":";;;AAOA,8DAMC;AAED,4DAGC;AAlBD,gDAAqE;AAGrE,sDAA0D;AAE1D,MAAa,oBAAqB,SAAQ,8BAAgB;CAAG;AAA7D,oDAA6D;AAE7D,SAAgB,yBAAyB,CACrC,MAAoB,EACpB,OAAqC;IAErC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;AACxD,CAAC;AAED,SAAgB,wBAAwB,CAAC,MAAoB,EAAE,SAAiB;IAC5E,IAAA,sCAAqB,EAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACpC,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { PacketStream } from '../packet-stream';
|
|
2
|
+
import { IdentifierPacket, PacketWriteResult } from '../mqtt.packet';
|
|
3
|
+
export declare class PublishRequestPacket extends IdentifierPacket {
|
|
4
|
+
flags: number;
|
|
5
|
+
topic: string;
|
|
6
|
+
payload: Buffer;
|
|
7
|
+
get duplicate(): boolean;
|
|
8
|
+
get qos(): 0 | 1 | 2;
|
|
9
|
+
get retain(): boolean;
|
|
10
|
+
constructor(flags: number, topic: string, identifier: number | undefined, payload: Buffer);
|
|
11
|
+
}
|
|
12
|
+
export interface PublishPacketOptions {
|
|
13
|
+
topic: string;
|
|
14
|
+
qos?: number;
|
|
15
|
+
duplicate?: boolean;
|
|
16
|
+
retain?: boolean;
|
|
17
|
+
payload?: string | Buffer;
|
|
18
|
+
identifier?: number;
|
|
19
|
+
}
|
|
20
|
+
export declare function writePublishRequestPacket(stream: PacketStream, options: PublishPacketOptions): PacketWriteResult;
|
|
21
|
+
export declare function readPublishRequestPacket(stream: PacketStream, remainingLength: number, flags: number): PublishRequestPacket;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PublishRequestPacket = void 0;
|
|
4
|
+
exports.writePublishRequestPacket = writePublishRequestPacket;
|
|
5
|
+
exports.readPublishRequestPacket = readPublishRequestPacket;
|
|
6
|
+
const mqtt_packet_1 = require("../mqtt.packet");
|
|
7
|
+
const errors_1 = require("../errors");
|
|
8
|
+
const mqtt_utilities_1 = require("../mqtt.utilities");
|
|
9
|
+
class PublishRequestPacket extends mqtt_packet_1.IdentifierPacket {
|
|
10
|
+
get duplicate() {
|
|
11
|
+
return !!(this.flags & 0b1000);
|
|
12
|
+
}
|
|
13
|
+
get qos() {
|
|
14
|
+
return ((this.flags & 0b0110) >> 1);
|
|
15
|
+
}
|
|
16
|
+
get retain() {
|
|
17
|
+
return !!(this.flags & 0b0001);
|
|
18
|
+
}
|
|
19
|
+
constructor(flags, topic, identifier, payload) {
|
|
20
|
+
super(identifier ?? -1);
|
|
21
|
+
this.flags = flags;
|
|
22
|
+
this.topic = topic;
|
|
23
|
+
this.payload = payload;
|
|
24
|
+
if ((flags & 0b0110) >> 1 > 2)
|
|
25
|
+
throw new Error('Invalid QoS');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.PublishRequestPacket = PublishRequestPacket;
|
|
29
|
+
function writePublishRequestPacket(stream, options) {
|
|
30
|
+
options.qos = options.qos ?? 0;
|
|
31
|
+
stream.writeString(options.topic);
|
|
32
|
+
if (options.qos > 2)
|
|
33
|
+
throw new Error('Unsupported QoS');
|
|
34
|
+
if (options.qos > 0) {
|
|
35
|
+
if (!options.identifier)
|
|
36
|
+
throw new Error('Expected identifier for QoS != 0');
|
|
37
|
+
stream.writeWord(options.identifier);
|
|
38
|
+
}
|
|
39
|
+
stream.write((0, mqtt_utilities_1.toBuffer)(options.payload ?? Buffer.alloc(0)));
|
|
40
|
+
return {
|
|
41
|
+
flags: (Number(!!options.duplicate) << 3) | ((options.qos & 0x3) << 1) | Number(!!options.retain),
|
|
42
|
+
identifier: options.identifier,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function readPublishRequestPacket(stream, remainingLength, flags) {
|
|
46
|
+
const startPos = stream.position;
|
|
47
|
+
const topic = stream.readString();
|
|
48
|
+
const identifier = flags & 0b0110 ? stream.readWord() : undefined;
|
|
49
|
+
const payloadLength = remainingLength - (stream.position - startPos);
|
|
50
|
+
if (payloadLength > stream.length - stream.position)
|
|
51
|
+
throw new errors_1.EndOfStreamError();
|
|
52
|
+
const payload = payloadLength > 0 ? stream.read(payloadLength) : Buffer.alloc(0);
|
|
53
|
+
return new PublishRequestPacket(flags, topic, identifier, payload);
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=publish.request.packet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.request.packet.js","sourceRoot":"","sources":["../../src/packets/publish.request.packet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PacketStream } from '../packet-stream';
|
|
2
|
+
import { PacketWriteResult } from '../mqtt.packet';
|
|
3
|
+
export interface SubscribePacketOptions {
|
|
4
|
+
subscriptions: Array<{
|
|
5
|
+
topic: string;
|
|
6
|
+
qos?: number;
|
|
7
|
+
}>;
|
|
8
|
+
identifier: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function writeSubscribePacket(stream: PacketStream, options: SubscribePacketOptions): PacketWriteResult;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.writeSubscribePacket = writeSubscribePacket;
|
|
4
|
+
function writeSubscribePacket(stream, options) {
|
|
5
|
+
stream.writeWord(options.identifier);
|
|
6
|
+
if (options.subscriptions.length === 0)
|
|
7
|
+
throw new Error('The payload of a SUBSCRIBE packet MUST contain at least one Topic Filter / QoS pair');
|
|
8
|
+
for (const sub of options.subscriptions) {
|
|
9
|
+
if (sub.qos && sub.qos > 2)
|
|
10
|
+
throw new Error('invalid QoS');
|
|
11
|
+
stream.writeString(sub.topic).writeByte(sub.qos ?? 0);
|
|
12
|
+
}
|
|
13
|
+
return { flags: 2, identifier: options.identifier };
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=subscribe.request.packet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscribe.request.packet.js","sourceRoot":"","sources":["../../src/packets/subscribe.request.packet.ts"],"names":[],"mappings":";;AAQA,oDASC;AATD,SAAgB,oBAAoB,CAAC,MAAoB,EAAE,OAA+B;IACtF,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;IAC3G,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QACtC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3D,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PacketStream } from '../packet-stream';
|
|
2
|
+
import { IdentifierPacket } from '../mqtt.packet';
|
|
3
|
+
export declare class SubscribeResponsePacket extends IdentifierPacket {
|
|
4
|
+
returnCodes: SubscribeReturnCode[];
|
|
5
|
+
get anyError(): boolean;
|
|
6
|
+
constructor(identifier: number, returnCodes: SubscribeReturnCode[]);
|
|
7
|
+
}
|
|
8
|
+
export declare function readSubscribeResponsePacket(stream: PacketStream, remainingLength: number): SubscribeResponsePacket;
|
|
9
|
+
export declare enum SubscribeReturnCode {
|
|
10
|
+
MaxQoS0 = 0,
|
|
11
|
+
MaxQoS1 = 1,
|
|
12
|
+
MaxQoS2 = 2,
|
|
13
|
+
Fail = 128
|
|
14
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SubscribeReturnCode = exports.SubscribeResponsePacket = void 0;
|
|
4
|
+
exports.readSubscribeResponsePacket = readSubscribeResponsePacket;
|
|
5
|
+
const mqtt_packet_1 = require("../mqtt.packet");
|
|
6
|
+
const errors_1 = require("../errors");
|
|
7
|
+
class SubscribeResponsePacket extends mqtt_packet_1.IdentifierPacket {
|
|
8
|
+
get anyError() {
|
|
9
|
+
return !this.returnCodes.every(x => x !== SubscribeReturnCode.Fail);
|
|
10
|
+
}
|
|
11
|
+
constructor(identifier, returnCodes) {
|
|
12
|
+
super(identifier);
|
|
13
|
+
this.returnCodes = returnCodes;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.SubscribeResponsePacket = SubscribeResponsePacket;
|
|
17
|
+
function readSubscribeResponsePacket(stream, remainingLength) {
|
|
18
|
+
const identifier = stream.readWord();
|
|
19
|
+
const returnCodes = Array.from(stream.read(remainingLength - 2));
|
|
20
|
+
if (!returnCodes.every(code => code === SubscribeReturnCode.MaxQoS0 ||
|
|
21
|
+
code === SubscribeReturnCode.MaxQoS1 ||
|
|
22
|
+
code === SubscribeReturnCode.MaxQoS2 ||
|
|
23
|
+
code === SubscribeReturnCode.Fail)) {
|
|
24
|
+
throw new errors_1.MalformedPacketError('Received invalid return codes');
|
|
25
|
+
}
|
|
26
|
+
return new SubscribeResponsePacket(identifier, returnCodes);
|
|
27
|
+
}
|
|
28
|
+
var SubscribeReturnCode;
|
|
29
|
+
(function (SubscribeReturnCode) {
|
|
30
|
+
SubscribeReturnCode[SubscribeReturnCode["MaxQoS0"] = 0] = "MaxQoS0";
|
|
31
|
+
SubscribeReturnCode[SubscribeReturnCode["MaxQoS1"] = 1] = "MaxQoS1";
|
|
32
|
+
SubscribeReturnCode[SubscribeReturnCode["MaxQoS2"] = 2] = "MaxQoS2";
|
|
33
|
+
SubscribeReturnCode[SubscribeReturnCode["Fail"] = 128] = "Fail";
|
|
34
|
+
})(SubscribeReturnCode || (exports.SubscribeReturnCode = SubscribeReturnCode = {}));
|
|
35
|
+
//# sourceMappingURL=subscribe.response.packet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscribe.response.packet.js","sourceRoot":"","sources":["../../src/packets/subscribe.response.packet.ts"],"names":[],"mappings":";;;AAiBA,kEAeC;AA/BD,gDAAkD;AAClD,sCAAiD;AAEjD,MAAa,uBAAwB,SAAQ,8BAAgB;IACzD,IAAI,QAAQ;QACR,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,YACI,UAAkB,EACX,WAAkC;QAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;QAFX,gBAAW,GAAX,WAAW,CAAuB;IAG7C,CAAC;CACJ;AAXD,0DAWC;AAED,SAAgB,2BAA2B,CAAC,MAAoB,EAAE,eAAuB;IACrF,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;IACjE,IACI,CAAC,WAAW,CAAC,KAAK,CACd,IAAI,CAAC,EAAE,CACH,IAAI,KAAK,mBAAmB,CAAC,OAAO;QACpC,IAAI,KAAK,mBAAmB,CAAC,OAAO;QACpC,IAAI,KAAK,mBAAmB,CAAC,OAAO;QACpC,IAAI,KAAK,mBAAmB,CAAC,IAAI,CACxC,EACH,CAAC;QACC,MAAM,IAAI,6BAAoB,CAAC,+BAA+B,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,uBAAuB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAChE,CAAC;AAED,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC3B,mEAAO,CAAA;IACP,mEAAO,CAAA;IACP,mEAAO,CAAA;IACP,+DAAW,CAAA;AACf,CAAC,EALW,mBAAmB,mCAAnB,mBAAmB,QAK9B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PacketStream } from '../packet-stream';
|
|
2
|
+
import { PacketWriteResult } from '../mqtt.packet';
|
|
3
|
+
export interface UnsubscribePacketOptions {
|
|
4
|
+
topics: string[] | string;
|
|
5
|
+
identifier: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function writeUnsubscribePacket(stream: PacketStream, options: UnsubscribePacketOptions): PacketWriteResult;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.writeUnsubscribePacket = writeUnsubscribePacket;
|
|
4
|
+
function writeUnsubscribePacket(stream, options) {
|
|
5
|
+
stream.writeWord(options.identifier);
|
|
6
|
+
const topics = typeof options.topics === 'string' ? [options.topics] : options.topics;
|
|
7
|
+
if (topics.length === 0)
|
|
8
|
+
throw new Error('The Payload of an UNSUBSCRIBE packet MUST contain at least one Topic Filter');
|
|
9
|
+
for (const topic of topics)
|
|
10
|
+
stream.writeString(topic);
|
|
11
|
+
return { flags: 2, identifier: options.identifier };
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=unsubscribe.request.packet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsubscribe.request.packet.js","sourceRoot":"","sources":["../../src/packets/unsubscribe.request.packet.ts"],"names":[],"mappings":";;AAQA,wDAOC;AAPD,SAAgB,sBAAsB,CAAC,MAAoB,EAAE,OAAiC;IAC1F,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACtF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;IACnG,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACtD,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IdentifierPacket } from '../mqtt.packet';
|
|
2
|
+
import { PacketStream } from '../packet-stream';
|
|
3
|
+
export declare class UnsubscribeResponsePacket extends IdentifierPacket {
|
|
4
|
+
}
|
|
5
|
+
export declare function readUnsubscribePacket(stream: PacketStream, remaining: number): UnsubscribeResponsePacket;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnsubscribeResponsePacket = void 0;
|
|
4
|
+
exports.readUnsubscribePacket = readUnsubscribePacket;
|
|
5
|
+
const mqtt_packet_1 = require("../mqtt.packet");
|
|
6
|
+
const mqtt_utilities_1 = require("../mqtt.utilities");
|
|
7
|
+
class UnsubscribeResponsePacket extends mqtt_packet_1.IdentifierPacket {
|
|
8
|
+
}
|
|
9
|
+
exports.UnsubscribeResponsePacket = UnsubscribeResponsePacket;
|
|
10
|
+
function readUnsubscribePacket(stream, remaining) {
|
|
11
|
+
(0, mqtt_utilities_1.expectRemainingLength)(remaining, 2);
|
|
12
|
+
return new UnsubscribeResponsePacket(stream.readWord());
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=unsubscribe.response.packet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsubscribe.response.packet.js","sourceRoot":"","sources":["../../src/packets/unsubscribe.response.packet.ts"],"names":[],"mappings":";;;AAMA,sDAGC;AATD,gDAAkD;AAElD,sDAA0D;AAE1D,MAAa,yBAA0B,SAAQ,8BAAgB;CAAG;AAAlE,8DAAkE;AAElE,SAAgB,qBAAqB,CAAC,MAAoB,EAAE,SAAiB;IACzE,IAAA,sCAAqB,EAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACpC,OAAO,IAAI,yBAAyB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./mqtts.reconnect-strategy"), exports);
|
|
18
|
+
__exportStar(require("./mqtts.reconnect-strategy.default"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reconnect-strategy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,qEAAmD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface MqttsReconnectStrategy {
|
|
2
|
+
/**
|
|
3
|
+
* Whether reconnect should happen or not
|
|
4
|
+
*/
|
|
5
|
+
check(reason?: any): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Reconnect when wait resolves
|
|
8
|
+
*/
|
|
9
|
+
wait(): Promise<any>;
|
|
10
|
+
/**
|
|
11
|
+
* Reset reconnect attempts
|
|
12
|
+
*/
|
|
13
|
+
reset(): any;
|
|
14
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { MqttsReconnectStrategy } from './mqtts.reconnect-strategy';
|
|
2
|
+
export declare class MqttsReconnectStrategyDefault implements MqttsReconnectStrategy {
|
|
3
|
+
#private;
|
|
4
|
+
/**
|
|
5
|
+
* Maximum attempts amount
|
|
6
|
+
*/
|
|
7
|
+
private maximum;
|
|
8
|
+
/**
|
|
9
|
+
* Interval between attempts, milliseconds
|
|
10
|
+
*/
|
|
11
|
+
private interval;
|
|
12
|
+
constructor(
|
|
13
|
+
/**
|
|
14
|
+
* Maximum attempts amount
|
|
15
|
+
*/
|
|
16
|
+
maximum?: number,
|
|
17
|
+
/**
|
|
18
|
+
* Interval between attempts, milliseconds
|
|
19
|
+
*/
|
|
20
|
+
interval?: number);
|
|
21
|
+
check(reason?: any): boolean;
|
|
22
|
+
wait(): Promise<void>;
|
|
23
|
+
reset(): void;
|
|
24
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
+
};
|
|
13
|
+
var _MqttsReconnectStrategyDefault_attempts;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.MqttsReconnectStrategyDefault = void 0;
|
|
16
|
+
const errors_1 = require("../errors");
|
|
17
|
+
const util_1 = require("util");
|
|
18
|
+
const sleep = (0, util_1.promisify)(setTimeout);
|
|
19
|
+
class MqttsReconnectStrategyDefault {
|
|
20
|
+
constructor(
|
|
21
|
+
/**
|
|
22
|
+
* Maximum attempts amount
|
|
23
|
+
*/
|
|
24
|
+
maximum = 10,
|
|
25
|
+
/**
|
|
26
|
+
* Interval between attempts, milliseconds
|
|
27
|
+
*/
|
|
28
|
+
interval = 3000) {
|
|
29
|
+
this.maximum = maximum;
|
|
30
|
+
this.interval = interval;
|
|
31
|
+
/**
|
|
32
|
+
* Internal attempts counter
|
|
33
|
+
*/
|
|
34
|
+
_MqttsReconnectStrategyDefault_attempts.set(this, 1);
|
|
35
|
+
}
|
|
36
|
+
check(reason) {
|
|
37
|
+
if (reason instanceof errors_1.ConnectError) {
|
|
38
|
+
return ['IdentifierRejected', 'ServerUnavailable'].includes(reason.status);
|
|
39
|
+
}
|
|
40
|
+
if (typeof reason === 'string' && ['Soft disconnect', 'Forced disconnect'].includes(reason)) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
return __classPrivateFieldGet(this, _MqttsReconnectStrategyDefault_attempts, "f") <= this.maximum;
|
|
44
|
+
}
|
|
45
|
+
wait() {
|
|
46
|
+
var _a;
|
|
47
|
+
__classPrivateFieldSet(this, _MqttsReconnectStrategyDefault_attempts, (_a = __classPrivateFieldGet(this, _MqttsReconnectStrategyDefault_attempts, "f"), _a++, _a), "f");
|
|
48
|
+
return sleep(this.interval);
|
|
49
|
+
}
|
|
50
|
+
reset() {
|
|
51
|
+
__classPrivateFieldSet(this, _MqttsReconnectStrategyDefault_attempts, 1, "f");
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.MqttsReconnectStrategyDefault = MqttsReconnectStrategyDefault;
|
|
55
|
+
_MqttsReconnectStrategyDefault_attempts = new WeakMap();
|
|
56
|
+
//# sourceMappingURL=mqtts.reconnect-strategy.default.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mqtts.reconnect-strategy.default.js","sourceRoot":"","sources":["../../src/reconnect-strategy/mqtts.reconnect-strategy.default.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,sCAAyC;AACzC,+BAAiC;AACjC,MAAM,KAAK,GAAG,IAAA,gBAAS,EAAC,UAAU,CAAC,CAAC;AAEpC,MAAa,6BAA6B;IAKtC;IACI;;OAEG;IACK,UAAkB,EAAE;IAC5B;;OAEG;IACK,WAAmB,IAAI;QAJvB,YAAO,GAAP,OAAO,CAAa;QAIpB,aAAQ,GAAR,QAAQ,CAAe;QAZnC;;WAEG;QACH,kDAAY,CAAC,EAAC;IAUX,CAAC;IACJ,KAAK,CAAC,MAAY;QACd,IAAI,MAAM,YAAY,qBAAY,EAAE,CAAC;YACjC,OAAO,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1F,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,uBAAA,IAAI,+CAAU,IAAI,IAAI,CAAC,OAAO,CAAC;IAC1C,CAAC;IAED,IAAI;;QACA,sEAAA,CAAA,+EAAc,EAAd,IAAgB,IAAA,CAAA,MAAA,CAAC;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,KAAK;QACD,uBAAA,IAAI,2CAAa,CAAC,MAAA,CAAC;IACvB,CAAC;CACJ;AAhCD,sEAgCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mqtts.reconnect-strategy.js","sourceRoot":"","sources":["../../src/reconnect-strategy/mqtts.reconnect-strategy.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./transport"), exports);
|
|
18
|
+
__exportStar(require("./tls.transport"), exports);
|
|
19
|
+
__exportStar(require("./tcp.transport"), exports);
|
|
20
|
+
__exportStar(require("./websocket.transport"), exports);
|
|
21
|
+
__exportStar(require("./socks-tls.transport"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,kDAAgC;AAChC,kDAAgC;AAChC,wDAAsC;AACtC,wDAAsC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Transport } from './transport';
|
|
2
|
+
import { TlsTransportOptions } from './tls.transport';
|
|
3
|
+
import { SocksProxy } from 'socks';
|
|
4
|
+
import { Duplex } from 'stream';
|
|
5
|
+
export interface SocksTlsTransportOptions extends TlsTransportOptions {
|
|
6
|
+
proxyOptions: SocksProxy;
|
|
7
|
+
}
|
|
8
|
+
export declare class SocksTlsTransport extends Transport<SocksTlsTransportOptions> {
|
|
9
|
+
duplex?: Duplex;
|
|
10
|
+
constructor(options: SocksTlsTransportOptions);
|
|
11
|
+
reset(): void;
|
|
12
|
+
connect(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SocksTlsTransport = void 0;
|
|
4
|
+
const transport_1 = require("./transport");
|
|
5
|
+
const socks_1 = require("socks");
|
|
6
|
+
const tls_1 = require("tls");
|
|
7
|
+
const errors_1 = require("../errors");
|
|
8
|
+
class SocksTlsTransport extends transport_1.Transport {
|
|
9
|
+
constructor(options) {
|
|
10
|
+
super(options);
|
|
11
|
+
this.reset();
|
|
12
|
+
}
|
|
13
|
+
reset() {
|
|
14
|
+
if (this.duplex && !this.duplex.destroyed)
|
|
15
|
+
this.duplex.destroy();
|
|
16
|
+
this.duplex = undefined;
|
|
17
|
+
}
|
|
18
|
+
async connect() {
|
|
19
|
+
if (this.duplex)
|
|
20
|
+
throw new errors_1.IllegalStateError('Still connected.');
|
|
21
|
+
const info = await socks_1.SocksClient.createConnection({
|
|
22
|
+
proxy: this.options.proxyOptions,
|
|
23
|
+
destination: {
|
|
24
|
+
host: this.options.host,
|
|
25
|
+
port: this.options.port,
|
|
26
|
+
},
|
|
27
|
+
command: 'connect',
|
|
28
|
+
});
|
|
29
|
+
return new Promise((resolve, reject) => {
|
|
30
|
+
const tlsSocket = (0, tls_1.connect)({
|
|
31
|
+
...this.options.additionalOptions,
|
|
32
|
+
socket: info.socket,
|
|
33
|
+
host: this.options.host,
|
|
34
|
+
port: this.options.port,
|
|
35
|
+
});
|
|
36
|
+
this.duplex = tlsSocket;
|
|
37
|
+
const to = setTimeout(() => {
|
|
38
|
+
tlsSocket.destroy();
|
|
39
|
+
reject(new Error('OB TLS handshake timeout'));
|
|
40
|
+
}, 10000);
|
|
41
|
+
to.unref();
|
|
42
|
+
tlsSocket.once('secureConnect', () => {
|
|
43
|
+
clearTimeout(to);
|
|
44
|
+
resolve();
|
|
45
|
+
});
|
|
46
|
+
tlsSocket.once('error', (err) => {
|
|
47
|
+
reject(err);
|
|
48
|
+
});
|
|
49
|
+
tlsSocket.once('end', () => {
|
|
50
|
+
reject(new Error('TLS socket closed before handshake'));
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.SocksTlsTransport = SocksTlsTransport;
|
|
56
|
+
//# sourceMappingURL=socks-tls.transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socks-tls.transport.js","sourceRoot":"","sources":["../../src/transport/socks-tls.transport.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAExC,iCAAgD;AAChD,6BAA8B;AAE9B,sCAA8C;AAM9C,MAAa,iBAAkB,SAAQ,qBAAmC;IAGtE,YAAY,OAAiC;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,KAAK;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,0BAAiB,CAAC,kBAAkB,CAAC,CAAC;QAEjE,MAAM,IAAI,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAC;YAC5C,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;YAChC,WAAW,EAAE;gBACT,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;aAC1B;YACD,OAAO,EAAE,SAAS;SACrB,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,SAAS,GAAG,IAAA,aAAO,EAAC;gBACtB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB;gBACjC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;aAC1B,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YAExB,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE;gBACvB,SAAS,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAClD,CAAC,EAAE,KAAK,CAAC,CAAC;YAEV,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;gBACjC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACjB,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBACnC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;gBACvB,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAxDD,8CAwDC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Transport } from './transport';
|
|
2
|
+
import { Socket } from 'net';
|
|
3
|
+
export interface TcpTransportOptions {
|
|
4
|
+
host: string;
|
|
5
|
+
port: number;
|
|
6
|
+
}
|
|
7
|
+
export declare class TcpTransport extends Transport<TcpTransportOptions> {
|
|
8
|
+
duplex?: Socket;
|
|
9
|
+
constructor(options: TcpTransportOptions);
|
|
10
|
+
reset(): void;
|
|
11
|
+
connect(): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TcpTransport = void 0;
|
|
4
|
+
const transport_1 = require("./transport");
|
|
5
|
+
const net_1 = require("net");
|
|
6
|
+
const errors_1 = require("../errors");
|
|
7
|
+
class TcpTransport extends transport_1.Transport {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
super(options);
|
|
10
|
+
this.reset();
|
|
11
|
+
}
|
|
12
|
+
reset() {
|
|
13
|
+
if (this.duplex && !this.duplex.destroyed)
|
|
14
|
+
this.duplex.destroy();
|
|
15
|
+
this.duplex = undefined;
|
|
16
|
+
}
|
|
17
|
+
connect() {
|
|
18
|
+
if (this.duplex)
|
|
19
|
+
throw new errors_1.IllegalStateError('TcpSocket still connected');
|
|
20
|
+
return new Promise(resolve => (this.duplex = (0, net_1.connect)(this.options.port, this.options.host, () => {
|
|
21
|
+
resolve();
|
|
22
|
+
})));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.TcpTransport = TcpTransport;
|
|
26
|
+
//# sourceMappingURL=tcp.transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tcp.transport.js","sourceRoot":"","sources":["../../src/transport/tcp.transport.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,6BAAsC;AACtC,sCAA8C;AAO9C,MAAa,YAAa,SAAQ,qBAA8B;IAG5D,YAAY,OAA4B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,KAAK;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,OAAO;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,0BAAiB,CAAC,2BAA2B,CAAC,CAAC;QAE1E,OAAO,IAAI,OAAO,CACd,OAAO,CAAC,EAAE,CACN,CAAC,IAAI,CAAC,MAAM,GAAG,IAAA,aAAO,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE;YAC9D,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC,CACV,CAAC;IACN,CAAC;CACJ;AAxBD,oCAwBC"}
|