@seriousme/opifex 1.11.3 → 2.1.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 +99 -40
- package/bin/conformanceServer.ts +45 -13
- package/bin/demoServer.ts +38 -13
- package/bin/mqtt.ts +2 -2
- package/client/ConnectionState.ts +3 -1
- package/client/client.ts +88 -47
- package/client/context.ts +79 -27
- package/client/deps.ts +10 -3
- package/client/handlers/handleAuth.test.ts +193 -0
- package/client/handlers/handleAuth.ts +89 -0
- package/client/handlers/handleConnack.test.ts +173 -0
- package/client/handlers/handleConnack.ts +18 -8
- package/client/handlers/handleDisconnect.test.ts +22 -0
- package/client/handlers/handleDisconnect.ts +17 -0
- package/client/handlers/handlePacket.test.ts +242 -0
- package/client/handlers/handlePacket.ts +19 -5
- package/client/handlers/handlePuback.test.ts +99 -0
- package/client/handlers/handlePuback.ts +6 -0
- package/client/handlers/handlePubcomp.test.ts +112 -0
- package/client/handlers/handlePubcomp.ts +5 -0
- package/client/handlers/handlePublish.test.ts +188 -0
- package/client/handlers/handlePubrec.test.ts +119 -0
- package/client/handlers/handlePubrec.ts +5 -1
- package/client/handlers/handlePubrel.test.ts +136 -0
- package/client/handlers/handleSuback.test.ts +122 -0
- package/client/handlers/handleSuback.ts +3 -0
- package/client/handlers/handleUnsuback.test.ts +101 -0
- package/client/mod.ts +13 -2
- package/client/store/memoryStore.ts +12 -11
- package/client/store/store.ts +4 -2
- package/deno/README.md +1 -2
- package/deno/tcpClient.test.ts +75 -0
- package/deno/tcpClient.ts +36 -18
- package/deno/tcpServer.test.ts +22 -21
- package/deno/tcpServer.ts +26 -4
- package/deno/tlsServer.test.ts +97 -0
- package/deno/tlsServer.ts +58 -0
- package/deno/wsServer.test.ts +93 -0
- package/deno/wsServer.ts +96 -0
- package/dev_utils/generateCert.ts +95 -0
- package/dev_utils/mockConn.ts +36 -0
- package/dev_utils/mockServer.ts +28 -0
- package/dev_utils/mod.ts +30 -3
- package/dev_utils/packetHelpers.ts +404 -0
- package/dev_utils/test-handlers.ts +98 -0
- package/dev_utils/timers.ts +14 -0
- package/dev_utils/webStreamPair.test.ts +171 -0
- package/dev_utils/webStreamPair.ts +143 -0
- package/dist/bin/conformanceServer.js +17 -12
- package/dist/bin/conformanceServer.js.map +1 -1
- package/dist/bin/demoServer.js +16 -12
- package/dist/bin/demoServer.js.map +1 -1
- package/dist/bin/mqtt.js +2 -2
- package/dist/bin/mqtt.js.map +1 -1
- package/dist/client/ConnectionState.d.ts +3 -1
- package/dist/client/ConnectionState.d.ts.map +1 -1
- package/dist/client/ConnectionState.js +2 -0
- package/dist/client/ConnectionState.js.map +1 -1
- package/dist/client/client.d.ts +47 -21
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +57 -20
- package/dist/client/client.js.map +1 -1
- package/dist/client/context.d.ts +15 -7
- package/dist/client/context.d.ts.map +1 -1
- package/dist/client/context.js +44 -12
- package/dist/client/context.js.map +1 -1
- package/dist/client/deps.d.ts +4 -3
- package/dist/client/deps.d.ts.map +1 -1
- package/dist/client/deps.js +1 -1
- package/dist/client/deps.js.map +1 -1
- package/dist/client/handlers/handleAuth.d.ts +9 -0
- package/dist/client/handlers/handleAuth.d.ts.map +1 -0
- package/dist/client/handlers/handleAuth.js +66 -0
- package/dist/client/handlers/handleAuth.js.map +1 -0
- package/dist/client/handlers/handleConnack.d.ts +2 -2
- package/dist/client/handlers/handleConnack.d.ts.map +1 -1
- package/dist/client/handlers/handleConnack.js +16 -6
- package/dist/client/handlers/handleConnack.js.map +1 -1
- package/dist/client/handlers/handleDisconnect.d.ts +11 -0
- package/dist/client/handlers/handleDisconnect.d.ts.map +1 -0
- package/dist/client/handlers/handleDisconnect.js +15 -0
- package/dist/client/handlers/handleDisconnect.js.map +1 -0
- package/dist/client/handlers/handlePacket.d.ts.map +1 -1
- package/dist/client/handlers/handlePacket.js +14 -3
- package/dist/client/handlers/handlePacket.js.map +1 -1
- package/dist/client/handlers/handlePuback.d.ts.map +1 -1
- package/dist/client/handlers/handlePuback.js +5 -0
- package/dist/client/handlers/handlePuback.js.map +1 -1
- package/dist/client/handlers/handlePubcomp.d.ts.map +1 -1
- package/dist/client/handlers/handlePubcomp.js +5 -0
- package/dist/client/handlers/handlePubcomp.js.map +1 -1
- package/dist/client/handlers/handlePubrec.d.ts.map +1 -1
- package/dist/client/handlers/handlePubrec.js +5 -1
- package/dist/client/handlers/handlePubrec.js.map +1 -1
- package/dist/client/handlers/handleSuback.d.ts +1 -0
- package/dist/client/handlers/handleSuback.d.ts.map +1 -1
- package/dist/client/handlers/handleSuback.js +3 -0
- package/dist/client/handlers/handleSuback.js.map +1 -1
- package/dist/client/mod.d.ts +3 -2
- package/dist/client/mod.d.ts.map +1 -1
- package/dist/client/mod.js +1 -1
- package/dist/client/mod.js.map +1 -1
- package/dist/client/store/memoryStore.d.ts +3 -3
- package/dist/client/store/memoryStore.d.ts.map +1 -1
- package/dist/client/store/memoryStore.js +3 -3
- package/dist/client/store/memoryStore.js.map +1 -1
- package/dist/client/store/store.d.ts +3 -2
- package/dist/client/store/store.d.ts.map +1 -1
- package/dist/client/store/store.js +1 -1
- package/dist/client/store/store.js.map +1 -1
- package/dist/dev_utils/generateCert.d.ts +11 -0
- package/dist/dev_utils/generateCert.d.ts.map +1 -0
- package/dist/dev_utils/generateCert.js +76 -0
- package/dist/dev_utils/generateCert.js.map +1 -0
- package/dist/examples/authHandler.test.d.ts +2 -0
- package/dist/examples/authHandler.test.d.ts.map +1 -0
- package/dist/examples/authHandler.test.js +123 -0
- package/dist/examples/authHandler.test.js.map +1 -0
- package/dist/examples/mqtt.test.d.ts +2 -0
- package/dist/examples/mqtt.test.d.ts.map +1 -0
- package/dist/examples/mqtt.test.js +70 -0
- package/dist/examples/mqtt.test.js.map +1 -0
- package/dist/examples/mqtts.test.d.ts +2 -0
- package/dist/examples/mqtts.test.d.ts.map +1 -0
- package/dist/examples/mqtts.test.js +81 -0
- package/dist/examples/mqtts.test.js.map +1 -0
- package/dist/mqttConn/mqttConn.d.ts +24 -31
- package/dist/mqttConn/mqttConn.d.ts.map +1 -1
- package/dist/mqttConn/mqttConn.js +57 -36
- package/dist/mqttConn/mqttConn.js.map +1 -1
- package/dist/mqttPacket/AuthenticationResult.d.ts +4 -0
- package/dist/mqttPacket/AuthenticationResult.d.ts.map +1 -1
- package/dist/mqttPacket/AuthenticationResult.js.map +1 -1
- package/dist/mqttPacket/BitMask.d.ts.map +1 -1
- package/dist/mqttPacket/PacketType.d.ts +4 -0
- package/dist/mqttPacket/PacketType.d.ts.map +1 -1
- package/dist/mqttPacket/Properties.d.ts +4 -4
- package/dist/mqttPacket/Properties.d.ts.map +1 -1
- package/dist/mqttPacket/Properties.js.map +1 -1
- package/dist/mqttPacket/ReasonCode.d.ts +4 -5
- package/dist/mqttPacket/ReasonCode.d.ts.map +1 -1
- package/dist/mqttPacket/ReasonCode.js +1 -0
- package/dist/mqttPacket/ReasonCode.js.map +1 -1
- package/dist/mqttPacket/RetainHandling.d.ts +4 -0
- package/dist/mqttPacket/RetainHandling.d.ts.map +1 -1
- package/dist/mqttPacket/auth.d.ts +7 -8
- package/dist/mqttPacket/auth.d.ts.map +1 -1
- package/dist/mqttPacket/auth.js +31 -30
- package/dist/mqttPacket/auth.js.map +1 -1
- package/dist/mqttPacket/codec.d.ts +48 -0
- package/dist/mqttPacket/codec.d.ts.map +1 -0
- package/dist/mqttPacket/codec.js +93 -0
- package/dist/mqttPacket/codec.js.map +1 -0
- package/dist/mqttPacket/connack.d.ts +11 -10
- package/dist/mqttPacket/connack.d.ts.map +1 -1
- package/dist/mqttPacket/connack.js +43 -45
- package/dist/mqttPacket/connack.js.map +1 -1
- package/dist/mqttPacket/connect.d.ts +7 -7
- package/dist/mqttPacket/connect.d.ts.map +1 -1
- package/dist/mqttPacket/connect.js +156 -157
- package/dist/mqttPacket/connect.js.map +1 -1
- package/dist/mqttPacket/decoder.d.ts +6 -16
- package/dist/mqttPacket/decoder.d.ts.map +1 -1
- package/dist/mqttPacket/decoder.js +7 -28
- package/dist/mqttPacket/decoder.js.map +1 -1
- package/dist/mqttPacket/disconnect.d.ts +9 -8
- package/dist/mqttPacket/disconnect.d.ts.map +1 -1
- package/dist/mqttPacket/disconnect.js +41 -43
- package/dist/mqttPacket/disconnect.js.map +1 -1
- package/dist/mqttPacket/encoder.d.ts +7 -19
- package/dist/mqttPacket/encoder.d.ts.map +1 -1
- package/dist/mqttPacket/encoder.js +5 -28
- package/dist/mqttPacket/encoder.js.map +1 -1
- package/dist/mqttPacket/mod.d.ts +21 -103
- package/dist/mqttPacket/mod.d.ts.map +1 -1
- package/dist/mqttPacket/mod.js +5 -94
- package/dist/mqttPacket/mod.js.map +1 -1
- package/dist/mqttPacket/pingreq.d.ts +6 -6
- package/dist/mqttPacket/pingreq.d.ts.map +1 -1
- package/dist/mqttPacket/pingreq.js +11 -13
- package/dist/mqttPacket/pingreq.js.map +1 -1
- package/dist/mqttPacket/pingres.d.ts +6 -6
- package/dist/mqttPacket/pingres.d.ts.map +1 -1
- package/dist/mqttPacket/pingres.js +11 -13
- package/dist/mqttPacket/pingres.js.map +1 -1
- package/dist/mqttPacket/protocolLevels.d.ts +11 -6
- package/dist/mqttPacket/protocolLevels.d.ts.map +1 -1
- package/dist/mqttPacket/protocolLevels.js +5 -1
- package/dist/mqttPacket/protocolLevels.js.map +1 -1
- package/dist/mqttPacket/pubblishAcks.d.ts +9 -10
- package/dist/mqttPacket/pubblishAcks.d.ts.map +1 -1
- package/dist/mqttPacket/pubblishAcks.js +43 -45
- package/dist/mqttPacket/pubblishAcks.js.map +1 -1
- package/dist/mqttPacket/publish.d.ts +8 -7
- package/dist/mqttPacket/publish.d.ts.map +1 -1
- package/dist/mqttPacket/publish.js +53 -55
- package/dist/mqttPacket/publish.js.map +1 -1
- package/dist/mqttPacket/suback.d.ts +9 -8
- package/dist/mqttPacket/suback.d.ts.map +1 -1
- package/dist/mqttPacket/suback.js +38 -40
- package/dist/mqttPacket/suback.js.map +1 -1
- package/dist/mqttPacket/subscribe.d.ts +41 -10
- package/dist/mqttPacket/subscribe.d.ts.map +1 -1
- package/dist/mqttPacket/subscribe.js +90 -89
- package/dist/mqttPacket/subscribe.js.map +1 -1
- package/dist/mqttPacket/types.d.ts +2 -29
- package/dist/mqttPacket/types.d.ts.map +1 -1
- package/dist/mqttPacket/unsuback.d.ts +9 -8
- package/dist/mqttPacket/unsuback.d.ts.map +1 -1
- package/dist/mqttPacket/unsuback.js +32 -34
- package/dist/mqttPacket/unsuback.js.map +1 -1
- package/dist/mqttPacket/unsubscribe.d.ts +26 -8
- package/dist/mqttPacket/unsubscribe.d.ts.map +1 -1
- package/dist/mqttPacket/unsubscribe.js +45 -44
- package/dist/mqttPacket/unsubscribe.js.map +1 -1
- package/dist/mqttPacket/validators.d.ts +4 -16
- package/dist/mqttPacket/validators.d.ts.map +1 -1
- package/dist/mqttPacket/validators.js +5 -26
- package/dist/mqttPacket/validators.js.map +1 -1
- package/dist/node/tcpClient.d.ts +22 -2
- package/dist/node/tcpClient.d.ts.map +1 -1
- package/dist/node/tcpClient.js +29 -10
- package/dist/node/tcpClient.js.map +1 -1
- package/dist/node/tcpServer.d.ts +18 -0
- package/dist/node/tcpServer.d.ts.map +1 -1
- package/dist/node/tcpServer.js +21 -2
- package/dist/node/tcpServer.js.map +1 -1
- package/dist/node/tlsServer.d.ts +37 -0
- package/dist/node/tlsServer.d.ts.map +1 -0
- package/dist/node/tlsServer.js +73 -0
- package/dist/node/tlsServer.js.map +1 -0
- package/dist/node/wrapNodeSocket.d.ts.map +1 -1
- package/dist/node/wrapNodeSocket.js +6 -28
- package/dist/node/wrapNodeSocket.js.map +1 -1
- package/dist/persistence/basicPersistence.d.ts +36 -0
- package/dist/persistence/basicPersistence.d.ts.map +1 -0
- package/dist/persistence/basicPersistence.js +306 -0
- package/dist/persistence/basicPersistence.js.map +1 -0
- package/dist/persistence/deps.d.ts +3 -2
- package/dist/persistence/deps.d.ts.map +1 -1
- package/dist/persistence/deps.js +2 -1
- package/dist/persistence/deps.js.map +1 -1
- package/dist/persistence/memory/memoryPersistence.d.ts +6 -23
- package/dist/persistence/memory/memoryPersistence.d.ts.map +1 -1
- package/dist/persistence/memory/memoryPersistence.js +12 -115
- package/dist/persistence/memory/memoryPersistence.js.map +1 -1
- package/dist/persistence/memory/memoryStorage.d.ts +45 -0
- package/dist/persistence/memory/memoryStorage.d.ts.map +1 -0
- package/dist/persistence/memory/memoryStorage.js +143 -0
- package/dist/persistence/memory/memoryStorage.js.map +1 -0
- package/dist/persistence/mod.d.ts +3 -3
- package/dist/persistence/mod.d.ts.map +1 -1
- package/dist/persistence/mod.js +6 -1
- package/dist/persistence/mod.js.map +1 -1
- package/dist/persistence/persistence.d.ts +45 -70
- package/dist/persistence/persistence.d.ts.map +1 -1
- package/dist/persistence/persistence.js +1 -2
- package/dist/persistence/persistence.js.map +1 -1
- package/dist/persistence/sqlite/sqliteDatabase.d.ts +46 -0
- package/dist/persistence/sqlite/sqliteDatabase.d.ts.map +1 -0
- package/dist/persistence/sqlite/sqliteDatabase.js +215 -0
- package/dist/persistence/sqlite/sqliteDatabase.js.map +1 -0
- package/dist/persistence/sqlite/sqlitePersistence.d.ts +16 -0
- package/dist/persistence/sqlite/sqlitePersistence.d.ts.map +1 -0
- package/dist/persistence/sqlite/sqlitePersistence.js +29 -0
- package/dist/persistence/sqlite/sqlitePersistence.js.map +1 -0
- package/dist/persistence/sqlite/sqliteStorage.d.ts +36 -0
- package/dist/persistence/sqlite/sqliteStorage.d.ts.map +1 -0
- package/dist/persistence/sqlite/sqliteStorage.js +194 -0
- package/dist/persistence/sqlite/sqliteStorage.js.map +1 -0
- package/dist/persistence/storage.d.ts +38 -0
- package/dist/persistence/storage.d.ts.map +1 -0
- package/dist/persistence/storage.js +5 -0
- package/dist/persistence/storage.js.map +1 -0
- package/dist/server/config.d.ts +47 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/config.js +41 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/context.d.ts +199 -25
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js +432 -53
- package/dist/server/context.js.map +1 -1
- package/dist/server/deps.d.ts +5 -6
- package/dist/server/deps.d.ts.map +1 -1
- package/dist/server/deps.js +2 -2
- package/dist/server/deps.js.map +1 -1
- package/dist/server/handlers/completeConnect.d.ts +9 -0
- package/dist/server/handlers/completeConnect.d.ts.map +1 -0
- package/dist/server/handlers/completeConnect.js +74 -0
- package/dist/server/handlers/completeConnect.js.map +1 -0
- package/dist/server/handlers/handleAuth.d.ts +9 -0
- package/dist/server/handlers/handleAuth.d.ts.map +1 -0
- package/dist/server/handlers/handleAuth.js +69 -0
- package/dist/server/handlers/handleAuth.js.map +1 -0
- package/dist/server/handlers/handleConnect.d.ts +2 -4
- package/dist/server/handlers/handleConnect.d.ts.map +1 -1
- package/dist/server/handlers/handleConnect.js +140 -67
- package/dist/server/handlers/handleConnect.js.map +1 -1
- package/dist/server/handlers/handleDisconnect.d.ts +1 -1
- package/dist/server/handlers/handleDisconnect.d.ts.map +1 -1
- package/dist/server/handlers/handleDisconnect.js +3 -3
- package/dist/server/handlers/handleDisconnect.js.map +1 -1
- package/dist/server/handlers/handlePacket.d.ts.map +1 -1
- package/dist/server/handlers/handlePacket.js +19 -6
- package/dist/server/handlers/handlePacket.js.map +1 -1
- package/dist/server/handlers/handlePuback.d.ts +1 -3
- package/dist/server/handlers/handlePuback.d.ts.map +1 -1
- package/dist/server/handlers/handlePuback.js +2 -8
- package/dist/server/handlers/handlePuback.js.map +1 -1
- package/dist/server/handlers/handlePubcomp.d.ts +1 -1
- package/dist/server/handlers/handlePubcomp.d.ts.map +1 -1
- package/dist/server/handlers/handlePubcomp.js +2 -4
- package/dist/server/handlers/handlePubcomp.js.map +1 -1
- package/dist/server/handlers/handlePublish.d.ts +1 -1
- package/dist/server/handlers/handlePublish.d.ts.map +1 -1
- package/dist/server/handlers/handlePublish.js +149 -45
- package/dist/server/handlers/handlePublish.js.map +1 -1
- package/dist/server/handlers/handlePubrec.d.ts.map +1 -1
- package/dist/server/handlers/handlePubrec.js +2 -3
- package/dist/server/handlers/handlePubrec.js.map +1 -1
- package/dist/server/handlers/handlePubrel.d.ts.map +1 -1
- package/dist/server/handlers/handlePubrel.js +6 -2
- package/dist/server/handlers/handlePubrel.js.map +1 -1
- package/dist/server/handlers/handleSubscribe.d.ts +1 -6
- package/dist/server/handlers/handleSubscribe.d.ts.map +1 -1
- package/dist/server/handlers/handleSubscribe.js +99 -38
- package/dist/server/handlers/handleSubscribe.js.map +1 -1
- package/dist/server/handlers/handleUnsubscribe.d.ts.map +1 -1
- package/dist/server/handlers/handleUnsubscribe.js +19 -4
- package/dist/server/handlers/handleUnsubscribe.js.map +1 -1
- package/dist/server/mod.d.ts +3 -3
- package/dist/server/mod.d.ts.map +1 -1
- package/dist/server/mod.js +1 -1
- package/dist/server/mod.js.map +1 -1
- package/dist/server/server.d.ts +32 -9
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +84 -15
- package/dist/server/server.js.map +1 -1
- package/dist/socket/socket.d.ts +15 -9
- package/dist/socket/socket.d.ts.map +1 -1
- package/dist/socket/socket.js +66 -18
- package/dist/socket/socket.js.map +1 -1
- package/dist/timer/timer.d.ts +32 -0
- package/dist/timer/timer.d.ts.map +1 -1
- package/dist/timer/timer.js +32 -0
- package/dist/timer/timer.js.map +1 -1
- package/dist/trie/trie.d.ts +10 -5
- package/dist/trie/trie.d.ts.map +1 -1
- package/dist/trie/trie.js +61 -41
- package/dist/trie/trie.js.map +1 -1
- package/dist/utils/assert.d.ts.map +1 -1
- package/dist/utils/{BufferedAsyncIterable.d.ts → bufferedAsyncIterable.d.ts} +1 -1
- package/dist/utils/bufferedAsyncIterable.d.ts.map +1 -0
- package/dist/utils/{BufferedAsyncIterable.js → bufferedAsyncIterable.js} +1 -1
- package/dist/utils/bufferedAsyncIterable.js.map +1 -0
- package/dist/utils/deferred.d.ts.map +1 -1
- package/dist/utils/deferred.js.map +1 -1
- package/dist/utils/getOrInsertPolyFill.d.ts +2 -0
- package/dist/utils/getOrInsertPolyFill.d.ts.map +1 -0
- package/dist/utils/getOrInsertPolyFill.js +12 -0
- package/dist/utils/getOrInsertPolyFill.js.map +1 -0
- package/dist/utils/logger.d.ts +42 -5
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +53 -7
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/mod.d.ts +6 -1
- package/dist/utils/mod.d.ts.map +1 -1
- package/dist/utils/mod.js +5 -1
- package/dist/utils/mod.js.map +1 -1
- package/dist/utils/outboundTopicAliasManager.d.ts +52 -0
- package/dist/utils/outboundTopicAliasManager.d.ts.map +1 -0
- package/dist/utils/outboundTopicAliasManager.js +74 -0
- package/dist/utils/outboundTopicAliasManager.js.map +1 -0
- package/dist/utils/queue.d.ts.map +1 -1
- package/dist/utils/topicFilter.d.ts +32 -0
- package/dist/utils/topicFilter.d.ts.map +1 -0
- package/dist/utils/topicFilter.js +52 -0
- package/dist/utils/topicFilter.js.map +1 -0
- package/dist/utils/utils.d.ts +2 -0
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +2 -0
- package/dist/utils/utils.js.map +1 -1
- package/dist/utils/validators.d.ts +34 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +61 -0
- package/dist/utils/validators.js.map +1 -0
- package/dist/web/webSocketStream.d.ts +29 -0
- package/dist/web/webSocketStream.d.ts.map +1 -0
- package/dist/web/webSocketStream.js +69 -0
- package/dist/web/webSocketStream.js.map +1 -0
- package/dist/web/wrapWebSocket.d.ts +12 -0
- package/dist/web/wrapWebSocket.d.ts.map +1 -0
- package/dist/web/wrapWebSocket.js +41 -0
- package/dist/web/wrapWebSocket.js.map +1 -0
- package/dist/web/wsClient.d.ts +14 -0
- package/dist/web/wsClient.d.ts.map +1 -0
- package/dist/web/wsClient.js +33 -0
- package/dist/web/wsClient.js.map +1 -0
- package/dist/web/wsClient.test.d.ts +2 -0
- package/dist/web/wsClient.test.d.ts.map +1 -0
- package/dist/web/wsClient.test.js +20 -0
- package/dist/web/wsClient.test.js.map +1 -0
- package/examples/authHandler.test.ts +164 -0
- package/examples/mqtt.test.ts +89 -0
- package/examples/mqtts.test.ts +100 -0
- package/examples/webSocket.test.ts +94 -0
- package/mqttConn/mqttConn.test.ts +9 -9
- package/mqttConn/mqttConn.ts +76 -60
- package/mqttPacket/AuthenticationResult.ts +6 -0
- package/mqttPacket/PacketType.ts +5 -0
- package/mqttPacket/Properties.ts +8 -5
- package/mqttPacket/ReasonCode.ts +8 -9
- package/mqttPacket/RetainHandling.ts +5 -0
- package/mqttPacket/auth.test.ts +1 -1
- package/mqttPacket/auth.ts +44 -51
- package/mqttPacket/codec.ts +147 -0
- package/mqttPacket/connack.ts +63 -73
- package/mqttPacket/connect.test.ts +2 -2
- package/mqttPacket/connect.ts +178 -192
- package/mqttPacket/decoder.test.ts +0 -39
- package/mqttPacket/decoder.ts +17 -46
- package/mqttPacket/disconnect.ts +60 -71
- package/mqttPacket/encoder.test.ts +2 -2
- package/mqttPacket/encoder.ts +13 -46
- package/mqttPacket/mod.ts +48 -204
- package/mqttPacket/pingreq.ts +22 -28
- package/mqttPacket/pingres.ts +22 -28
- package/mqttPacket/protocolLevels.ts +12 -7
- package/mqttPacket/pubblishAcks.ts +61 -75
- package/mqttPacket/publish.ts +70 -84
- package/mqttPacket/publishAcks.test.ts +3 -3
- package/mqttPacket/suback.ts +53 -68
- package/mqttPacket/subscribe.ts +146 -128
- package/mqttPacket/types.ts +2 -35
- package/mqttPacket/unsuback.ts +50 -61
- package/mqttPacket/unsubscribe.ts +77 -72
- package/mqttPacket/validators.ts +5 -31
- package/node/socket-node-stream.test.ts +322 -0
- package/node/socket-node-stream.ts +174 -0
- package/node/tcpClient.test.ts +70 -0
- package/node/tcpClient.ts +33 -17
- package/node/tcpServer.test.ts +24 -20
- package/node/tcpServer.ts +29 -6
- package/node/tlsServer.test.ts +94 -0
- package/node/tlsServer.ts +97 -0
- package/node/wrapNodeSocket.ts +7 -30
- package/package.json +72 -44
- package/persistence/basicPersistence.ts +495 -0
- package/persistence/deps.ts +11 -1
- package/persistence/memory/memoryPersistence.ts +12 -153
- package/persistence/memory/memoryStorage.ts +232 -0
- package/persistence/mod.ts +5 -10
- package/persistence/persistence.test.ts +24 -0
- package/persistence/persistence.testing.ts +1324 -0
- package/persistence/persistence.ts +112 -68
- package/persistence/sqlite/sqliteDatabase.ts +294 -0
- package/persistence/sqlite/sqlitePersistence.test.ts +48 -0
- package/persistence/sqlite/sqlitePersistence.ts +36 -0
- package/persistence/sqlite/sqliteStorage.ts +324 -0
- package/persistence/storage.ts +84 -0
- package/server/config.ts +65 -0
- package/server/context.ts +660 -76
- package/server/deps.ts +24 -5
- package/server/handlers/completeConnect.ts +93 -0
- package/server/handlers/duplicate.test.ts +196 -0
- package/server/handlers/handleAuth.test.ts +225 -0
- package/server/handlers/handleAuth.ts +88 -0
- package/server/handlers/handleConnect.test.ts +589 -0
- package/server/handlers/handleConnect.ts +201 -86
- package/server/handlers/handleConnect.version.test.ts +108 -0
- package/server/handlers/handleDisconnect.test.ts +56 -0
- package/server/handlers/handleDisconnect.ts +3 -3
- package/server/handlers/handlePacket.test.ts +24 -0
- package/server/handlers/handlePacket.ts +30 -8
- package/server/handlers/handlePingreq.test.ts +29 -0
- package/server/handlers/handlePuback.test.ts +28 -0
- package/server/handlers/handlePuback.ts +5 -8
- package/server/handlers/handlePubcomp.test.ts +28 -0
- package/server/handlers/handlePubcomp.ts +5 -4
- package/server/handlers/handlePublish.test.ts +471 -0
- package/server/handlers/handlePublish.ts +188 -35
- package/server/handlers/handlePubrec.test.ts +28 -0
- package/server/handlers/handlePubrec.ts +2 -3
- package/server/handlers/handlePubrel.test.ts +74 -0
- package/server/handlers/handlePubrel.ts +12 -2
- package/server/handlers/handleSubscribe.test.ts +971 -0
- package/server/handlers/handleSubscribe.ts +157 -39
- package/server/handlers/handleUnsubscribe.test.ts +79 -0
- package/server/handlers/handleUnsubscribe.ts +28 -4
- package/server/handlers/keepalive.test.ts +132 -0
- package/server/handlers/session.persistence.test.ts +194 -0
- package/server/handlers/will.delivery.test.ts +221 -0
- package/server/mod.ts +5 -4
- package/server/preconnect.test.ts +151 -0
- package/server/server.ts +117 -19
- package/socket/socket.test.ts +91 -0
- package/socket/socket.ts +85 -34
- package/timer/timer.test.ts +4 -7
- package/timer/timer.ts +36 -0
- package/tools/benchmarks/receiver.ts +51 -0
- package/tools/benchmarks/sender.ts +48 -0
- package/tools/benchmarks/utils.ts +31 -0
- package/tools/mqtt-compat/README.md +130 -0
- package/tools/mqtt-compat/broker.ts +52 -0
- package/tools/mqtt-compat/paho-mqtt4.test.ts +379 -0
- package/tools/mqtt-compat/paho-mqtt5.tests.ts +887 -0
- package/trie/trie.test.ts +9 -1
- package/trie/trie.ts +70 -45
- package/utils/bufferedAsyncIterable.test.ts +92 -0
- package/utils/deferred.test.ts +36 -0
- package/utils/deferred.ts +0 -1
- package/utils/getOrInsertPolyFill.ts +12 -0
- package/utils/logger.test.ts +189 -0
- package/utils/logger.ts +64 -9
- package/utils/mod.ts +15 -1
- package/utils/outboundTopicAliasManager.ts +100 -0
- package/utils/queue.test.ts +61 -0
- package/utils/topicFilter.test.ts +63 -0
- package/utils/topicFilter.ts +61 -0
- package/utils/utils.ts +3 -0
- package/utils/validators.ts +67 -0
- package/web/webSocketStream.ts +97 -0
- package/web/wrapWebSocket.ts +52 -0
- package/web/wsClient.test.ts +26 -0
- package/web/wsClient.ts +37 -0
- package/benchmarks/receiver.ts +0 -35
- package/benchmarks/sender.ts +0 -32
- package/benchmarks/utils.ts +0 -9
- package/dev_utils/dummyConn.ts +0 -110
- package/dev_utils/socketPair.ts +0 -85
- package/dist/persistence/store.d.ts +0 -14
- package/dist/persistence/store.d.ts.map +0 -1
- package/dist/persistence/store.js +0 -2
- package/dist/persistence/store.js.map +0 -1
- package/dist/utils/BufferedAsyncIterable.d.ts.map +0 -1
- package/dist/utils/BufferedAsyncIterable.js.map +0 -1
- package/examples/tcpServer.test.ts +0 -148
- package/persistence/memory/memoryPersistence.test.ts +0 -156
- package/persistence/store.ts +0 -16
- package/server/test/handleConnect.test.ts +0 -122
- package/server/test/test-handlers.ts +0 -53
- /package/utils/{BufferedAsyncIterable.ts → bufferedAsyncIterable.ts} +0 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { test } from "node:test";
|
|
2
|
+
import assert from "node:assert/strict";
|
|
3
|
+
import { TcpClient } from "@seriousme/opifex/tcpClient";
|
|
4
|
+
import { TcpServer } from "@seriousme/opifex/tcpServer";
|
|
5
|
+
import { delay, logger, LogLevel } from "@seriousme/opifex/utils";
|
|
6
|
+
logger.level(LogLevel.info);
|
|
7
|
+
test("Test pubSub using TCP client and server using memoryPersistence", async function () {
|
|
8
|
+
const server = new TcpServer({ port: 0 }, {
|
|
9
|
+
// just an example on how to configure the server
|
|
10
|
+
configuration: { context: { maximumConnectPacketSize: 3000 } },
|
|
11
|
+
});
|
|
12
|
+
server.start();
|
|
13
|
+
assert.deepStrictEqual(server.port !== undefined, true, "server runs a a random port");
|
|
14
|
+
logger.info(`TCP server running on port: ${server.port}, address: ${server.address}`);
|
|
15
|
+
const params = {
|
|
16
|
+
url: new URL(`mqtt://${server.address}:${server.port}`),
|
|
17
|
+
numberOfRetries: 0,
|
|
18
|
+
};
|
|
19
|
+
const client = new TcpClient();
|
|
20
|
+
await client.connect(params);
|
|
21
|
+
logger.info("Client connected to server at", client.url);
|
|
22
|
+
const publishSet = [
|
|
23
|
+
{ topic: "t0@q0", qos: 0 },
|
|
24
|
+
{ topic: "t1@q0", qos: 0 },
|
|
25
|
+
{ topic: "t2@q0", qos: 0 },
|
|
26
|
+
{ topic: "t0@q1", qos: 1 },
|
|
27
|
+
{ topic: "t1@q1", qos: 1 },
|
|
28
|
+
{ topic: "t2@q1", qos: 1 },
|
|
29
|
+
{ topic: "t0@q2", qos: 2 },
|
|
30
|
+
{ topic: "t1@q2", qos: 2 },
|
|
31
|
+
{ topic: "t2@q2", qos: 2 },
|
|
32
|
+
];
|
|
33
|
+
const subscriptions = publishSet.map((item) => ({
|
|
34
|
+
topicFilter: item.topic,
|
|
35
|
+
qos: item.qos,
|
|
36
|
+
}));
|
|
37
|
+
await client.subscribe({
|
|
38
|
+
subscriptions,
|
|
39
|
+
});
|
|
40
|
+
// the IIFE ensures message reception runs in parallel
|
|
41
|
+
logger.info("Start receiving");
|
|
42
|
+
const received = [];
|
|
43
|
+
(async function () {
|
|
44
|
+
for await (const item of client.messages()) {
|
|
45
|
+
logger.verbose("Receiving:", item.topic, "--", item.qos);
|
|
46
|
+
received.push(item);
|
|
47
|
+
}
|
|
48
|
+
})();
|
|
49
|
+
// end of IIFE
|
|
50
|
+
for (const item of publishSet) {
|
|
51
|
+
logger.verbose("Publishing:", item.topic, "--", item.qos);
|
|
52
|
+
await client.publish({
|
|
53
|
+
topic: item.topic,
|
|
54
|
+
qos: item.qos,
|
|
55
|
+
payload: new Uint8Array([0x01]),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
await delay(100);
|
|
59
|
+
logger.info("Disconnect client");
|
|
60
|
+
await client.disconnect();
|
|
61
|
+
logger.info("Check completeness");
|
|
62
|
+
for (const item of publishSet) {
|
|
63
|
+
const found = received.find((f) => f.topic == item.topic && f.qos === item.qos);
|
|
64
|
+
logger.verbose("Found:", item.topic, "--", item.qos);
|
|
65
|
+
assert(found, `${item.topic} -- ${item.qos}`);
|
|
66
|
+
}
|
|
67
|
+
logger.info("Stop server");
|
|
68
|
+
server.stop();
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=mqtt.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mqtt.test.js","sourceRoot":"","sources":["../../examples/mqtt.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mqtts.test.d.ts","sourceRoot":"","sources":["../../examples/mqtts.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { test } from "node:test";
|
|
2
|
+
import assert from "node:assert/strict";
|
|
3
|
+
import { TcpClient } from "@seriousme/opifex/tcpClient";
|
|
4
|
+
import { TlsServer } from "@seriousme/opifex/tlsServer";
|
|
5
|
+
import { SqlitePersistence } from "@seriousme/opifex/persistence";
|
|
6
|
+
import { delay, logger, LogLevel } from "@seriousme/opifex/utils";
|
|
7
|
+
import { generateLocalhostCerts } from "../dev_utils/generateCert.js";
|
|
8
|
+
logger.level(LogLevel.info);
|
|
9
|
+
test("Test pubSub using TLS client and server and sqlitePersistence", async function () {
|
|
10
|
+
// the localhost certs generate here are great for testing but lack securiity
|
|
11
|
+
// use something like LetsEncrypt for any serious server
|
|
12
|
+
// generateLocalhostCerts is a dev tool and relies on node-forge as a (dev)dependency
|
|
13
|
+
const { key, cert, caCert } = generateLocalhostCerts();
|
|
14
|
+
const dbFile = ":memory:";
|
|
15
|
+
// .start() combines instance creation and async initialization
|
|
16
|
+
const persistence = await SqlitePersistence.start(dbFile);
|
|
17
|
+
const server = new TlsServer({ port: 0, key, cert }, { persistence });
|
|
18
|
+
server.start();
|
|
19
|
+
assert.deepStrictEqual(server.port !== undefined, true, "TLS server runs on a random port");
|
|
20
|
+
logger.info(`TLS server running on port: ${server.port}, address: ${server.address}`);
|
|
21
|
+
// pick the correct hostname
|
|
22
|
+
const hostname = server.address === "0.0.0.0" ? "127.0.0.1" : server.address;
|
|
23
|
+
const params = {
|
|
24
|
+
url: new URL(`mqtts://${hostname}:${server.port}`),
|
|
25
|
+
numberOfRetries: 0,
|
|
26
|
+
// since we signed our server cert ourselves we need to add the caCert
|
|
27
|
+
// this is not required if you use a public Certificate Authority
|
|
28
|
+
caCerts: [caCert],
|
|
29
|
+
};
|
|
30
|
+
const client = new TcpClient();
|
|
31
|
+
await client.connect(params);
|
|
32
|
+
logger.info("Client connected to server at", client.url);
|
|
33
|
+
const publishSet = [
|
|
34
|
+
{ topic: "t0@q0", qos: 0 },
|
|
35
|
+
{ topic: "t1@q0", qos: 0 },
|
|
36
|
+
{ topic: "t2@q0", qos: 0 },
|
|
37
|
+
{ topic: "t0@q1", qos: 1 },
|
|
38
|
+
{ topic: "t1@q1", qos: 1 },
|
|
39
|
+
{ topic: "t2@q1", qos: 1 },
|
|
40
|
+
{ topic: "t0@q2", qos: 2 },
|
|
41
|
+
{ topic: "t1@q2", qos: 2 },
|
|
42
|
+
{ topic: "t2@q2", qos: 2 },
|
|
43
|
+
];
|
|
44
|
+
const subscriptions = publishSet.map((item) => ({
|
|
45
|
+
topicFilter: item.topic,
|
|
46
|
+
qos: item.qos,
|
|
47
|
+
}));
|
|
48
|
+
await client.subscribe({
|
|
49
|
+
subscriptions,
|
|
50
|
+
});
|
|
51
|
+
// the IIFE ensures message reception runs in parallel
|
|
52
|
+
logger.info("Start receiving");
|
|
53
|
+
const received = [];
|
|
54
|
+
(async function () {
|
|
55
|
+
for await (const item of client.messages()) {
|
|
56
|
+
logger.verbose("Receiving:", item.topic, "--", item.qos);
|
|
57
|
+
received.push(item);
|
|
58
|
+
}
|
|
59
|
+
})();
|
|
60
|
+
// end of IIFE
|
|
61
|
+
for (const item of publishSet) {
|
|
62
|
+
logger.verbose("Publishing:", item.topic, "--", item.qos);
|
|
63
|
+
await client.publish({
|
|
64
|
+
topic: item.topic,
|
|
65
|
+
qos: item.qos,
|
|
66
|
+
payload: new Uint8Array([0x01]),
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
await delay(100);
|
|
70
|
+
logger.info("Disconnect client");
|
|
71
|
+
await client.disconnect();
|
|
72
|
+
logger.info("Check completeness");
|
|
73
|
+
for (const item of publishSet) {
|
|
74
|
+
const found = received.find((f) => f.topic == item.topic && f.qos === item.qos);
|
|
75
|
+
logger.verbose("Found:", item.topic, "--", item.qos);
|
|
76
|
+
assert(found, `${item.topic} -- ${item.qos}`);
|
|
77
|
+
}
|
|
78
|
+
logger.info("Stop server");
|
|
79
|
+
server.stop();
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=mqtts.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mqtts.test.js","sourceRoot":"","sources":["../../examples/mqtts.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI,CAAC,+DAA+D,EAAE,KAAK;IACzE,6EAA6E;IAC7E,wDAAwD;IACxD,qFAAqF;IACrF,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,sBAAsB,EAAE,CAAC;IACvD,MAAM,MAAM,GAAG,UAAU,CAAC;IAC1B,+DAA+D;IAC/D,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,MAAM,CAAC,eAAe,CACpB,MAAM,CAAC,IAAI,KAAK,SAAS,EACzB,IAAI,EACJ,kCAAkC,CACnC,CAAC;IACF,MAAM,CAAC,IAAI,CACT,+BAA+B,MAAM,CAAC,IAAI,cAAc,MAAM,CAAC,OAAO,EAAE,CACzE,CAAC;IACF,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IAE7E,MAAM,MAAM,GAAG;QACb,GAAG,EAAE,IAAI,GAAG,CAAC,WAAW,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAClD,eAAe,EAAE,CAAC;QAClB,sEAAsE;QACtE,iEAAiE;QACjE,OAAO,EAAE,CAAC,MAAM,CAAC;KAClB,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAC/B,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAkC;QAChD,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QAC1B,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QAC1B,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QAC1B,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QAC1B,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QAC1B,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QAC1B,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QAC1B,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QAC1B,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KAC3B,CAAC;IAEF,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9C,WAAW,EAAE,IAAI,CAAC,KAAK;QACvB,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAC,CAAC;IACJ,MAAM,MAAM,CAAC,SAAS,CAAC;QACrB,aAAa;KACd,CAAC,CAAC;IAEH,sDAAsD;IACtD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,CAAC,KAAK;QACJ,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IACL,cAAc;IACd,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,MAAM,CAAC,OAAO,CAAC;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACjB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACjC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAChC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAC5C,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3B,MAAM,CAAC,IAAI,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module mqttConn
|
|
3
3
|
*/
|
|
4
|
-
import type { AnyPacket, CodecOpts
|
|
4
|
+
import type { AnyPacket, CodecOpts } from "../mqttPacket/mod.ts";
|
|
5
5
|
import type { SockConn } from "../socket/socket.ts";
|
|
6
6
|
import { Conn } from "../socket/socket.ts";
|
|
7
7
|
/**
|
|
@@ -10,38 +10,33 @@ import { Conn } from "../socket/socket.ts";
|
|
|
10
10
|
export declare const MqttConnError: {
|
|
11
11
|
readonly invalidPacket: "Invalid Packet";
|
|
12
12
|
readonly packetTooLarge: "Packet too large";
|
|
13
|
+
readonly connectPacketTooLarge: "Connect Packet too large";
|
|
13
14
|
readonly UnexpectedEof: "Unexpected EOF";
|
|
14
15
|
};
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
readonly isClosed: boolean;
|
|
23
|
-
/** Reason for connection closure if any */
|
|
24
|
-
readonly reason: string | undefined;
|
|
25
|
-
/** Send an MQTT packet */
|
|
26
|
-
send(data: AnyPacket): Promise<void>;
|
|
27
|
-
/** Close the connection */
|
|
28
|
-
close(): void;
|
|
29
|
-
}
|
|
16
|
+
export type SendResult = {
|
|
17
|
+
sent: true;
|
|
18
|
+
} | {
|
|
19
|
+
sent: false;
|
|
20
|
+
reason: "packetTooLarge" | "connectionClosed";
|
|
21
|
+
size?: number;
|
|
22
|
+
};
|
|
30
23
|
/**
|
|
31
24
|
* Read a complete MQTT packet from the connection
|
|
32
25
|
* @param conn Connection to read from
|
|
33
|
-
* @param
|
|
26
|
+
* @param codecOpts the CodecOpts
|
|
34
27
|
* @returns Decoded MQTT packet
|
|
35
28
|
* @throws Error if packet is invalid or too large
|
|
36
29
|
*/
|
|
37
|
-
export declare function readPacket(conn: Conn, codecOpts: CodecOpts): Promise<AnyPacket>;
|
|
30
|
+
export declare function readPacket(conn: Conn, codecOpts: CodecOpts, maxConnectPacketSize: number): Promise<AnyPacket>;
|
|
38
31
|
/**
|
|
39
|
-
* MQTT Connection class
|
|
32
|
+
* MQTT Connection class
|
|
40
33
|
*/
|
|
41
|
-
export declare class MqttConn
|
|
34
|
+
export declare class MqttConn {
|
|
42
35
|
#private;
|
|
43
36
|
/** Underlying connection */
|
|
44
37
|
readonly conn: Conn;
|
|
38
|
+
/** Maximum Connect packet size */
|
|
39
|
+
readonly maxConnectPacketSize: number;
|
|
45
40
|
/** codecOpts */
|
|
46
41
|
codecOpts: CodecOpts;
|
|
47
42
|
/** Reason for connection closure if any */
|
|
@@ -52,26 +47,24 @@ export declare class MqttConn implements IMqttConn {
|
|
|
52
47
|
* Create new MQTT connection
|
|
53
48
|
* @param options Connection options
|
|
54
49
|
* @param options.conn Underlying socket connection
|
|
55
|
-
* @param options.
|
|
56
|
-
* @param options.
|
|
50
|
+
* @param options.maxConnectPacketSize Maximum allowed connect packet size
|
|
51
|
+
* @param options.maxIncomingPacketSize Maximum allowed incoming packet size
|
|
52
|
+
* @param options.maxOutGoingPacketSize Maximum allowed outgoing packet size
|
|
57
53
|
* @param options.protocolLevel Supported protocolLevel
|
|
58
54
|
*/
|
|
59
|
-
constructor(
|
|
55
|
+
constructor(options: {
|
|
60
56
|
conn: SockConn;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
});
|
|
57
|
+
maxConnectPacketSize?: number;
|
|
58
|
+
} & Partial<CodecOpts>);
|
|
64
59
|
/** Get reason for connection closure */
|
|
65
60
|
get reason(): string | undefined;
|
|
66
61
|
/** Get remoteAdress */
|
|
67
62
|
get remoteAddress(): string;
|
|
63
|
+
/** Return next packet. */
|
|
68
64
|
next(): Promise<IteratorResult<AnyPacket>>;
|
|
65
|
+
/** Async iterator. */
|
|
69
66
|
[Symbol.asyncIterator](): this;
|
|
70
|
-
|
|
71
|
-
* Send an MQTT packet
|
|
72
|
-
* @param data Packet to send
|
|
73
|
-
*/
|
|
74
|
-
send(data: AnyPacket): Promise<void>;
|
|
67
|
+
send(data: AnyPacket): Promise<SendResult>;
|
|
75
68
|
/** Whether connection is closed */
|
|
76
69
|
get isClosed(): boolean;
|
|
77
70
|
/** Close the connection */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mqttConn.d.ts","sourceRoot":"","sources":["../../mqttConn/mqttConn.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,SAAS,
|
|
1
|
+
{"version":3,"file":"mqttConn.d.ts","sourceRoot":"","sources":["../../mqttConn/mqttConn.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EAEV,MAAM,sBAAsB,CAAC;AAU9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,aAAa;aACxB,aAAa,EAAE,gBAAgB;aAC/B,cAAc,EAAE,kBAAkB;aAClC,qBAAqB,EAAE,0BAA0B;aACjD,aAAa,EAAE,gBAAgB;CACvB,CAAC;AAIX,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd;IACA,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,gBAAgB,GAAG,kBAAkB,CAAC;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AA6BJ;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,MAAM,GAC3B,OAAO,CAAC,SAAS,CAAC,CA6BpB;AAED;;GAEG;AACH,qBAAa,QAAQ;;IACnB,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,kCAAkC;IAClC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,gBAAgB;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,2CAA2C;IAC3C,OAAO,CAAC,OAAO,CAAiC;IAChD,mCAAmC;IACnC,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;;;;;OAQG;IACH,YACE,OAAO,EACH;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAAE,GACjD,OAAO,CAAC,SAAS,CAAC,EAYvB;IAED,wCAAwC;IACxC,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,uBAAuB;IACvB,IAAI,aAAa,IAAI,MAAM,CAK1B;IAgCD,0BAA0B;IACpB,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAQ/C;IAED,sBAAsB;IACtB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,IAAI,CAE7B;IAMK,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAqB/C;IAED,mCAAmC;IACnC,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,2BAA2B;IAC3B,KAAK,IAAI,IAAI,CASZ;CACF"}
|
|
@@ -10,9 +10,10 @@ import { Conn } from "../socket/socket.js";
|
|
|
10
10
|
export const MqttConnError = {
|
|
11
11
|
invalidPacket: "Invalid Packet",
|
|
12
12
|
packetTooLarge: "Packet too large",
|
|
13
|
+
connectPacketTooLarge: "Connect Packet too large",
|
|
13
14
|
UnexpectedEof: "Unexpected EOF",
|
|
14
15
|
};
|
|
15
|
-
const DEFAULT_MAX_PACKETSIZE =
|
|
16
|
+
const DEFAULT_MAX_PACKETSIZE = 4 * 1024; // 4Kb
|
|
16
17
|
/**
|
|
17
18
|
* Read a single byte from the connection
|
|
18
19
|
* @param conn Connection to read from
|
|
@@ -20,12 +21,11 @@ const DEFAULT_MAX_PACKETSIZE = 2 * 1024 * 1024; // 2MB
|
|
|
20
21
|
* @throws Error if EOF reached unexpectedly
|
|
21
22
|
*/
|
|
22
23
|
async function readByte(conn) {
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
assert(
|
|
26
|
-
assert(
|
|
27
|
-
|
|
28
|
-
return buf[0] || 0;
|
|
24
|
+
const buff = await conn.read(1);
|
|
25
|
+
assert(buff !== null, MqttConnError.UnexpectedEof);
|
|
26
|
+
assert(buff !== undefined, MqttConnError.UnexpectedEof);
|
|
27
|
+
assert(buff.byteLength !== 0, MqttConnError.UnexpectedEof);
|
|
28
|
+
return buff[0] || 0;
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Read exact number of bytes into buffer
|
|
@@ -33,48 +33,50 @@ async function readByte(conn) {
|
|
|
33
33
|
* @param buf Buffer to read into
|
|
34
34
|
* @throws Error if EOF reached unexpectedly
|
|
35
35
|
*/
|
|
36
|
-
async function readFull(conn,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
assert(read !== 0, MqttConnError.UnexpectedEof);
|
|
42
|
-
bytesRead += read;
|
|
43
|
-
}
|
|
36
|
+
async function readFull(conn, length) {
|
|
37
|
+
const buff = await conn.read(length);
|
|
38
|
+
assert(buff !== null, MqttConnError.UnexpectedEof);
|
|
39
|
+
assert(buff.byteLength === length, MqttConnError.UnexpectedEof);
|
|
40
|
+
return buff;
|
|
44
41
|
}
|
|
45
42
|
/**
|
|
46
43
|
* Read a complete MQTT packet from the connection
|
|
47
44
|
* @param conn Connection to read from
|
|
48
|
-
* @param
|
|
45
|
+
* @param codecOpts the CodecOpts
|
|
49
46
|
* @returns Decoded MQTT packet
|
|
50
47
|
* @throws Error if packet is invalid or too large
|
|
51
48
|
*/
|
|
52
|
-
export async function readPacket(conn, codecOpts) {
|
|
49
|
+
export async function readPacket(conn, codecOpts, maxConnectPacketSize) {
|
|
53
50
|
// fixed header is 1 byte of type + flags
|
|
54
51
|
// + a maximum of 4 bytes to encode the remaining length
|
|
55
52
|
const decodeLength = getLengthDecoder();
|
|
56
53
|
const firstByte = await readByte(conn);
|
|
54
|
+
const isConnect = (firstByte >> 4) === 1;
|
|
57
55
|
let result;
|
|
58
56
|
do {
|
|
59
57
|
const byte = await readByte(conn);
|
|
60
58
|
result = decodeLength(byte);
|
|
61
59
|
} while (!result.done);
|
|
62
60
|
const remainingLength = result.length;
|
|
61
|
+
if (isConnect) {
|
|
62
|
+
assert(remainingLength < maxConnectPacketSize - 1, MqttConnError.connectPacketTooLarge);
|
|
63
|
+
}
|
|
63
64
|
const maxIncomingPacketSize = codecOpts.maxIncomingPacketSize;
|
|
64
65
|
assert(remainingLength < maxIncomingPacketSize - 1, MqttConnError.packetTooLarge);
|
|
65
|
-
const packetBuf = new Uint8Array(remainingLength);
|
|
66
66
|
// read the rest of the packet
|
|
67
|
-
await readFull(conn,
|
|
67
|
+
const packetBuf = await readFull(conn, remainingLength);
|
|
68
68
|
const packet = decodePayload(firstByte, packetBuf, codecOpts);
|
|
69
69
|
assert(packet !== null, MqttConnError.UnexpectedEof);
|
|
70
70
|
return packet;
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
73
|
-
* MQTT Connection class
|
|
73
|
+
* MQTT Connection class
|
|
74
74
|
*/
|
|
75
75
|
export class MqttConn {
|
|
76
76
|
/** Underlying connection */
|
|
77
77
|
conn;
|
|
78
|
+
/** Maximum Connect packet size */
|
|
79
|
+
maxConnectPacketSize;
|
|
78
80
|
/** codecOpts */
|
|
79
81
|
codecOpts;
|
|
80
82
|
/** Reason for connection closure if any */
|
|
@@ -85,16 +87,21 @@ export class MqttConn {
|
|
|
85
87
|
* Create new MQTT connection
|
|
86
88
|
* @param options Connection options
|
|
87
89
|
* @param options.conn Underlying socket connection
|
|
88
|
-
* @param options.
|
|
89
|
-
* @param options.
|
|
90
|
+
* @param options.maxConnectPacketSize Maximum allowed connect packet size
|
|
91
|
+
* @param options.maxIncomingPacketSize Maximum allowed incoming packet size
|
|
92
|
+
* @param options.maxOutGoingPacketSize Maximum allowed outgoing packet size
|
|
90
93
|
* @param options.protocolLevel Supported protocolLevel
|
|
91
94
|
*/
|
|
92
|
-
constructor(
|
|
93
|
-
this.conn = new Conn(conn);
|
|
95
|
+
constructor(options) {
|
|
96
|
+
this.conn = new Conn(options.conn);
|
|
97
|
+
this.maxConnectPacketSize = options.maxConnectPacketSize ??
|
|
98
|
+
DEFAULT_MAX_PACKETSIZE;
|
|
94
99
|
this.codecOpts = {
|
|
95
|
-
maxIncomingPacketSize
|
|
96
|
-
|
|
97
|
-
|
|
100
|
+
maxIncomingPacketSize: options.maxIncomingPacketSize ??
|
|
101
|
+
DEFAULT_MAX_PACKETSIZE,
|
|
102
|
+
maxOutgoingPacketSize: options.maxOutgoingPacketSize ??
|
|
103
|
+
DEFAULT_MAX_PACKETSIZE,
|
|
104
|
+
protocolLevel: options.protocolLevel ?? MQTTLevel.unknown,
|
|
98
105
|
};
|
|
99
106
|
}
|
|
100
107
|
/** Get reason for connection closure */
|
|
@@ -118,7 +125,7 @@ export class MqttConn {
|
|
|
118
125
|
async #receive() {
|
|
119
126
|
if (!this._isClosed) {
|
|
120
127
|
try {
|
|
121
|
-
return await readPacket(this.conn, this.codecOpts);
|
|
128
|
+
return await readPacket(this.conn, this.codecOpts, this.maxConnectPacketSize);
|
|
122
129
|
}
|
|
123
130
|
catch (err) {
|
|
124
131
|
if (err instanceof Error) {
|
|
@@ -134,6 +141,7 @@ export class MqttConn {
|
|
|
134
141
|
}
|
|
135
142
|
return Promise.resolve(undefined);
|
|
136
143
|
}
|
|
144
|
+
/** Return next packet. */
|
|
137
145
|
async next() {
|
|
138
146
|
const packet = await this.#receive();
|
|
139
147
|
if (packet !== undefined) {
|
|
@@ -141,23 +149,36 @@ export class MqttConn {
|
|
|
141
149
|
}
|
|
142
150
|
return { value: undefined, done: true };
|
|
143
151
|
}
|
|
152
|
+
/** Async iterator. */
|
|
144
153
|
[Symbol.asyncIterator]() {
|
|
145
154
|
return this;
|
|
146
155
|
}
|
|
147
|
-
|
|
156
|
+
/*
|
|
148
157
|
* Send an MQTT packet
|
|
149
158
|
* @param data Packet to send
|
|
150
159
|
*/
|
|
151
160
|
async send(data) {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
161
|
+
if (!this._isClosed) {
|
|
162
|
+
try {
|
|
163
|
+
const encoded = encode(data, this.codecOpts);
|
|
164
|
+
if (encoded.byteLength > this.codecOpts.maxOutgoingPacketSize) {
|
|
165
|
+
return {
|
|
166
|
+
sent: false,
|
|
167
|
+
reason: "packetTooLarge",
|
|
168
|
+
size: encoded.byteLength,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
await this.conn.write(encoded);
|
|
172
|
+
return { sent: true };
|
|
173
|
+
}
|
|
174
|
+
catch (err) {
|
|
175
|
+
if (err instanceof Error) {
|
|
176
|
+
this._reason = err.message;
|
|
177
|
+
}
|
|
178
|
+
this.close();
|
|
158
179
|
}
|
|
159
|
-
this.close();
|
|
160
180
|
}
|
|
181
|
+
return { sent: false, reason: "connectionClosed" };
|
|
161
182
|
}
|
|
162
183
|
/** Whether connection is closed */
|
|
163
184
|
get isClosed() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mqttConn.js","sourceRoot":"","sources":["../../mqttConn/mqttConn.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"mqttConn.js","sourceRoot":"","sources":["../../mqttConn/mqttConn.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,10 @@ export declare const AuthenticationResult: {
|
|
|
9
9
|
readonly badUsernameOrPassword: 4;
|
|
10
10
|
readonly notAuthorized: 5;
|
|
11
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* Type to limit authentication result to valid values
|
|
14
|
+
*/
|
|
15
|
+
export type AuthenticationResult = typeof AuthenticationResult[keyof typeof AuthenticationResult];
|
|
12
16
|
/**
|
|
13
17
|
* Reverse lookup for AuthenticationResult
|
|
14
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticationResult.d.ts","sourceRoot":"","sources":["../../mqttPacket/AuthenticationResult.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"AuthenticationResult.d.ts","sourceRoot":"","sources":["../../mqttPacket/AuthenticationResult.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB;aAC/B,EAAE,EAAE,CAAC;aACL,oBAAoB,EAAE,CAAC;aACvB,gBAAgB,EAAE,CAAC;aACnB,iBAAiB,EAAE,CAAC;aACpB,qBAAqB,EAAE,CAAC;aACxB,aAAa,EAAE,CAAC;CACR,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC9B,OAAO,oBAAoB,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG7D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticationResult.js","sourceRoot":"","sources":["../../mqttPacket/AuthenticationResult.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,EAAE,EAAE,CAAC;IACL,oBAAoB,EAAE,CAAC;IACvB,gBAAgB,EAAE,CAAC;IACnB,iBAAiB,EAAE,CAAC;IACpB,qBAAqB,EAAE,CAAC;IACxB,aAAa,EAAE,CAAC;CACR,CAAC;
|
|
1
|
+
{"version":3,"file":"AuthenticationResult.js","sourceRoot":"","sources":["../../mqttPacket/AuthenticationResult.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,EAAE,EAAE,CAAC;IACL,oBAAoB,EAAE,CAAC;IACvB,gBAAgB,EAAE,CAAC;IACnB,iBAAiB,EAAE,CAAC;IACpB,qBAAqB,EAAE,CAAC;IACxB,aAAa,EAAE,CAAC;CACR,CAAC;AAQX;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAA2B,MAAM;KACvE,WAAW,CACV,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC7D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitMask.d.ts","sourceRoot":"","sources":["../../mqttPacket/BitMask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"BitMask.d.ts","sourceRoot":"","sources":["../../mqttPacket/BitMask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,OAAO;aAClB,IAAI;aACJ,IAAI;aACJ,IAAI;aACJ,IAAI;aACJ,IAAI;aACJ,IAAI;aACJ,IAAI;aACJ,IAAI;CACI,CAAC"}
|
|
@@ -23,4 +23,8 @@ export declare const PacketType: {
|
|
|
23
23
|
* Reverse lookup for packet types
|
|
24
24
|
*/
|
|
25
25
|
export declare const PacketNameByType: Record<number, string>;
|
|
26
|
+
/**
|
|
27
|
+
* Type to limit packet type to valid values
|
|
28
|
+
*/
|
|
29
|
+
export type PacketType = typeof PacketType[keyof typeof PacketType];
|
|
26
30
|
//# sourceMappingURL=PacketType.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PacketType.d.ts","sourceRoot":"","sources":["../../mqttPacket/PacketType.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"PacketType.d.ts","sourceRoot":"","sources":["../../mqttPacket/PacketType.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,UAAU;aACrB,QAAQ,EAAE,CAAC;aACX,OAAO,EAAE,CAAC;aACV,OAAO,EAAE,CAAC;aACV,OAAO,EAAE,CAAC;aACV,MAAM,EAAE,CAAC;aACT,MAAM,EAAE,CAAC;aACT,MAAM,EAAE,CAAC;aACT,OAAO,EAAE,CAAC;aACV,SAAS,EAAE,CAAC;aACZ,MAAM,EAAE,CAAC;aACT,WAAW,EAAE,EAAE;aACf,QAAQ,EAAE,EAAE;aACZ,OAAO,EAAE,EAAE;aACX,OAAO,EAAE,EAAE;aACX,UAAU,EAAE,EAAE;aACd,IAAI,EAAE,EAAE;CACA,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEnD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { InvertRecord, UTF8StringPair } from "./types.ts";
|
|
2
2
|
export declare const PropertySetType: {
|
|
3
|
-
readonly will: 100;
|
|
4
3
|
readonly reserved: 0;
|
|
5
4
|
readonly connect: 1;
|
|
6
5
|
readonly connack: 2;
|
|
@@ -17,8 +16,9 @@ export declare const PropertySetType: {
|
|
|
17
16
|
readonly pingres: 13;
|
|
18
17
|
readonly disconnect: 14;
|
|
19
18
|
readonly auth: 15;
|
|
19
|
+
readonly will: 100;
|
|
20
20
|
};
|
|
21
|
-
export type
|
|
21
|
+
export type PropertySetType = typeof PropertySetType[keyof typeof PropertySetType];
|
|
22
22
|
export declare const propertyKind: {
|
|
23
23
|
readonly boolean: 0;
|
|
24
24
|
readonly byte: 1;
|
|
@@ -109,7 +109,7 @@ export type Mqttv5PropertyTypes = PropertyKindMap[keyof PropertyKindMap];
|
|
|
109
109
|
export type Mqttv5PropertyTypesNoUser = Exclude<Mqttv5PropertyTypes, UserPropertyType>;
|
|
110
110
|
export type ValidPropertyNumber = (typeof propertyToId)[keyof typeof propertyToId];
|
|
111
111
|
type AllMqttv5Properties = {
|
|
112
|
-
[K in PropertyNames]?: Mqttv5PropertyType<typeof propertyToKind[typeof propertyToId[K]]
|
|
112
|
+
[K in PropertyNames]?: Mqttv5PropertyType<typeof propertyToKind[typeof propertyToId[K]]> | undefined;
|
|
113
113
|
};
|
|
114
114
|
type PropertyByNumberType = InvertRecord<typeof propertyToId>;
|
|
115
115
|
export declare const propertyByNumber: PropertyByNumberType;
|
|
@@ -137,7 +137,7 @@ type PropertyIdsToKeys<T extends readonly ValidPropertyNumber[]> = {
|
|
|
137
137
|
}[T[number]];
|
|
138
138
|
type GeneratePacketTypeProperties<T extends readonly ValidPropertyNumber[]> = Pick<AllMqttv5Properties, PropertyIdsToKeys<T>>;
|
|
139
139
|
export type PropsByPacketSetType = {
|
|
140
|
-
[K in
|
|
140
|
+
[K in PropertySetType]: GeneratePacketTypeProperties<typeof PropertyByPropertySetType[K]>;
|
|
141
141
|
};
|
|
142
142
|
export type ConnectProperties = PropsByPacketSetType[typeof PropertySetType.connect];
|
|
143
143
|
export type ConnackProperties = PropsByPacketSetType[typeof PropertySetType.connack];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Properties.d.ts","sourceRoot":"","sources":["../../mqttPacket/Properties.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/D,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"Properties.d.ts","sourceRoot":"","sources":["../../mqttPacket/Properties.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Properties.js","sourceRoot":"","sources":["../../mqttPacket/Properties.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Properties.js","sourceRoot":"","sources":["../../mqttPacket/Properties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,GAAG,UAAU;IACb,IAAI,EAAE,GAAG;CACD,CAAC;AAKX,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,CAAC,EAAE,6EAA6E;IACzF,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,eAAe,EAAE,CAAC;IAClB,WAAW,EAAE,CAAC;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,sBAAsB,EAAE,IAAI;IAC5B,qBAAqB,EAAE,IAAI;IAC3B,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,sBAAsB,EAAE,IAAI;IAC5B,8EAA8E;IAC9E,uBAAuB,EAAE,IAAI;IAC7B,qBAAqB,EAAE,IAAI;IAC3B,wBAAwB,EAAE,IAAI;IAC9B,eAAe,EAAE,IAAI;IACrB,oBAAoB,EAAE,IAAI;IAC1B,kBAAkB,EAAE,IAAI;IACxB,yBAAyB,EAAE,IAAI;IAC/B,iBAAiB,EAAE,IAAI;IACvB,0BAA0B,EAAE,IAAI;IAChC,mBAAmB,EAAE,IAAI;IACzB,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;IAClB,cAAc,EAAE,IAAI;IACpB,iBAAiB,EAAE,IAAI;IACvB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,IAAI;IACvB,6BAA6B,EAAE,IAAI;IACnC,+BAA+B,EAAE,IAAI;IACrC,2BAA2B,EAAE,IAAI;CACzB,CAAC;AAGX,oEAAoE;AAEpE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,CAAC,YAAY,CAAC,sBAAsB,CAAC,EAAE,YAAY,CAAC,OAAO;IAC3D,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,YAAY,CAAC,KAAK;IACxD,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,UAAU;IACnD,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,UAAU;IACrD,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,SAAS;IACtD,CAAC,YAAY,CAAC,sBAAsB,CAAC,EAAE,YAAY,CAAC,MAAM;IAC1D,CAAC,YAAY,CAAC,uBAAuB,CAAC,EAAE,YAAY,CAAC,WAAW;IAChE,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,YAAY,CAAC,KAAK;IACxD,CAAC,YAAY,CAAC,wBAAwB,CAAC,EAAE,YAAY,CAAC,UAAU;IAChE,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,KAAK;IAClD,CAAC,YAAY,CAAC,oBAAoB,CAAC,EAAE,YAAY,CAAC,UAAU;IAC5D,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,YAAY,CAAC,SAAS;IACzD,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,YAAY,CAAC,OAAO;IAC9D,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC,KAAK;IACpD,CAAC,YAAY,CAAC,0BAA0B,CAAC,EAAE,YAAY,CAAC,OAAO;IAC/D,CAAC,YAAY,CAAC,mBAAmB,CAAC,EAAE,YAAY,CAAC,UAAU;IAC3D,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,UAAU;IACvD,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,UAAU;IACpD,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC,KAAK;IACjD,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC,KAAK;IACpD,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,KAAK;IAC7C,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,IAAI;IAC5C,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,OAAO;IACpD,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,eAAe;IACzD,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC,KAAK;IACpD,CAAC,YAAY,CAAC,6BAA6B,CAAC,EAAE,YAAY,CAAC,OAAO;IAClE,CAAC,YAAY,CAAC,+BAA+B,CAAC,EAAE,YAAY,CAAC,OAAO;IACpE,CAAC,YAAY,CAAC,2BAA2B,CAAC,EAAE,YAAY,CAAC,OAAO;CACxD,CAAC;AA4CX,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAChD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAC9B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CACnB,CACsB,CAAC;AAE1B,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE;IAC9B,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;QACzB,YAAY,CAAC,qBAAqB;QAClC,YAAY,CAAC,oBAAoB;QACjC,YAAY,CAAC,kBAAkB;QAC/B,YAAY,CAAC,yBAAyB;QACtC,YAAY,CAAC,0BAA0B;QACvC,YAAY,CAAC,cAAc;QAC3B,YAAY,CAAC,iBAAiB;QAC9B,YAAY,CAAC,YAAY;QACzB,YAAY,CAAC,iBAAiB;KAC/B;IACD,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;QACzB,YAAY,CAAC,qBAAqB;QAClC,YAAY,CAAC,wBAAwB;QACrC,YAAY,CAAC,eAAe;QAC5B,YAAY,CAAC,oBAAoB;QACjC,YAAY,CAAC,kBAAkB;QAC/B,YAAY,CAAC,mBAAmB;QAChC,YAAY,CAAC,eAAe;QAC5B,YAAY,CAAC,YAAY;QACzB,YAAY,CAAC,cAAc;QAC3B,YAAY,CAAC,iBAAiB;QAC9B,YAAY,CAAC,UAAU;QACvB,YAAY,CAAC,eAAe;QAC5B,YAAY,CAAC,YAAY;QACzB,YAAY,CAAC,iBAAiB;QAC9B,YAAY,CAAC,6BAA6B;QAC1C,YAAY,CAAC,+BAA+B;QAC5C,YAAY,CAAC,2BAA2B;KACzC;IACD,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;QACzB,YAAY,CAAC,sBAAsB;QACnC,YAAY,CAAC,qBAAqB;QAClC,YAAY,CAAC,WAAW;QACxB,YAAY,CAAC,aAAa;QAC1B,YAAY,CAAC,eAAe;QAC5B,YAAY,CAAC,uBAAuB;QACpC,YAAY,CAAC,UAAU;QACvB,YAAY,CAAC,YAAY;KAC1B;IACD,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE;QAC3B,YAAY,CAAC,sBAAsB;QACnC,YAAY,CAAC,YAAY;KAC1B;IACD,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE;QAC7B,YAAY,CAAC,YAAY;KAC1B;IAED,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE;QAC5B,YAAY,CAAC,qBAAqB;QAClC,YAAY,CAAC,eAAe;QAC5B,YAAY,CAAC,YAAY;QACzB,YAAY,CAAC,YAAY;KAC1B;IACD,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;QACtB,YAAY,CAAC,oBAAoB;QACjC,YAAY,CAAC,kBAAkB;QAC/B,YAAY,CAAC,YAAY;QACzB,YAAY,CAAC,YAAY;KAC1B;IACD,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;QACxB,YAAY,CAAC,YAAY;QACzB,YAAY,CAAC,YAAY;KAC1B;IACD,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;QACxB,YAAY,CAAC,YAAY;QACzB,YAAY,CAAC,YAAY;KAC1B;IACD,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;QACxB,YAAY,CAAC,YAAY;QACzB,YAAY,CAAC,YAAY;KAC1B;IACD,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;QACzB,YAAY,CAAC,YAAY;QACzB,YAAY,CAAC,YAAY;KAC1B;IACD,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;QACxB,YAAY,CAAC,YAAY;QACzB,YAAY,CAAC,YAAY;KAC1B;IACD,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE;QAC1B,YAAY,CAAC,YAAY;QACzB,YAAY,CAAC,YAAY;KAC1B;IACD,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE;IAC7B,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE;IAE7B,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;QACtB,YAAY,CAAC,sBAAsB;QACnC,YAAY,CAAC,qBAAqB;QAClC,YAAY,CAAC,WAAW;QACxB,YAAY,CAAC,aAAa;QAC1B,YAAY,CAAC,eAAe;QAC5B,YAAY,CAAC,iBAAiB;QAC9B,YAAY,CAAC,YAAY;KAC1B;CACO,CAAC"}
|