@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.
Files changed (542) hide show
  1. package/README.md +99 -40
  2. package/bin/conformanceServer.ts +45 -13
  3. package/bin/demoServer.ts +38 -13
  4. package/bin/mqtt.ts +2 -2
  5. package/client/ConnectionState.ts +3 -1
  6. package/client/client.ts +88 -47
  7. package/client/context.ts +79 -27
  8. package/client/deps.ts +10 -3
  9. package/client/handlers/handleAuth.test.ts +193 -0
  10. package/client/handlers/handleAuth.ts +89 -0
  11. package/client/handlers/handleConnack.test.ts +173 -0
  12. package/client/handlers/handleConnack.ts +18 -8
  13. package/client/handlers/handleDisconnect.test.ts +22 -0
  14. package/client/handlers/handleDisconnect.ts +17 -0
  15. package/client/handlers/handlePacket.test.ts +242 -0
  16. package/client/handlers/handlePacket.ts +19 -5
  17. package/client/handlers/handlePuback.test.ts +99 -0
  18. package/client/handlers/handlePuback.ts +6 -0
  19. package/client/handlers/handlePubcomp.test.ts +112 -0
  20. package/client/handlers/handlePubcomp.ts +5 -0
  21. package/client/handlers/handlePublish.test.ts +188 -0
  22. package/client/handlers/handlePubrec.test.ts +119 -0
  23. package/client/handlers/handlePubrec.ts +5 -1
  24. package/client/handlers/handlePubrel.test.ts +136 -0
  25. package/client/handlers/handleSuback.test.ts +122 -0
  26. package/client/handlers/handleSuback.ts +3 -0
  27. package/client/handlers/handleUnsuback.test.ts +101 -0
  28. package/client/mod.ts +13 -2
  29. package/client/store/memoryStore.ts +12 -11
  30. package/client/store/store.ts +4 -2
  31. package/deno/README.md +1 -2
  32. package/deno/tcpClient.test.ts +75 -0
  33. package/deno/tcpClient.ts +36 -18
  34. package/deno/tcpServer.test.ts +22 -21
  35. package/deno/tcpServer.ts +26 -4
  36. package/deno/tlsServer.test.ts +97 -0
  37. package/deno/tlsServer.ts +58 -0
  38. package/deno/wsServer.test.ts +93 -0
  39. package/deno/wsServer.ts +96 -0
  40. package/dev_utils/generateCert.ts +95 -0
  41. package/dev_utils/mockConn.ts +36 -0
  42. package/dev_utils/mockServer.ts +28 -0
  43. package/dev_utils/mod.ts +30 -3
  44. package/dev_utils/packetHelpers.ts +404 -0
  45. package/dev_utils/test-handlers.ts +98 -0
  46. package/dev_utils/timers.ts +14 -0
  47. package/dev_utils/webStreamPair.test.ts +171 -0
  48. package/dev_utils/webStreamPair.ts +143 -0
  49. package/dist/bin/conformanceServer.js +17 -12
  50. package/dist/bin/conformanceServer.js.map +1 -1
  51. package/dist/bin/demoServer.js +16 -12
  52. package/dist/bin/demoServer.js.map +1 -1
  53. package/dist/bin/mqtt.js +2 -2
  54. package/dist/bin/mqtt.js.map +1 -1
  55. package/dist/client/ConnectionState.d.ts +3 -1
  56. package/dist/client/ConnectionState.d.ts.map +1 -1
  57. package/dist/client/ConnectionState.js +2 -0
  58. package/dist/client/ConnectionState.js.map +1 -1
  59. package/dist/client/client.d.ts +47 -21
  60. package/dist/client/client.d.ts.map +1 -1
  61. package/dist/client/client.js +57 -20
  62. package/dist/client/client.js.map +1 -1
  63. package/dist/client/context.d.ts +15 -7
  64. package/dist/client/context.d.ts.map +1 -1
  65. package/dist/client/context.js +44 -12
  66. package/dist/client/context.js.map +1 -1
  67. package/dist/client/deps.d.ts +4 -3
  68. package/dist/client/deps.d.ts.map +1 -1
  69. package/dist/client/deps.js +1 -1
  70. package/dist/client/deps.js.map +1 -1
  71. package/dist/client/handlers/handleAuth.d.ts +9 -0
  72. package/dist/client/handlers/handleAuth.d.ts.map +1 -0
  73. package/dist/client/handlers/handleAuth.js +66 -0
  74. package/dist/client/handlers/handleAuth.js.map +1 -0
  75. package/dist/client/handlers/handleConnack.d.ts +2 -2
  76. package/dist/client/handlers/handleConnack.d.ts.map +1 -1
  77. package/dist/client/handlers/handleConnack.js +16 -6
  78. package/dist/client/handlers/handleConnack.js.map +1 -1
  79. package/dist/client/handlers/handleDisconnect.d.ts +11 -0
  80. package/dist/client/handlers/handleDisconnect.d.ts.map +1 -0
  81. package/dist/client/handlers/handleDisconnect.js +15 -0
  82. package/dist/client/handlers/handleDisconnect.js.map +1 -0
  83. package/dist/client/handlers/handlePacket.d.ts.map +1 -1
  84. package/dist/client/handlers/handlePacket.js +14 -3
  85. package/dist/client/handlers/handlePacket.js.map +1 -1
  86. package/dist/client/handlers/handlePuback.d.ts.map +1 -1
  87. package/dist/client/handlers/handlePuback.js +5 -0
  88. package/dist/client/handlers/handlePuback.js.map +1 -1
  89. package/dist/client/handlers/handlePubcomp.d.ts.map +1 -1
  90. package/dist/client/handlers/handlePubcomp.js +5 -0
  91. package/dist/client/handlers/handlePubcomp.js.map +1 -1
  92. package/dist/client/handlers/handlePubrec.d.ts.map +1 -1
  93. package/dist/client/handlers/handlePubrec.js +5 -1
  94. package/dist/client/handlers/handlePubrec.js.map +1 -1
  95. package/dist/client/handlers/handleSuback.d.ts +1 -0
  96. package/dist/client/handlers/handleSuback.d.ts.map +1 -1
  97. package/dist/client/handlers/handleSuback.js +3 -0
  98. package/dist/client/handlers/handleSuback.js.map +1 -1
  99. package/dist/client/mod.d.ts +3 -2
  100. package/dist/client/mod.d.ts.map +1 -1
  101. package/dist/client/mod.js +1 -1
  102. package/dist/client/mod.js.map +1 -1
  103. package/dist/client/store/memoryStore.d.ts +3 -3
  104. package/dist/client/store/memoryStore.d.ts.map +1 -1
  105. package/dist/client/store/memoryStore.js +3 -3
  106. package/dist/client/store/memoryStore.js.map +1 -1
  107. package/dist/client/store/store.d.ts +3 -2
  108. package/dist/client/store/store.d.ts.map +1 -1
  109. package/dist/client/store/store.js +1 -1
  110. package/dist/client/store/store.js.map +1 -1
  111. package/dist/dev_utils/generateCert.d.ts +11 -0
  112. package/dist/dev_utils/generateCert.d.ts.map +1 -0
  113. package/dist/dev_utils/generateCert.js +76 -0
  114. package/dist/dev_utils/generateCert.js.map +1 -0
  115. package/dist/examples/authHandler.test.d.ts +2 -0
  116. package/dist/examples/authHandler.test.d.ts.map +1 -0
  117. package/dist/examples/authHandler.test.js +123 -0
  118. package/dist/examples/authHandler.test.js.map +1 -0
  119. package/dist/examples/mqtt.test.d.ts +2 -0
  120. package/dist/examples/mqtt.test.d.ts.map +1 -0
  121. package/dist/examples/mqtt.test.js +70 -0
  122. package/dist/examples/mqtt.test.js.map +1 -0
  123. package/dist/examples/mqtts.test.d.ts +2 -0
  124. package/dist/examples/mqtts.test.d.ts.map +1 -0
  125. package/dist/examples/mqtts.test.js +81 -0
  126. package/dist/examples/mqtts.test.js.map +1 -0
  127. package/dist/mqttConn/mqttConn.d.ts +24 -31
  128. package/dist/mqttConn/mqttConn.d.ts.map +1 -1
  129. package/dist/mqttConn/mqttConn.js +57 -36
  130. package/dist/mqttConn/mqttConn.js.map +1 -1
  131. package/dist/mqttPacket/AuthenticationResult.d.ts +4 -0
  132. package/dist/mqttPacket/AuthenticationResult.d.ts.map +1 -1
  133. package/dist/mqttPacket/AuthenticationResult.js.map +1 -1
  134. package/dist/mqttPacket/BitMask.d.ts.map +1 -1
  135. package/dist/mqttPacket/PacketType.d.ts +4 -0
  136. package/dist/mqttPacket/PacketType.d.ts.map +1 -1
  137. package/dist/mqttPacket/Properties.d.ts +4 -4
  138. package/dist/mqttPacket/Properties.d.ts.map +1 -1
  139. package/dist/mqttPacket/Properties.js.map +1 -1
  140. package/dist/mqttPacket/ReasonCode.d.ts +4 -5
  141. package/dist/mqttPacket/ReasonCode.d.ts.map +1 -1
  142. package/dist/mqttPacket/ReasonCode.js +1 -0
  143. package/dist/mqttPacket/ReasonCode.js.map +1 -1
  144. package/dist/mqttPacket/RetainHandling.d.ts +4 -0
  145. package/dist/mqttPacket/RetainHandling.d.ts.map +1 -1
  146. package/dist/mqttPacket/auth.d.ts +7 -8
  147. package/dist/mqttPacket/auth.d.ts.map +1 -1
  148. package/dist/mqttPacket/auth.js +31 -30
  149. package/dist/mqttPacket/auth.js.map +1 -1
  150. package/dist/mqttPacket/codec.d.ts +48 -0
  151. package/dist/mqttPacket/codec.d.ts.map +1 -0
  152. package/dist/mqttPacket/codec.js +93 -0
  153. package/dist/mqttPacket/codec.js.map +1 -0
  154. package/dist/mqttPacket/connack.d.ts +11 -10
  155. package/dist/mqttPacket/connack.d.ts.map +1 -1
  156. package/dist/mqttPacket/connack.js +43 -45
  157. package/dist/mqttPacket/connack.js.map +1 -1
  158. package/dist/mqttPacket/connect.d.ts +7 -7
  159. package/dist/mqttPacket/connect.d.ts.map +1 -1
  160. package/dist/mqttPacket/connect.js +156 -157
  161. package/dist/mqttPacket/connect.js.map +1 -1
  162. package/dist/mqttPacket/decoder.d.ts +6 -16
  163. package/dist/mqttPacket/decoder.d.ts.map +1 -1
  164. package/dist/mqttPacket/decoder.js +7 -28
  165. package/dist/mqttPacket/decoder.js.map +1 -1
  166. package/dist/mqttPacket/disconnect.d.ts +9 -8
  167. package/dist/mqttPacket/disconnect.d.ts.map +1 -1
  168. package/dist/mqttPacket/disconnect.js +41 -43
  169. package/dist/mqttPacket/disconnect.js.map +1 -1
  170. package/dist/mqttPacket/encoder.d.ts +7 -19
  171. package/dist/mqttPacket/encoder.d.ts.map +1 -1
  172. package/dist/mqttPacket/encoder.js +5 -28
  173. package/dist/mqttPacket/encoder.js.map +1 -1
  174. package/dist/mqttPacket/mod.d.ts +21 -103
  175. package/dist/mqttPacket/mod.d.ts.map +1 -1
  176. package/dist/mqttPacket/mod.js +5 -94
  177. package/dist/mqttPacket/mod.js.map +1 -1
  178. package/dist/mqttPacket/pingreq.d.ts +6 -6
  179. package/dist/mqttPacket/pingreq.d.ts.map +1 -1
  180. package/dist/mqttPacket/pingreq.js +11 -13
  181. package/dist/mqttPacket/pingreq.js.map +1 -1
  182. package/dist/mqttPacket/pingres.d.ts +6 -6
  183. package/dist/mqttPacket/pingres.d.ts.map +1 -1
  184. package/dist/mqttPacket/pingres.js +11 -13
  185. package/dist/mqttPacket/pingres.js.map +1 -1
  186. package/dist/mqttPacket/protocolLevels.d.ts +11 -6
  187. package/dist/mqttPacket/protocolLevels.d.ts.map +1 -1
  188. package/dist/mqttPacket/protocolLevels.js +5 -1
  189. package/dist/mqttPacket/protocolLevels.js.map +1 -1
  190. package/dist/mqttPacket/pubblishAcks.d.ts +9 -10
  191. package/dist/mqttPacket/pubblishAcks.d.ts.map +1 -1
  192. package/dist/mqttPacket/pubblishAcks.js +43 -45
  193. package/dist/mqttPacket/pubblishAcks.js.map +1 -1
  194. package/dist/mqttPacket/publish.d.ts +8 -7
  195. package/dist/mqttPacket/publish.d.ts.map +1 -1
  196. package/dist/mqttPacket/publish.js +53 -55
  197. package/dist/mqttPacket/publish.js.map +1 -1
  198. package/dist/mqttPacket/suback.d.ts +9 -8
  199. package/dist/mqttPacket/suback.d.ts.map +1 -1
  200. package/dist/mqttPacket/suback.js +38 -40
  201. package/dist/mqttPacket/suback.js.map +1 -1
  202. package/dist/mqttPacket/subscribe.d.ts +41 -10
  203. package/dist/mqttPacket/subscribe.d.ts.map +1 -1
  204. package/dist/mqttPacket/subscribe.js +90 -89
  205. package/dist/mqttPacket/subscribe.js.map +1 -1
  206. package/dist/mqttPacket/types.d.ts +2 -29
  207. package/dist/mqttPacket/types.d.ts.map +1 -1
  208. package/dist/mqttPacket/unsuback.d.ts +9 -8
  209. package/dist/mqttPacket/unsuback.d.ts.map +1 -1
  210. package/dist/mqttPacket/unsuback.js +32 -34
  211. package/dist/mqttPacket/unsuback.js.map +1 -1
  212. package/dist/mqttPacket/unsubscribe.d.ts +26 -8
  213. package/dist/mqttPacket/unsubscribe.d.ts.map +1 -1
  214. package/dist/mqttPacket/unsubscribe.js +45 -44
  215. package/dist/mqttPacket/unsubscribe.js.map +1 -1
  216. package/dist/mqttPacket/validators.d.ts +4 -16
  217. package/dist/mqttPacket/validators.d.ts.map +1 -1
  218. package/dist/mqttPacket/validators.js +5 -26
  219. package/dist/mqttPacket/validators.js.map +1 -1
  220. package/dist/node/tcpClient.d.ts +22 -2
  221. package/dist/node/tcpClient.d.ts.map +1 -1
  222. package/dist/node/tcpClient.js +29 -10
  223. package/dist/node/tcpClient.js.map +1 -1
  224. package/dist/node/tcpServer.d.ts +18 -0
  225. package/dist/node/tcpServer.d.ts.map +1 -1
  226. package/dist/node/tcpServer.js +21 -2
  227. package/dist/node/tcpServer.js.map +1 -1
  228. package/dist/node/tlsServer.d.ts +37 -0
  229. package/dist/node/tlsServer.d.ts.map +1 -0
  230. package/dist/node/tlsServer.js +73 -0
  231. package/dist/node/tlsServer.js.map +1 -0
  232. package/dist/node/wrapNodeSocket.d.ts.map +1 -1
  233. package/dist/node/wrapNodeSocket.js +6 -28
  234. package/dist/node/wrapNodeSocket.js.map +1 -1
  235. package/dist/persistence/basicPersistence.d.ts +36 -0
  236. package/dist/persistence/basicPersistence.d.ts.map +1 -0
  237. package/dist/persistence/basicPersistence.js +306 -0
  238. package/dist/persistence/basicPersistence.js.map +1 -0
  239. package/dist/persistence/deps.d.ts +3 -2
  240. package/dist/persistence/deps.d.ts.map +1 -1
  241. package/dist/persistence/deps.js +2 -1
  242. package/dist/persistence/deps.js.map +1 -1
  243. package/dist/persistence/memory/memoryPersistence.d.ts +6 -23
  244. package/dist/persistence/memory/memoryPersistence.d.ts.map +1 -1
  245. package/dist/persistence/memory/memoryPersistence.js +12 -115
  246. package/dist/persistence/memory/memoryPersistence.js.map +1 -1
  247. package/dist/persistence/memory/memoryStorage.d.ts +45 -0
  248. package/dist/persistence/memory/memoryStorage.d.ts.map +1 -0
  249. package/dist/persistence/memory/memoryStorage.js +143 -0
  250. package/dist/persistence/memory/memoryStorage.js.map +1 -0
  251. package/dist/persistence/mod.d.ts +3 -3
  252. package/dist/persistence/mod.d.ts.map +1 -1
  253. package/dist/persistence/mod.js +6 -1
  254. package/dist/persistence/mod.js.map +1 -1
  255. package/dist/persistence/persistence.d.ts +45 -70
  256. package/dist/persistence/persistence.d.ts.map +1 -1
  257. package/dist/persistence/persistence.js +1 -2
  258. package/dist/persistence/persistence.js.map +1 -1
  259. package/dist/persistence/sqlite/sqliteDatabase.d.ts +46 -0
  260. package/dist/persistence/sqlite/sqliteDatabase.d.ts.map +1 -0
  261. package/dist/persistence/sqlite/sqliteDatabase.js +215 -0
  262. package/dist/persistence/sqlite/sqliteDatabase.js.map +1 -0
  263. package/dist/persistence/sqlite/sqlitePersistence.d.ts +16 -0
  264. package/dist/persistence/sqlite/sqlitePersistence.d.ts.map +1 -0
  265. package/dist/persistence/sqlite/sqlitePersistence.js +29 -0
  266. package/dist/persistence/sqlite/sqlitePersistence.js.map +1 -0
  267. package/dist/persistence/sqlite/sqliteStorage.d.ts +36 -0
  268. package/dist/persistence/sqlite/sqliteStorage.d.ts.map +1 -0
  269. package/dist/persistence/sqlite/sqliteStorage.js +194 -0
  270. package/dist/persistence/sqlite/sqliteStorage.js.map +1 -0
  271. package/dist/persistence/storage.d.ts +38 -0
  272. package/dist/persistence/storage.d.ts.map +1 -0
  273. package/dist/persistence/storage.js +5 -0
  274. package/dist/persistence/storage.js.map +1 -0
  275. package/dist/server/config.d.ts +47 -0
  276. package/dist/server/config.d.ts.map +1 -0
  277. package/dist/server/config.js +41 -0
  278. package/dist/server/config.js.map +1 -0
  279. package/dist/server/context.d.ts +199 -25
  280. package/dist/server/context.d.ts.map +1 -1
  281. package/dist/server/context.js +432 -53
  282. package/dist/server/context.js.map +1 -1
  283. package/dist/server/deps.d.ts +5 -6
  284. package/dist/server/deps.d.ts.map +1 -1
  285. package/dist/server/deps.js +2 -2
  286. package/dist/server/deps.js.map +1 -1
  287. package/dist/server/handlers/completeConnect.d.ts +9 -0
  288. package/dist/server/handlers/completeConnect.d.ts.map +1 -0
  289. package/dist/server/handlers/completeConnect.js +74 -0
  290. package/dist/server/handlers/completeConnect.js.map +1 -0
  291. package/dist/server/handlers/handleAuth.d.ts +9 -0
  292. package/dist/server/handlers/handleAuth.d.ts.map +1 -0
  293. package/dist/server/handlers/handleAuth.js +69 -0
  294. package/dist/server/handlers/handleAuth.js.map +1 -0
  295. package/dist/server/handlers/handleConnect.d.ts +2 -4
  296. package/dist/server/handlers/handleConnect.d.ts.map +1 -1
  297. package/dist/server/handlers/handleConnect.js +140 -67
  298. package/dist/server/handlers/handleConnect.js.map +1 -1
  299. package/dist/server/handlers/handleDisconnect.d.ts +1 -1
  300. package/dist/server/handlers/handleDisconnect.d.ts.map +1 -1
  301. package/dist/server/handlers/handleDisconnect.js +3 -3
  302. package/dist/server/handlers/handleDisconnect.js.map +1 -1
  303. package/dist/server/handlers/handlePacket.d.ts.map +1 -1
  304. package/dist/server/handlers/handlePacket.js +19 -6
  305. package/dist/server/handlers/handlePacket.js.map +1 -1
  306. package/dist/server/handlers/handlePuback.d.ts +1 -3
  307. package/dist/server/handlers/handlePuback.d.ts.map +1 -1
  308. package/dist/server/handlers/handlePuback.js +2 -8
  309. package/dist/server/handlers/handlePuback.js.map +1 -1
  310. package/dist/server/handlers/handlePubcomp.d.ts +1 -1
  311. package/dist/server/handlers/handlePubcomp.d.ts.map +1 -1
  312. package/dist/server/handlers/handlePubcomp.js +2 -4
  313. package/dist/server/handlers/handlePubcomp.js.map +1 -1
  314. package/dist/server/handlers/handlePublish.d.ts +1 -1
  315. package/dist/server/handlers/handlePublish.d.ts.map +1 -1
  316. package/dist/server/handlers/handlePublish.js +149 -45
  317. package/dist/server/handlers/handlePublish.js.map +1 -1
  318. package/dist/server/handlers/handlePubrec.d.ts.map +1 -1
  319. package/dist/server/handlers/handlePubrec.js +2 -3
  320. package/dist/server/handlers/handlePubrec.js.map +1 -1
  321. package/dist/server/handlers/handlePubrel.d.ts.map +1 -1
  322. package/dist/server/handlers/handlePubrel.js +6 -2
  323. package/dist/server/handlers/handlePubrel.js.map +1 -1
  324. package/dist/server/handlers/handleSubscribe.d.ts +1 -6
  325. package/dist/server/handlers/handleSubscribe.d.ts.map +1 -1
  326. package/dist/server/handlers/handleSubscribe.js +99 -38
  327. package/dist/server/handlers/handleSubscribe.js.map +1 -1
  328. package/dist/server/handlers/handleUnsubscribe.d.ts.map +1 -1
  329. package/dist/server/handlers/handleUnsubscribe.js +19 -4
  330. package/dist/server/handlers/handleUnsubscribe.js.map +1 -1
  331. package/dist/server/mod.d.ts +3 -3
  332. package/dist/server/mod.d.ts.map +1 -1
  333. package/dist/server/mod.js +1 -1
  334. package/dist/server/mod.js.map +1 -1
  335. package/dist/server/server.d.ts +32 -9
  336. package/dist/server/server.d.ts.map +1 -1
  337. package/dist/server/server.js +84 -15
  338. package/dist/server/server.js.map +1 -1
  339. package/dist/socket/socket.d.ts +15 -9
  340. package/dist/socket/socket.d.ts.map +1 -1
  341. package/dist/socket/socket.js +66 -18
  342. package/dist/socket/socket.js.map +1 -1
  343. package/dist/timer/timer.d.ts +32 -0
  344. package/dist/timer/timer.d.ts.map +1 -1
  345. package/dist/timer/timer.js +32 -0
  346. package/dist/timer/timer.js.map +1 -1
  347. package/dist/trie/trie.d.ts +10 -5
  348. package/dist/trie/trie.d.ts.map +1 -1
  349. package/dist/trie/trie.js +61 -41
  350. package/dist/trie/trie.js.map +1 -1
  351. package/dist/utils/assert.d.ts.map +1 -1
  352. package/dist/utils/{BufferedAsyncIterable.d.ts → bufferedAsyncIterable.d.ts} +1 -1
  353. package/dist/utils/bufferedAsyncIterable.d.ts.map +1 -0
  354. package/dist/utils/{BufferedAsyncIterable.js → bufferedAsyncIterable.js} +1 -1
  355. package/dist/utils/bufferedAsyncIterable.js.map +1 -0
  356. package/dist/utils/deferred.d.ts.map +1 -1
  357. package/dist/utils/deferred.js.map +1 -1
  358. package/dist/utils/getOrInsertPolyFill.d.ts +2 -0
  359. package/dist/utils/getOrInsertPolyFill.d.ts.map +1 -0
  360. package/dist/utils/getOrInsertPolyFill.js +12 -0
  361. package/dist/utils/getOrInsertPolyFill.js.map +1 -0
  362. package/dist/utils/logger.d.ts +42 -5
  363. package/dist/utils/logger.d.ts.map +1 -1
  364. package/dist/utils/logger.js +53 -7
  365. package/dist/utils/logger.js.map +1 -1
  366. package/dist/utils/mod.d.ts +6 -1
  367. package/dist/utils/mod.d.ts.map +1 -1
  368. package/dist/utils/mod.js +5 -1
  369. package/dist/utils/mod.js.map +1 -1
  370. package/dist/utils/outboundTopicAliasManager.d.ts +52 -0
  371. package/dist/utils/outboundTopicAliasManager.d.ts.map +1 -0
  372. package/dist/utils/outboundTopicAliasManager.js +74 -0
  373. package/dist/utils/outboundTopicAliasManager.js.map +1 -0
  374. package/dist/utils/queue.d.ts.map +1 -1
  375. package/dist/utils/topicFilter.d.ts +32 -0
  376. package/dist/utils/topicFilter.d.ts.map +1 -0
  377. package/dist/utils/topicFilter.js +52 -0
  378. package/dist/utils/topicFilter.js.map +1 -0
  379. package/dist/utils/utils.d.ts +2 -0
  380. package/dist/utils/utils.d.ts.map +1 -1
  381. package/dist/utils/utils.js +2 -0
  382. package/dist/utils/utils.js.map +1 -1
  383. package/dist/utils/validators.d.ts +34 -0
  384. package/dist/utils/validators.d.ts.map +1 -0
  385. package/dist/utils/validators.js +61 -0
  386. package/dist/utils/validators.js.map +1 -0
  387. package/dist/web/webSocketStream.d.ts +29 -0
  388. package/dist/web/webSocketStream.d.ts.map +1 -0
  389. package/dist/web/webSocketStream.js +69 -0
  390. package/dist/web/webSocketStream.js.map +1 -0
  391. package/dist/web/wrapWebSocket.d.ts +12 -0
  392. package/dist/web/wrapWebSocket.d.ts.map +1 -0
  393. package/dist/web/wrapWebSocket.js +41 -0
  394. package/dist/web/wrapWebSocket.js.map +1 -0
  395. package/dist/web/wsClient.d.ts +14 -0
  396. package/dist/web/wsClient.d.ts.map +1 -0
  397. package/dist/web/wsClient.js +33 -0
  398. package/dist/web/wsClient.js.map +1 -0
  399. package/dist/web/wsClient.test.d.ts +2 -0
  400. package/dist/web/wsClient.test.d.ts.map +1 -0
  401. package/dist/web/wsClient.test.js +20 -0
  402. package/dist/web/wsClient.test.js.map +1 -0
  403. package/examples/authHandler.test.ts +164 -0
  404. package/examples/mqtt.test.ts +89 -0
  405. package/examples/mqtts.test.ts +100 -0
  406. package/examples/webSocket.test.ts +94 -0
  407. package/mqttConn/mqttConn.test.ts +9 -9
  408. package/mqttConn/mqttConn.ts +76 -60
  409. package/mqttPacket/AuthenticationResult.ts +6 -0
  410. package/mqttPacket/PacketType.ts +5 -0
  411. package/mqttPacket/Properties.ts +8 -5
  412. package/mqttPacket/ReasonCode.ts +8 -9
  413. package/mqttPacket/RetainHandling.ts +5 -0
  414. package/mqttPacket/auth.test.ts +1 -1
  415. package/mqttPacket/auth.ts +44 -51
  416. package/mqttPacket/codec.ts +147 -0
  417. package/mqttPacket/connack.ts +63 -73
  418. package/mqttPacket/connect.test.ts +2 -2
  419. package/mqttPacket/connect.ts +178 -192
  420. package/mqttPacket/decoder.test.ts +0 -39
  421. package/mqttPacket/decoder.ts +17 -46
  422. package/mqttPacket/disconnect.ts +60 -71
  423. package/mqttPacket/encoder.test.ts +2 -2
  424. package/mqttPacket/encoder.ts +13 -46
  425. package/mqttPacket/mod.ts +48 -204
  426. package/mqttPacket/pingreq.ts +22 -28
  427. package/mqttPacket/pingres.ts +22 -28
  428. package/mqttPacket/protocolLevels.ts +12 -7
  429. package/mqttPacket/pubblishAcks.ts +61 -75
  430. package/mqttPacket/publish.ts +70 -84
  431. package/mqttPacket/publishAcks.test.ts +3 -3
  432. package/mqttPacket/suback.ts +53 -68
  433. package/mqttPacket/subscribe.ts +146 -128
  434. package/mqttPacket/types.ts +2 -35
  435. package/mqttPacket/unsuback.ts +50 -61
  436. package/mqttPacket/unsubscribe.ts +77 -72
  437. package/mqttPacket/validators.ts +5 -31
  438. package/node/socket-node-stream.test.ts +322 -0
  439. package/node/socket-node-stream.ts +174 -0
  440. package/node/tcpClient.test.ts +70 -0
  441. package/node/tcpClient.ts +33 -17
  442. package/node/tcpServer.test.ts +24 -20
  443. package/node/tcpServer.ts +29 -6
  444. package/node/tlsServer.test.ts +94 -0
  445. package/node/tlsServer.ts +97 -0
  446. package/node/wrapNodeSocket.ts +7 -30
  447. package/package.json +72 -44
  448. package/persistence/basicPersistence.ts +495 -0
  449. package/persistence/deps.ts +11 -1
  450. package/persistence/memory/memoryPersistence.ts +12 -153
  451. package/persistence/memory/memoryStorage.ts +232 -0
  452. package/persistence/mod.ts +5 -10
  453. package/persistence/persistence.test.ts +24 -0
  454. package/persistence/persistence.testing.ts +1324 -0
  455. package/persistence/persistence.ts +112 -68
  456. package/persistence/sqlite/sqliteDatabase.ts +294 -0
  457. package/persistence/sqlite/sqlitePersistence.test.ts +48 -0
  458. package/persistence/sqlite/sqlitePersistence.ts +36 -0
  459. package/persistence/sqlite/sqliteStorage.ts +324 -0
  460. package/persistence/storage.ts +84 -0
  461. package/server/config.ts +65 -0
  462. package/server/context.ts +660 -76
  463. package/server/deps.ts +24 -5
  464. package/server/handlers/completeConnect.ts +93 -0
  465. package/server/handlers/duplicate.test.ts +196 -0
  466. package/server/handlers/handleAuth.test.ts +225 -0
  467. package/server/handlers/handleAuth.ts +88 -0
  468. package/server/handlers/handleConnect.test.ts +589 -0
  469. package/server/handlers/handleConnect.ts +201 -86
  470. package/server/handlers/handleConnect.version.test.ts +108 -0
  471. package/server/handlers/handleDisconnect.test.ts +56 -0
  472. package/server/handlers/handleDisconnect.ts +3 -3
  473. package/server/handlers/handlePacket.test.ts +24 -0
  474. package/server/handlers/handlePacket.ts +30 -8
  475. package/server/handlers/handlePingreq.test.ts +29 -0
  476. package/server/handlers/handlePuback.test.ts +28 -0
  477. package/server/handlers/handlePuback.ts +5 -8
  478. package/server/handlers/handlePubcomp.test.ts +28 -0
  479. package/server/handlers/handlePubcomp.ts +5 -4
  480. package/server/handlers/handlePublish.test.ts +471 -0
  481. package/server/handlers/handlePublish.ts +188 -35
  482. package/server/handlers/handlePubrec.test.ts +28 -0
  483. package/server/handlers/handlePubrec.ts +2 -3
  484. package/server/handlers/handlePubrel.test.ts +74 -0
  485. package/server/handlers/handlePubrel.ts +12 -2
  486. package/server/handlers/handleSubscribe.test.ts +971 -0
  487. package/server/handlers/handleSubscribe.ts +157 -39
  488. package/server/handlers/handleUnsubscribe.test.ts +79 -0
  489. package/server/handlers/handleUnsubscribe.ts +28 -4
  490. package/server/handlers/keepalive.test.ts +132 -0
  491. package/server/handlers/session.persistence.test.ts +194 -0
  492. package/server/handlers/will.delivery.test.ts +221 -0
  493. package/server/mod.ts +5 -4
  494. package/server/preconnect.test.ts +151 -0
  495. package/server/server.ts +117 -19
  496. package/socket/socket.test.ts +91 -0
  497. package/socket/socket.ts +85 -34
  498. package/timer/timer.test.ts +4 -7
  499. package/timer/timer.ts +36 -0
  500. package/tools/benchmarks/receiver.ts +51 -0
  501. package/tools/benchmarks/sender.ts +48 -0
  502. package/tools/benchmarks/utils.ts +31 -0
  503. package/tools/mqtt-compat/README.md +130 -0
  504. package/tools/mqtt-compat/broker.ts +52 -0
  505. package/tools/mqtt-compat/paho-mqtt4.test.ts +379 -0
  506. package/tools/mqtt-compat/paho-mqtt5.tests.ts +887 -0
  507. package/trie/trie.test.ts +9 -1
  508. package/trie/trie.ts +70 -45
  509. package/utils/bufferedAsyncIterable.test.ts +92 -0
  510. package/utils/deferred.test.ts +36 -0
  511. package/utils/deferred.ts +0 -1
  512. package/utils/getOrInsertPolyFill.ts +12 -0
  513. package/utils/logger.test.ts +189 -0
  514. package/utils/logger.ts +64 -9
  515. package/utils/mod.ts +15 -1
  516. package/utils/outboundTopicAliasManager.ts +100 -0
  517. package/utils/queue.test.ts +61 -0
  518. package/utils/topicFilter.test.ts +63 -0
  519. package/utils/topicFilter.ts +61 -0
  520. package/utils/utils.ts +3 -0
  521. package/utils/validators.ts +67 -0
  522. package/web/webSocketStream.ts +97 -0
  523. package/web/wrapWebSocket.ts +52 -0
  524. package/web/wsClient.test.ts +26 -0
  525. package/web/wsClient.ts +37 -0
  526. package/benchmarks/receiver.ts +0 -35
  527. package/benchmarks/sender.ts +0 -32
  528. package/benchmarks/utils.ts +0 -9
  529. package/dev_utils/dummyConn.ts +0 -110
  530. package/dev_utils/socketPair.ts +0 -85
  531. package/dist/persistence/store.d.ts +0 -14
  532. package/dist/persistence/store.d.ts.map +0 -1
  533. package/dist/persistence/store.js +0 -2
  534. package/dist/persistence/store.js.map +0 -1
  535. package/dist/utils/BufferedAsyncIterable.d.ts.map +0 -1
  536. package/dist/utils/BufferedAsyncIterable.js.map +0 -1
  537. package/examples/tcpServer.test.ts +0 -148
  538. package/persistence/memory/memoryPersistence.test.ts +0 -156
  539. package/persistence/store.ts +0 -16
  540. package/server/test/handleConnect.test.ts +0 -122
  541. package/server/test/test-handlers.ts +0 -53
  542. /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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mqtts.test.d.ts.map
@@ -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":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module mqttConn
3
3
  */
4
- import type { AnyPacket, CodecOpts, ProtocolLevel } from "../mqttPacket/mod.ts";
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
- * Interface for MQTT connection handling
17
- */
18
- export interface IMqttConn extends AsyncIterable<AnyPacket> {
19
- /** Underlying connection */
20
- readonly conn: Conn;
21
- /** Whether connection is closed */
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 maxIncomingPacketSize Maximum allowed packet size
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 implementing IMqttConn interface
32
+ * MQTT Connection class
40
33
  */
41
- export declare class MqttConn implements IMqttConn {
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.maxIncomingPacketSize Maximum allowed incoming packet size (default 2MB)
56
- * @param options.maxOutGoingPacketSize Maximum allowed outgoing packet size (default 2MB)
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({ conn, maxIncomingPacketSize, protocolLevel, }: {
55
+ constructor(options: {
60
56
  conn: SockConn;
61
- maxIncomingPacketSize?: number;
62
- protocolLevel?: ProtocolLevel;
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,EAET,aAAa,EACd,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;;;;CAIhB,CAAC;AAIX;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,aAAa,CAAC,SAAS,CAAC;IACzD,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,0BAA0B;IAC1B,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,2BAA2B;IAC3B,KAAK,IAAI,IAAI,CAAC;CACf;AAiCD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,SAAS,CAAC,CAuBpB;AAED;;GAEG;AACH,qBAAa,QAAS,YAAW,SAAS;;IACxC,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,gBAAgB;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,2CAA2C;IAC3C,OAAO,CAAC,OAAO,CAAiC;IAChD,mCAAmC;IACnC,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;;;;OAOG;gBACS,EACV,IAAI,EACJ,qBAA8C,EAC9C,aAAiC,GAClC,EAAE;QACD,IAAI,EAAE,QAAQ,CAAC;QACf,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IASD,wCAAwC;IACxC,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,uBAAuB;IACvB,IAAI,aAAa,IAAI,MAAM,CAK1B;IA4BK,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAUhD,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,IAAI;IAI9B;;;OAGG;IACG,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1C,mCAAmC;IACnC,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,2BAA2B;IAC3B,KAAK,IAAI,IAAI;CAUd"}
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 = 2 * 1024 * 1024; // 2MB
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 buf = new Uint8Array(1);
24
- const bytesRead = await conn.read(buf);
25
- assert(bytesRead !== null, MqttConnError.UnexpectedEof);
26
- assert(bytesRead !== undefined, MqttConnError.UnexpectedEof);
27
- assert(bytesRead !== 0, MqttConnError.UnexpectedEof);
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, buf) {
37
- let bytesRead = 0;
38
- while (bytesRead < buf.length) {
39
- const read = await conn.read(buf.subarray(bytesRead));
40
- assert(read !== null, MqttConnError.UnexpectedEof);
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 maxIncomingPacketSize Maximum allowed packet size
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, packetBuf);
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 implementing IMqttConn interface
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.maxIncomingPacketSize Maximum allowed incoming packet size (default 2MB)
89
- * @param options.maxOutGoingPacketSize Maximum allowed outgoing packet size (default 2MB)
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({ conn, maxIncomingPacketSize = DEFAULT_MAX_PACKETSIZE, protocolLevel = MQTTLevel.unknown, }) {
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
- maxOutgoingPacketSize: maxIncomingPacketSize,
97
- protocolLevel,
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
- try {
153
- await this.conn.write(encode(data, this.codecOpts));
154
- }
155
- catch (err) {
156
- if (err instanceof Error) {
157
- this._reason = err.message;
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":"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"}
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;;;;;;;CAOvB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG7D,CAAC"}
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;AAEX;;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
+ {"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;;;;;;;;;CASV,CAAC"}
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;;;;;;;;;;;;;;;;;CAiBb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEnD,CAAC"}
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 TPropertySetType = typeof PropertySetType[keyof typeof PropertySetType];
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 TPropertySetType]: GeneratePacketTypeProperties<typeof PropertyByPropertySetType[K]>;
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":"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"}
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;;;;;;;;;;;;;;;;;mBAEpB,GAAG;CACD,CAAC;AAEX,MAAM,MAAM,eAAe,GACzB,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAEvD,eAAO,MAAM,YAAY;aACvB,OAAO,EAAE,CAAC;aACV,IAAI,EAAE,CAAC;aACP,KAAK,EAAE,CAAC;aACR,KAAK,EAAE,CAAC;aACR,MAAM,EAAE,CAAC;aACT,SAAS,EAAE,CAAC;aACZ,UAAU,EAAE,CAAC;aACb,eAAe,EAAE,CAAC;aAClB,WAAW,EAAE,CAAC;CACN,CAAC;AAEX,eAAO,MAAM,YAAY;aACvB,sBAAsB,EAAE,CAAI;aAC5B,qBAAqB,EAAE,CAAI;aAC3B,WAAW,EAAE,CAAI;aACjB,aAAa,EAAE,CAAI;aACnB,eAAe,EAAE,CAAI;aACrB,sBAAsB,EAAE,EAAI;aAE5B,uBAAuB,EAAE,GAAI;aAC7B,qBAAqB,EAAE,EAAI;aAC3B,wBAAwB,EAAE,EAAI;aAC9B,eAAe,EAAE,EAAI;aACrB,oBAAoB,EAAE,EAAI;aAC1B,kBAAkB,EAAE,EAAI;aACxB,yBAAyB,EAAE,EAAI;aAC/B,iBAAiB,EAAE,EAAI;aACvB,0BAA0B,EAAE,EAAI;aAChC,mBAAmB,EAAE,EAAI;aACzB,eAAe,EAAE,EAAI;aACrB,YAAY,EAAE,EAAI;aAClB,cAAc,EAAE,EAAI;aACpB,iBAAiB,EAAE,EAAI;aACvB,UAAU,EAAE,EAAI;aAChB,UAAU,EAAE,EAAI;aAChB,eAAe,EAAE,EAAI;aACrB,YAAY,EAAE,EAAI;aAClB,iBAAiB,EAAE,EAAI;aACvB,6BAA6B,EAAE,EAAI;aACnC,+BAA+B,EAAE,EAAI;aACrC,2BAA2B,EAAE,EAAI;CACzB,CAAC;AAEX,KAAK,aAAa,GAAG,MAAM,OAAO,YAAY,CAAC;AAG/C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BjB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;AACrD,MAAM,MAAM,2BAA2B,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAExD,KAAK,eAAe,GAAG;IACrB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAChC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAC5B,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAC7B,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAC7B,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC9B,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IACrC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAClC,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACjD,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,2BAA2B,CAAC;CACzD,CAAC;AAEF,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,MAAM,eAAe,GACvE,eAAe,CAAC,CAAC,CAAC,GAClB,KAAK,CAAC;AAEV,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC,MAAM,eAAe,CAAC,CAAC;AACzE,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,mBAAmB,EACnB,gBAAgB,CACjB,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAC7B,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAKnD,KAAK,mBAAmB,GAAG;KACxB,CAAC,IAAI,aAAa,CAAC,CAAC,EACjB,kBAAkB,CAClB,OAAO,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAC9C,GACC,SAAS;CACd,CAAC;AAEF,KAAK,oBAAoB,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC;AAE9D,eAAO,MAAM,gBAAgB,EAIxB,oBAAoB,CAAC;AAE1B,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;CAkG5B,CAAC;AAGX,KAAK,iBAAiB,CAAC,CAAC,SAAS,SAAS,mBAAmB,EAAE,IAAI;KAChE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC/C,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAGb,KAAK,4BAA4B,CAAC,CAAC,SAAS,SAAS,mBAAmB,EAAE,IACxE,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,eAAe,GAAG,4BAA4B,CAClD,OAAO,yBAAyB,CAAC,CAAC,CAAC,CACpC;CACF,CAAC;AAGF,MAAM,MAAM,iBAAiB,GAC3B,oBAAoB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;AACvD,MAAM,MAAM,iBAAiB,GAC3B,oBAAoB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;AACvD,MAAM,MAAM,iBAAiB,GAC3B,oBAAoB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;AACvD,MAAM,MAAM,gBAAgB,GAC1B,oBAAoB,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACtD,MAAM,MAAM,gBAAgB,GAC1B,oBAAoB,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACtD,MAAM,MAAM,gBAAgB,GAC1B,oBAAoB,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACtD,MAAM,MAAM,iBAAiB,GAC3B,oBAAoB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;AACvD,MAAM,MAAM,mBAAmB,GAC7B,oBAAoB,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;AACzD,MAAM,MAAM,gBAAgB,GAC1B,oBAAoB,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACtD,MAAM,MAAM,qBAAqB,GAC/B,oBAAoB,CAAC,OAAO,eAAe,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,MAAM,kBAAkB,GAC5B,oBAAoB,CAAC,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;AACxD,MAAM,MAAM,oBAAoB,GAC9B,oBAAoB,CAAC,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/E,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC"}
@@ -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":"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"}