@seriousme/opifex 1.7.0 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/conformanceServer.d.ts +3 -0
- package/dist/bin/conformanceServer.d.ts.map +1 -0
- package/dist/bin/conformanceServer.js +98 -0
- package/dist/bin/conformanceServer.js.map +1 -0
- package/dist/bin/demoServer.d.ts +3 -0
- package/dist/bin/demoServer.d.ts.map +1 -0
- package/dist/bin/demoServer.js +97 -0
- package/dist/bin/demoServer.js.map +1 -0
- package/dist/bin/mqtt.d.ts +3 -0
- package/dist/bin/mqtt.d.ts.map +1 -0
- package/dist/bin/mqtt.js +257 -0
- package/dist/bin/mqtt.js.map +1 -0
- package/dist/client/ConnectionState.d.ts +21 -0
- package/dist/client/ConnectionState.d.ts.map +1 -0
- package/dist/client/ConnectionState.js +17 -0
- package/dist/client/ConnectionState.js.map +1 -0
- package/dist/client/client.d.ts +94 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +188 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/context.d.ts +29 -0
- package/dist/client/context.d.ts.map +1 -0
- package/dist/client/context.js +153 -0
- package/dist/client/context.js.map +1 -0
- package/dist/client/deps.d.ts +8 -0
- package/dist/client/deps.d.ts.map +1 -0
- package/dist/client/deps.js +6 -0
- package/dist/client/deps.js.map +1 -0
- package/dist/client/handlers/handleConnack.d.ts +10 -0
- package/dist/client/handlers/handleConnack.d.ts.map +1 -0
- package/dist/client/handlers/handleConnack.js +25 -0
- package/dist/client/handlers/handleConnack.js.map +1 -0
- package/dist/client/handlers/handlePacket.d.ts +11 -0
- package/dist/client/handlers/handlePacket.d.ts.map +1 -0
- package/dist/client/handlers/handlePacket.js +58 -0
- package/dist/client/handlers/handlePacket.js.map +1 -0
- package/dist/client/handlers/handlePuback.d.ts +12 -0
- package/dist/client/handlers/handlePuback.d.ts.map +1 -0
- package/dist/client/handlers/handlePuback.js +14 -0
- package/dist/client/handlers/handlePuback.js.map +1 -0
- package/dist/client/handlers/handlePubcomp.d.ts +13 -0
- package/dist/client/handlers/handlePubcomp.d.ts.map +1 -0
- package/dist/client/handlers/handlePubcomp.js +17 -0
- package/dist/client/handlers/handlePubcomp.js.map +1 -0
- package/dist/client/handlers/handlePublish.d.ts +10 -0
- package/dist/client/handlers/handlePublish.d.ts.map +1 -0
- package/dist/client/handlers/handlePublish.js +34 -0
- package/dist/client/handlers/handlePublish.js.map +1 -0
- package/dist/client/handlers/handlePubrec.d.ts +17 -0
- package/dist/client/handlers/handlePubrec.d.ts.map +1 -0
- package/dist/client/handlers/handlePubrec.js +27 -0
- package/dist/client/handlers/handlePubrec.js.map +1 -0
- package/dist/client/handlers/handlePubrel.d.ts +20 -0
- package/dist/client/handlers/handlePubrel.d.ts.map +1 -0
- package/dist/client/handlers/handlePubrel.js +32 -0
- package/dist/client/handlers/handlePubrel.js.map +1 -0
- package/dist/client/handlers/handleSuback.d.ts +13 -0
- package/dist/client/handlers/handleSuback.d.ts.map +1 -0
- package/dist/client/handlers/handleSuback.js +15 -0
- package/dist/client/handlers/handleSuback.js.map +1 -0
- package/dist/client/handlers/handleUnsuback.d.ts +14 -0
- package/dist/client/handlers/handleUnsuback.d.ts.map +1 -0
- package/dist/client/handlers/handleUnsuback.js +16 -0
- package/dist/client/handlers/handleUnsuback.js.map +1 -0
- package/dist/client/mod.d.ts +7 -0
- package/dist/client/mod.d.ts.map +1 -0
- package/dist/client/mod.js +6 -0
- package/dist/client/mod.js.map +1 -0
- package/dist/client/store/deps.d.ts +3 -0
- package/dist/client/store/deps.d.ts.map +1 -0
- package/dist/client/store/deps.js +2 -0
- package/dist/client/store/deps.js.map +1 -0
- package/dist/client/store/memoryStore.d.ts +34 -0
- package/dist/client/store/memoryStore.d.ts.map +1 -0
- package/dist/client/store/memoryStore.js +59 -0
- package/dist/client/store/memoryStore.js.map +1 -0
- package/dist/client/store/store.d.ts +46 -0
- package/dist/client/store/store.d.ts.map +1 -0
- package/dist/client/store/store.js +5 -0
- package/dist/client/store/store.js.map +1 -0
- package/dist/mqttConn/mqttConn.d.ts +36 -0
- package/dist/mqttConn/mqttConn.d.ts.map +1 -0
- package/dist/mqttConn/mqttConn.js +105 -0
- package/dist/mqttConn/mqttConn.js.map +1 -0
- package/dist/mqttPacket/AuthenticationResult.d.ts +16 -0
- package/dist/mqttPacket/AuthenticationResult.d.ts.map +1 -0
- package/dist/mqttPacket/AuthenticationResult.js +17 -0
- package/dist/mqttPacket/AuthenticationResult.js.map +1 -0
- package/dist/mqttPacket/BitMask.d.ts +11 -0
- package/dist/mqttPacket/BitMask.d.ts.map +1 -0
- package/dist/mqttPacket/BitMask.js +11 -0
- package/dist/mqttPacket/BitMask.js.map +1 -0
- package/dist/mqttPacket/PacketType.d.ts +19 -0
- package/dist/mqttPacket/PacketType.d.ts.map +1 -0
- package/dist/mqttPacket/PacketType.js +19 -0
- package/dist/mqttPacket/PacketType.js.map +1 -0
- package/dist/mqttPacket/connack.d.ts +18 -0
- package/dist/mqttPacket/connack.d.ts.map +1 -0
- package/dist/mqttPacket/connack.js +28 -0
- package/dist/mqttPacket/connack.js.map +1 -0
- package/dist/mqttPacket/connect.d.ts +28 -0
- package/dist/mqttPacket/connect.d.ts.map +1 -0
- package/dist/mqttPacket/connect.js +116 -0
- package/dist/mqttPacket/connect.js.map +1 -0
- package/dist/mqttPacket/decoder.d.ts +24 -0
- package/dist/mqttPacket/decoder.d.ts.map +1 -0
- package/dist/mqttPacket/decoder.js +90 -0
- package/dist/mqttPacket/decoder.js.map +1 -0
- package/dist/mqttPacket/disconnect.d.ts +16 -0
- package/dist/mqttPacket/disconnect.d.ts.map +1 -0
- package/dist/mqttPacket/disconnect.js +15 -0
- package/dist/mqttPacket/disconnect.js.map +1 -0
- package/dist/mqttPacket/encoder.d.ts +17 -0
- package/dist/mqttPacket/encoder.d.ts.map +1 -0
- package/dist/mqttPacket/encoder.js +57 -0
- package/dist/mqttPacket/encoder.js.map +1 -0
- package/dist/mqttPacket/length.d.ts +12 -0
- package/dist/mqttPacket/length.d.ts.map +1 -0
- package/dist/mqttPacket/length.js +44 -0
- package/dist/mqttPacket/length.js.map +1 -0
- package/dist/mqttPacket/mod.d.ts +122 -0
- package/dist/mqttPacket/mod.d.ts.map +1 -0
- package/dist/mqttPacket/mod.js +77 -0
- package/dist/mqttPacket/mod.js.map +1 -0
- package/dist/mqttPacket/pingreq.d.ts +15 -0
- package/dist/mqttPacket/pingreq.d.ts.map +1 -0
- package/dist/mqttPacket/pingreq.js +16 -0
- package/dist/mqttPacket/pingreq.js.map +1 -0
- package/dist/mqttPacket/pingres.d.ts +16 -0
- package/dist/mqttPacket/pingres.d.ts.map +1 -0
- package/dist/mqttPacket/pingres.js +15 -0
- package/dist/mqttPacket/pingres.js.map +1 -0
- package/dist/mqttPacket/puback.d.ts +16 -0
- package/dist/mqttPacket/puback.d.ts.map +1 -0
- package/dist/mqttPacket/puback.js +21 -0
- package/dist/mqttPacket/puback.js.map +1 -0
- package/dist/mqttPacket/pubcomp.d.ts +17 -0
- package/dist/mqttPacket/pubcomp.d.ts.map +1 -0
- package/dist/mqttPacket/pubcomp.js +21 -0
- package/dist/mqttPacket/pubcomp.js.map +1 -0
- package/dist/mqttPacket/publish.d.ts +22 -0
- package/dist/mqttPacket/publish.d.ts.map +1 -0
- package/dist/mqttPacket/publish.js +52 -0
- package/dist/mqttPacket/publish.js.map +1 -0
- package/dist/mqttPacket/pubrec.d.ts +17 -0
- package/dist/mqttPacket/pubrec.d.ts.map +1 -0
- package/dist/mqttPacket/pubrec.js +21 -0
- package/dist/mqttPacket/pubrec.js.map +1 -0
- package/dist/mqttPacket/pubrel.d.ts +17 -0
- package/dist/mqttPacket/pubrel.d.ts.map +1 -0
- package/dist/mqttPacket/pubrel.js +21 -0
- package/dist/mqttPacket/pubrel.js.map +1 -0
- package/dist/mqttPacket/suback.d.ts +18 -0
- package/dist/mqttPacket/suback.d.ts.map +1 -0
- package/dist/mqttPacket/suback.js +30 -0
- package/dist/mqttPacket/suback.js.map +1 -0
- package/dist/mqttPacket/subscribe.d.ts +24 -0
- package/dist/mqttPacket/subscribe.d.ts.map +1 -0
- package/dist/mqttPacket/subscribe.js +53 -0
- package/dist/mqttPacket/subscribe.js.map +1 -0
- package/dist/mqttPacket/types.d.ts +48 -0
- package/dist/mqttPacket/types.d.ts.map +1 -0
- package/dist/mqttPacket/types.js +2 -0
- package/dist/mqttPacket/types.js.map +1 -0
- package/dist/mqttPacket/unsuback.d.ts +17 -0
- package/dist/mqttPacket/unsuback.d.ts.map +1 -0
- package/dist/mqttPacket/unsuback.js +21 -0
- package/dist/mqttPacket/unsuback.js.map +1 -0
- package/dist/mqttPacket/unsubscribe.d.ts +17 -0
- package/dist/mqttPacket/unsubscribe.d.ts.map +1 -0
- package/dist/mqttPacket/unsubscribe.js +37 -0
- package/dist/mqttPacket/unsubscribe.js.map +1 -0
- package/dist/mqttPacket/validators.d.ts +5 -0
- package/dist/mqttPacket/validators.d.ts.map +1 -0
- package/dist/mqttPacket/validators.js +16 -0
- package/dist/mqttPacket/validators.js.map +1 -0
- package/dist/node/tcpClient.d.ts +18 -0
- package/dist/node/tcpClient.d.ts.map +1 -0
- package/dist/node/tcpClient.js +82 -0
- package/dist/node/tcpClient.js.map +1 -0
- package/dist/node/tcpServer.d.ts +17 -0
- package/dist/node/tcpServer.d.ts.map +1 -0
- package/dist/node/tcpServer.js +51 -0
- package/dist/node/tcpServer.js.map +1 -0
- package/dist/node/wrapNodeSocket.d.ts +12 -0
- package/dist/node/wrapNodeSocket.d.ts.map +1 -0
- package/dist/node/wrapNodeSocket.js +57 -0
- package/dist/node/wrapNodeSocket.js.map +1 -0
- package/dist/persistence/deps.d.ts +5 -0
- package/dist/persistence/deps.d.ts.map +1 -0
- package/dist/persistence/deps.js +4 -0
- package/dist/persistence/deps.js.map +1 -0
- package/dist/persistence/memory/memoryPersistence.d.ts +28 -0
- package/dist/persistence/memory/memoryPersistence.d.ts.map +1 -0
- package/dist/persistence/memory/memoryPersistence.js +119 -0
- package/dist/persistence/memory/memoryPersistence.js.map +1 -0
- package/dist/persistence/persistence.d.ts +24 -0
- package/dist/persistence/persistence.d.ts.map +1 -0
- package/dist/persistence/persistence.js +2 -0
- package/dist/persistence/persistence.js.map +1 -0
- package/dist/persistence/store.d.ts +13 -0
- package/dist/persistence/store.d.ts.map +1 -0
- package/dist/persistence/store.js +2 -0
- package/dist/persistence/store.js.map +1 -0
- package/dist/server/context.d.ts +45 -0
- package/dist/server/context.d.ts.map +1 -0
- package/dist/server/context.js +101 -0
- package/dist/server/context.js.map +1 -0
- package/dist/server/deps.d.ts +10 -0
- package/dist/server/deps.d.ts.map +1 -0
- package/dist/server/deps.js +6 -0
- package/dist/server/deps.js.map +1 -0
- package/dist/server/handlers/handleConnect.d.ts +9 -0
- package/dist/server/handlers/handleConnect.d.ts.map +1 -0
- package/dist/server/handlers/handleConnect.js +81 -0
- package/dist/server/handlers/handleConnect.js.map +1 -0
- package/dist/server/handlers/handleDisconnect.d.ts +8 -0
- package/dist/server/handlers/handleDisconnect.d.ts.map +1 -0
- package/dist/server/handlers/handleDisconnect.js +10 -0
- package/dist/server/handlers/handleDisconnect.js.map +1 -0
- package/dist/server/handlers/handlePacket.d.ts +11 -0
- package/dist/server/handlers/handlePacket.d.ts.map +1 -0
- package/dist/server/handlers/handlePacket.js +66 -0
- package/dist/server/handlers/handlePacket.js.map +1 -0
- package/dist/server/handlers/handlePingreq.d.ts +8 -0
- package/dist/server/handlers/handlePingreq.d.ts.map +1 -0
- package/dist/server/handlers/handlePingreq.js +12 -0
- package/dist/server/handlers/handlePingreq.js.map +1 -0
- package/dist/server/handlers/handlePuback.d.ts +13 -0
- package/dist/server/handlers/handlePuback.d.ts.map +1 -0
- package/dist/server/handlers/handlePuback.js +17 -0
- package/dist/server/handlers/handlePuback.js.map +1 -0
- package/dist/server/handlers/handlePubcomp.d.ts +12 -0
- package/dist/server/handlers/handlePubcomp.d.ts.map +1 -0
- package/dist/server/handlers/handlePubcomp.js +15 -0
- package/dist/server/handlers/handlePubcomp.js.map +1 -0
- package/dist/server/handlers/handlePublish.d.ts +11 -0
- package/dist/server/handlers/handlePublish.d.ts.map +1 -0
- package/dist/server/handlers/handlePublish.js +55 -0
- package/dist/server/handlers/handlePublish.js.map +1 -0
- package/dist/server/handlers/handlePubrec.d.ts +15 -0
- package/dist/server/handlers/handlePubrec.d.ts.map +1 -0
- package/dist/server/handlers/handlePubrec.js +24 -0
- package/dist/server/handlers/handlePubrec.js.map +1 -0
- package/dist/server/handlers/handlePubrel.d.ts +16 -0
- package/dist/server/handlers/handlePubrel.d.ts.map +1 -0
- package/dist/server/handlers/handlePubrel.js +28 -0
- package/dist/server/handlers/handlePubrel.js.map +1 -0
- package/dist/server/handlers/handleSubscribe.d.ts +13 -0
- package/dist/server/handlers/handleSubscribe.d.ts.map +1 -0
- package/dist/server/handlers/handleSubscribe.js +57 -0
- package/dist/server/handlers/handleSubscribe.js.map +1 -0
- package/dist/server/handlers/handleUnsubscribe.d.ts +10 -0
- package/dist/server/handlers/handleUnsubscribe.d.ts.map +1 -0
- package/dist/server/handlers/handleUnsubscribe.js +19 -0
- package/dist/server/handlers/handleUnsubscribe.js.map +1 -0
- package/dist/server/mod.d.ts +11 -0
- package/dist/server/mod.d.ts.map +1 -0
- package/dist/server/mod.js +8 -0
- package/dist/server/mod.js.map +1 -0
- package/dist/server/server.d.ts +27 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +48 -0
- package/dist/server/server.js.map +1 -0
- package/dist/socket/socket.d.ts +29 -0
- package/dist/socket/socket.d.ts.map +1 -0
- package/dist/socket/socket.js +37 -0
- package/dist/socket/socket.js.map +1 -0
- package/dist/timer/timer.d.ts +13 -0
- package/dist/timer/timer.d.ts.map +1 -0
- package/dist/timer/timer.js +41 -0
- package/dist/timer/timer.js.map +1 -0
- package/dist/trie/trie.d.ts +21 -0
- package/dist/trie/trie.d.ts.map +1 -0
- package/dist/trie/trie.js +96 -0
- package/dist/trie/trie.js.map +1 -0
- package/dist/utils/args.d.ts +28 -0
- package/dist/utils/args.d.ts.map +1 -0
- package/dist/utils/args.js +76 -0
- package/dist/utils/args.js.map +1 -0
- package/dist/utils/assert.d.ts +10 -0
- package/dist/utils/assert.d.ts.map +1 -0
- package/dist/utils/assert.js +21 -0
- package/dist/utils/assert.js.map +1 -0
- package/dist/utils/asyncQueue.d.ts +28 -0
- package/dist/utils/asyncQueue.d.ts.map +1 -0
- package/dist/utils/asyncQueue.js +70 -0
- package/dist/utils/asyncQueue.js.map +1 -0
- package/dist/utils/deferred.d.ts +10 -0
- package/dist/utils/deferred.d.ts.map +1 -0
- package/dist/utils/deferred.js +15 -0
- package/dist/utils/deferred.js.map +1 -0
- package/dist/utils/logger.d.ts +63 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +59 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/mod.d.ts +13 -0
- package/dist/utils/mod.d.ts.map +1 -0
- package/dist/utils/mod.js +12 -0
- package/dist/utils/mod.js.map +1 -0
- package/dist/utils/nextTick.d.ts +17 -0
- package/dist/utils/nextTick.d.ts.map +1 -0
- package/dist/utils/nextTick.js +19 -0
- package/dist/utils/nextTick.js.map +1 -0
- package/dist/utils/platform.d.ts +5 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +8 -0
- package/dist/utils/platform.js.map +1 -0
- package/package.json +2 -3
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { PacketType } from "../deps.js";
|
|
2
|
+
/**
|
|
3
|
+
* Handles incoming MQTT publish packets based on their QoS level
|
|
4
|
+
* @param ctx - The MQTT connection context
|
|
5
|
+
* @param packet - The incoming publish packet to handle
|
|
6
|
+
* @returns Promise that resolves when packet is handled
|
|
7
|
+
*/
|
|
8
|
+
export async function handlePublish(ctx, packet) {
|
|
9
|
+
const qos = packet.qos || 0;
|
|
10
|
+
if (qos === 0) {
|
|
11
|
+
ctx.receivePublish(packet);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
if (packet.id !== undefined) {
|
|
15
|
+
// qos 1
|
|
16
|
+
if (qos === 1) {
|
|
17
|
+
ctx.receivePublish(packet);
|
|
18
|
+
await ctx.send({
|
|
19
|
+
type: PacketType.puback,
|
|
20
|
+
id: packet.id,
|
|
21
|
+
});
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
// qos 2
|
|
25
|
+
if (ctx.store) {
|
|
26
|
+
ctx.store.pendingIncoming.set(packet.id, packet);
|
|
27
|
+
await ctx.send({
|
|
28
|
+
type: PacketType.pubrec,
|
|
29
|
+
id: packet.id,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=handlePublish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlePublish.js","sourceRoot":"","sources":["../../../client/handlers/handlePublish.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAsB,MAAM,YAAY,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,MAAqB;IACrE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5B,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACd,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAC5B,QAAQ;QACR,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM,GAAG,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,UAAU,CAAC,MAAM;gBACvB,EAAE,EAAE,MAAM,CAAC,EAAE;aACd,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,QAAQ;QACR,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,GAAG,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,UAAU,CAAC,MAAM;gBACvB,EAAE,EAAE,MAAM,CAAC,EAAE;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Context } from "../context.ts";
|
|
2
|
+
import { type PubrecPacket } from "../deps.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Handles PUBREC (Publish Received) packets for QoS 2 message flow
|
|
5
|
+
* It is the second packet of the QoS 2 protocol exchange.
|
|
6
|
+
* @param ctx - The connection context containing message stores and send function
|
|
7
|
+
* @param packet - The received PUBREC packet
|
|
8
|
+
* @description
|
|
9
|
+
* When a PUBREC packet is received:
|
|
10
|
+
* 1. Checks if there is a pending outgoing message with matching packet ID
|
|
11
|
+
* 2. Creates a PUBREL packet to acknowledge the PUBREC
|
|
12
|
+
* 3. Add the packet ID to pendingAckOutgoing store
|
|
13
|
+
* 4. Removes the message from pendingOutgoing store
|
|
14
|
+
* 5. Sends the PUBREL packet
|
|
15
|
+
*/
|
|
16
|
+
export declare function handlePubrec(ctx: Context, packet: PubrecPacket): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=handlePubrec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlePubrec.d.ts","sourceRoot":"","sources":["../../../client/handlers/handlePubrec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAc,KAAK,YAAY,EAAqB,MAAM,YAAY,CAAC;AAE9E;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { PacketType } from "../deps.js";
|
|
2
|
+
/**
|
|
3
|
+
* Handles PUBREC (Publish Received) packets for QoS 2 message flow
|
|
4
|
+
* It is the second packet of the QoS 2 protocol exchange.
|
|
5
|
+
* @param ctx - The connection context containing message stores and send function
|
|
6
|
+
* @param packet - The received PUBREC packet
|
|
7
|
+
* @description
|
|
8
|
+
* When a PUBREC packet is received:
|
|
9
|
+
* 1. Checks if there is a pending outgoing message with matching packet ID
|
|
10
|
+
* 2. Creates a PUBREL packet to acknowledge the PUBREC
|
|
11
|
+
* 3. Add the packet ID to pendingAckOutgoing store
|
|
12
|
+
* 4. Removes the message from pendingOutgoing store
|
|
13
|
+
* 5. Sends the PUBREL packet
|
|
14
|
+
*/
|
|
15
|
+
export async function handlePubrec(ctx, packet) {
|
|
16
|
+
const id = packet.id;
|
|
17
|
+
const ack = {
|
|
18
|
+
type: PacketType.pubrel,
|
|
19
|
+
id,
|
|
20
|
+
};
|
|
21
|
+
if (ctx.store.pendingOutgoing.has(id)) {
|
|
22
|
+
ctx.store.pendingAckOutgoing.set(id, ack);
|
|
23
|
+
ctx.store.pendingOutgoing.delete(id);
|
|
24
|
+
await ctx.send(ack);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=handlePubrec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlePubrec.js","sourceRoot":"","sources":["../../../client/handlers/handlePubrec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAwC,MAAM,YAAY,CAAC;AAE9E;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAY,EACZ,MAAoB;IAEpB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACrB,MAAM,GAAG,GAAiB;QACxB,IAAI,EAAE,UAAU,CAAC,MAAM;QACvB,EAAE;KACH,CAAC;IACF,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACtC,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1C,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Context } from "../context.ts";
|
|
2
|
+
import { type PubrelPacket } from "../deps.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Handles a PUBREL packet in the MQTT QoS 2 flow
|
|
5
|
+
* It is the third packet of the QoS 2 protocol exchange
|
|
6
|
+
* and a response to the PUBREC packet
|
|
7
|
+
*
|
|
8
|
+
* It uses Method A from the MQTT specification
|
|
9
|
+
* @param ctx - The MQTT client context
|
|
10
|
+
* @param packet - The PUBREL packet received
|
|
11
|
+
* @description
|
|
12
|
+
* When a PUBREL packet is received:
|
|
13
|
+
* 1. If there is a matching pending incoming message:
|
|
14
|
+
* - Delivers the stored message to the application
|
|
15
|
+
* - Removes the message from pending incoming store
|
|
16
|
+
* - Sends PUBCOMP packet as acknowledgement
|
|
17
|
+
* 2. If no matching message found, silently ignores
|
|
18
|
+
*/
|
|
19
|
+
export declare function handlePubrel(ctx: Context, packet: PubrelPacket): Promise<void>;
|
|
20
|
+
//# sourceMappingURL=handlePubrel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlePubrel.d.ts","sourceRoot":"","sources":["../../../client/handlers/handlePubrel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE3D;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAaf"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { PacketType } from "../deps.js";
|
|
2
|
+
/**
|
|
3
|
+
* Handles a PUBREL packet in the MQTT QoS 2 flow
|
|
4
|
+
* It is the third packet of the QoS 2 protocol exchange
|
|
5
|
+
* and a response to the PUBREC packet
|
|
6
|
+
*
|
|
7
|
+
* It uses Method A from the MQTT specification
|
|
8
|
+
* @param ctx - The MQTT client context
|
|
9
|
+
* @param packet - The PUBREL packet received
|
|
10
|
+
* @description
|
|
11
|
+
* When a PUBREL packet is received:
|
|
12
|
+
* 1. If there is a matching pending incoming message:
|
|
13
|
+
* - Delivers the stored message to the application
|
|
14
|
+
* - Removes the message from pending incoming store
|
|
15
|
+
* - Sends PUBCOMP packet as acknowledgement
|
|
16
|
+
* 2. If no matching message found, silently ignores
|
|
17
|
+
*/
|
|
18
|
+
export async function handlePubrel(ctx, packet) {
|
|
19
|
+
const id = packet.id;
|
|
20
|
+
if (ctx.store.pendingIncoming.has(id)) {
|
|
21
|
+
const storedPacket = ctx.store.pendingIncoming.get(id);
|
|
22
|
+
if (storedPacket) {
|
|
23
|
+
ctx.receivePublish(storedPacket);
|
|
24
|
+
ctx.store.pendingIncoming.delete(id);
|
|
25
|
+
await ctx.send({
|
|
26
|
+
type: PacketType.pubcomp,
|
|
27
|
+
id,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=handlePubrel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlePubrel.js","sourceRoot":"","sources":["../../../client/handlers/handlePubrel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAC;AAE3D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAY,EACZ,MAAoB;IAEpB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACrB,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YACjC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,GAAG,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,UAAU,CAAC,OAAO;gBACxB,EAAE;aACH,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Context } from "../context.ts";
|
|
2
|
+
import type { SubackPacket } from "../deps.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Handles SUBACK packets received from the server
|
|
5
|
+
* @param ctx - The MQTT client context
|
|
6
|
+
* @param packet - The SUBACK packet containing subscription confirmations
|
|
7
|
+
* @description
|
|
8
|
+
* - Processes SUBACK packets sent by server to confirm SUBSCRIBE requests
|
|
9
|
+
* - Removes the packet ID from pending outgoing messages
|
|
10
|
+
* - Notifies the client about granted QoS levels for each subscription
|
|
11
|
+
*/
|
|
12
|
+
export declare function handleSuback(ctx: Context, packet: SubackPacket): void;
|
|
13
|
+
//# sourceMappingURL=handleSuback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleSuback.d.ts","sourceRoot":"","sources":["../../../client/handlers/handleSuback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAIrE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handles SUBACK packets received from the server
|
|
3
|
+
* @param ctx - The MQTT client context
|
|
4
|
+
* @param packet - The SUBACK packet containing subscription confirmations
|
|
5
|
+
* @description
|
|
6
|
+
* - Processes SUBACK packets sent by server to confirm SUBSCRIBE requests
|
|
7
|
+
* - Removes the packet ID from pending outgoing messages
|
|
8
|
+
* - Notifies the client about granted QoS levels for each subscription
|
|
9
|
+
*/
|
|
10
|
+
export function handleSuback(ctx, packet) {
|
|
11
|
+
const id = packet.id;
|
|
12
|
+
ctx.store.pendingOutgoing.delete(id);
|
|
13
|
+
ctx.receiveSuback(id, packet.returnCodes);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=handleSuback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleSuback.js","sourceRoot":"","sources":["../../../client/handlers/handleSuback.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY,EAAE,MAAoB;IAC7D,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACrB,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,GAAG,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Context } from "../context.ts";
|
|
2
|
+
import type { UnsubackPacket } from "../deps.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Handles the UNSUBACK packet received from the server
|
|
5
|
+
* @param ctx - The MQTT client context
|
|
6
|
+
* @param packet - The UNSUBACK packet received from the server
|
|
7
|
+
* @description
|
|
8
|
+
* The UNSUBACK Packet is sent by the Server to the Client to confirm receipt of
|
|
9
|
+
* an UNSUBSCRIBE Packet.
|
|
10
|
+
* When received, it removes the pending outgoing request and completes the corresponding
|
|
11
|
+
* unsubscribe operation.
|
|
12
|
+
*/
|
|
13
|
+
export declare function handleUnsuback(ctx: Context, packet: UnsubackPacket): void;
|
|
14
|
+
//# sourceMappingURL=handleUnsuback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleUnsuback.d.ts","sourceRoot":"","sources":["../../../client/handlers/handleUnsuback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAIzE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handles the UNSUBACK packet received from the server
|
|
3
|
+
* @param ctx - The MQTT client context
|
|
4
|
+
* @param packet - The UNSUBACK packet received from the server
|
|
5
|
+
* @description
|
|
6
|
+
* The UNSUBACK Packet is sent by the Server to the Client to confirm receipt of
|
|
7
|
+
* an UNSUBSCRIBE Packet.
|
|
8
|
+
* When received, it removes the pending outgoing request and completes the corresponding
|
|
9
|
+
* unsubscribe operation.
|
|
10
|
+
*/
|
|
11
|
+
export function handleUnsuback(ctx, packet) {
|
|
12
|
+
const id = packet.id;
|
|
13
|
+
ctx.store.pendingOutgoing.delete(id);
|
|
14
|
+
ctx.receiveUnsuback(id);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=handleUnsuback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleUnsuback.js","sourceRoot":"","sources":["../../../client/handlers/handleUnsuback.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY,EAAE,MAAsB;IACjE,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACrB,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This module provides an MQTT Client interface see the /bin folder for examples
|
|
3
|
+
* @module
|
|
4
|
+
*/
|
|
5
|
+
export { Client, DEFAULT_URL } from "./client.ts";
|
|
6
|
+
export type { ConnectParameters, PublishParameters, SubscribeParameters, } from "./client.ts";
|
|
7
|
+
//# sourceMappingURL=mod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../client/mod.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../client/mod.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { AnyPacket, ConnackPacket, ConnectPacket, DisconnectPacket, Dup, PacketId, Payload, PubackPacket, PubcompPacket, PublishPacket, PubrecPacket, PubrelPacket, ReturnCodes, SubackPacket, SubscribePacket, Topic, UnsubackPacket, UnsubscribePacket, } from "../../mqttPacket/mod.ts";
|
|
2
|
+
export { assert } from "../../utils/mod.ts";
|
|
3
|
+
//# sourceMappingURL=deps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../../client/store/deps.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,GAAG,EACH,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,eAAe,EACf,KAAK,EACL,cAAc,EACd,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../../client/store/deps.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module memoryStore
|
|
3
|
+
*/
|
|
4
|
+
import { type PacketId } from "./deps.ts";
|
|
5
|
+
import { type IStore, type PacketStore, type PendingAckOutgoing, type pendingIncoming, type PendingOutgoing, type PendingOutgoingPackets } from "./store.ts";
|
|
6
|
+
/**
|
|
7
|
+
* In-memory implementation of the IStore interface for managing MQTT packet storage
|
|
8
|
+
*/
|
|
9
|
+
export declare class MemoryStore implements IStore {
|
|
10
|
+
/** Current packet ID counter */
|
|
11
|
+
private packetId;
|
|
12
|
+
/** Map of pending incoming packets */
|
|
13
|
+
pendingIncoming: PacketStore<pendingIncoming>;
|
|
14
|
+
/** Map of pending outgoing packets */
|
|
15
|
+
pendingOutgoing: PacketStore<PendingOutgoing>;
|
|
16
|
+
/** Map of pending acknowledgment outgoing packets */
|
|
17
|
+
pendingAckOutgoing: PacketStore<PendingAckOutgoing>;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new MemoryStore instance
|
|
20
|
+
*/
|
|
21
|
+
constructor();
|
|
22
|
+
/**
|
|
23
|
+
* Generates the next available packet ID
|
|
24
|
+
* @returns {PacketId} The next available packet ID
|
|
25
|
+
* @throws {Error} If no unused packet ID is available
|
|
26
|
+
*/
|
|
27
|
+
nextId(): PacketId;
|
|
28
|
+
/**
|
|
29
|
+
* Asynchronously yields all pending outgoing packets
|
|
30
|
+
* @yields {PendingOutgoingPackets} Pending outgoing packets
|
|
31
|
+
*/
|
|
32
|
+
pendingOutgoingPackets(): AsyncGenerator<PendingOutgoingPackets, void, unknown>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=memoryStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoryStore.d.ts","sourceRoot":"","sources":["../../../client/store/memoryStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAU,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EACL,KAAK,MAAM,EAEX,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC5B,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,WAAY,YAAW,MAAM;IACxC,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAW;IAE3B,sCAAsC;IACtC,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IAE9C,sCAAsC;IACtC,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IAE9C,qDAAqD;IACrD,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEpD;;OAEG;;IAQH;;;;OAIG;IACH,MAAM,IAAI,QAAQ;IAiBlB;;;OAGG;IACI,sBAAsB,IAAI,cAAc,CAC7C,sBAAsB,EACtB,IAAI,EACJ,OAAO,CACR;CAQF"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module memoryStore
|
|
3
|
+
*/
|
|
4
|
+
import { assert } from "./deps.js";
|
|
5
|
+
import { maxPacketId, } from "./store.js";
|
|
6
|
+
/**
|
|
7
|
+
* In-memory implementation of the IStore interface for managing MQTT packet storage
|
|
8
|
+
*/
|
|
9
|
+
export class MemoryStore {
|
|
10
|
+
/** Current packet ID counter */
|
|
11
|
+
packetId;
|
|
12
|
+
/** Map of pending incoming packets */
|
|
13
|
+
pendingIncoming;
|
|
14
|
+
/** Map of pending outgoing packets */
|
|
15
|
+
pendingOutgoing;
|
|
16
|
+
/** Map of pending acknowledgment outgoing packets */
|
|
17
|
+
pendingAckOutgoing;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new MemoryStore instance
|
|
20
|
+
*/
|
|
21
|
+
constructor() {
|
|
22
|
+
this.packetId = 0;
|
|
23
|
+
this.pendingIncoming = new Map();
|
|
24
|
+
this.pendingOutgoing = new Map();
|
|
25
|
+
this.pendingAckOutgoing = new Map();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Generates the next available packet ID
|
|
29
|
+
* @returns {PacketId} The next available packet ID
|
|
30
|
+
* @throws {Error} If no unused packet ID is available
|
|
31
|
+
*/
|
|
32
|
+
nextId() {
|
|
33
|
+
const currentId = this.packetId;
|
|
34
|
+
do {
|
|
35
|
+
this.packetId++;
|
|
36
|
+
if (this.packetId > maxPacketId) {
|
|
37
|
+
this.packetId = 1;
|
|
38
|
+
}
|
|
39
|
+
} while ((this.pendingIncoming.has(this.packetId) ||
|
|
40
|
+
this.pendingOutgoing.has(this.packetId) ||
|
|
41
|
+
this.pendingAckOutgoing.has(this.packetId)) &&
|
|
42
|
+
this.packetId !== currentId);
|
|
43
|
+
assert(this.packetId !== currentId, "No unused packetId available");
|
|
44
|
+
return this.packetId;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Asynchronously yields all pending outgoing packets
|
|
48
|
+
* @yields {PendingOutgoingPackets} Pending outgoing packets
|
|
49
|
+
*/
|
|
50
|
+
async *pendingOutgoingPackets() {
|
|
51
|
+
for (const [_id, packet] of this.pendingAckOutgoing) {
|
|
52
|
+
yield packet;
|
|
53
|
+
}
|
|
54
|
+
for (const [_id, packet] of this.pendingOutgoing) {
|
|
55
|
+
yield packet;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=memoryStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoryStore.js","sourceRoot":"","sources":["../../../client/store/memoryStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAiB,MAAM,WAAW,CAAC;AAElD,OAAO,EAEL,WAAW,GAMZ,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,OAAO,WAAW;IACtB,gCAAgC;IACxB,QAAQ,CAAW;IAE3B,sCAAsC;IACtC,eAAe,CAA+B;IAE9C,sCAAsC;IACtC,eAAe,CAA+B;IAE9C,qDAAqD;IACrD,kBAAkB,CAAkC;IAEpD;;OAEG;IACH;QACE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,GAAG,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,QAAQ,GAAG,WAAW,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,QACC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ,KAAK,SAAS,EAC3B;QACF,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,8BAA8B,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAC,sBAAsB;QAK3B,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACpD,MAAM,MAAM,CAAC;QACf,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACjD,MAAM,MAAM,CAAC;QACf,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module MQTT Store Types
|
|
3
|
+
*/
|
|
4
|
+
import type { PacketId, PublishPacket, PubrelPacket, SubscribePacket, UnsubscribePacket } from "./deps.ts";
|
|
5
|
+
/**
|
|
6
|
+
* Maximum value for MQTT packet IDs (65535)
|
|
7
|
+
*/
|
|
8
|
+
export declare const maxPacketId = 65535;
|
|
9
|
+
/**
|
|
10
|
+
* Generic type for storing MQTT packets by their packet ID
|
|
11
|
+
* @template T The packet type to store
|
|
12
|
+
*/
|
|
13
|
+
export type PacketStore<T> = Map<PacketId, T>;
|
|
14
|
+
/**
|
|
15
|
+
* Type for incoming PUBLISH packets that are pending processing
|
|
16
|
+
*/
|
|
17
|
+
export type pendingIncoming = PublishPacket;
|
|
18
|
+
/**
|
|
19
|
+
* Type for outgoing packets (PUBLISH, SUBSCRIBE, UNSUBSCRIBE) that are pending sending
|
|
20
|
+
*/
|
|
21
|
+
export type PendingOutgoing = PublishPacket | SubscribePacket | UnsubscribePacket;
|
|
22
|
+
/**
|
|
23
|
+
* Type for outgoing PUBREL packets that are pending acknowledgement
|
|
24
|
+
*/
|
|
25
|
+
export type PendingAckOutgoing = PubrelPacket;
|
|
26
|
+
/**
|
|
27
|
+
* Union type of all pending outgoing packet types
|
|
28
|
+
*/
|
|
29
|
+
export type PendingOutgoingPackets = PendingAckOutgoing | PendingOutgoing;
|
|
30
|
+
/**
|
|
31
|
+
* Interface defining the storage requirements for MQTT packet state management
|
|
32
|
+
*/
|
|
33
|
+
export interface IStore {
|
|
34
|
+
/** Store for incoming packets pending processing */
|
|
35
|
+
pendingIncoming: PacketStore<pendingIncoming>;
|
|
36
|
+
/** Store for outgoing packets pending sending */
|
|
37
|
+
pendingOutgoing: PacketStore<PendingOutgoing>;
|
|
38
|
+
/** Store for outgoing packets pending acknowledgement */
|
|
39
|
+
pendingAckOutgoing: PacketStore<PendingAckOutgoing>;
|
|
40
|
+
/**
|
|
41
|
+
* Generator that yields pending outgoing packets
|
|
42
|
+
* @returns AsyncGenerator that yields PendingOutgoing or PubrelPacket packets
|
|
43
|
+
*/
|
|
44
|
+
pendingOutgoingPackets(): AsyncGenerator<PendingOutgoing | PubrelPacket, void, unknown>;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../client/store/store.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,eAAe,EACf,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB;;GAEG;AACH,eAAO,MAAM,WAAW,QAAS,CAAC;AAElC;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,eAAe,GACf,iBAAiB,CAAC;AAEtB;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG,eAAe,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,oDAAoD;IACpD,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IAE9C,iDAAiD;IACjD,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IAE9C,yDAAyD;IACzD,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEpD;;;OAGG;IACH,sBAAsB,IAAI,cAAc,CACtC,eAAe,GAAG,YAAY,EAC9B,IAAI,EACJ,OAAO,CACR,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../client/store/store.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type AnyPacket } from "../mqttPacket/mod.ts";
|
|
2
|
+
import type { SockConn } from "../socket/socket.ts";
|
|
3
|
+
import { Conn } from "../socket/socket.ts";
|
|
4
|
+
export declare const MqttConnError: {
|
|
5
|
+
readonly invalidPacket: "Invalid Packet";
|
|
6
|
+
readonly packetTooLarge: "Packet too large";
|
|
7
|
+
readonly UnexpectedEof: "Unexpected EOF";
|
|
8
|
+
};
|
|
9
|
+
export interface IMqttConn extends AsyncIterable<AnyPacket> {
|
|
10
|
+
readonly conn: Conn;
|
|
11
|
+
readonly isClosed: boolean;
|
|
12
|
+
readonly reason: string | undefined;
|
|
13
|
+
[Symbol.asyncIterator](): AsyncIterableIterator<AnyPacket>;
|
|
14
|
+
send(data: AnyPacket): Promise<void>;
|
|
15
|
+
close(): void;
|
|
16
|
+
}
|
|
17
|
+
/** Read MQTT packet
|
|
18
|
+
* @throws `Error` if packet is invalid
|
|
19
|
+
*/
|
|
20
|
+
export declare function readPacket(conn: Conn, maxPacketSize: number): Promise<AnyPacket>;
|
|
21
|
+
export declare class MqttConn implements IMqttConn {
|
|
22
|
+
readonly conn: Conn;
|
|
23
|
+
private readonly maxPacketSize;
|
|
24
|
+
private _reason;
|
|
25
|
+
private _isClosed;
|
|
26
|
+
constructor({ conn, maxPacketSize, }: {
|
|
27
|
+
conn: SockConn;
|
|
28
|
+
maxPacketSize?: number;
|
|
29
|
+
});
|
|
30
|
+
get reason(): string | undefined;
|
|
31
|
+
[Symbol.asyncIterator](): AsyncIterableIterator<AnyPacket>;
|
|
32
|
+
send(data: AnyPacket): Promise<void>;
|
|
33
|
+
get isClosed(): boolean;
|
|
34
|
+
close(): void;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=mqttConn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mqttConn.d.ts","sourceRoot":"","sources":["../../mqttConn/mqttConn.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAKf,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX,MAAM,WAAW,SAAU,SAAQ,aAAa,CAAC,SAAS,CAAC;IACzD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,KAAK,IAAI,IAAI,CAAC;CACf;AAoBD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,SAAS,CAAC,CAmBpB;AAED,qBAAa,QAAS,YAAW,SAAS;IACxC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,SAAS,CAAS;gBAEd,EACV,IAAI,EACJ,aAAa,GACd,EAAE;QACD,IAAI,EAAE,QAAQ,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB;IAKD,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAEM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,SAAS,CAAC;IAkB3D,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1C,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,KAAK,IAAI,IAAI;CAUd"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { decodePayload, encode, getLengthDecoder, } from "../mqttPacket/mod.js";
|
|
2
|
+
import { assert } from "../utils/mod.js";
|
|
3
|
+
import { Conn } from "../socket/socket.js";
|
|
4
|
+
export const MqttConnError = {
|
|
5
|
+
invalidPacket: "Invalid Packet",
|
|
6
|
+
packetTooLarge: "Packet too large",
|
|
7
|
+
UnexpectedEof: "Unexpected EOF",
|
|
8
|
+
};
|
|
9
|
+
async function readByte(conn) {
|
|
10
|
+
const buf = new Uint8Array(1);
|
|
11
|
+
const bytesRead = await conn.read(buf);
|
|
12
|
+
assert(bytesRead !== null, MqttConnError.UnexpectedEof);
|
|
13
|
+
assert(bytesRead !== 0, MqttConnError.UnexpectedEof);
|
|
14
|
+
return buf[0];
|
|
15
|
+
}
|
|
16
|
+
async function readFull(conn, buf) {
|
|
17
|
+
let bytesRead = 0;
|
|
18
|
+
while (bytesRead < buf.length) {
|
|
19
|
+
const read = await conn.read(buf.subarray(bytesRead));
|
|
20
|
+
assert(read !== null, MqttConnError.UnexpectedEof);
|
|
21
|
+
assert(read !== 0, MqttConnError.UnexpectedEof);
|
|
22
|
+
bytesRead += read;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** Read MQTT packet
|
|
26
|
+
* @throws `Error` if packet is invalid
|
|
27
|
+
*/
|
|
28
|
+
export async function readPacket(conn, maxPacketSize) {
|
|
29
|
+
// fixed header is 1 byte of type + flags
|
|
30
|
+
// + a maximum of 4 bytes to encode the remaining length
|
|
31
|
+
const decodeLength = getLengthDecoder();
|
|
32
|
+
const firstByte = await readByte(conn);
|
|
33
|
+
let result;
|
|
34
|
+
do {
|
|
35
|
+
const byte = await readByte(conn);
|
|
36
|
+
result = decodeLength(byte);
|
|
37
|
+
} while (!result.done);
|
|
38
|
+
const remainingLength = result.length;
|
|
39
|
+
assert(remainingLength < maxPacketSize - 1, MqttConnError.packetTooLarge);
|
|
40
|
+
const packetBuf = new Uint8Array(remainingLength);
|
|
41
|
+
// read the rest of the packet
|
|
42
|
+
await readFull(conn, packetBuf);
|
|
43
|
+
const packet = decodePayload(firstByte, packetBuf);
|
|
44
|
+
assert(packet !== null, MqttConnError.UnexpectedEof);
|
|
45
|
+
return packet;
|
|
46
|
+
}
|
|
47
|
+
export class MqttConn {
|
|
48
|
+
conn;
|
|
49
|
+
maxPacketSize;
|
|
50
|
+
_reason = undefined;
|
|
51
|
+
_isClosed = false;
|
|
52
|
+
constructor({ conn, maxPacketSize, }) {
|
|
53
|
+
this.conn = new Conn(conn);
|
|
54
|
+
this.maxPacketSize = maxPacketSize || 2 * 1024 * 1024;
|
|
55
|
+
}
|
|
56
|
+
get reason() {
|
|
57
|
+
return this._reason;
|
|
58
|
+
}
|
|
59
|
+
async *[Symbol.asyncIterator]() {
|
|
60
|
+
while (!this._isClosed) {
|
|
61
|
+
try {
|
|
62
|
+
yield await readPacket(this.conn, this.maxPacketSize);
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
if (err instanceof Error) {
|
|
66
|
+
if (err.name === "PartialReadError") {
|
|
67
|
+
err.message = MqttConnError.UnexpectedEof;
|
|
68
|
+
}
|
|
69
|
+
this._reason = err.message;
|
|
70
|
+
}
|
|
71
|
+
// packet too large, malformed packet or connection closed
|
|
72
|
+
this.close();
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async send(data) {
|
|
78
|
+
try {
|
|
79
|
+
await this.conn.write(encode(data));
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
if (err instanceof Error) {
|
|
83
|
+
this._reason = err.message;
|
|
84
|
+
}
|
|
85
|
+
this.close();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
get isClosed() {
|
|
89
|
+
return this._isClosed;
|
|
90
|
+
}
|
|
91
|
+
close() {
|
|
92
|
+
if (this.isClosed)
|
|
93
|
+
return;
|
|
94
|
+
try {
|
|
95
|
+
this.conn.close();
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
console.error(e);
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
this._isClosed = true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=mqttConn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mqttConn.js","sourceRoot":"","sources":["../../mqttConn/mqttConn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Possible MQTT authentication results
|
|
3
|
+
*/
|
|
4
|
+
export declare const AuthenticationResult: {
|
|
5
|
+
readonly ok: 0;
|
|
6
|
+
readonly unacceptableProtocol: 1;
|
|
7
|
+
readonly rejectedUsername: 2;
|
|
8
|
+
readonly serverUnavailable: 3;
|
|
9
|
+
readonly badUsernameOrPassword: 4;
|
|
10
|
+
readonly notAuthorized: 5;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Reverse lookup for AuthenticationResult
|
|
14
|
+
*/
|
|
15
|
+
export declare const AuthenticationResultByNumber: Record<number, string>;
|
|
16
|
+
//# sourceMappingURL=AuthenticationResult.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthenticationResult.d.ts","sourceRoot":"","sources":["../../mqttPacket/AuthenticationResult.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;CAOvB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG7D,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Possible MQTT authentication results
|
|
3
|
+
*/
|
|
4
|
+
export const AuthenticationResult = {
|
|
5
|
+
ok: 0,
|
|
6
|
+
unacceptableProtocol: 1,
|
|
7
|
+
rejectedUsername: 2,
|
|
8
|
+
serverUnavailable: 3,
|
|
9
|
+
badUsernameOrPassword: 4,
|
|
10
|
+
notAuthorized: 5,
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Reverse lookup for AuthenticationResult
|
|
14
|
+
*/
|
|
15
|
+
export const AuthenticationResultByNumber = Object
|
|
16
|
+
.fromEntries(Object.entries(AuthenticationResult).map(([k, v]) => [v, k]));
|
|
17
|
+
//# sourceMappingURL=AuthenticationResult.js.map
|