@seriousme/opifex 1.9.4 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -26
- package/bin/conformanceServer.ts +3 -2
- package/bin/demoServer.ts +3 -2
- package/bin/mqtt.ts +127 -118
- package/client/client.ts +61 -21
- package/client/context.ts +71 -30
- package/client/deps.ts +5 -0
- package/client/handlers/handleConnack.ts +17 -5
- package/client/handlers/handlePublish.ts +4 -1
- package/client/handlers/handlePubrec.ts +3 -1
- package/client/handlers/handlePubrel.ts +3 -1
- package/client/handlers/handleSuback.ts +3 -1
- package/client/mod.ts +8 -1
- package/client/store/memoryStore.ts +2 -1
- package/deno/tcpClient.ts +1 -1
- package/dev_utils/dummyConn.ts +17 -2
- package/dist/bin/conformanceServer.js +3 -2
- package/dist/bin/conformanceServer.js.map +1 -1
- package/dist/bin/demoServer.js +3 -2
- package/dist/bin/demoServer.js.map +1 -1
- package/dist/bin/mqtt.d.ts +29 -0
- package/dist/bin/mqtt.d.ts.map +1 -1
- package/dist/bin/mqtt.js +102 -97
- package/dist/bin/mqtt.js.map +1 -1
- package/dist/client/client.d.ts +16 -5
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +36 -15
- package/dist/client/client.js.map +1 -1
- package/dist/client/context.d.ts +8 -3
- package/dist/client/context.d.ts.map +1 -1
- package/dist/client/context.js +51 -21
- package/dist/client/context.js.map +1 -1
- package/dist/client/deps.d.ts +3 -2
- package/dist/client/deps.d.ts.map +1 -1
- package/dist/client/deps.js +2 -1
- package/dist/client/deps.js.map +1 -1
- package/dist/client/handlers/handleConnack.d.ts +1 -1
- package/dist/client/handlers/handleConnack.d.ts.map +1 -1
- package/dist/client/handlers/handleConnack.js +14 -5
- package/dist/client/handlers/handleConnack.js.map +1 -1
- package/dist/client/handlers/handlePublish.d.ts +1 -1
- package/dist/client/handlers/handlePublish.d.ts.map +1 -1
- package/dist/client/handlers/handlePublish.js +2 -0
- package/dist/client/handlers/handlePublish.js.map +1 -1
- package/dist/client/handlers/handlePubrec.d.ts +1 -1
- package/dist/client/handlers/handlePubrec.d.ts.map +1 -1
- package/dist/client/handlers/handlePubrec.js +1 -0
- package/dist/client/handlers/handlePubrec.js.map +1 -1
- package/dist/client/handlers/handlePubrel.d.ts +1 -1
- package/dist/client/handlers/handlePubrel.d.ts.map +1 -1
- package/dist/client/handlers/handlePubrel.js +1 -0
- package/dist/client/handlers/handlePubrel.js.map +1 -1
- package/dist/client/handlers/handleSuback.d.ts.map +1 -1
- package/dist/client/handlers/handleSuback.js +3 -1
- package/dist/client/handlers/handleSuback.js.map +1 -1
- package/dist/client/mod.d.ts +3 -1
- package/dist/client/mod.d.ts.map +1 -1
- package/dist/client/mod.js +2 -1
- package/dist/client/mod.js.map +1 -1
- package/dist/client/store/memoryStore.d.ts +1 -1
- package/dist/client/store/memoryStore.d.ts.map +1 -1
- package/dist/client/store/memoryStore.js.map +1 -1
- package/dist/mqttConn/mqttConn.d.ts +13 -8
- package/dist/mqttConn/mqttConn.d.ts.map +1 -1
- package/dist/mqttConn/mqttConn.js +27 -12
- package/dist/mqttConn/mqttConn.js.map +1 -1
- package/dist/mqttPacket/PacketType.d.ts +1 -0
- package/dist/mqttPacket/PacketType.d.ts.map +1 -1
- package/dist/mqttPacket/PacketType.js +1 -0
- package/dist/mqttPacket/PacketType.js.map +1 -1
- package/dist/mqttPacket/Properties.d.ts +157 -0
- package/dist/mqttPacket/Properties.d.ts.map +1 -0
- package/dist/mqttPacket/Properties.js +177 -0
- package/dist/mqttPacket/Properties.js.map +1 -0
- package/dist/mqttPacket/ReasonCode.d.ts +74 -0
- package/dist/mqttPacket/ReasonCode.d.ts.map +1 -0
- package/dist/mqttPacket/ReasonCode.js +230 -0
- package/dist/mqttPacket/ReasonCode.js.map +1 -0
- package/dist/mqttPacket/RetainHandling.d.ts +12 -0
- package/dist/mqttPacket/RetainHandling.d.ts.map +1 -0
- package/dist/mqttPacket/RetainHandling.js +12 -0
- package/dist/mqttPacket/RetainHandling.js.map +1 -0
- package/dist/mqttPacket/auth.d.ts +21 -0
- package/dist/mqttPacket/auth.d.ts.map +1 -0
- package/dist/mqttPacket/auth.js +34 -0
- package/dist/mqttPacket/auth.js.map +1 -0
- package/dist/mqttPacket/connack.d.ts +19 -11
- package/dist/mqttPacket/connack.d.ts.map +1 -1
- package/dist/mqttPacket/connack.js +43 -15
- package/dist/mqttPacket/connack.js.map +1 -1
- package/dist/mqttPacket/connect.d.ts +30 -11
- package/dist/mqttPacket/connect.d.ts.map +1 -1
- package/dist/mqttPacket/connect.js +106 -30
- package/dist/mqttPacket/connect.js.map +1 -1
- package/dist/mqttPacket/decoder.d.ts +42 -3
- package/dist/mqttPacket/decoder.d.ts.map +1 -1
- package/dist/mqttPacket/decoder.js +135 -4
- package/dist/mqttPacket/decoder.js.map +1 -1
- package/dist/mqttPacket/disconnect.d.ts +15 -9
- package/dist/mqttPacket/disconnect.d.ts.map +1 -1
- package/dist/mqttPacket/disconnect.js +45 -6
- package/dist/mqttPacket/disconnect.js.map +1 -1
- package/dist/mqttPacket/encoder.d.ts +57 -8
- package/dist/mqttPacket/encoder.d.ts.map +1 -1
- package/dist/mqttPacket/encoder.js +185 -13
- package/dist/mqttPacket/encoder.js.map +1 -1
- package/dist/mqttPacket/length.d.ts.map +1 -1
- package/dist/mqttPacket/length.js +3 -2
- package/dist/mqttPacket/length.js.map +1 -1
- package/dist/mqttPacket/mod.d.ts +57 -91
- package/dist/mqttPacket/mod.d.ts.map +1 -1
- package/dist/mqttPacket/mod.js +23 -29
- package/dist/mqttPacket/mod.js.map +1 -1
- package/dist/mqttPacket/pingreq.d.ts +4 -6
- package/dist/mqttPacket/pingreq.d.ts.map +1 -1
- package/dist/mqttPacket/pingreq.js +5 -4
- package/dist/mqttPacket/pingreq.js.map +1 -1
- package/dist/mqttPacket/pingres.d.ts +4 -6
- package/dist/mqttPacket/pingres.d.ts.map +1 -1
- package/dist/mqttPacket/pingres.js +7 -5
- package/dist/mqttPacket/pingres.js.map +1 -1
- package/dist/mqttPacket/protocolLevels.d.ts +12 -0
- package/dist/mqttPacket/protocolLevels.d.ts.map +1 -0
- package/dist/mqttPacket/protocolLevels.js +11 -0
- package/dist/mqttPacket/protocolLevels.js.map +1 -0
- package/dist/mqttPacket/pubblishAcks.d.ts +42 -0
- package/dist/mqttPacket/pubblishAcks.d.ts.map +1 -0
- package/dist/mqttPacket/pubblishAcks.js +56 -0
- package/dist/mqttPacket/pubblishAcks.js.map +1 -0
- package/dist/mqttPacket/publish.d.ts +19 -8
- package/dist/mqttPacket/publish.d.ts.map +1 -1
- package/dist/mqttPacket/publish.js +26 -7
- package/dist/mqttPacket/publish.js.map +1 -1
- package/dist/mqttPacket/suback.d.ts +18 -11
- package/dist/mqttPacket/suback.d.ts.map +1 -1
- package/dist/mqttPacket/suback.js +41 -20
- package/dist/mqttPacket/suback.js.map +1 -1
- package/dist/mqttPacket/subscribe.d.ts +27 -12
- package/dist/mqttPacket/subscribe.d.ts.map +1 -1
- package/dist/mqttPacket/subscribe.js +71 -15
- package/dist/mqttPacket/subscribe.js.map +1 -1
- package/dist/mqttPacket/types.d.ts +36 -0
- package/dist/mqttPacket/types.d.ts.map +1 -1
- package/dist/mqttPacket/unsuback.d.ts +17 -10
- package/dist/mqttPacket/unsuback.d.ts.map +1 -1
- package/dist/mqttPacket/unsuback.js +29 -6
- package/dist/mqttPacket/unsuback.js.map +1 -1
- package/dist/mqttPacket/unsubscribe.d.ts +17 -10
- package/dist/mqttPacket/unsubscribe.d.ts.map +1 -1
- package/dist/mqttPacket/unsubscribe.js +24 -8
- package/dist/mqttPacket/unsubscribe.js.map +1 -1
- package/dist/mqttPacket/validators.d.ts +15 -0
- package/dist/mqttPacket/validators.d.ts.map +1 -1
- package/dist/mqttPacket/validators.js +15 -0
- package/dist/mqttPacket/validators.js.map +1 -1
- package/dist/node/tcpClient.js +1 -1
- package/dist/node/tcpClient.js.map +1 -1
- package/dist/node/wrapNodeSocket.d.ts.map +1 -1
- package/dist/node/wrapNodeSocket.js.map +1 -1
- package/dist/persistence/deps.d.ts +1 -1
- package/dist/persistence/deps.d.ts.map +1 -1
- package/dist/persistence/deps.js +1 -1
- package/dist/persistence/deps.js.map +1 -1
- package/dist/persistence/memory/memoryPersistence.js +1 -1
- package/dist/persistence/memory/memoryPersistence.js.map +1 -1
- package/dist/server/context.d.ts +3 -1
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js +8 -2
- package/dist/server/context.js.map +1 -1
- package/dist/server/deps.d.ts +2 -2
- package/dist/server/deps.d.ts.map +1 -1
- package/dist/server/deps.js +1 -1
- package/dist/server/deps.js.map +1 -1
- package/dist/server/handlers/handleConnect.d.ts +1 -1
- package/dist/server/handlers/handleConnect.d.ts.map +1 -1
- package/dist/server/handlers/handleConnect.js +9 -1
- package/dist/server/handlers/handleConnect.js.map +1 -1
- package/dist/server/handlers/handlePacket.d.ts +1 -1
- package/dist/server/handlers/handlePacket.d.ts.map +1 -1
- package/dist/server/handlers/handlePacket.js +1 -1
- package/dist/server/handlers/handlePacket.js.map +1 -1
- package/dist/server/handlers/handlePingreq.d.ts.map +1 -1
- package/dist/server/handlers/handlePingreq.js +1 -0
- package/dist/server/handlers/handlePingreq.js.map +1 -1
- package/dist/server/handlers/handlePublish.d.ts +2 -2
- package/dist/server/handlers/handlePublish.d.ts.map +1 -1
- package/dist/server/handlers/handlePublish.js +2 -0
- package/dist/server/handlers/handlePublish.js.map +1 -1
- package/dist/server/handlers/handlePubrec.d.ts +1 -1
- package/dist/server/handlers/handlePubrec.d.ts.map +1 -1
- package/dist/server/handlers/handlePubrec.js +1 -0
- package/dist/server/handlers/handlePubrec.js.map +1 -1
- package/dist/server/handlers/handlePubrel.d.ts +1 -1
- package/dist/server/handlers/handlePubrel.d.ts.map +1 -1
- package/dist/server/handlers/handlePubrel.js +1 -0
- package/dist/server/handlers/handlePubrel.js.map +1 -1
- package/dist/server/handlers/handleSubscribe.d.ts +1 -1
- package/dist/server/handlers/handleSubscribe.d.ts.map +1 -1
- package/dist/server/handlers/handleSubscribe.js +2 -1
- package/dist/server/handlers/handleSubscribe.js.map +1 -1
- package/dist/server/handlers/handleUnsubscribe.d.ts +1 -1
- package/dist/server/handlers/handleUnsubscribe.d.ts.map +1 -1
- package/dist/server/handlers/handleUnsubscribe.js +1 -0
- package/dist/server/handlers/handleUnsubscribe.js.map +1 -1
- package/dist/server/server.d.ts +2 -2
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +5 -3
- package/dist/server/server.js.map +1 -1
- package/dist/socket/socket.d.ts.map +1 -1
- package/dist/socket/socket.js +6 -1
- package/dist/socket/socket.js.map +1 -1
- package/dist/utils/assert.d.ts +0 -3
- package/dist/utils/assert.d.ts.map +1 -1
- package/dist/utils/assert.js +0 -7
- package/dist/utils/assert.js.map +1 -1
- package/dist/utils/asyncQueue.d.ts +1 -3
- package/dist/utils/asyncQueue.d.ts.map +1 -1
- package/dist/utils/asyncQueue.js +16 -21
- package/dist/utils/asyncQueue.js.map +1 -1
- package/dist/utils/logger.d.ts +5 -15
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +7 -8
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/mod.d.ts +0 -3
- package/dist/utils/mod.d.ts.map +1 -1
- package/dist/utils/mod.js +0 -2
- package/dist/utils/mod.js.map +1 -1
- package/dist/utils/utils.d.ts +2 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +6 -0
- package/dist/utils/utils.js.map +1 -0
- package/mqttConn/mqttConn.test.ts +27 -12
- package/mqttConn/mqttConn.ts +45 -14
- package/mqttPacket/PacketType.ts +1 -0
- package/mqttPacket/Properties.ts +276 -0
- package/mqttPacket/ReasonCode.test.ts +22 -0
- package/mqttPacket/ReasonCode.ts +256 -0
- package/mqttPacket/RetainHandling.ts +11 -0
- package/mqttPacket/auth.test.ts +112 -0
- package/mqttPacket/auth.ts +71 -0
- package/mqttPacket/connack.test.ts +84 -64
- package/mqttPacket/connack.ts +88 -24
- package/mqttPacket/connect.test.ts +497 -18
- package/mqttPacket/connect.ts +170 -39
- package/mqttPacket/decoder.test.ts +33 -16
- package/mqttPacket/decoder.ts +173 -5
- package/mqttPacket/disconnect.test.ts +97 -18
- package/mqttPacket/disconnect.ts +84 -12
- package/mqttPacket/encoder.test.ts +32 -8
- package/mqttPacket/encoder.ts +236 -11
- package/mqttPacket/length.ts +3 -2
- package/mqttPacket/mod.ts +76 -39
- package/mqttPacket/pingreq.test.ts +52 -4
- package/mqttPacket/pingreq.ts +20 -7
- package/mqttPacket/pingres.test.ts +52 -4
- package/mqttPacket/pingres.ts +22 -8
- package/mqttPacket/properties.test.ts +193 -0
- package/mqttPacket/protocolLevels.ts +13 -0
- package/mqttPacket/pubblishAcks.ts +123 -0
- package/mqttPacket/publish.test.ts +212 -133
- package/mqttPacket/publish.ts +69 -14
- package/mqttPacket/publishAcks.test.ts +128 -0
- package/mqttPacket/suback.test.ts +71 -27
- package/mqttPacket/suback.ts +82 -30
- package/mqttPacket/subscribe.test.ts +132 -43
- package/mqttPacket/subscribe.ts +128 -25
- package/mqttPacket/types.ts +43 -0
- package/mqttPacket/unsuback.test.ts +80 -30
- package/mqttPacket/unsuback.ts +68 -13
- package/mqttPacket/unsubscribe.test.ts +59 -34
- package/mqttPacket/unsubscribe.ts +64 -17
- package/mqttPacket/validators.ts +15 -0
- package/node/tcpClient.ts +1 -1
- package/node/wrapNodeSocket.ts +2 -1
- package/package.json +2 -2
- package/persistence/deps.ts +1 -1
- package/persistence/memory/memoryPersistence.test.ts +5 -1
- package/persistence/memory/memoryPersistence.ts +1 -1
- package/server/context.ts +23 -10
- package/server/deps.ts +2 -0
- package/server/handlers/handleConnect.ts +12 -9
- package/server/handlers/handlePacket.ts +10 -11
- package/server/handlers/handlePingreq.ts +1 -0
- package/server/handlers/handlePublish.ts +6 -2
- package/server/handlers/handlePubrec.ts +3 -1
- package/server/handlers/handlePubrel.ts +3 -1
- package/server/handlers/handleSubscribe.ts +3 -6
- package/server/handlers/handleUnsubscribe.ts +3 -1
- package/server/server.ts +8 -12
- package/server/test/handleConnect.test.ts +2 -1
- package/server/test/test-handlers.ts +2 -1
- package/socket/socket.ts +5 -1
- package/utils/assert.ts +0 -18
- package/utils/asyncQueue.ts +17 -21
- package/utils/logger.ts +12 -11
- package/utils/mod.ts +0 -3
- package/utils/utils.ts +6 -0
- package/dist/mqttPacket/puback.d.ts +0 -16
- package/dist/mqttPacket/puback.d.ts.map +0 -1
- package/dist/mqttPacket/puback.js +0 -21
- package/dist/mqttPacket/puback.js.map +0 -1
- package/dist/mqttPacket/pubcomp.d.ts +0 -17
- package/dist/mqttPacket/pubcomp.d.ts.map +0 -1
- package/dist/mqttPacket/pubcomp.js +0 -21
- package/dist/mqttPacket/pubcomp.js.map +0 -1
- package/dist/mqttPacket/pubrec.d.ts +0 -17
- package/dist/mqttPacket/pubrec.d.ts.map +0 -1
- package/dist/mqttPacket/pubrec.js +0 -21
- package/dist/mqttPacket/pubrec.js.map +0 -1
- package/dist/mqttPacket/pubrel.d.ts +0 -17
- package/dist/mqttPacket/pubrel.d.ts.map +0 -1
- package/dist/mqttPacket/pubrel.js +0 -21
- package/dist/mqttPacket/pubrel.js.map +0 -1
- package/dist/utils/args.d.ts +0 -28
- package/dist/utils/args.d.ts.map +0 -1
- package/dist/utils/args.js +0 -76
- package/dist/utils/args.js.map +0 -1
- package/dist/utils/platform.d.ts +0 -5
- package/dist/utils/platform.d.ts.map +0 -1
- package/dist/utils/platform.js +0 -8
- package/dist/utils/platform.js.map +0 -1
- package/mqttPacket/puback.test.ts +0 -55
- package/mqttPacket/puback.ts +0 -34
- package/mqttPacket/pubcomp.test.ts +0 -55
- package/mqttPacket/pubcomp.ts +0 -35
- package/mqttPacket/pubrec.test.ts +0 -55
- package/mqttPacket/pubrec.ts +0 -35
- package/mqttPacket/pubrel.test.ts +0 -55
- package/mqttPacket/pubrel.ts +0 -35
- package/utils/args.ts +0 -103
- package/utils/platform.ts +0 -8
package/server/context.ts
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
|
-
type AnyPacket,
|
|
3
|
-
type IPersistence,
|
|
4
|
-
type IStore,
|
|
5
2
|
logger,
|
|
6
3
|
MqttConn,
|
|
4
|
+
MQTTLevel,
|
|
7
5
|
PacketNameByType,
|
|
8
6
|
PacketType,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
} from "./deps.ts";
|
|
8
|
+
import type {
|
|
9
|
+
AnyPacket,
|
|
10
|
+
IPersistence,
|
|
11
|
+
IStore,
|
|
12
|
+
ProtocolLevel,
|
|
13
|
+
PublishPacket,
|
|
14
|
+
SockConn,
|
|
15
|
+
TAuthenticationResult,
|
|
16
|
+
Timer,
|
|
17
|
+
Topic,
|
|
14
18
|
} from "./deps.ts";
|
|
15
19
|
|
|
16
20
|
export type ClientId = string;
|
|
@@ -49,6 +53,7 @@ export type Handlers = {
|
|
|
49
53
|
|
|
50
54
|
export class Context {
|
|
51
55
|
connected: boolean;
|
|
56
|
+
protocolLevel: ProtocolLevel;
|
|
52
57
|
conn: SockConn;
|
|
53
58
|
mqttConn: MqttConn;
|
|
54
59
|
persistence: IPersistence;
|
|
@@ -64,6 +69,7 @@ export class Context {
|
|
|
64
69
|
this.conn = conn;
|
|
65
70
|
this.mqttConn = new MqttConn({ conn });
|
|
66
71
|
this.handlers = handlers;
|
|
72
|
+
this.protocolLevel = MQTTLevel.unknown;
|
|
67
73
|
}
|
|
68
74
|
|
|
69
75
|
async send(packet: AnyPacket): Promise<void> {
|
|
@@ -109,10 +115,10 @@ export class Context {
|
|
|
109
115
|
|
|
110
116
|
close(executewill = true): void {
|
|
111
117
|
if (this.connected) {
|
|
112
|
-
logger.
|
|
118
|
+
logger.info(
|
|
113
119
|
`Closing ${this.store?.clientId} while mqttConn is ${
|
|
114
120
|
this.mqttConn.isClosed ? "" : "not "
|
|
115
|
-
}closed`,
|
|
121
|
+
}closed because of "${this.mqttConn.reason || "normal disconnect"}"`,
|
|
116
122
|
);
|
|
117
123
|
this.connected = false;
|
|
118
124
|
if (typeof this.timer === "object") {
|
|
@@ -124,6 +130,12 @@ export class Context {
|
|
|
124
130
|
if (executewill) {
|
|
125
131
|
this.handleWill();
|
|
126
132
|
}
|
|
133
|
+
} else {
|
|
134
|
+
logger.info(
|
|
135
|
+
`closing connection from ${this.mqttConn.remoteAddress} because of "${
|
|
136
|
+
this.mqttConn.reason || "normal disconnect"
|
|
137
|
+
}"`,
|
|
138
|
+
);
|
|
127
139
|
}
|
|
128
140
|
if (!this.mqttConn.isClosed) {
|
|
129
141
|
this.mqttConn.close();
|
|
@@ -145,6 +157,7 @@ export class Context {
|
|
|
145
157
|
broadcast(topic: Topic, payload: string, retain = false): void {
|
|
146
158
|
const packet: PublishPacket = {
|
|
147
159
|
type: PacketType.publish,
|
|
160
|
+
protocolLevel: this.protocolLevel,
|
|
148
161
|
topic,
|
|
149
162
|
retain,
|
|
150
163
|
payload: utf8Encoder.encode(payload),
|
package/server/deps.ts
CHANGED
|
@@ -12,6 +12,7 @@ export type {
|
|
|
12
12
|
PacketId,
|
|
13
13
|
PingreqPacket,
|
|
14
14
|
PingresPacket,
|
|
15
|
+
ProtocolLevel,
|
|
15
16
|
PubackPacket,
|
|
16
17
|
PubcompPacket,
|
|
17
18
|
PublishPacket,
|
|
@@ -30,6 +31,7 @@ export type {
|
|
|
30
31
|
|
|
31
32
|
export {
|
|
32
33
|
AuthenticationResult,
|
|
34
|
+
MQTTLevel,
|
|
33
35
|
PacketNameByType,
|
|
34
36
|
PacketType,
|
|
35
37
|
} from "../mqttPacket/mod.ts";
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import type { Context } from "../context.ts";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
logger,
|
|
6
|
-
PacketType,
|
|
7
|
-
type TAuthenticationResult,
|
|
8
|
-
Timer,
|
|
9
|
-
} from "../deps.ts";
|
|
2
|
+
import { AuthenticationResult, logger, PacketType, Timer } from "../deps.ts";
|
|
3
|
+
|
|
4
|
+
import type { ConnectPacket, TAuthenticationResult } from "../deps.ts";
|
|
10
5
|
|
|
11
6
|
/**
|
|
12
7
|
* Checks if the client is authenticated based on the provided credentials
|
|
@@ -42,6 +37,7 @@ function validateConnect(
|
|
|
42
37
|
if (packet.protocolLevel !== 4) {
|
|
43
38
|
return AuthenticationResult.unacceptableProtocol;
|
|
44
39
|
}
|
|
40
|
+
|
|
45
41
|
return isAuthenticated(ctx, packet);
|
|
46
42
|
}
|
|
47
43
|
|
|
@@ -61,6 +57,7 @@ function processValidatedConnect(
|
|
|
61
57
|
if (packet.will) {
|
|
62
58
|
ctx.will = {
|
|
63
59
|
type: PacketType.publish,
|
|
60
|
+
protocolLevel: ctx.protocolLevel,
|
|
64
61
|
qos: packet.will.qos,
|
|
65
62
|
retain: packet.will.retain,
|
|
66
63
|
topic: packet.will.topic,
|
|
@@ -69,6 +66,11 @@ function processValidatedConnect(
|
|
|
69
66
|
}
|
|
70
67
|
|
|
71
68
|
ctx.connect(clientId, packet.clean || false);
|
|
69
|
+
ctx.protocolLevel = packet.protocolLevel;
|
|
70
|
+
if (ctx.mqttConn) {
|
|
71
|
+
logger.debug(`Setting protocolLevel to ${ctx.protocolLevel}`);
|
|
72
|
+
ctx.mqttConn.codecOpts.protocolLevel = ctx.protocolLevel;
|
|
73
|
+
}
|
|
72
74
|
|
|
73
75
|
const keepAlive = packet.keepAlive || 0;
|
|
74
76
|
if (keepAlive > 0) {
|
|
@@ -106,10 +108,11 @@ export function handleConnect(ctx: Context, packet: ConnectPacket): void {
|
|
|
106
108
|
);
|
|
107
109
|
ctx.send({
|
|
108
110
|
type: PacketType.connack,
|
|
111
|
+
protocolLevel: ctx.protocolLevel,
|
|
109
112
|
sessionPresent,
|
|
110
113
|
returnCode,
|
|
111
114
|
});
|
|
112
|
-
|
|
115
|
+
logger.debug("connect returnCode", returnCode);
|
|
113
116
|
if (returnCode !== AuthenticationResult.ok) {
|
|
114
117
|
ctx.close();
|
|
115
118
|
}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import type { Context } from "../context.ts";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
type UnsubscribePacket,
|
|
2
|
+
import { PacketNameByType, PacketType } from "../deps.ts";
|
|
3
|
+
import type {
|
|
4
|
+
AnyPacket,
|
|
5
|
+
PubackPacket,
|
|
6
|
+
PubcompPacket,
|
|
7
|
+
PublishPacket,
|
|
8
|
+
PubrecPacket,
|
|
9
|
+
PubrelPacket,
|
|
10
|
+
SubscribePacket,
|
|
11
|
+
UnsubscribePacket,
|
|
13
12
|
} from "../deps.ts";
|
|
14
13
|
import { handleConnect } from "./handleConnect.ts";
|
|
15
14
|
import { handlePingreq } from "./handlePingreq.ts";
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { PacketType
|
|
1
|
+
import { SysPrefix } from "../context.ts";
|
|
2
|
+
import { PacketType } from "../deps.ts";
|
|
3
|
+
import type { Context } from "../context.ts";
|
|
4
|
+
import type { PublishPacket, Topic } from "../deps.ts";
|
|
3
5
|
|
|
4
6
|
/**
|
|
5
7
|
* Checks if a client is authorized to publish to a given topic
|
|
@@ -45,6 +47,7 @@ export async function handlePublish(
|
|
|
45
47
|
ctx.persistence.publish(packet.topic, packet);
|
|
46
48
|
await ctx.send({
|
|
47
49
|
type: PacketType.puback,
|
|
50
|
+
protocolLevel: ctx.protocolLevel,
|
|
48
51
|
id,
|
|
49
52
|
});
|
|
50
53
|
return;
|
|
@@ -54,6 +57,7 @@ export async function handlePublish(
|
|
|
54
57
|
ctx.store.pendingIncoming.set(packet.id, packet);
|
|
55
58
|
await ctx.send({
|
|
56
59
|
type: PacketType.pubrec,
|
|
60
|
+
protocolLevel: ctx.protocolLevel,
|
|
57
61
|
id: packet.id,
|
|
58
62
|
});
|
|
59
63
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { PacketType } from "../deps.ts";
|
|
2
|
+
import type { PubrecPacket } from "../deps.ts";
|
|
1
3
|
import type { Context } from "../context.ts";
|
|
2
|
-
import { PacketType, type PubrecPacket } from "../deps.ts";
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Handles PUBREC (QoS 2 Publish Received) packets
|
|
@@ -22,6 +23,7 @@ export async function handlePubrec(
|
|
|
22
23
|
ctx.store.pendingAckOutgoing.add(id);
|
|
23
24
|
await ctx.send({
|
|
24
25
|
type: PacketType.pubrel,
|
|
26
|
+
protocolLevel: ctx.protocolLevel,
|
|
25
27
|
id,
|
|
26
28
|
});
|
|
27
29
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { PacketType } from "../deps.ts";
|
|
1
2
|
import type { Context } from "../context.ts";
|
|
2
|
-
import {
|
|
3
|
+
import type { PubrelPacket } from "../deps.ts";
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Handles PUBREL (QoS 2 publish release) packets
|
|
@@ -25,6 +26,7 @@ export async function handlePubrel(
|
|
|
25
26
|
ctx.store.pendingIncoming.delete(id);
|
|
26
27
|
await ctx.send({
|
|
27
28
|
type: PacketType.pubcomp,
|
|
29
|
+
protocolLevel: ctx.protocolLevel,
|
|
28
30
|
id,
|
|
29
31
|
});
|
|
30
32
|
}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import type { Context } from "../context.ts";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
type SubscribePacket,
|
|
5
|
-
type Subscription,
|
|
6
|
-
type Topic,
|
|
7
|
-
} from "../deps.ts";
|
|
2
|
+
import { PacketType } from "../deps.ts";
|
|
3
|
+
import type { SubscribePacket, Subscription, Topic } from "../deps.ts";
|
|
8
4
|
|
|
9
5
|
/**
|
|
10
6
|
* @constant {number} SubscriptionFailure
|
|
@@ -57,6 +53,7 @@ export async function handleSubscribe(
|
|
|
57
53
|
|
|
58
54
|
await ctx.send({
|
|
59
55
|
type: PacketType.suback,
|
|
56
|
+
protocolLevel: ctx.protocolLevel,
|
|
60
57
|
id: packet.id,
|
|
61
58
|
returnCodes: returnCodes,
|
|
62
59
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { PacketType } from "../deps.ts";
|
|
2
|
+
import type { UnsubscribePacket } from "../deps.ts";
|
|
1
3
|
import type { Context } from "../context.ts";
|
|
2
|
-
import { PacketType, type UnsubscribePacket } from "../deps.ts";
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Handles MQTT unsubscribe packets by removing subscriptions and sending acknowledgement
|
|
@@ -19,5 +20,6 @@ export async function handleUnsubscribe(
|
|
|
19
20
|
await ctx.send({
|
|
20
21
|
type: PacketType.unsuback,
|
|
21
22
|
id: packet.id,
|
|
23
|
+
protocolLevel: ctx.protocolLevel,
|
|
22
24
|
});
|
|
23
25
|
}
|
package/server/server.ts
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
logger,
|
|
6
|
-
MemoryPersistence,
|
|
7
|
-
type SockConn,
|
|
8
|
-
type Topic,
|
|
9
|
-
} from "./deps.ts";
|
|
10
|
-
|
|
1
|
+
import { AuthenticationResult, logger, MemoryPersistence } from "./deps.ts";
|
|
2
|
+
import { Context } from "./context.ts";
|
|
3
|
+
import type { Handlers } from "./context.ts";
|
|
4
|
+
import type { IPersistence, SockConn, Topic } from "./deps.ts";
|
|
11
5
|
import { handlePacket } from "./handlers/handlePacket.ts";
|
|
12
6
|
|
|
13
7
|
const defaultIsAuthenticated = (
|
|
@@ -63,12 +57,14 @@ export class MqttServer {
|
|
|
63
57
|
}
|
|
64
58
|
try {
|
|
65
59
|
for await (const packet of ctx.mqttConn) {
|
|
66
|
-
handlePacket(ctx, packet);
|
|
60
|
+
await handlePacket(ctx, packet);
|
|
67
61
|
}
|
|
68
62
|
} catch (err) {
|
|
69
63
|
logger.debug(`Error while serving:${err}`);
|
|
70
64
|
} finally {
|
|
71
|
-
ctx.
|
|
65
|
+
if (!ctx.mqttConn.isClosed) {
|
|
66
|
+
ctx.close();
|
|
67
|
+
}
|
|
72
68
|
}
|
|
73
69
|
}
|
|
74
70
|
}
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
PacketType,
|
|
8
8
|
} from "../../mqttPacket/mod.ts";
|
|
9
9
|
import { AsyncQueue, nextTick } from "../../utils/mod.ts";
|
|
10
|
-
import { MqttConn } from "../deps.ts";
|
|
10
|
+
import { MqttConn, MQTTLevel } from "../deps.ts";
|
|
11
11
|
import { MqttServer } from "../mod.ts";
|
|
12
12
|
import { handlers } from "./test-handlers.ts";
|
|
13
13
|
|
|
@@ -28,6 +28,7 @@ const connectPacket: AnyPacket = {
|
|
|
28
28
|
|
|
29
29
|
const disconnectPacket: AnyPacket = {
|
|
30
30
|
type: PacketType.disconnect,
|
|
31
|
+
protocolLevel: MQTTLevel.v4,
|
|
31
32
|
};
|
|
32
33
|
|
|
33
34
|
const mqttServer = new MqttServer({ handlers });
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { AuthenticationResult
|
|
1
|
+
import { AuthenticationResult } from "../mod.ts";
|
|
2
2
|
import { logger } from "../../utils/mod.ts";
|
|
3
3
|
import type { TAuthenticationResult } from "../deps.ts";
|
|
4
|
+
import type { Context, Topic } from "../mod.ts";
|
|
4
5
|
|
|
5
6
|
const utf8Decoder = new TextDecoder();
|
|
6
7
|
const userTable = new Map();
|
package/socket/socket.ts
CHANGED
package/utils/assert.ts
CHANGED
|
@@ -12,21 +12,3 @@ export function assert(expr: unknown, msg = ""): asserts expr {
|
|
|
12
12
|
throw new AssertionError(msg);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
/** An array-like object (`Array`, `Uint8Array`, `NodeList`, etc.) that is not a string */
|
|
17
|
-
export type ArrayLikeArg<T> = ArrayLike<T> & object;
|
|
18
|
-
|
|
19
|
-
export function assertArrayIncludes<T>(
|
|
20
|
-
actual: ArrayLikeArg<T>,
|
|
21
|
-
expected: ArrayLikeArg<T>,
|
|
22
|
-
msg?: string,
|
|
23
|
-
) {
|
|
24
|
-
const actualArr = Array.from(actual);
|
|
25
|
-
const expectedArr = Array.from(expected);
|
|
26
|
-
for (const item of expectedArr) {
|
|
27
|
-
assert(
|
|
28
|
-
actualArr.includes(item),
|
|
29
|
-
msg + `\nExpected: ${expectedArr}\nActual: ${actualArr}`,
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
}
|
package/utils/asyncQueue.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Deferred } from "./deferred.ts";
|
|
1
2
|
import { nextTick } from "./nextTick.ts";
|
|
2
3
|
/**
|
|
3
4
|
* An Async Queue is a queue that can be used to push items to it and then wait
|
|
@@ -12,13 +13,14 @@ import { nextTick } from "./nextTick.ts";
|
|
|
12
13
|
* }
|
|
13
14
|
* ```
|
|
14
15
|
*/
|
|
16
|
+
|
|
15
17
|
export class AsyncQueue<T> {
|
|
16
18
|
private queue: T[] = [];
|
|
17
19
|
private maxQueueLength = Infinity;
|
|
18
|
-
|
|
19
|
-
private nextReject = (_reason?: string) => {};
|
|
20
|
+
|
|
20
21
|
private done = false;
|
|
21
|
-
|
|
22
|
+
|
|
23
|
+
#next?: Deferred<T>;
|
|
22
24
|
|
|
23
25
|
constructor(maxQueueLength?: number) {
|
|
24
26
|
if (maxQueueLength) {
|
|
@@ -28,39 +30,33 @@ export class AsyncQueue<T> {
|
|
|
28
30
|
|
|
29
31
|
async next(): Promise<T> {
|
|
30
32
|
await nextTick();
|
|
31
|
-
if (this.
|
|
33
|
+
if (this.queue.length) {
|
|
34
|
+
return Promise.resolve(this.queue.shift()!);
|
|
35
|
+
} else if (this.done) {
|
|
32
36
|
return Promise.reject("Closed");
|
|
37
|
+
} else if (!this.#next) {
|
|
38
|
+
this.#next = new Deferred<T>();
|
|
33
39
|
}
|
|
34
|
-
return
|
|
35
|
-
if (this.queue.length > 0) {
|
|
36
|
-
const item = this.queue.shift();
|
|
37
|
-
if (item) {
|
|
38
|
-
return resolve(item);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
this.nextResolve = resolve;
|
|
42
|
-
this.nextReject = reject;
|
|
43
|
-
this.hasNext = true;
|
|
44
|
-
});
|
|
40
|
+
return this.#next.promise;
|
|
45
41
|
}
|
|
46
42
|
|
|
47
43
|
close(reason = "closed"): void {
|
|
48
44
|
this.done = true;
|
|
49
|
-
if (this
|
|
50
|
-
this.
|
|
45
|
+
if (this.#next) {
|
|
46
|
+
this.#next.reject(new Error(reason));
|
|
51
47
|
}
|
|
52
48
|
}
|
|
53
49
|
|
|
54
50
|
async *[Symbol.asyncIterator](): AsyncGenerator<Awaited<T>, void, unknown> {
|
|
55
51
|
while (true) {
|
|
56
|
-
yield this.next();
|
|
52
|
+
yield await this.next();
|
|
57
53
|
}
|
|
58
54
|
}
|
|
59
55
|
|
|
60
56
|
push(item: T) {
|
|
61
|
-
if (this
|
|
62
|
-
this.
|
|
63
|
-
this
|
|
57
|
+
if (this.#next) {
|
|
58
|
+
this.#next.resolve(item);
|
|
59
|
+
this.#next = undefined;
|
|
64
60
|
return;
|
|
65
61
|
}
|
|
66
62
|
if (this.queue.length > this.maxQueueLength) {
|
package/utils/logger.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { noop } from "./utils.ts";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* The available log levels
|
|
3
5
|
*/
|
|
@@ -30,21 +32,20 @@ export class Logger {
|
|
|
30
32
|
private defaultInfo = console.info;
|
|
31
33
|
private defaultVerbose = console.log;
|
|
32
34
|
private defaultDebug = console.log;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
debug = this.noop;
|
|
35
|
+
|
|
36
|
+
error: typeof console.log = this.defaultError;
|
|
37
|
+
warn: typeof console.log = this.defaultWarn;
|
|
38
|
+
info: typeof console.log = this.defaultInfo;
|
|
39
|
+
verbose: typeof console.log = noop;
|
|
40
|
+
debug: typeof console.log = noop;
|
|
40
41
|
|
|
41
42
|
constructor() {}
|
|
42
43
|
|
|
43
44
|
level(logLevel: TLogLevel) {
|
|
44
|
-
this.warn = logLevel > 0 ? this.defaultWarn :
|
|
45
|
-
this.info = logLevel > 1 ? this.defaultInfo :
|
|
46
|
-
this.verbose = logLevel > 2 ? this.defaultVerbose :
|
|
47
|
-
this.debug = logLevel > 3 ? this.defaultDebug :
|
|
45
|
+
this.warn = logLevel > 0 ? this.defaultWarn : noop;
|
|
46
|
+
this.info = logLevel > 1 ? this.defaultInfo : noop;
|
|
47
|
+
this.verbose = logLevel > 2 ? this.defaultVerbose : noop;
|
|
48
|
+
this.debug = logLevel > 3 ? this.defaultDebug : noop;
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
|
package/utils/mod.ts
CHANGED
|
@@ -7,6 +7,3 @@ export { Deferred } from "./deferred.ts";
|
|
|
7
7
|
export { Logger, logger, LogLevel } from "./logger.ts";
|
|
8
8
|
export { AsyncQueue } from "./asyncQueue.ts";
|
|
9
9
|
export { nextTick } from "./nextTick.ts";
|
|
10
|
-
export { parseArgs } from "./args.ts";
|
|
11
|
-
export type { Args } from "./args.ts";
|
|
12
|
-
export { getArgs } from "./platform.ts";
|
package/utils/utils.ts
ADDED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { PacketId, TPacketType } from "./types.ts";
|
|
2
|
-
/**
|
|
3
|
-
* PubackPacket is sent to indicate publish complete (QoS 1)
|
|
4
|
-
*/
|
|
5
|
-
export type PubackPacket = {
|
|
6
|
-
type: TPacketType;
|
|
7
|
-
id: PacketId;
|
|
8
|
-
};
|
|
9
|
-
export declare const puback: {
|
|
10
|
-
encode(packet: PubackPacket): {
|
|
11
|
-
flags: number;
|
|
12
|
-
bytes: number[];
|
|
13
|
-
};
|
|
14
|
-
decode(buffer: Uint8Array): PubackPacket;
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=puback.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"puback.d.ts","sourceRoot":"","sources":["../../mqttPacket/puback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKxD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,QAAQ,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE;IACnB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACjE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC;CAkB1C,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { PacketType } from "./PacketType.js";
|
|
2
|
-
import { Decoder } from "./decoder.js";
|
|
3
|
-
import { Encoder } from "./encoder.js";
|
|
4
|
-
export const puback = {
|
|
5
|
-
encode(packet) {
|
|
6
|
-
const flags = 0;
|
|
7
|
-
const encoder = new Encoder();
|
|
8
|
-
encoder.setInt16(packet.id);
|
|
9
|
-
return { flags, bytes: encoder.done() };
|
|
10
|
-
},
|
|
11
|
-
decode(buffer) {
|
|
12
|
-
const decoder = new Decoder(buffer);
|
|
13
|
-
const id = decoder.getInt16();
|
|
14
|
-
decoder.done();
|
|
15
|
-
return {
|
|
16
|
-
type: PacketType.puback,
|
|
17
|
-
id,
|
|
18
|
-
};
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=puback.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"puback.js","sourceRoot":"","sources":["../../mqttPacket/puback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAUvC,MAAM,CAAC,MAAM,MAAM,GAGf;IACF,MAAM,CAAC,MAAoB;QACzB,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,MAAkB;QACvB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,MAAM;YACvB,EAAE;SACH,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { PacketId, TPacketType } from "./types.ts";
|
|
2
|
-
/**
|
|
3
|
-
* PubcompPacket is sent to indicate publish complete
|
|
4
|
-
* It is the fourth packet of the QoS 2 protocol exchange.
|
|
5
|
-
*/
|
|
6
|
-
export type PubcompPacket = {
|
|
7
|
-
type: TPacketType;
|
|
8
|
-
id: PacketId;
|
|
9
|
-
};
|
|
10
|
-
export declare const pubcomp: {
|
|
11
|
-
encode(packet: PubcompPacket): {
|
|
12
|
-
flags: number;
|
|
13
|
-
bytes: number[];
|
|
14
|
-
};
|
|
15
|
-
decode(buffer: Uint8Array): PubcompPacket;
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=pubcomp.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pubcomp.d.ts","sourceRoot":"","sources":["../../mqttPacket/pubcomp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKxD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,QAAQ,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE;IACpB,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAClE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,CAAC;CAkB3C,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { PacketType } from "./PacketType.js";
|
|
2
|
-
import { Decoder } from "./decoder.js";
|
|
3
|
-
import { Encoder } from "./encoder.js";
|
|
4
|
-
export const pubcomp = {
|
|
5
|
-
encode(packet) {
|
|
6
|
-
const flags = 0;
|
|
7
|
-
const encoder = new Encoder();
|
|
8
|
-
encoder.setInt16(packet.id);
|
|
9
|
-
return { flags, bytes: encoder.done() };
|
|
10
|
-
},
|
|
11
|
-
decode(buffer) {
|
|
12
|
-
const decoder = new Decoder(buffer);
|
|
13
|
-
const id = decoder.getInt16();
|
|
14
|
-
decoder.done();
|
|
15
|
-
return {
|
|
16
|
-
type: PacketType.pubcomp,
|
|
17
|
-
id,
|
|
18
|
-
};
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=pubcomp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pubcomp.js","sourceRoot":"","sources":["../../mqttPacket/pubcomp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAWvC,MAAM,CAAC,MAAM,OAAO,GAGhB;IACF,MAAM,CAAC,MAAqB;QAC1B,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,MAAkB;QACvB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,OAAO;YACxB,EAAE;SACH,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { PacketId, TPacketType } from "./types.ts";
|
|
2
|
-
/**
|
|
3
|
-
* PubrecPacket indicates publish received
|
|
4
|
-
* It is the second packet of the QoS 2 protocol exchange.
|
|
5
|
-
*/
|
|
6
|
-
export type PubrecPacket = {
|
|
7
|
-
type: TPacketType;
|
|
8
|
-
id: PacketId;
|
|
9
|
-
};
|
|
10
|
-
export declare const pubrec: {
|
|
11
|
-
encode(packet: PubrecPacket): {
|
|
12
|
-
flags: number;
|
|
13
|
-
bytes: number[];
|
|
14
|
-
};
|
|
15
|
-
decode(buffer: Uint8Array): PubrecPacket;
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=pubrec.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pubrec.d.ts","sourceRoot":"","sources":["../../mqttPacket/pubrec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKxD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,QAAQ,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE;IACnB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACjE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC;CAkB1C,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { PacketType } from "./PacketType.js";
|
|
2
|
-
import { Decoder } from "./decoder.js";
|
|
3
|
-
import { Encoder } from "./encoder.js";
|
|
4
|
-
export const pubrec = {
|
|
5
|
-
encode(packet) {
|
|
6
|
-
const flags = 0;
|
|
7
|
-
const encoder = new Encoder();
|
|
8
|
-
encoder.setInt16(packet.id);
|
|
9
|
-
return { flags, bytes: encoder.done() };
|
|
10
|
-
},
|
|
11
|
-
decode(buffer) {
|
|
12
|
-
const decoder = new Decoder(buffer);
|
|
13
|
-
const id = decoder.getInt16();
|
|
14
|
-
decoder.done();
|
|
15
|
-
return {
|
|
16
|
-
type: PacketType.pubrec,
|
|
17
|
-
id,
|
|
18
|
-
};
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=pubrec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pubrec.js","sourceRoot":"","sources":["../../mqttPacket/pubrec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAWvC,MAAM,CAAC,MAAM,MAAM,GAGf;IACF,MAAM,CAAC,MAAoB;QACzB,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,MAAkB;QACvB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,MAAM;YACvB,EAAE;SACH,CAAC;IACJ,CAAC;CACF,CAAC"}
|