@seriousme/opifex 1.7.0 → 1.8.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 +17 -2
- 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 +79 -0
- package/dist/mqttConn/mqttConn.d.ts.map +1 -0
- package/dist/mqttConn/mqttConn.js +151 -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 +81 -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/examples/tcpServer.test.ts +149 -0
- package/mqttConn/mqttConn.ts +58 -2
- package/package.json +14 -10
- package/persistence/persistence.ts +66 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../mqttPacket/publish.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAgBlE,MAAM,CAAC,MAAM,OAAO,GAGhB;IACF,MAAM,CAAC,MAAqB;QAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QAE5B,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,YAAY,CAAC,yCAAyC,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,MAAkB,EAAE,KAAa;QACtC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,YAAY,CAAC,oCAAoC,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAEjC,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC1B,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAEvC,qDAAqD;QAErD,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,OAAO;YACxB,KAAK;YACL,OAAO;YACP,GAAG;YACH,MAAM;YACN,GAAG;YACH,EAAE;SACH,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PacketId, TPacketType } from "./types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* PubrelPacket is the packet sent by the Server to the Client in response to a
|
|
4
|
+
* PubrecPacket. It is the third packet of the QoS 2 protocol exchange.
|
|
5
|
+
*/
|
|
6
|
+
export type PubrelPacket = {
|
|
7
|
+
type: TPacketType;
|
|
8
|
+
id: PacketId;
|
|
9
|
+
};
|
|
10
|
+
export declare const pubrel: {
|
|
11
|
+
encode(packet: PubrelPacket): {
|
|
12
|
+
flags: number;
|
|
13
|
+
bytes: number[];
|
|
14
|
+
};
|
|
15
|
+
decode(buffer: Uint8Array): PubrelPacket;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=pubrel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pubrel.d.ts","sourceRoot":"","sources":["../../mqttPacket/pubrel.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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { PacketType } from "./PacketType.js";
|
|
2
|
+
import { Decoder } from "./decoder.js";
|
|
3
|
+
import { Encoder } from "./encoder.js";
|
|
4
|
+
export const pubrel = {
|
|
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.pubrel,
|
|
17
|
+
id,
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=pubrel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pubrel.js","sourceRoot":"","sources":["../../mqttPacket/pubrel.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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { PacketId, ReturnCodes, TPacketType } from "./types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* SubackPacket is sent by the server to the client to confirm receipt and
|
|
4
|
+
* processing of a SubscribePacket.
|
|
5
|
+
*/
|
|
6
|
+
export type SubackPacket = {
|
|
7
|
+
type: TPacketType;
|
|
8
|
+
id: PacketId;
|
|
9
|
+
returnCodes: ReturnCodes;
|
|
10
|
+
};
|
|
11
|
+
export declare const suback: {
|
|
12
|
+
encode(packet: SubackPacket): {
|
|
13
|
+
flags: number;
|
|
14
|
+
bytes: number[];
|
|
15
|
+
};
|
|
16
|
+
decode(buffer: Uint8Array): SubackPacket;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=suback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suback.d.ts","sourceRoot":"","sources":["../../mqttPacket/suback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKrE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,QAAQ,CAAC;IACb,WAAW,EAAE,WAAW,CAAC;CAC1B,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;CA8B1C,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { PacketType } from "./PacketType.js";
|
|
2
|
+
import { Encoder } from "./encoder.js";
|
|
3
|
+
import { Decoder } from "./decoder.js";
|
|
4
|
+
export const suback = {
|
|
5
|
+
encode(packet) {
|
|
6
|
+
const flags = 0;
|
|
7
|
+
const encoder = new Encoder();
|
|
8
|
+
encoder.setInt16(packet.id);
|
|
9
|
+
encoder.setRemainder(packet.returnCodes);
|
|
10
|
+
return {
|
|
11
|
+
flags,
|
|
12
|
+
bytes: encoder.done(),
|
|
13
|
+
};
|
|
14
|
+
},
|
|
15
|
+
decode(buffer) {
|
|
16
|
+
const decoder = new Decoder(buffer);
|
|
17
|
+
const id = decoder.getInt16();
|
|
18
|
+
const payload = decoder.getRemainder();
|
|
19
|
+
const returnCodes = [];
|
|
20
|
+
for (const code of payload) {
|
|
21
|
+
returnCodes.push(code);
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
type: PacketType.suback,
|
|
25
|
+
id,
|
|
26
|
+
returnCodes,
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=suback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suback.js","sourceRoot":"","sources":["../../mqttPacket/suback.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;AAYvC,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,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEzC,OAAO;YACL,KAAK;YACL,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE;SACtB,CAAC;IACJ,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,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,EAAE,CAAC;QAEvB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,MAAM;YACvB,EAAE;YACF,WAAW;SACZ,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { PacketId, QoS, TopicFilter, TPacketType } from "./types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* SubscribePacket is sent from client to server to subscribe to topics
|
|
4
|
+
*/
|
|
5
|
+
export type SubscribePacket = {
|
|
6
|
+
type: TPacketType;
|
|
7
|
+
id: PacketId;
|
|
8
|
+
subscriptions: Subscription[];
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* The topic to subscribe to and the associated QoS
|
|
12
|
+
*/
|
|
13
|
+
export type Subscription = {
|
|
14
|
+
topicFilter: TopicFilter;
|
|
15
|
+
qos: QoS;
|
|
16
|
+
};
|
|
17
|
+
export declare const subscribe: {
|
|
18
|
+
encode(packet: SubscribePacket): {
|
|
19
|
+
flags: number;
|
|
20
|
+
bytes: number[];
|
|
21
|
+
};
|
|
22
|
+
decode(buffer: Uint8Array, flags: number): SubscribePacket;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=subscribe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../mqttPacket/subscribe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAM1E;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,QAAQ,CAAC;IACb,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,GAAG,EAAE,GAAG,CAAC;CACV,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE;IACtB,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACpE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC;CAoD5D,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { PacketType } from "./PacketType.js";
|
|
2
|
+
import { BitMask } from "./BitMask.js";
|
|
3
|
+
import { Encoder } from "./encoder.js";
|
|
4
|
+
import { booleanFlag, Decoder, DecoderError } from "./decoder.js";
|
|
5
|
+
export const subscribe = {
|
|
6
|
+
encode(packet) {
|
|
7
|
+
// Bits 3,2,1 and 0 of the fixed header of the SUBSCRIBE Control Packet are reserved and
|
|
8
|
+
// MUST be set to 0,0,1 and 0 respectively. The Server MUST treat any other value as
|
|
9
|
+
// malformed and close the Network Connection [MQTT-3.8.1-1].
|
|
10
|
+
const flags = 0b0010;
|
|
11
|
+
const encoder = new Encoder();
|
|
12
|
+
encoder.setInt16(packet.id);
|
|
13
|
+
for (const sub of packet.subscriptions) {
|
|
14
|
+
encoder.setTopic(sub.topicFilter);
|
|
15
|
+
encoder.setByte(sub.qos);
|
|
16
|
+
}
|
|
17
|
+
return { flags, bytes: encoder.done() };
|
|
18
|
+
},
|
|
19
|
+
decode(buffer, flags) {
|
|
20
|
+
// Bits 3,2,1 and 0 of the fixed header of the SUBSCRIBE Control Packet are reserved and
|
|
21
|
+
// MUST be set to 0,0,1 and 0 respectively. The Server MUST treat any other value as
|
|
22
|
+
// malformed and close the Network Connection [MQTT-3.8.1-1].
|
|
23
|
+
if (!booleanFlag(flags, BitMask.bit1)) {
|
|
24
|
+
throw new DecoderError("Invalid header");
|
|
25
|
+
}
|
|
26
|
+
const decoder = new Decoder(buffer);
|
|
27
|
+
const id = decoder.getInt16();
|
|
28
|
+
const subscriptions = [];
|
|
29
|
+
// The payload of a SUBSCRIBE packet MUST contain at least one Topic Filter / QoS pair.
|
|
30
|
+
// A SUBSCRIBE packet with no payload is a protocol violation [MQTT-3.8.3-3].
|
|
31
|
+
do {
|
|
32
|
+
const topicFilter = decoder.getTopicFilter();
|
|
33
|
+
const qos = decoder.getByte();
|
|
34
|
+
if (qos !== 0 && qos !== 1 && qos !== 2) {
|
|
35
|
+
throw new DecoderError("Invalid qos");
|
|
36
|
+
}
|
|
37
|
+
if (qos > 0 && id === 0) {
|
|
38
|
+
throw new DecoderError("Invalid packet identifier");
|
|
39
|
+
}
|
|
40
|
+
subscriptions.push({
|
|
41
|
+
topicFilter: topicFilter,
|
|
42
|
+
qos,
|
|
43
|
+
});
|
|
44
|
+
} while (!decoder.atEnd());
|
|
45
|
+
decoder.done();
|
|
46
|
+
return {
|
|
47
|
+
type: PacketType.subscribe,
|
|
48
|
+
id,
|
|
49
|
+
subscriptions,
|
|
50
|
+
};
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=subscribe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../mqttPacket/subscribe.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;AACvC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAmBlE,MAAM,CAAC,MAAM,SAAS,GAGlB;IACF,MAAM,CAAC,MAAuB;QAC5B,wFAAwF;QACxF,oFAAoF;QACpF,6DAA6D;QAC7D,MAAM,KAAK,GAAG,MAAM,CAAC;QAErB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,MAAkB,EAAE,KAAa;QACtC,wFAAwF;QACxF,oFAAoF;QACpF,6DAA6D;QAC7D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAE9B,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,uFAAuF;QACvF,6EAA6E;QAC7E,GAAG,CAAC;YACF,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,YAAY,CAAC,2BAA2B,CAAC,CAAC;YACtD,CAAC;YACD,aAAa,CAAC,IAAI,CAAC;gBACjB,WAAW,EAAE,WAAW;gBACxB,GAAG;aACJ,CAAC,CAAC;QACL,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;QAC3B,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,SAAS;YAC1B,EAAE;YACF,aAAa;SACd,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { BitMask } from "./BitMask.ts";
|
|
2
|
+
import type { PacketType } from "./PacketType.ts";
|
|
3
|
+
import type { AuthenticationResult } from "./AuthenticationResult.ts";
|
|
4
|
+
/**
|
|
5
|
+
* Type to limit bit mask to valid values
|
|
6
|
+
*/
|
|
7
|
+
export type TBitMask = typeof BitMask[keyof typeof BitMask];
|
|
8
|
+
/**
|
|
9
|
+
* Type to limit packet type to valid values
|
|
10
|
+
*/
|
|
11
|
+
export type TPacketType = typeof PacketType[keyof typeof PacketType];
|
|
12
|
+
/**
|
|
13
|
+
* Type to limit authentication result to valid values
|
|
14
|
+
*/
|
|
15
|
+
export type TAuthenticationResult = typeof AuthenticationResult[keyof typeof AuthenticationResult];
|
|
16
|
+
/**
|
|
17
|
+
* Quality of Service level
|
|
18
|
+
*/
|
|
19
|
+
export type QoS = 0 | 1 | 2;
|
|
20
|
+
/**
|
|
21
|
+
* Packet payload
|
|
22
|
+
*/
|
|
23
|
+
export type Payload = Uint8Array;
|
|
24
|
+
/**
|
|
25
|
+
* The MQTT topic to publish to
|
|
26
|
+
*/
|
|
27
|
+
export type Topic = string;
|
|
28
|
+
/**
|
|
29
|
+
* The MQTT topic to subscribe/unsubscribe to
|
|
30
|
+
*/
|
|
31
|
+
export type TopicFilter = string;
|
|
32
|
+
/**
|
|
33
|
+
* Duplicate delivery flag
|
|
34
|
+
*/
|
|
35
|
+
export type Dup = boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Packet identifier, unique per client session
|
|
38
|
+
*/
|
|
39
|
+
export type PacketId = number;
|
|
40
|
+
/**
|
|
41
|
+
* Return codes on to describe result of subscribe operation
|
|
42
|
+
*/
|
|
43
|
+
export type ReturnCodes = number[];
|
|
44
|
+
/**
|
|
45
|
+
* Client identifier that uniquely identifies a client
|
|
46
|
+
*/
|
|
47
|
+
export type ClientId = string;
|
|
48
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../mqttPacket/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,OAAO,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAC5D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC/B,OAAO,oBAAoB,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE5B;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAE3B;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../mqttPacket/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PacketId, TPacketType } from "./types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* UnsubackPacket is sent by the server to the client to confirm receipt
|
|
4
|
+
* of an UnsubscribePacket.
|
|
5
|
+
*/
|
|
6
|
+
export type UnsubackPacket = {
|
|
7
|
+
type: TPacketType;
|
|
8
|
+
id: PacketId;
|
|
9
|
+
};
|
|
10
|
+
export declare const unsuback: {
|
|
11
|
+
encode(packet: UnsubackPacket): {
|
|
12
|
+
flags: number;
|
|
13
|
+
bytes: number[];
|
|
14
|
+
};
|
|
15
|
+
decode(buffer: Uint8Array): UnsubackPacket;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=unsuback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsuback.d.ts","sourceRoot":"","sources":["../../mqttPacket/unsuback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKxD;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,QAAQ,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE;IACrB,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACnE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC;CAkB5C,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { PacketType } from "./PacketType.js";
|
|
2
|
+
import { Decoder } from "./decoder.js";
|
|
3
|
+
import { Encoder } from "./encoder.js";
|
|
4
|
+
export const unsuback = {
|
|
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.unsuback,
|
|
17
|
+
id,
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=unsuback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsuback.js","sourceRoot":"","sources":["../../mqttPacket/unsuback.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,QAAQ,GAGjB;IACF,MAAM,CAAC,MAAsB;QAC3B,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,QAAQ;YACzB,EAAE;SACH,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PacketId, TopicFilter, TPacketType } from "./types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* UnsubscribePacket is sent from client to server to unsubscribe from topics
|
|
4
|
+
*/
|
|
5
|
+
export type UnsubscribePacket = {
|
|
6
|
+
type: TPacketType;
|
|
7
|
+
id: PacketId;
|
|
8
|
+
topicFilters: TopicFilter[];
|
|
9
|
+
};
|
|
10
|
+
export declare const unsubscribe: {
|
|
11
|
+
encode(packet: UnsubscribePacket): {
|
|
12
|
+
flags: number;
|
|
13
|
+
bytes: number[];
|
|
14
|
+
};
|
|
15
|
+
decode(buffer: Uint8Array, flags: number): UnsubscribePacket;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=unsubscribe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsubscribe.d.ts","sourceRoot":"","sources":["../../mqttPacket/unsubscribe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAS,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAM5E;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,QAAQ,CAAC;IACb,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE;IACxB,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACtE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAC;CAoC9D,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { PacketType } from "./PacketType.js";
|
|
2
|
+
import { BitMask } from "./BitMask.js";
|
|
3
|
+
import { Encoder } from "./encoder.js";
|
|
4
|
+
import { booleanFlag, Decoder, DecoderError } from "./decoder.js";
|
|
5
|
+
export const unsubscribe = {
|
|
6
|
+
encode(packet) {
|
|
7
|
+
// Bits 3,2,1 and 0 of the fixed header of the UNSUBSCRIBE Control Packet are reserved and
|
|
8
|
+
// MUST be set to 0,0,1 and 0 respectively. The Server MUST treat any other value as
|
|
9
|
+
// malformed and close the Network Connection [MQTT-3.10.1-1].
|
|
10
|
+
const flags = 0b0010;
|
|
11
|
+
const encoder = new Encoder();
|
|
12
|
+
encoder.setInt16(packet.id);
|
|
13
|
+
for (const topicFilter of packet.topicFilters) {
|
|
14
|
+
encoder.setTopicFilter(topicFilter);
|
|
15
|
+
}
|
|
16
|
+
return { flags, bytes: encoder.done() };
|
|
17
|
+
},
|
|
18
|
+
decode(buffer, flags) {
|
|
19
|
+
if (!booleanFlag(flags, BitMask.bit1)) {
|
|
20
|
+
throw new DecoderError("Invalid header");
|
|
21
|
+
}
|
|
22
|
+
const decoder = new Decoder(buffer);
|
|
23
|
+
const id = decoder.getInt16();
|
|
24
|
+
const topicFilters = [];
|
|
25
|
+
do {
|
|
26
|
+
const topicFilter = decoder.getTopicFilter();
|
|
27
|
+
topicFilters.push(topicFilter);
|
|
28
|
+
} while (!decoder.atEnd());
|
|
29
|
+
decoder.done();
|
|
30
|
+
return {
|
|
31
|
+
type: PacketType.unsubscribe,
|
|
32
|
+
id,
|
|
33
|
+
topicFilters,
|
|
34
|
+
};
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=unsubscribe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsubscribe.js","sourceRoot":"","sources":["../../mqttPacket/unsubscribe.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;AACvC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAWlE,MAAM,CAAC,MAAM,WAAW,GAGpB;IACF,MAAM,CAAC,MAAyB;QAC9B,0FAA0F;QAC1F,oFAAoF;QACpF,8DAA8D;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC;QAErB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YAC9C,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,MAAkB,EAAE,KAAa;QACtC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAE9B,MAAM,YAAY,GAAY,EAAE,CAAC;QACjC,GAAG,CAAC;YACF,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YAC7C,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;QAC3B,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,WAAW;YAC5B,EAAE;YACF,YAAY;SACb,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Topic, TopicFilter } from "./types.ts";
|
|
2
|
+
export declare function invalidUTF8(value: string): boolean;
|
|
3
|
+
export declare function invalidTopic(value: Topic): boolean;
|
|
4
|
+
export declare function invalidTopicFilter(value: TopicFilter): boolean;
|
|
5
|
+
//# sourceMappingURL=validators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../mqttPacket/validators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AASrD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAElD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE9D"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// deno-lint-ignore no-control-regex
|
|
2
|
+
const invalidUTF8regEx = new RegExp(/\x00|\uFFFD/);
|
|
3
|
+
// deno-lint-ignore no-control-regex
|
|
4
|
+
const invalidTopicRegEx = new RegExp(/^$|\+|#|\x00|\uFFFD/);
|
|
5
|
+
// deno-lint-ignore no-control-regex
|
|
6
|
+
const invalidTopicFilterRegEx = new RegExp(/^$|#.|[^\/]\+|\+[^\/]|\x00|\uFFFD/);
|
|
7
|
+
export function invalidUTF8(value) {
|
|
8
|
+
return invalidUTF8regEx.test(value);
|
|
9
|
+
}
|
|
10
|
+
export function invalidTopic(value) {
|
|
11
|
+
return invalidTopicRegEx.test(value);
|
|
12
|
+
}
|
|
13
|
+
export function invalidTopicFilter(value) {
|
|
14
|
+
return invalidTopicFilterRegEx.test(value);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../mqttPacket/validators.ts"],"names":[],"mappings":"AAEA,oCAAoC;AACpC,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;AACnD,oCAAoC;AACpC,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC5D,oCAAoC;AACpC,MAAM,uBAAuB,GAAG,IAAI,MAAM,CAAC,mCAAmC,CAAC,CAAC;AAEhF,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAkB;IACnD,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Client } from "../client/client.ts";
|
|
2
|
+
import type { SockConn } from "../socket/socket.ts";
|
|
3
|
+
/**
|
|
4
|
+
* @function getFileData
|
|
5
|
+
* @param filename
|
|
6
|
+
* @returns Promise
|
|
7
|
+
*
|
|
8
|
+
* Fetches data from a file and returns it as a string
|
|
9
|
+
* @example
|
|
10
|
+
* const data = await getFileData("data.txt");
|
|
11
|
+
*/
|
|
12
|
+
export declare function getFileData(filename: string | undefined): Promise<string | undefined>;
|
|
13
|
+
export declare class TcpClient extends Client {
|
|
14
|
+
protected connectMQTT(hostname: string, port?: number): Promise<SockConn>;
|
|
15
|
+
protected connectMQTTS(hostname: string, port?: number, ca?: string[], cert?: string, key?: string): Promise<SockConn>;
|
|
16
|
+
protected createConn(protocol: string, hostname: string, port?: number, caCerts?: string[]): Promise<SockConn>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=tcpClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tcpClient.d.ts","sourceRoot":"","sources":["../../node/tcpClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAK7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,+BAS7D;AAQD,qBAAa,SAAU,SAAQ,MAAM;IACnC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,SAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAiBvE,SAAS,CAAC,YAAY,CACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,SAAO,EACX,EAAE,CAAC,EAAE,MAAM,EAAE,EACb,IAAI,CAAC,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,QAAQ,CAAC;cAqBD,UAAU,CAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,QAAQ,CAAC;CAWrB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* this a NodeJS specific implementation of TCP client sockets
|
|
3
|
+
* it extends the platform agnostic Client class
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import { Client } from "../client/client.js";
|
|
7
|
+
import { logger } from "../client/deps.js";
|
|
8
|
+
import { readFile } from "node:fs/promises";
|
|
9
|
+
import { createConnection } from "node:net";
|
|
10
|
+
import * as tls from "node:tls";
|
|
11
|
+
import { wrapNodeSocket } from "./wrapNodeSocket.js";
|
|
12
|
+
/**
|
|
13
|
+
* @function getFileData
|
|
14
|
+
* @param filename
|
|
15
|
+
* @returns Promise
|
|
16
|
+
*
|
|
17
|
+
* Fetches data from a file and returns it as a string
|
|
18
|
+
* @example
|
|
19
|
+
* const data = await getFileData("data.txt");
|
|
20
|
+
*/
|
|
21
|
+
export async function getFileData(filename) {
|
|
22
|
+
if (!filename) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const data = await readFile(filename, { encoding: "utf-8" });
|
|
26
|
+
if (data === "") {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
return data;
|
|
30
|
+
}
|
|
31
|
+
/*
|
|
32
|
+
* TCPclient extends the Client class to provide TCP based clients
|
|
33
|
+
* it is used by the MQTTclient to connect to the broker
|
|
34
|
+
* see mqtt.ts in the /bin folder as an example
|
|
35
|
+
*/
|
|
36
|
+
export class TcpClient extends Client {
|
|
37
|
+
connectMQTT(hostname, port = 1883) {
|
|
38
|
+
logger.debug({ hostname, port });
|
|
39
|
+
return new Promise((resolve, reject) => {
|
|
40
|
+
const socket = createConnection({ port, host: hostname }, () => {
|
|
41
|
+
logger.debug("Connected to server");
|
|
42
|
+
resolve(wrapNodeSocket(socket));
|
|
43
|
+
});
|
|
44
|
+
socket.once("error", (err) => {
|
|
45
|
+
logger.debug("Connection failed: ", err);
|
|
46
|
+
reject(err);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
connectMQTTS(hostname, port = 8883, ca, cert, key) {
|
|
51
|
+
const opts = {
|
|
52
|
+
host: hostname,
|
|
53
|
+
port,
|
|
54
|
+
secureContext: (ca || key || cert)
|
|
55
|
+
? tls.createSecureContext({ ca, cert, key })
|
|
56
|
+
: undefined,
|
|
57
|
+
};
|
|
58
|
+
logger.debug({ hostname, port, ca, cert });
|
|
59
|
+
return new Promise((resolve, reject) => {
|
|
60
|
+
const socket = tls.connect(opts, () => {
|
|
61
|
+
logger.debug("Connected to server");
|
|
62
|
+
resolve(wrapNodeSocket(socket));
|
|
63
|
+
});
|
|
64
|
+
socket.once("error", (err) => {
|
|
65
|
+
logger.debug("Connection failed", err);
|
|
66
|
+
reject(err);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
createConn(protocol, hostname, port, caCerts) {
|
|
71
|
+
// if you need to support alternative connection types just
|
|
72
|
+
// overload this method in your subclass
|
|
73
|
+
if (protocol === "mqtts:") {
|
|
74
|
+
return this.connectMQTTS(hostname, port, caCerts);
|
|
75
|
+
}
|
|
76
|
+
if (protocol === "mqtt:") {
|
|
77
|
+
return this.connectMQTT(hostname, port);
|
|
78
|
+
}
|
|
79
|
+
throw `Unsupported protocol: ${protocol}`;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=tcpClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tcpClient.js","sourceRoot":"","sources":["../../node/tcpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { MqttServerOptions } from "../server/mod.ts";
|
|
2
|
+
type ServerOptions = {
|
|
3
|
+
hostname?: string;
|
|
4
|
+
port?: number;
|
|
5
|
+
};
|
|
6
|
+
export declare class TcpServer {
|
|
7
|
+
private mqttServer;
|
|
8
|
+
private server?;
|
|
9
|
+
private serverOptions;
|
|
10
|
+
constructor(serverOptions: ServerOptions, mqttOptions: MqttServerOptions);
|
|
11
|
+
start(): Promise<void>;
|
|
12
|
+
stop(): void;
|
|
13
|
+
get port(): number | undefined;
|
|
14
|
+
get address(): string | undefined;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=tcpServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tcpServer.d.ts","sourceRoot":"","sources":["../../node/tcpServer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI1D,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAKF,qBAAa,SAAS;IACpB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,aAAa,CAAC;gBACV,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB;IAKlE,KAAK;IAaX,IAAI;IAIJ,IAAI,IAAI,uBAMP;IAED,IAAI,OAAO,uBAaV;CACF"}
|