@seriousme/opifex 1.11.3 → 2.0.3
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 +2 -0
- package/client/client.ts +51 -41
- package/client/context.ts +75 -21
- package/client/deps.ts +4 -0
- 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 +16 -6
- 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 +1 -1
- package/client/store/memoryStore.ts +2 -2
- package/client/store/store.ts +3 -1
- package/deno/README.md +1 -2
- package/deno/tcpClient.test.ts +75 -0
- package/deno/tcpClient.ts +16 -11
- package/deno/tcpServer.test.ts +22 -21
- package/deno/tcpServer.ts +5 -0
- package/deno/tlsServer.test.ts +97 -0
- package/deno/tlsServer.ts +42 -0
- package/deno/wsServer.test.ts +93 -0
- package/deno/wsServer.ts +73 -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 +2 -0
- 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 +13 -16
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +34 -20
- package/dist/client/client.js.map +1 -1
- package/dist/client/context.d.ts +11 -3
- 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 +3 -2
- 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 +1 -1
- 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.map +1 -1
- package/dist/client/store/memoryStore.js +2 -2
- package/dist/client/store/memoryStore.js.map +1 -1
- package/dist/client/store/store.d.ts +2 -1
- 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 +23 -15
- package/dist/mqttConn/mqttConn.d.ts.map +1 -1
- package/dist/mqttConn/mqttConn.js +56 -35
- package/dist/mqttConn/mqttConn.js.map +1 -1
- package/dist/mqttPacket/AuthenticationResult.d.ts.map +1 -1
- package/dist/mqttPacket/BitMask.d.ts.map +1 -1
- package/dist/mqttPacket/PacketType.d.ts.map +1 -1
- package/dist/mqttPacket/Properties.d.ts +2 -2
- package/dist/mqttPacket/Properties.d.ts.map +1 -1
- package/dist/mqttPacket/Properties.js.map +1 -1
- package/dist/mqttPacket/ReasonCode.d.ts +1 -0
- 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.map +1 -1
- package/dist/mqttPacket/auth.d.ts +3 -5
- 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 +4 -5
- 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 +4 -5
- 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 +1 -13
- package/dist/mqttPacket/decoder.d.ts.map +1 -1
- package/dist/mqttPacket/decoder.js +6 -27
- package/dist/mqttPacket/decoder.js.map +1 -1
- package/dist/mqttPacket/disconnect.d.ts +4 -5
- 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 +1 -15
- package/dist/mqttPacket/encoder.d.ts.map +1 -1
- package/dist/mqttPacket/encoder.js +4 -27
- 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 +4 -5
- 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 +4 -5
- 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 +4 -5
- 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 +5 -5
- 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 +4 -5
- 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 +36 -7
- 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 +1 -8
- package/dist/mqttPacket/types.d.ts.map +1 -1
- package/dist/mqttPacket/unsuback.d.ts +4 -5
- 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 +23 -6
- 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 +1 -1
- package/dist/node/tcpClient.d.ts.map +1 -1
- package/dist/node/tcpClient.js +12 -7
- package/dist/node/tcpClient.js.map +1 -1
- package/dist/node/tcpServer.d.ts.map +1 -1
- package/dist/node/tcpServer.js +4 -0
- package/dist/node/tcpServer.js.map +1 -1
- package/dist/node/tlsServer.d.ts +19 -0
- package/dist/node/tlsServer.d.ts.map +1 -0
- package/dist/node/tlsServer.js +58 -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 +44 -69
- 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 +198 -24
- 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 +8 -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 +29 -6
- 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 +11 -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 +40 -3
- 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 +7 -0
- package/dist/web/wsClient.d.ts.map +1 -0
- package/dist/web/wsClient.js +22 -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 -44
- package/mqttPacket/Properties.ts +6 -3
- package/mqttPacket/ReasonCode.ts +2 -1
- package/mqttPacket/auth.test.ts +1 -1
- package/mqttPacket/auth.ts +41 -48
- package/mqttPacket/codec.ts +146 -0
- package/mqttPacket/connack.ts +57 -68
- package/mqttPacket/connect.test.ts +2 -2
- package/mqttPacket/connect.ts +175 -182
- package/mqttPacket/decoder.test.ts +0 -39
- package/mqttPacket/decoder.ts +8 -35
- package/mqttPacket/disconnect.ts +57 -68
- package/mqttPacket/encoder.ts +5 -40
- package/mqttPacket/mod.ts +48 -200
- package/mqttPacket/pingreq.ts +21 -27
- package/mqttPacket/pingres.ts +21 -27
- package/mqttPacket/protocolLevels.ts +12 -7
- package/mqttPacket/pubblishAcks.ts +56 -70
- package/mqttPacket/publish.ts +67 -74
- package/mqttPacket/suback.ts +48 -58
- package/mqttPacket/subscribe.ts +141 -117
- package/mqttPacket/types.ts +1 -9
- package/mqttPacket/unsuback.ts +46 -58
- package/mqttPacket/unsubscribe.ts +74 -63
- 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 +13 -12
- package/node/tcpServer.test.ts +24 -20
- package/node/tcpServer.ts +6 -0
- package/node/tlsServer.test.ts +94 -0
- package/node/tlsServer.ts +81 -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 +4 -9
- package/persistence/persistence.test.ts +24 -0
- package/persistence/persistence.testing.ts +1324 -0
- package/persistence/persistence.ts +111 -67
- 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 +658 -74
- package/server/deps.ts +25 -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 +189 -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 +158 -39
- package/server/handlers/handleUnsubscribe.test.ts +79 -0
- package/server/handlers/handleUnsubscribe.ts +29 -5
- 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 +4 -3
- package/server/preconnect.test.ts +151 -0
- package/server/server.ts +115 -17
- package/socket/socket.test.ts +91 -0
- package/socket/socket.ts +81 -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 +62 -7
- 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 +25 -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
package/dev_utils/timers.ts
CHANGED
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
// This will also work on Deno:
|
|
7
7
|
// https://docs.deno.com/api/node/timers/#namespace_setimmediate
|
|
8
8
|
import { setImmediate } from "node:timers";
|
|
9
|
+
import { setTimeout as delay } from "node:timers/promises";
|
|
10
|
+
import type { AnyPacket } from "../mqttPacket/mod.ts";
|
|
11
|
+
export { delay };
|
|
9
12
|
|
|
10
13
|
let taskCounter = 0;
|
|
11
14
|
|
|
@@ -49,3 +52,14 @@ export const resolveAsap = (): Promise<void> => {
|
|
|
49
52
|
export const resolveNextTick = (): Promise<void> => {
|
|
50
53
|
return new Promise((resolve) => setImmediate(resolve));
|
|
51
54
|
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Races a promise to test timeouts
|
|
58
|
+
*/
|
|
59
|
+
export function withTimeout(
|
|
60
|
+
promise: Promise<IteratorResult<AnyPacket>>,
|
|
61
|
+
timeoutMs: number,
|
|
62
|
+
): Promise<IteratorResult<AnyPacket> | null> {
|
|
63
|
+
const timeoutPromise = delay(timeoutMs, null);
|
|
64
|
+
return Promise.race([promise, timeoutPromise]);
|
|
65
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { test } from "node:test";
|
|
2
|
+
import assert from "node:assert";
|
|
3
|
+
import { createWebStreamPair } from "./webStreamPair.ts";
|
|
4
|
+
|
|
5
|
+
test("Echo server shuts down cleanly when client closes input", async () => {
|
|
6
|
+
const { input, output } = createWebStreamPair();
|
|
7
|
+
|
|
8
|
+
const echoPromise = output.readable.pipeTo(output.writable);
|
|
9
|
+
|
|
10
|
+
const writer = input.writable.getWriter();
|
|
11
|
+
const reader = input.readable.getReader();
|
|
12
|
+
|
|
13
|
+
// Client closes their side
|
|
14
|
+
await writer.close();
|
|
15
|
+
|
|
16
|
+
// The echo server's pipeTo should resolve and finish successfully
|
|
17
|
+
await assert.doesNotReject(echoPromise);
|
|
18
|
+
|
|
19
|
+
// The client's reader should now receive the end-of-stream signal
|
|
20
|
+
const { done } = await reader.read();
|
|
21
|
+
assert.strictEqual(done, true);
|
|
22
|
+
|
|
23
|
+
writer.releaseLock();
|
|
24
|
+
reader.releaseLock();
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
test("Data written to input.writable arrives at output.readable", async () => {
|
|
28
|
+
const { input, output } = createWebStreamPair();
|
|
29
|
+
|
|
30
|
+
const echoPromise = output.readable.pipeTo(output.writable);
|
|
31
|
+
|
|
32
|
+
const writer = input.writable.getWriter();
|
|
33
|
+
const reader = input.readable.getReader();
|
|
34
|
+
|
|
35
|
+
const encoder = new TextEncoder();
|
|
36
|
+
const decoder = new TextDecoder();
|
|
37
|
+
|
|
38
|
+
// Write data to the input side
|
|
39
|
+
await writer.write(encoder.encode("Hello streaming world!"));
|
|
40
|
+
await writer.close(); // Close the stream after writing
|
|
41
|
+
|
|
42
|
+
// The echo server's pipeTo should resolve and finish successfully
|
|
43
|
+
await assert.doesNotReject(echoPromise);
|
|
44
|
+
|
|
45
|
+
// Read the data from the input side
|
|
46
|
+
const chunks: Uint8Array[] = [];
|
|
47
|
+
|
|
48
|
+
while (true) {
|
|
49
|
+
const { value, done } = await reader.read();
|
|
50
|
+
if (done) break;
|
|
51
|
+
if (value) chunks.push(value);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Combine chunks and decode to string
|
|
55
|
+
const totalLength = chunks.reduce((acc, chunk) => acc + chunk.length, 0);
|
|
56
|
+
const resultUint8 = new Uint8Array(totalLength);
|
|
57
|
+
let offset = 0;
|
|
58
|
+
for (const chunk of chunks) {
|
|
59
|
+
resultUint8.set(chunk, offset);
|
|
60
|
+
offset += chunk.length;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const readText = decoder.decode(resultUint8);
|
|
64
|
+
|
|
65
|
+
// Verify the text matches exactly
|
|
66
|
+
assert.strictEqual(readText, "Hello streaming world!");
|
|
67
|
+
reader.releaseLock();
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
test("Data can be written and read sequentially before closing", async () => {
|
|
71
|
+
const { input, output } = createWebStreamPair();
|
|
72
|
+
const echoPromise = output.readable.pipeTo(output.writable);
|
|
73
|
+
|
|
74
|
+
const writer = input.writable.getWriter();
|
|
75
|
+
const reader = input.readable.getReader();
|
|
76
|
+
|
|
77
|
+
const encoder = new TextEncoder();
|
|
78
|
+
const decoder = new TextDecoder();
|
|
79
|
+
|
|
80
|
+
// 1. First Write & Read chunk
|
|
81
|
+
await writer.write(encoder.encode("Chunk 1"));
|
|
82
|
+
const result1 = await reader.read();
|
|
83
|
+
assert.strictEqual(result1.done, false);
|
|
84
|
+
assert.strictEqual(decoder.decode(result1.value), "Chunk 1");
|
|
85
|
+
|
|
86
|
+
// 2. Second Write & Read chunk
|
|
87
|
+
await writer.write(encoder.encode("Chunk 2"));
|
|
88
|
+
const result2 = await reader.read();
|
|
89
|
+
assert.strictEqual(result2.done, false);
|
|
90
|
+
assert.strictEqual(decoder.decode(result2.value), "Chunk 2");
|
|
91
|
+
|
|
92
|
+
// 3. Now we close the writable side mid-stream
|
|
93
|
+
await writer.close();
|
|
94
|
+
|
|
95
|
+
// The echo server's pipeTo should resolve and finish successfully
|
|
96
|
+
await assert.doesNotReject(echoPromise);
|
|
97
|
+
|
|
98
|
+
// 4. Verify that the readable side now registers the close signal
|
|
99
|
+
const finalResult = await reader.read();
|
|
100
|
+
assert.strictEqual(finalResult.done, true);
|
|
101
|
+
assert.strictEqual(finalResult.value, undefined);
|
|
102
|
+
|
|
103
|
+
writer.releaseLock();
|
|
104
|
+
reader.releaseLock();
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
test("Client detects when the echo server abruptly closes its end", async () => {
|
|
108
|
+
const { input, output } = createWebStreamPair();
|
|
109
|
+
const encoder = new TextEncoder();
|
|
110
|
+
|
|
111
|
+
// Set up a manual echo server so we can manipulate its controls
|
|
112
|
+
const serverReader = output.readable.getReader();
|
|
113
|
+
const serverWriter = output.writable.getWriter();
|
|
114
|
+
|
|
115
|
+
// Start a basic manual loop in the background
|
|
116
|
+
const serverLoop = (async () => {
|
|
117
|
+
try {
|
|
118
|
+
while (true) {
|
|
119
|
+
const { value, done } = await serverReader.read();
|
|
120
|
+
if (done) break;
|
|
121
|
+
await serverWriter.write(value);
|
|
122
|
+
}
|
|
123
|
+
} finally {
|
|
124
|
+
serverReader.releaseLock();
|
|
125
|
+
serverWriter.releaseLock();
|
|
126
|
+
}
|
|
127
|
+
})();
|
|
128
|
+
|
|
129
|
+
const clientWriter = input.writable.getWriter();
|
|
130
|
+
const clientReader = input.readable.getReader();
|
|
131
|
+
|
|
132
|
+
// --- Simulate Server Shutdown ---
|
|
133
|
+
// The echo server decides to close its writing side out of nowhere
|
|
134
|
+
try {
|
|
135
|
+
await serverWriter.close();
|
|
136
|
+
await serverReader.cancel();
|
|
137
|
+
await serverLoop;
|
|
138
|
+
|
|
139
|
+
const first = await clientReader.read();
|
|
140
|
+
assert.strictEqual(first.done, true);
|
|
141
|
+
|
|
142
|
+
await assert.rejects(
|
|
143
|
+
() => clientWriter.write(encoder.encode("Is anyone there?")),
|
|
144
|
+
/close|invalid/i,
|
|
145
|
+
);
|
|
146
|
+
} finally {
|
|
147
|
+
clientWriter.releaseLock();
|
|
148
|
+
clientReader.releaseLock();
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
test("Repeated close and cancel calls are idempotent", async () => {
|
|
153
|
+
const { input, output } = createWebStreamPair();
|
|
154
|
+
|
|
155
|
+
const inputWriter = input.writable.getWriter();
|
|
156
|
+
const inputReader = input.readable.getReader();
|
|
157
|
+
const outputWriter = output.writable.getWriter();
|
|
158
|
+
const outputReader = output.readable.getReader();
|
|
159
|
+
|
|
160
|
+
await Promise.allSettled([
|
|
161
|
+
inputWriter.close(),
|
|
162
|
+
outputWriter.close(),
|
|
163
|
+
inputReader.cancel(),
|
|
164
|
+
outputReader.cancel(),
|
|
165
|
+
]);
|
|
166
|
+
|
|
167
|
+
inputWriter.releaseLock();
|
|
168
|
+
inputReader.releaseLock();
|
|
169
|
+
outputWriter.releaseLock();
|
|
170
|
+
outputReader.releaseLock();
|
|
171
|
+
});
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
export interface WebStreamPairEndpoint {
|
|
2
|
+
readable: ReadableStream<Uint8Array>;
|
|
3
|
+
writable: WritableStream<Uint8Array>;
|
|
4
|
+
close: () => void;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export function createWebStreamPair(): {
|
|
8
|
+
input: WebStreamPairEndpoint;
|
|
9
|
+
output: WebStreamPairEndpoint;
|
|
10
|
+
} {
|
|
11
|
+
let aController: ReadableStreamDefaultController | null = null;
|
|
12
|
+
let bController: ReadableStreamDefaultController | null = null;
|
|
13
|
+
|
|
14
|
+
let aClosed = false;
|
|
15
|
+
let bClosed = false;
|
|
16
|
+
let aControllerClosed = false;
|
|
17
|
+
let bControllerClosed = false;
|
|
18
|
+
|
|
19
|
+
const aReadable = new ReadableStream({
|
|
20
|
+
start(controller) {
|
|
21
|
+
aController = controller;
|
|
22
|
+
},
|
|
23
|
+
cancel(_reason) {
|
|
24
|
+
aClosed = true;
|
|
25
|
+
tryCloseBoth();
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
const bReadable = new ReadableStream({
|
|
30
|
+
start(controller) {
|
|
31
|
+
bController = controller;
|
|
32
|
+
},
|
|
33
|
+
cancel(_reason) {
|
|
34
|
+
bClosed = true;
|
|
35
|
+
tryCloseBoth();
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const makeWritable = (
|
|
40
|
+
getPeerController: () => ReadableStreamDefaultController | null,
|
|
41
|
+
markClosed: () => void,
|
|
42
|
+
) =>
|
|
43
|
+
new WritableStream({
|
|
44
|
+
write(chunk) {
|
|
45
|
+
const peer = getPeerController();
|
|
46
|
+
if (!peer) throw new Error("peer stream not initialized yet");
|
|
47
|
+
peer.enqueue(chunk);
|
|
48
|
+
},
|
|
49
|
+
close() {
|
|
50
|
+
markClosed();
|
|
51
|
+
tryCloseBoth();
|
|
52
|
+
},
|
|
53
|
+
abort(reason) {
|
|
54
|
+
markClosed();
|
|
55
|
+
tryErrorBoth(reason);
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
const aWritable = makeWritable(
|
|
60
|
+
() => bController,
|
|
61
|
+
() => {
|
|
62
|
+
aClosed = true;
|
|
63
|
+
},
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
const bWritable = makeWritable(
|
|
67
|
+
() => aController,
|
|
68
|
+
() => {
|
|
69
|
+
bClosed = true;
|
|
70
|
+
},
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
function closePeerOnce(
|
|
74
|
+
side: "a" | "b",
|
|
75
|
+
controller: ReadableStreamDefaultController | null,
|
|
76
|
+
) {
|
|
77
|
+
if (!controller) return;
|
|
78
|
+
const isClosed = side === "a" ? aControllerClosed : bControllerClosed;
|
|
79
|
+
if (isClosed) return;
|
|
80
|
+
if (side === "a") {
|
|
81
|
+
aControllerClosed = true;
|
|
82
|
+
} else {
|
|
83
|
+
bControllerClosed = true;
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
controller.close();
|
|
87
|
+
} catch {
|
|
88
|
+
// ignore duplicate shutdown attempts; Node throws if the controller is already closed
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function errorPeerOnce(
|
|
93
|
+
side: "a" | "b",
|
|
94
|
+
controller: ReadableStreamDefaultController | null,
|
|
95
|
+
reason: unknown,
|
|
96
|
+
) {
|
|
97
|
+
if (!controller) return;
|
|
98
|
+
const isClosed = side === "a" ? aControllerClosed : bControllerClosed;
|
|
99
|
+
if (isClosed) return;
|
|
100
|
+
if (side === "a") {
|
|
101
|
+
aControllerClosed = true;
|
|
102
|
+
} else {
|
|
103
|
+
bControllerClosed = true;
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
controller.error(reason);
|
|
107
|
+
} catch {
|
|
108
|
+
// ignore duplicate shutdown attempts; Node throws if the controller is already closed
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function tryCloseBoth() {
|
|
113
|
+
if (aClosed) {
|
|
114
|
+
closePeerOnce("b", bController);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (bClosed) {
|
|
118
|
+
closePeerOnce("a", aController);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
function tryErrorBoth(reason: unknown) {
|
|
123
|
+
errorPeerOnce("a", aController, reason);
|
|
124
|
+
errorPeerOnce("b", bController, reason);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return {
|
|
128
|
+
input: {
|
|
129
|
+
readable: aReadable,
|
|
130
|
+
writable: aWritable,
|
|
131
|
+
close: () => {
|
|
132
|
+
aReadable.cancel();
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
output: {
|
|
136
|
+
readable: bReadable,
|
|
137
|
+
writable: bWritable,
|
|
138
|
+
close: () => {
|
|
139
|
+
bReadable.cancel();
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { parseArgs } from "node:util";
|
|
8
8
|
import { TcpServer } from "../node/tcpServer.js";
|
|
9
|
-
import {
|
|
9
|
+
import { ReasonCode } from "../server/mod.js";
|
|
10
10
|
import { logger, LogLevel } from "../utils/mod.js";
|
|
11
11
|
/**
|
|
12
12
|
* UTF-8 decoder for parsing passwords
|
|
@@ -35,27 +35,32 @@ const checkUsername = true;
|
|
|
35
35
|
* @param {string} clientId - Client identifier
|
|
36
36
|
* @param {string} username - Username to authenticate
|
|
37
37
|
* @param {Uint8Array} password - Password as byte array
|
|
38
|
-
* @
|
|
38
|
+
* @param {ConnectPacket} connectPacket - The raw connect packet
|
|
39
|
+
* @returns {IsAuthenticationResult} Authentication result
|
|
39
40
|
*/
|
|
40
|
-
function isAuthenticated(_ctx, clientId, username, password) {
|
|
41
|
+
function isAuthenticated(_ctx, clientId, username, password, connectPacket) {
|
|
41
42
|
const pwd = utf8Decoder.decode(password);
|
|
42
|
-
logger.info(
|
|
43
|
+
logger.info("Verifying authentication of client", clientId, "with username", username);
|
|
44
|
+
logger.debug("Client", clientId, "connecting with protocol level", connectPacket.protocolLevel);
|
|
43
45
|
if (!checkUsername) {
|
|
44
46
|
// allow all users access
|
|
45
|
-
return
|
|
47
|
+
return { reasonCode: ReasonCode.success };
|
|
46
48
|
}
|
|
47
49
|
// is the username valid according to MQTT specification
|
|
48
50
|
if (!strictUsername.test(username)) {
|
|
49
|
-
return
|
|
51
|
+
return { reasonCode: ReasonCode.badUserNameOrPassword };
|
|
50
52
|
}
|
|
51
53
|
// Does user and password match an entry in userTable
|
|
52
54
|
if (userTable.has(username)) {
|
|
53
55
|
const pass = userTable.get(username);
|
|
54
56
|
if (pwd === pass) {
|
|
55
|
-
return
|
|
57
|
+
return { reasonCode: ReasonCode.success };
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
|
-
return
|
|
60
|
+
return {
|
|
61
|
+
reasonCode: ReasonCode.notAuthorized,
|
|
62
|
+
reasonString: "Authentication failed",
|
|
63
|
+
};
|
|
59
64
|
}
|
|
60
65
|
/**
|
|
61
66
|
* Checks if client is authorized to publish to a topic
|
|
@@ -64,7 +69,7 @@ function isAuthenticated(_ctx, clientId, username, password) {
|
|
|
64
69
|
* @returns {boolean} True if authorized
|
|
65
70
|
*/
|
|
66
71
|
function isAuthorizedToPublish(ctx, topic) {
|
|
67
|
-
logger.debug(
|
|
72
|
+
logger.debug("Checking authorization of client", ctx.clientId, "to publish on topic", topic);
|
|
68
73
|
return true;
|
|
69
74
|
}
|
|
70
75
|
/**
|
|
@@ -73,8 +78,8 @@ function isAuthorizedToPublish(ctx, topic) {
|
|
|
73
78
|
* @param {Topic} topic - Topic to subscribe to
|
|
74
79
|
* @returns {boolean} True if authorized
|
|
75
80
|
*/
|
|
76
|
-
function isAuthorizedToSubscribe(ctx, topic) {
|
|
77
|
-
logger.debug(
|
|
81
|
+
function isAuthorizedToSubscribe(ctx, topic, shareName) {
|
|
82
|
+
logger.debug("Checking authorization of client", ctx.clientId, "to subscribe to topic", topic, "using shareName", shareName);
|
|
78
83
|
return true;
|
|
79
84
|
}
|
|
80
85
|
/**
|
|
@@ -95,5 +100,5 @@ const tcpServer = new TcpServer({ port, hostname }, {
|
|
|
95
100
|
},
|
|
96
101
|
});
|
|
97
102
|
tcpServer.start();
|
|
98
|
-
logger.info(
|
|
103
|
+
logger.info("Server started on port", tcpServer.port);
|
|
99
104
|
//# sourceMappingURL=conformanceServer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformanceServer.js","sourceRoot":"","sources":["../../bin/conformanceServer.ts"],"names":[],"mappings":";AACA,iFAAiF;AAEjF;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"conformanceServer.js","sourceRoot":"","sources":["../../bin/conformanceServer.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/demoServer.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { parseArgs } from "node:util";
|
|
7
7
|
import { TcpServer } from "../node/tcpServer.js";
|
|
8
|
-
import {
|
|
8
|
+
import { ReasonCode } from "../server/mod.js";
|
|
9
9
|
import { logger, LogLevel } from "../utils/mod.js";
|
|
10
10
|
/**
|
|
11
11
|
* UTF-8 decoder for parsing passwords
|
|
@@ -34,27 +34,31 @@ const checkUsername = false;
|
|
|
34
34
|
* @param {string} clientId - Client identifier
|
|
35
35
|
* @param {string} username - Username to authenticate
|
|
36
36
|
* @param {Uint8Array} password - Password as byte array
|
|
37
|
-
* @returns {
|
|
37
|
+
* @returns {IsAuthenticationResult} Authentication result
|
|
38
38
|
*/
|
|
39
|
-
function isAuthenticated(_ctx, clientId, username, password) {
|
|
39
|
+
function isAuthenticated(_ctx, clientId, username, password, connectPacket) {
|
|
40
40
|
const pwd = utf8Decoder.decode(password);
|
|
41
|
-
logger.info(`Verifying authentication of client '${clientId}' with username '${username}'
|
|
41
|
+
logger.info(`Verifying authentication of client '${clientId}' with username '${username}'`);
|
|
42
|
+
logger.debug(`Client '${clientId}' connecting with protocol level ${connectPacket.protocolLevel}`);
|
|
42
43
|
if (!checkUsername) {
|
|
43
44
|
// allow all users access
|
|
44
|
-
return
|
|
45
|
+
return { reasonCode: ReasonCode.success };
|
|
45
46
|
}
|
|
46
47
|
// is the username valid according to MQTT specification
|
|
47
48
|
if (!strictUsername.test(username)) {
|
|
48
|
-
return
|
|
49
|
+
return { reasonCode: ReasonCode.badUserNameOrPassword };
|
|
49
50
|
}
|
|
50
51
|
// Does user and password match an entry in userTable
|
|
51
52
|
if (userTable.has(username)) {
|
|
52
53
|
const pass = userTable.get(username);
|
|
53
54
|
if (pwd === pass) {
|
|
54
|
-
return
|
|
55
|
+
return { reasonCode: ReasonCode.success };
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
|
-
return
|
|
58
|
+
return {
|
|
59
|
+
reasonCode: ReasonCode.notAuthorized,
|
|
60
|
+
reasonString: "Authentication failed",
|
|
61
|
+
};
|
|
58
62
|
}
|
|
59
63
|
/**
|
|
60
64
|
* Checks if client is authorized to publish to a topic
|
|
@@ -63,7 +67,7 @@ function isAuthenticated(_ctx, clientId, username, password) {
|
|
|
63
67
|
* @returns {boolean} True if authorized
|
|
64
68
|
*/
|
|
65
69
|
function isAuthorizedToPublish(ctx, topic) {
|
|
66
|
-
logger.debug(
|
|
70
|
+
logger.debug("Checking authorization of client", ctx.clientId, "to publish on topic", topic);
|
|
67
71
|
return true;
|
|
68
72
|
}
|
|
69
73
|
/**
|
|
@@ -72,8 +76,8 @@ function isAuthorizedToPublish(ctx, topic) {
|
|
|
72
76
|
* @param {Topic} topic - Topic to subscribe to
|
|
73
77
|
* @returns {boolean} True if authorized
|
|
74
78
|
*/
|
|
75
|
-
function isAuthorizedToSubscribe(ctx, topic) {
|
|
76
|
-
logger.debug(
|
|
79
|
+
function isAuthorizedToSubscribe(ctx, topic, shareName) {
|
|
80
|
+
logger.debug("Checking authorization of client", ctx.clientId, "to subscribe to topic", topic, "using shareName", shareName);
|
|
77
81
|
return true;
|
|
78
82
|
}
|
|
79
83
|
/**
|
|
@@ -94,5 +98,5 @@ const tcpServer = new TcpServer({ port, hostname }, {
|
|
|
94
98
|
},
|
|
95
99
|
});
|
|
96
100
|
tcpServer.start();
|
|
97
|
-
logger.info(
|
|
101
|
+
logger.info("Server started on port", tcpServer.port);
|
|
98
102
|
//# sourceMappingURL=demoServer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demoServer.js","sourceRoot":"","sources":["../../bin/demoServer.ts"],"names":[],"mappings":";AAEA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"demoServer.js","sourceRoot":"","sources":["../../bin/demoServer.ts"],"names":[],"mappings":";AAEA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAQjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC;;GAEG;AACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;AAC5B,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAC/C,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAE/C;;;GAGG;AACH,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEzD;;;;GAIG;AACH,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B;;;;;;;GAOG;AACH,SAAS,eAAe,CACtB,IAAa,EACb,QAAgB,EAChB,QAAgB,EAChB,QAAoB,EACpB,aAA4B;IAE5B,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,CAAC,IAAI,CACT,uCAAuC,QAAQ,oBAAoB,QAAQ,GAAG,CAC/E,CAAC;IACF,MAAM,CAAC,KAAK,CACV,WAAW,QAAQ,oCAAoC,aAAa,CAAC,aAAa,EAAE,CACrF,CAAC;IAEF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,yBAAyB;QACzB,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;IAC5C,CAAC;IACD,wDAAwD;IACxD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,qBAAqB,EAAE,CAAC;IAC1D,CAAC;IACD,qDAAqD;IACrD,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,OAAO;QACL,UAAU,EAAE,UAAU,CAAC,aAAa;QACpC,YAAY,EAAE,uBAAuB;KACtC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,GAAY,EAAE,KAAY;IACvD,MAAM,CAAC,KAAK,CACV,kCAAkC,EAClC,GAAG,CAAC,QAAQ,EACZ,qBAAqB,EACrB,KAAK,CACN,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAC9B,GAAY,EACZ,KAAY,EACZ,SAAoB;IAEpB,MAAM,CAAC,KAAK,CACV,kCAAkC,EAClC,GAAG,CAAC,QAAQ,EACZ,uBAAuB,EACvB,KAAK,EACL,iBAAiB,EACjB,SAAS,CACV,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;AACzE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;AACrC,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE5B;;GAEG;AACH,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IAClD,QAAQ,EAAE;QACR,eAAe;QACf,qBAAqB;QACrB,uBAAuB;KACxB;CACF,CAAC,CAAC;AACH,SAAS,CAAC,KAAK,EAAE,CAAC;AAClB,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/bin/mqtt.js
CHANGED
|
@@ -188,7 +188,7 @@ async function subscribe() {
|
|
|
188
188
|
catch (err) {
|
|
189
189
|
if (err instanceof Error) {
|
|
190
190
|
const errorWithCode = err;
|
|
191
|
-
logger.info(
|
|
191
|
+
logger.info("Error:", errorWithCode.message || errorWithCode.code);
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
}
|
|
@@ -238,7 +238,7 @@ async function publish() {
|
|
|
238
238
|
catch (err) {
|
|
239
239
|
if (err instanceof Error) {
|
|
240
240
|
const errorWithCode = err;
|
|
241
|
-
logger.info(
|
|
241
|
+
logger.info("Error:", errorWithCode.message || errorWithCode.code);
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
244
|
}
|
package/dist/bin/mqtt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mqtt.js","sourceRoot":"","sources":["../../bin/mqtt.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mqtt.js","sourceRoot":"","sources":["../../bin/mqtt.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,8 @@ export declare const ConnectionState: {
|
|
|
13
13
|
readonly disconnecting: "disconnecting";
|
|
14
14
|
/** System has been disconnected */
|
|
15
15
|
readonly disconnected: "disconnected";
|
|
16
|
+
/** System is authenticating mid session */
|
|
17
|
+
readonly authenticating: "authenticating";
|
|
16
18
|
};
|
|
17
19
|
/**
|
|
18
20
|
* @description Type representing the possible values of ConnectionState
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionState.d.ts","sourceRoot":"","sources":["../../client/ConnectionState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,eAAe;IAC1B,sDAAsD
|
|
1
|
+
{"version":3,"file":"ConnectionState.d.ts","sourceRoot":"","sources":["../../client/ConnectionState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,eAAe;IAC1B,sDAAsD;aACtD,OAAO,EAAE,SAAS;IAClB,4DAA4D;aAC5D,UAAU,EAAE,YAAY;IACxB,sCAAsC;aACtC,SAAS,EAAE,WAAW;IACtB,gDAAgD;aAChD,aAAa,EAAE,eAAe;IAC9B,mCAAmC;aACnC,YAAY,EAAE,cAAc;IAC5B,2CAA2C;aAC3C,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAC1B,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -13,5 +13,7 @@ export const ConnectionState = {
|
|
|
13
13
|
disconnecting: "disconnecting",
|
|
14
14
|
/** System has been disconnected */
|
|
15
15
|
disconnected: "disconnected",
|
|
16
|
+
/** System is authenticating mid session */
|
|
17
|
+
authenticating: "authenticating",
|
|
16
18
|
};
|
|
17
19
|
//# sourceMappingURL=ConnectionState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionState.js","sourceRoot":"","sources":["../../client/ConnectionState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,sDAAsD;IACtD,OAAO,EAAE,SAAS;IAClB,4DAA4D;IAC5D,UAAU,EAAE,YAAY;IACxB,sCAAsC;IACtC,SAAS,EAAE,WAAW;IACtB,gDAAgD;IAChD,aAAa,EAAE,eAAe;IAC9B,mCAAmC;IACnC,YAAY,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"ConnectionState.js","sourceRoot":"","sources":["../../client/ConnectionState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,sDAAsD;IACtD,OAAO,EAAE,SAAS;IAClB,4DAA4D;IAC5D,UAAU,EAAE,YAAY;IACxB,sCAAsC;IACtC,SAAS,EAAE,WAAW;IACtB,gDAAgD;IAChD,aAAa,EAAE,eAAe;IAC9B,mCAAmC;IACnC,YAAY,EAAE,cAAc;IAC5B,2CAA2C;IAC3C,cAAc,EAAE,gBAAgB;CACxB,CAAC"}
|
package/dist/client/client.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { ConnectPacket, PublishPacket, SockConn, SubscribePacket, TAuthenticationResult } from "./deps.ts";
|
|
1
|
+
import type { ConnectPacket, IStore, PublishPacket, SockConn, SubscribePacket, TAuthenticationResult } from "./deps.ts";
|
|
2
|
+
import type { AuthenticatedResult } from "./context.ts";
|
|
2
3
|
import type { TConnectionState } from "./ConnectionState.ts";
|
|
3
4
|
type ConnectOptions = Omit<ConnectPacket, "type" | "protocolName">;
|
|
4
5
|
/** ConnectParameters define how to connect */
|
|
@@ -17,7 +18,7 @@ export type SubscribeParameters = Omit<SubscribePacket, "type" | "id" | "protoco
|
|
|
17
18
|
/** the default MQTT URL to connect to */
|
|
18
19
|
export declare const DEFAULT_URL = "mqtt://localhost:1883/";
|
|
19
20
|
/** the default protocol level to connect with*/
|
|
20
|
-
export declare const DEFAULT_PROTOCOLLEVEL:
|
|
21
|
+
export declare const DEFAULT_PROTOCOLLEVEL: 4;
|
|
21
22
|
/** the default keepalive time */
|
|
22
23
|
export declare const DEFAULT_KEEPALIVE = 60;
|
|
23
24
|
/**
|
|
@@ -30,6 +31,7 @@ export declare const DEFAULT_KEEPALIVE = 60;
|
|
|
30
31
|
* connection type that is supported by the subclass.
|
|
31
32
|
*/
|
|
32
33
|
export declare class Client {
|
|
34
|
+
onAuth: (authMethod: string, authData: Uint8Array) => AuthenticatedResult;
|
|
33
35
|
onError: (err: Error) => void;
|
|
34
36
|
onPacket: (pkt: PublishPacket) => void | Promise<void>;
|
|
35
37
|
onConnected: () => void;
|
|
@@ -37,32 +39,27 @@ export declare class Client {
|
|
|
37
39
|
onReconnecting: () => void;
|
|
38
40
|
protected clientIdPrefix: string;
|
|
39
41
|
protected numberOfRetries: number;
|
|
40
|
-
protected
|
|
42
|
+
protected connectUrl: URL;
|
|
41
43
|
protected keepAlive: number;
|
|
42
|
-
protected protocolLevel:
|
|
44
|
+
protected protocolLevel: 4;
|
|
43
45
|
protected autoReconnect: boolean;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
protected caCerts?: string[] | undefined;
|
|
47
|
+
protected cert?: string | undefined;
|
|
48
|
+
protected key?: string | undefined;
|
|
49
|
+
protected clientId: string;
|
|
48
50
|
private ctx;
|
|
49
51
|
private connectPacket?;
|
|
50
52
|
/**
|
|
51
53
|
* Creates a new MQTT client instance
|
|
52
54
|
*/
|
|
53
|
-
constructor();
|
|
55
|
+
constructor(store?: IStore);
|
|
54
56
|
get connectionState(): TConnectionState;
|
|
57
|
+
get url(): URL;
|
|
55
58
|
/**
|
|
56
59
|
* Creates a new connection to the MQTT broker
|
|
57
|
-
* @param protocol - The protocol to use (mqtt, mqtts, etc)
|
|
58
|
-
* @param _hostname - The hostname to connect to
|
|
59
|
-
* @param _port - The port to connect to
|
|
60
|
-
* @param _caCerts - Optional CA certificates
|
|
61
|
-
* @param _cert - Optional client certificate
|
|
62
|
-
* @param _key - Optional client key
|
|
63
60
|
* @returns Promise resolving to a SockConn connection
|
|
64
61
|
*/
|
|
65
|
-
protected createConn(
|
|
62
|
+
protected createConn(): Promise<SockConn>;
|
|
66
63
|
/**
|
|
67
64
|
* Handles the connection process including retries and reconnection
|
|
68
65
|
* @returns Promise that resolves when connection is established or fails
|