@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.
Files changed (531) 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 +2 -0
  6. package/client/client.ts +51 -41
  7. package/client/context.ts +75 -21
  8. package/client/deps.ts +4 -0
  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 +16 -6
  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 +1 -1
  29. package/client/store/memoryStore.ts +2 -2
  30. package/client/store/store.ts +3 -1
  31. package/deno/README.md +1 -2
  32. package/deno/tcpClient.test.ts +75 -0
  33. package/deno/tcpClient.ts +16 -11
  34. package/deno/tcpServer.test.ts +22 -21
  35. package/deno/tcpServer.ts +5 -0
  36. package/deno/tlsServer.test.ts +97 -0
  37. package/deno/tlsServer.ts +42 -0
  38. package/deno/wsServer.test.ts +93 -0
  39. package/deno/wsServer.ts +73 -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 +2 -0
  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 +13 -16
  60. package/dist/client/client.d.ts.map +1 -1
  61. package/dist/client/client.js +34 -20
  62. package/dist/client/client.js.map +1 -1
  63. package/dist/client/context.d.ts +11 -3
  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 +3 -2
  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 +1 -1
  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.map +1 -1
  104. package/dist/client/store/memoryStore.js +2 -2
  105. package/dist/client/store/memoryStore.js.map +1 -1
  106. package/dist/client/store/store.d.ts +2 -1
  107. package/dist/client/store/store.d.ts.map +1 -1
  108. package/dist/client/store/store.js +1 -1
  109. package/dist/client/store/store.js.map +1 -1
  110. package/dist/dev_utils/generateCert.d.ts +11 -0
  111. package/dist/dev_utils/generateCert.d.ts.map +1 -0
  112. package/dist/dev_utils/generateCert.js +76 -0
  113. package/dist/dev_utils/generateCert.js.map +1 -0
  114. package/dist/examples/authHandler.test.d.ts +2 -0
  115. package/dist/examples/authHandler.test.d.ts.map +1 -0
  116. package/dist/examples/authHandler.test.js +123 -0
  117. package/dist/examples/authHandler.test.js.map +1 -0
  118. package/dist/examples/mqtt.test.d.ts +2 -0
  119. package/dist/examples/mqtt.test.d.ts.map +1 -0
  120. package/dist/examples/mqtt.test.js +70 -0
  121. package/dist/examples/mqtt.test.js.map +1 -0
  122. package/dist/examples/mqtts.test.d.ts +2 -0
  123. package/dist/examples/mqtts.test.d.ts.map +1 -0
  124. package/dist/examples/mqtts.test.js +81 -0
  125. package/dist/examples/mqtts.test.js.map +1 -0
  126. package/dist/mqttConn/mqttConn.d.ts +23 -15
  127. package/dist/mqttConn/mqttConn.d.ts.map +1 -1
  128. package/dist/mqttConn/mqttConn.js +56 -35
  129. package/dist/mqttConn/mqttConn.js.map +1 -1
  130. package/dist/mqttPacket/AuthenticationResult.d.ts.map +1 -1
  131. package/dist/mqttPacket/BitMask.d.ts.map +1 -1
  132. package/dist/mqttPacket/PacketType.d.ts.map +1 -1
  133. package/dist/mqttPacket/Properties.d.ts +2 -2
  134. package/dist/mqttPacket/Properties.d.ts.map +1 -1
  135. package/dist/mqttPacket/Properties.js.map +1 -1
  136. package/dist/mqttPacket/ReasonCode.d.ts +1 -0
  137. package/dist/mqttPacket/ReasonCode.d.ts.map +1 -1
  138. package/dist/mqttPacket/ReasonCode.js +1 -0
  139. package/dist/mqttPacket/ReasonCode.js.map +1 -1
  140. package/dist/mqttPacket/RetainHandling.d.ts.map +1 -1
  141. package/dist/mqttPacket/auth.d.ts +3 -5
  142. package/dist/mqttPacket/auth.d.ts.map +1 -1
  143. package/dist/mqttPacket/auth.js +31 -30
  144. package/dist/mqttPacket/auth.js.map +1 -1
  145. package/dist/mqttPacket/codec.d.ts +48 -0
  146. package/dist/mqttPacket/codec.d.ts.map +1 -0
  147. package/dist/mqttPacket/codec.js +93 -0
  148. package/dist/mqttPacket/codec.js.map +1 -0
  149. package/dist/mqttPacket/connack.d.ts +4 -5
  150. package/dist/mqttPacket/connack.d.ts.map +1 -1
  151. package/dist/mqttPacket/connack.js +43 -45
  152. package/dist/mqttPacket/connack.js.map +1 -1
  153. package/dist/mqttPacket/connect.d.ts +4 -5
  154. package/dist/mqttPacket/connect.d.ts.map +1 -1
  155. package/dist/mqttPacket/connect.js +156 -157
  156. package/dist/mqttPacket/connect.js.map +1 -1
  157. package/dist/mqttPacket/decoder.d.ts +1 -13
  158. package/dist/mqttPacket/decoder.d.ts.map +1 -1
  159. package/dist/mqttPacket/decoder.js +6 -27
  160. package/dist/mqttPacket/decoder.js.map +1 -1
  161. package/dist/mqttPacket/disconnect.d.ts +4 -5
  162. package/dist/mqttPacket/disconnect.d.ts.map +1 -1
  163. package/dist/mqttPacket/disconnect.js +41 -43
  164. package/dist/mqttPacket/disconnect.js.map +1 -1
  165. package/dist/mqttPacket/encoder.d.ts +1 -15
  166. package/dist/mqttPacket/encoder.d.ts.map +1 -1
  167. package/dist/mqttPacket/encoder.js +4 -27
  168. package/dist/mqttPacket/encoder.js.map +1 -1
  169. package/dist/mqttPacket/mod.d.ts +21 -103
  170. package/dist/mqttPacket/mod.d.ts.map +1 -1
  171. package/dist/mqttPacket/mod.js +5 -94
  172. package/dist/mqttPacket/mod.js.map +1 -1
  173. package/dist/mqttPacket/pingreq.d.ts +4 -5
  174. package/dist/mqttPacket/pingreq.d.ts.map +1 -1
  175. package/dist/mqttPacket/pingreq.js +11 -13
  176. package/dist/mqttPacket/pingreq.js.map +1 -1
  177. package/dist/mqttPacket/pingres.d.ts +4 -5
  178. package/dist/mqttPacket/pingres.d.ts.map +1 -1
  179. package/dist/mqttPacket/pingres.js +11 -13
  180. package/dist/mqttPacket/pingres.js.map +1 -1
  181. package/dist/mqttPacket/protocolLevels.d.ts +11 -6
  182. package/dist/mqttPacket/protocolLevels.d.ts.map +1 -1
  183. package/dist/mqttPacket/protocolLevels.js +5 -1
  184. package/dist/mqttPacket/protocolLevels.js.map +1 -1
  185. package/dist/mqttPacket/pubblishAcks.d.ts +4 -5
  186. package/dist/mqttPacket/pubblishAcks.d.ts.map +1 -1
  187. package/dist/mqttPacket/pubblishAcks.js +43 -45
  188. package/dist/mqttPacket/pubblishAcks.js.map +1 -1
  189. package/dist/mqttPacket/publish.d.ts +5 -5
  190. package/dist/mqttPacket/publish.d.ts.map +1 -1
  191. package/dist/mqttPacket/publish.js +53 -55
  192. package/dist/mqttPacket/publish.js.map +1 -1
  193. package/dist/mqttPacket/suback.d.ts +4 -5
  194. package/dist/mqttPacket/suback.d.ts.map +1 -1
  195. package/dist/mqttPacket/suback.js +38 -40
  196. package/dist/mqttPacket/suback.js.map +1 -1
  197. package/dist/mqttPacket/subscribe.d.ts +36 -7
  198. package/dist/mqttPacket/subscribe.d.ts.map +1 -1
  199. package/dist/mqttPacket/subscribe.js +90 -89
  200. package/dist/mqttPacket/subscribe.js.map +1 -1
  201. package/dist/mqttPacket/types.d.ts +1 -8
  202. package/dist/mqttPacket/types.d.ts.map +1 -1
  203. package/dist/mqttPacket/unsuback.d.ts +4 -5
  204. package/dist/mqttPacket/unsuback.d.ts.map +1 -1
  205. package/dist/mqttPacket/unsuback.js +32 -34
  206. package/dist/mqttPacket/unsuback.js.map +1 -1
  207. package/dist/mqttPacket/unsubscribe.d.ts +23 -6
  208. package/dist/mqttPacket/unsubscribe.d.ts.map +1 -1
  209. package/dist/mqttPacket/unsubscribe.js +45 -44
  210. package/dist/mqttPacket/unsubscribe.js.map +1 -1
  211. package/dist/mqttPacket/validators.d.ts +4 -16
  212. package/dist/mqttPacket/validators.d.ts.map +1 -1
  213. package/dist/mqttPacket/validators.js +5 -26
  214. package/dist/mqttPacket/validators.js.map +1 -1
  215. package/dist/node/tcpClient.d.ts +1 -1
  216. package/dist/node/tcpClient.d.ts.map +1 -1
  217. package/dist/node/tcpClient.js +12 -7
  218. package/dist/node/tcpClient.js.map +1 -1
  219. package/dist/node/tcpServer.d.ts.map +1 -1
  220. package/dist/node/tcpServer.js +4 -0
  221. package/dist/node/tcpServer.js.map +1 -1
  222. package/dist/node/tlsServer.d.ts +19 -0
  223. package/dist/node/tlsServer.d.ts.map +1 -0
  224. package/dist/node/tlsServer.js +58 -0
  225. package/dist/node/tlsServer.js.map +1 -0
  226. package/dist/node/wrapNodeSocket.d.ts.map +1 -1
  227. package/dist/node/wrapNodeSocket.js +6 -28
  228. package/dist/node/wrapNodeSocket.js.map +1 -1
  229. package/dist/persistence/basicPersistence.d.ts +36 -0
  230. package/dist/persistence/basicPersistence.d.ts.map +1 -0
  231. package/dist/persistence/basicPersistence.js +306 -0
  232. package/dist/persistence/basicPersistence.js.map +1 -0
  233. package/dist/persistence/deps.d.ts +3 -2
  234. package/dist/persistence/deps.d.ts.map +1 -1
  235. package/dist/persistence/deps.js +2 -1
  236. package/dist/persistence/deps.js.map +1 -1
  237. package/dist/persistence/memory/memoryPersistence.d.ts +6 -23
  238. package/dist/persistence/memory/memoryPersistence.d.ts.map +1 -1
  239. package/dist/persistence/memory/memoryPersistence.js +12 -115
  240. package/dist/persistence/memory/memoryPersistence.js.map +1 -1
  241. package/dist/persistence/memory/memoryStorage.d.ts +45 -0
  242. package/dist/persistence/memory/memoryStorage.d.ts.map +1 -0
  243. package/dist/persistence/memory/memoryStorage.js +143 -0
  244. package/dist/persistence/memory/memoryStorage.js.map +1 -0
  245. package/dist/persistence/mod.d.ts +3 -3
  246. package/dist/persistence/mod.d.ts.map +1 -1
  247. package/dist/persistence/mod.js +6 -1
  248. package/dist/persistence/mod.js.map +1 -1
  249. package/dist/persistence/persistence.d.ts +44 -69
  250. package/dist/persistence/persistence.d.ts.map +1 -1
  251. package/dist/persistence/persistence.js +1 -2
  252. package/dist/persistence/persistence.js.map +1 -1
  253. package/dist/persistence/sqlite/sqliteDatabase.d.ts +46 -0
  254. package/dist/persistence/sqlite/sqliteDatabase.d.ts.map +1 -0
  255. package/dist/persistence/sqlite/sqliteDatabase.js +215 -0
  256. package/dist/persistence/sqlite/sqliteDatabase.js.map +1 -0
  257. package/dist/persistence/sqlite/sqlitePersistence.d.ts +16 -0
  258. package/dist/persistence/sqlite/sqlitePersistence.d.ts.map +1 -0
  259. package/dist/persistence/sqlite/sqlitePersistence.js +29 -0
  260. package/dist/persistence/sqlite/sqlitePersistence.js.map +1 -0
  261. package/dist/persistence/sqlite/sqliteStorage.d.ts +36 -0
  262. package/dist/persistence/sqlite/sqliteStorage.d.ts.map +1 -0
  263. package/dist/persistence/sqlite/sqliteStorage.js +194 -0
  264. package/dist/persistence/sqlite/sqliteStorage.js.map +1 -0
  265. package/dist/persistence/storage.d.ts +38 -0
  266. package/dist/persistence/storage.d.ts.map +1 -0
  267. package/dist/persistence/storage.js +5 -0
  268. package/dist/persistence/storage.js.map +1 -0
  269. package/dist/server/config.d.ts +47 -0
  270. package/dist/server/config.d.ts.map +1 -0
  271. package/dist/server/config.js +41 -0
  272. package/dist/server/config.js.map +1 -0
  273. package/dist/server/context.d.ts +198 -24
  274. package/dist/server/context.d.ts.map +1 -1
  275. package/dist/server/context.js +432 -53
  276. package/dist/server/context.js.map +1 -1
  277. package/dist/server/deps.d.ts +5 -6
  278. package/dist/server/deps.d.ts.map +1 -1
  279. package/dist/server/deps.js +2 -2
  280. package/dist/server/deps.js.map +1 -1
  281. package/dist/server/handlers/completeConnect.d.ts +8 -0
  282. package/dist/server/handlers/completeConnect.d.ts.map +1 -0
  283. package/dist/server/handlers/completeConnect.js +74 -0
  284. package/dist/server/handlers/completeConnect.js.map +1 -0
  285. package/dist/server/handlers/handleAuth.d.ts +9 -0
  286. package/dist/server/handlers/handleAuth.d.ts.map +1 -0
  287. package/dist/server/handlers/handleAuth.js +69 -0
  288. package/dist/server/handlers/handleAuth.js.map +1 -0
  289. package/dist/server/handlers/handleConnect.d.ts +2 -4
  290. package/dist/server/handlers/handleConnect.d.ts.map +1 -1
  291. package/dist/server/handlers/handleConnect.js +140 -67
  292. package/dist/server/handlers/handleConnect.js.map +1 -1
  293. package/dist/server/handlers/handleDisconnect.d.ts +1 -1
  294. package/dist/server/handlers/handleDisconnect.d.ts.map +1 -1
  295. package/dist/server/handlers/handleDisconnect.js +3 -3
  296. package/dist/server/handlers/handleDisconnect.js.map +1 -1
  297. package/dist/server/handlers/handlePacket.d.ts.map +1 -1
  298. package/dist/server/handlers/handlePacket.js +19 -6
  299. package/dist/server/handlers/handlePacket.js.map +1 -1
  300. package/dist/server/handlers/handlePuback.d.ts +1 -3
  301. package/dist/server/handlers/handlePuback.d.ts.map +1 -1
  302. package/dist/server/handlers/handlePuback.js +2 -8
  303. package/dist/server/handlers/handlePuback.js.map +1 -1
  304. package/dist/server/handlers/handlePubcomp.d.ts +1 -1
  305. package/dist/server/handlers/handlePubcomp.d.ts.map +1 -1
  306. package/dist/server/handlers/handlePubcomp.js +2 -4
  307. package/dist/server/handlers/handlePubcomp.js.map +1 -1
  308. package/dist/server/handlers/handlePublish.d.ts +1 -1
  309. package/dist/server/handlers/handlePublish.d.ts.map +1 -1
  310. package/dist/server/handlers/handlePublish.js +149 -45
  311. package/dist/server/handlers/handlePublish.js.map +1 -1
  312. package/dist/server/handlers/handlePubrec.d.ts.map +1 -1
  313. package/dist/server/handlers/handlePubrec.js +2 -3
  314. package/dist/server/handlers/handlePubrec.js.map +1 -1
  315. package/dist/server/handlers/handlePubrel.d.ts.map +1 -1
  316. package/dist/server/handlers/handlePubrel.js +6 -2
  317. package/dist/server/handlers/handlePubrel.js.map +1 -1
  318. package/dist/server/handlers/handleSubscribe.d.ts +1 -6
  319. package/dist/server/handlers/handleSubscribe.d.ts.map +1 -1
  320. package/dist/server/handlers/handleSubscribe.js +99 -38
  321. package/dist/server/handlers/handleSubscribe.js.map +1 -1
  322. package/dist/server/handlers/handleUnsubscribe.d.ts.map +1 -1
  323. package/dist/server/handlers/handleUnsubscribe.js +19 -4
  324. package/dist/server/handlers/handleUnsubscribe.js.map +1 -1
  325. package/dist/server/mod.d.ts +3 -3
  326. package/dist/server/mod.d.ts.map +1 -1
  327. package/dist/server/mod.js +1 -1
  328. package/dist/server/mod.js.map +1 -1
  329. package/dist/server/server.d.ts +29 -6
  330. package/dist/server/server.d.ts.map +1 -1
  331. package/dist/server/server.js +84 -15
  332. package/dist/server/server.js.map +1 -1
  333. package/dist/socket/socket.d.ts +11 -9
  334. package/dist/socket/socket.d.ts.map +1 -1
  335. package/dist/socket/socket.js +66 -18
  336. package/dist/socket/socket.js.map +1 -1
  337. package/dist/timer/timer.d.ts +32 -0
  338. package/dist/timer/timer.d.ts.map +1 -1
  339. package/dist/timer/timer.js +32 -0
  340. package/dist/timer/timer.js.map +1 -1
  341. package/dist/trie/trie.d.ts +10 -5
  342. package/dist/trie/trie.d.ts.map +1 -1
  343. package/dist/trie/trie.js +61 -41
  344. package/dist/trie/trie.js.map +1 -1
  345. package/dist/utils/assert.d.ts.map +1 -1
  346. package/dist/utils/{BufferedAsyncIterable.d.ts → bufferedAsyncIterable.d.ts} +1 -1
  347. package/dist/utils/bufferedAsyncIterable.d.ts.map +1 -0
  348. package/dist/utils/{BufferedAsyncIterable.js → bufferedAsyncIterable.js} +1 -1
  349. package/dist/utils/bufferedAsyncIterable.js.map +1 -0
  350. package/dist/utils/deferred.d.ts.map +1 -1
  351. package/dist/utils/deferred.js.map +1 -1
  352. package/dist/utils/getOrInsertPolyFill.d.ts +2 -0
  353. package/dist/utils/getOrInsertPolyFill.d.ts.map +1 -0
  354. package/dist/utils/getOrInsertPolyFill.js +12 -0
  355. package/dist/utils/getOrInsertPolyFill.js.map +1 -0
  356. package/dist/utils/logger.d.ts +40 -3
  357. package/dist/utils/logger.d.ts.map +1 -1
  358. package/dist/utils/logger.js +53 -7
  359. package/dist/utils/logger.js.map +1 -1
  360. package/dist/utils/mod.d.ts +6 -1
  361. package/dist/utils/mod.d.ts.map +1 -1
  362. package/dist/utils/mod.js +5 -1
  363. package/dist/utils/mod.js.map +1 -1
  364. package/dist/utils/outboundTopicAliasManager.d.ts +52 -0
  365. package/dist/utils/outboundTopicAliasManager.d.ts.map +1 -0
  366. package/dist/utils/outboundTopicAliasManager.js +74 -0
  367. package/dist/utils/outboundTopicAliasManager.js.map +1 -0
  368. package/dist/utils/queue.d.ts.map +1 -1
  369. package/dist/utils/topicFilter.d.ts +32 -0
  370. package/dist/utils/topicFilter.d.ts.map +1 -0
  371. package/dist/utils/topicFilter.js +52 -0
  372. package/dist/utils/topicFilter.js.map +1 -0
  373. package/dist/utils/utils.d.ts +2 -0
  374. package/dist/utils/utils.d.ts.map +1 -1
  375. package/dist/utils/utils.js +2 -0
  376. package/dist/utils/utils.js.map +1 -1
  377. package/dist/utils/validators.d.ts +34 -0
  378. package/dist/utils/validators.d.ts.map +1 -0
  379. package/dist/utils/validators.js +61 -0
  380. package/dist/utils/validators.js.map +1 -0
  381. package/dist/web/webSocketStream.d.ts +29 -0
  382. package/dist/web/webSocketStream.d.ts.map +1 -0
  383. package/dist/web/webSocketStream.js +69 -0
  384. package/dist/web/webSocketStream.js.map +1 -0
  385. package/dist/web/wrapWebSocket.d.ts +12 -0
  386. package/dist/web/wrapWebSocket.d.ts.map +1 -0
  387. package/dist/web/wrapWebSocket.js +41 -0
  388. package/dist/web/wrapWebSocket.js.map +1 -0
  389. package/dist/web/wsClient.d.ts +7 -0
  390. package/dist/web/wsClient.d.ts.map +1 -0
  391. package/dist/web/wsClient.js +22 -0
  392. package/dist/web/wsClient.js.map +1 -0
  393. package/dist/web/wsClient.test.d.ts +2 -0
  394. package/dist/web/wsClient.test.d.ts.map +1 -0
  395. package/dist/web/wsClient.test.js +20 -0
  396. package/dist/web/wsClient.test.js.map +1 -0
  397. package/examples/authHandler.test.ts +164 -0
  398. package/examples/mqtt.test.ts +89 -0
  399. package/examples/mqtts.test.ts +100 -0
  400. package/examples/webSocket.test.ts +94 -0
  401. package/mqttConn/mqttConn.test.ts +9 -9
  402. package/mqttConn/mqttConn.ts +76 -44
  403. package/mqttPacket/Properties.ts +6 -3
  404. package/mqttPacket/ReasonCode.ts +2 -1
  405. package/mqttPacket/auth.test.ts +1 -1
  406. package/mqttPacket/auth.ts +41 -48
  407. package/mqttPacket/codec.ts +146 -0
  408. package/mqttPacket/connack.ts +57 -68
  409. package/mqttPacket/connect.test.ts +2 -2
  410. package/mqttPacket/connect.ts +175 -182
  411. package/mqttPacket/decoder.test.ts +0 -39
  412. package/mqttPacket/decoder.ts +8 -35
  413. package/mqttPacket/disconnect.ts +57 -68
  414. package/mqttPacket/encoder.ts +5 -40
  415. package/mqttPacket/mod.ts +48 -200
  416. package/mqttPacket/pingreq.ts +21 -27
  417. package/mqttPacket/pingres.ts +21 -27
  418. package/mqttPacket/protocolLevels.ts +12 -7
  419. package/mqttPacket/pubblishAcks.ts +56 -70
  420. package/mqttPacket/publish.ts +67 -74
  421. package/mqttPacket/suback.ts +48 -58
  422. package/mqttPacket/subscribe.ts +141 -117
  423. package/mqttPacket/types.ts +1 -9
  424. package/mqttPacket/unsuback.ts +46 -58
  425. package/mqttPacket/unsubscribe.ts +74 -63
  426. package/mqttPacket/validators.ts +5 -31
  427. package/node/socket-node-stream.test.ts +322 -0
  428. package/node/socket-node-stream.ts +174 -0
  429. package/node/tcpClient.test.ts +70 -0
  430. package/node/tcpClient.ts +13 -12
  431. package/node/tcpServer.test.ts +24 -20
  432. package/node/tcpServer.ts +6 -0
  433. package/node/tlsServer.test.ts +94 -0
  434. package/node/tlsServer.ts +81 -0
  435. package/node/wrapNodeSocket.ts +7 -30
  436. package/package.json +72 -44
  437. package/persistence/basicPersistence.ts +495 -0
  438. package/persistence/deps.ts +11 -1
  439. package/persistence/memory/memoryPersistence.ts +12 -153
  440. package/persistence/memory/memoryStorage.ts +232 -0
  441. package/persistence/mod.ts +4 -9
  442. package/persistence/persistence.test.ts +24 -0
  443. package/persistence/persistence.testing.ts +1324 -0
  444. package/persistence/persistence.ts +111 -67
  445. package/persistence/sqlite/sqliteDatabase.ts +294 -0
  446. package/persistence/sqlite/sqlitePersistence.test.ts +48 -0
  447. package/persistence/sqlite/sqlitePersistence.ts +36 -0
  448. package/persistence/sqlite/sqliteStorage.ts +324 -0
  449. package/persistence/storage.ts +84 -0
  450. package/server/config.ts +65 -0
  451. package/server/context.ts +658 -74
  452. package/server/deps.ts +25 -5
  453. package/server/handlers/completeConnect.ts +93 -0
  454. package/server/handlers/duplicate.test.ts +196 -0
  455. package/server/handlers/handleAuth.test.ts +225 -0
  456. package/server/handlers/handleAuth.ts +88 -0
  457. package/server/handlers/handleConnect.test.ts +589 -0
  458. package/server/handlers/handleConnect.ts +201 -86
  459. package/server/handlers/handleConnect.version.test.ts +108 -0
  460. package/server/handlers/handleDisconnect.test.ts +56 -0
  461. package/server/handlers/handleDisconnect.ts +3 -3
  462. package/server/handlers/handlePacket.test.ts +24 -0
  463. package/server/handlers/handlePacket.ts +30 -8
  464. package/server/handlers/handlePingreq.test.ts +29 -0
  465. package/server/handlers/handlePuback.test.ts +28 -0
  466. package/server/handlers/handlePuback.ts +5 -8
  467. package/server/handlers/handlePubcomp.test.ts +28 -0
  468. package/server/handlers/handlePubcomp.ts +5 -4
  469. package/server/handlers/handlePublish.test.ts +471 -0
  470. package/server/handlers/handlePublish.ts +189 -35
  471. package/server/handlers/handlePubrec.test.ts +28 -0
  472. package/server/handlers/handlePubrec.ts +2 -3
  473. package/server/handlers/handlePubrel.test.ts +74 -0
  474. package/server/handlers/handlePubrel.ts +12 -2
  475. package/server/handlers/handleSubscribe.test.ts +971 -0
  476. package/server/handlers/handleSubscribe.ts +158 -39
  477. package/server/handlers/handleUnsubscribe.test.ts +79 -0
  478. package/server/handlers/handleUnsubscribe.ts +29 -5
  479. package/server/handlers/keepalive.test.ts +132 -0
  480. package/server/handlers/session.persistence.test.ts +194 -0
  481. package/server/handlers/will.delivery.test.ts +221 -0
  482. package/server/mod.ts +4 -3
  483. package/server/preconnect.test.ts +151 -0
  484. package/server/server.ts +115 -17
  485. package/socket/socket.test.ts +91 -0
  486. package/socket/socket.ts +81 -34
  487. package/timer/timer.test.ts +4 -7
  488. package/timer/timer.ts +36 -0
  489. package/tools/benchmarks/receiver.ts +51 -0
  490. package/tools/benchmarks/sender.ts +48 -0
  491. package/tools/benchmarks/utils.ts +31 -0
  492. package/tools/mqtt-compat/README.md +130 -0
  493. package/tools/mqtt-compat/broker.ts +52 -0
  494. package/tools/mqtt-compat/paho-mqtt4.test.ts +379 -0
  495. package/tools/mqtt-compat/paho-mqtt5.tests.ts +887 -0
  496. package/trie/trie.test.ts +9 -1
  497. package/trie/trie.ts +70 -45
  498. package/utils/bufferedAsyncIterable.test.ts +92 -0
  499. package/utils/deferred.test.ts +36 -0
  500. package/utils/deferred.ts +0 -1
  501. package/utils/getOrInsertPolyFill.ts +12 -0
  502. package/utils/logger.test.ts +189 -0
  503. package/utils/logger.ts +62 -7
  504. package/utils/mod.ts +15 -1
  505. package/utils/outboundTopicAliasManager.ts +100 -0
  506. package/utils/queue.test.ts +61 -0
  507. package/utils/topicFilter.test.ts +63 -0
  508. package/utils/topicFilter.ts +61 -0
  509. package/utils/utils.ts +3 -0
  510. package/utils/validators.ts +67 -0
  511. package/web/webSocketStream.ts +97 -0
  512. package/web/wrapWebSocket.ts +52 -0
  513. package/web/wsClient.test.ts +26 -0
  514. package/web/wsClient.ts +25 -0
  515. package/benchmarks/receiver.ts +0 -35
  516. package/benchmarks/sender.ts +0 -32
  517. package/benchmarks/utils.ts +0 -9
  518. package/dev_utils/dummyConn.ts +0 -110
  519. package/dev_utils/socketPair.ts +0 -85
  520. package/dist/persistence/store.d.ts +0 -14
  521. package/dist/persistence/store.d.ts.map +0 -1
  522. package/dist/persistence/store.js +0 -2
  523. package/dist/persistence/store.js.map +0 -1
  524. package/dist/utils/BufferedAsyncIterable.d.ts.map +0 -1
  525. package/dist/utils/BufferedAsyncIterable.js.map +0 -1
  526. package/examples/tcpServer.test.ts +0 -148
  527. package/persistence/memory/memoryPersistence.test.ts +0 -156
  528. package/persistence/store.ts +0 -16
  529. package/server/test/handleConnect.test.ts +0 -122
  530. package/server/test/test-handlers.ts +0 -53
  531. /package/utils/{BufferedAsyncIterable.ts → bufferedAsyncIterable.ts} +0 -0
@@ -2,108 +2,109 @@ import { PacketType } from "./PacketType.js";
2
2
  import { BitMask } from "./BitMask.js";
3
3
  import { Encoder } from "./encoder.js";
4
4
  import { booleanFlag, Decoder, DecoderError } from "./decoder.js";
5
- export const subscribe = {
6
- encode(packet, codecOpts) {
7
- // Bits 3,2,1 and 0 of the fixed header of the SUBSCRIBE Control Packet are reserved and
8
- // MUST be set to 0,0,1 and 0 respectively. The Server MUST treat any other value as
9
- // malformed and close the Network Connection [MQTT-3.8.1-1].
10
- const flags = 0b0010;
11
- const encoder = new Encoder(packet.type);
12
- encoder.setInt16(packet.id);
5
+ /**
6
+ * Codec utility object responsible for encoding and decoding MQTT SUBSCRIBE control packets.
7
+ */
8
+ export function encode(packet, codecOpts) {
9
+ // Bits 3,2,1 and 0 of the fixed header of the SUBSCRIBE Control Packet are reserved and
10
+ // MUST be set to 0,0,1 and 0 respectively. The Server MUST treat any other value as
11
+ // malformed and close the Network Connection [MQTT-3.8.1-1].
12
+ const flags = 0b0010;
13
+ const encoder = new Encoder(packet.type);
14
+ encoder.setInt16(packet.id);
15
+ if (packet.protocolLevel === 5) {
16
+ encoder.setProperties(packet.properties || {}, packet.type, codecOpts.maxOutgoingPacketSize);
17
+ }
18
+ for (const sub of packet.subscriptions) {
19
+ encoder.setUtf8String(sub.topicFilter);
13
20
  if (packet.protocolLevel === 5) {
14
- encoder.setProperties(packet.properties || {}, packet.type, codecOpts.maxOutgoingPacketSize);
21
+ const { qos, noLocal = false, retainAsPublished = false, retainHandling = 0, } = sub;
22
+ const option = (qos & 1 ? BitMask.bit0 : 0) +
23
+ (qos & 2 ? BitMask.bit1 : 0) +
24
+ (noLocal ? BitMask.bit2 : 0) +
25
+ (retainAsPublished ? BitMask.bit3 : 0) +
26
+ (retainHandling & 1 ? BitMask.bit4 : 0) +
27
+ (retainHandling & 2 ? BitMask.bit5 : 0);
28
+ encoder.setByte(option);
15
29
  }
16
- for (const sub of packet.subscriptions) {
17
- encoder.setTopicFilter(sub.topicFilter);
18
- if (packet.protocolLevel === 5) {
19
- const { qos, noLocal = false, retainAsPublished = false, retainHandling = 0, } = sub;
20
- const option = (qos & 1 ? BitMask.bit0 : 0) +
21
- (qos & 2 ? BitMask.bit1 : 0) +
22
- (noLocal ? BitMask.bit2 : 0) +
23
- (retainAsPublished ? BitMask.bit3 : 0) +
24
- (retainHandling & 1 ? BitMask.bit4 : 0) +
25
- (retainHandling & 2 ? BitMask.bit5 : 0);
26
- encoder.setByte(option);
27
- }
28
- else {
29
- encoder.setByte(sub.qos);
30
- }
30
+ else {
31
+ encoder.setByte(sub.qos);
31
32
  }
32
- return encoder.done(flags);
33
- },
34
- decode(buffer, flags, codecOpts, packetType) {
35
- // Bits 3,2,1 and 0 of the fixed header of the SUBSCRIBE Control Packet are reserved and
36
- // MUST be set to 0,0,1 and 0 respectively. The Server MUST treat any other value as
37
- // malformed and close the Network Connection [MQTT-3.8.1-1].
38
- if (flags !== 0b0010) {
39
- throw new DecoderError("Invalid header");
33
+ }
34
+ return encoder.done(flags);
35
+ }
36
+ export function decode(buffer, flags, codecOpts, packetType) {
37
+ // Bits 3,2,1 and 0 of the fixed header of the SUBSCRIBE Control Packet are reserved and
38
+ // MUST be set to 0,0,1 and 0 respectively. The Server MUST treat any other value as
39
+ // malformed and close the Network Connection [MQTT-3.8.1-1].
40
+ if (flags !== 0b0010) {
41
+ throw new DecoderError("Invalid header");
42
+ }
43
+ const decoder = new Decoder(packetType, buffer);
44
+ const id = decoder.getInt16();
45
+ let properties = {};
46
+ if (codecOpts.protocolLevel === 5) {
47
+ properties = decoder.getProperties(PacketType.subscribe);
48
+ }
49
+ const subscriptions = [];
50
+ // The payload of a SUBSCRIBE packet MUST contain at least one Topic Filter / Option pair.
51
+ // A SUBSCRIBE packet with no payload is a protocol violation [MQTT-3.8.3-3].
52
+ do {
53
+ const topicFilter = decoder.getUTF8String();
54
+ const option = decoder.getByte();
55
+ const qos = option & 0b11;
56
+ if (qos !== 0 && qos !== 1 && qos !== 2) {
57
+ throw new DecoderError("Invalid qos");
40
58
  }
41
- const decoder = new Decoder(packetType, buffer);
42
- const id = decoder.getInt16();
43
- let properties = {};
44
- if (codecOpts.protocolLevel === 5) {
45
- properties = decoder.getProperties(PacketType.subscribe);
59
+ if (qos > 0 && id === 0) {
60
+ throw new DecoderError("Invalid packet identifier");
46
61
  }
47
- const subscriptions = [];
48
- // The payload of a SUBSCRIBE packet MUST contain at least one Topic Filter / Option pair.
49
- // A SUBSCRIBE packet with no payload is a protocol violation [MQTT-3.8.3-3].
50
- do {
51
- const topicFilter = decoder.getTopicFilter();
52
- const option = decoder.getByte();
53
- const qos = option & 0b11;
54
- if (qos !== 0 && qos !== 1 && qos !== 2) {
62
+ if (codecOpts.protocolLevel !== 5) {
63
+ if (option !== qos) {
55
64
  throw new DecoderError("Invalid qos");
56
65
  }
57
- if (qos > 0 && id === 0) {
58
- throw new DecoderError("Invalid packet identifier");
59
- }
60
- if (codecOpts.protocolLevel !== 5) {
61
- if (option !== qos) {
62
- throw new DecoderError("Invalid qos");
63
- }
64
- subscriptions.push({
65
- topicFilter: topicFilter,
66
- qos,
67
- });
66
+ subscriptions.push({
67
+ topicFilter: topicFilter,
68
+ qos,
69
+ });
70
+ }
71
+ else {
72
+ // Bits 6 and 7 of the Subscription Options byte are reserved for future use.
73
+ // The Server MUST treat a SUBSCRIBE packet as malformed if any of
74
+ // Reserved bits in the Payload are non-zero [MQTT-3.8.3-5].
75
+ if (option > 0b111111) {
76
+ throw new DecoderError("Invalid subscription options");
68
77
  }
69
- else {
70
- // Bits 6 and 7 of the Subscription Options byte are reserved for future use.
71
- // The Server MUST treat a SUBSCRIBE packet as malformed if any of
72
- // Reserved bits in the Payload are non-zero [MQTT-3.8.3-5].
73
- if (option > 0b111111) {
74
- throw new DecoderError("Invalid subscription options");
75
- }
76
- const noLocal = booleanFlag(option, BitMask.bit2);
77
- const retainAsPublished = booleanFlag(option, BitMask.bit3);
78
- const retainHandling = (option & 0b110000) >> 4;
79
- if (retainHandling !== 0 && retainHandling !== 1 && retainHandling !== 2) {
80
- throw new DecoderError("Invalid retain handling");
81
- }
82
- subscriptions.push({
83
- topicFilter: topicFilter,
84
- qos,
85
- noLocal,
86
- retainAsPublished,
87
- retainHandling,
88
- });
78
+ const noLocal = booleanFlag(option, BitMask.bit2);
79
+ const retainAsPublished = booleanFlag(option, BitMask.bit3);
80
+ const retainHandling = (option & 0b110000) >> 4;
81
+ if (retainHandling !== 0 && retainHandling !== 1 && retainHandling !== 2) {
82
+ throw new DecoderError("Invalid retain handling");
89
83
  }
90
- } while (!decoder.atEnd());
91
- decoder.done();
92
- if (codecOpts.protocolLevel !== 5) {
93
- return {
94
- type: PacketType.subscribe,
95
- protocolLevel: codecOpts.protocolLevel,
96
- id,
97
- subscriptions: subscriptions,
98
- };
84
+ subscriptions.push({
85
+ topicFilter: topicFilter,
86
+ qos,
87
+ noLocal,
88
+ retainAsPublished,
89
+ retainHandling,
90
+ });
99
91
  }
92
+ } while (!decoder.atEnd());
93
+ decoder.done();
94
+ if (codecOpts.protocolLevel !== 5) {
100
95
  return {
101
96
  type: PacketType.subscribe,
102
- protocolLevel: 5,
97
+ protocolLevel: codecOpts.protocolLevel,
103
98
  id,
104
- properties,
105
99
  subscriptions: subscriptions,
106
100
  };
107
- },
108
- };
101
+ }
102
+ return {
103
+ type: PacketType.subscribe,
104
+ protocolLevel: 5,
105
+ id,
106
+ properties,
107
+ subscriptions: subscriptions,
108
+ };
109
+ }
109
110
  //# sourceMappingURL=subscribe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../mqttPacket/subscribe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../mqttPacket/subscribe.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { PacketType } from "./PacketType.ts";
3
3
  import type { RetainHandling } from "./RetainHandling.ts";
4
4
  import type { AuthenticationResult } from "./AuthenticationResult.ts";
5
5
  import type { ReasonCode } from "./ReasonCode.ts";
6
+ import type { ProtocolLevel } from "./protocolLevels.ts";
6
7
  /**
7
8
  * Type to limit bit mask to valid values
8
9
  */
@@ -19,14 +20,6 @@ export type TAuthenticationResult = typeof AuthenticationResult[keyof typeof Aut
19
20
  * Type to limit reason code to valid values
20
21
  */
21
22
  export type TReasonCode = typeof ReasonCode[keyof typeof ReasonCode];
22
- /**
23
- * Protocol version
24
- * 3.1 = 3
25
- * 3.1.1 = 4
26
- * 5.0 = 5
27
- */
28
- export type ProtocolLevel = 3 | 4 | 5 | undefined;
29
- export type ProtocolLevelNoV5 = Exclude<ProtocolLevel, 5>;
30
23
  /**
31
24
  * Quality of Service level
32
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../mqttPacket/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,OAAO,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAC5D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC/B,OAAO,oBAAoB,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAErE;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAClD,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE5B;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAE3B;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,eAAe,GACzB,OAAO,cAAc,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI;KAC1D,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;CAC1B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../mqttPacket/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,OAAO,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAC5D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC/B,OAAO,oBAAoB,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE5B;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAE3B;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,eAAe,GACzB,OAAO,cAAc,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI;KAC1D,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;CAC1B,CAAC"}
@@ -1,4 +1,5 @@
1
- import type { CodecOpts, PacketId, ProtocolLevelNoV5, TPacketType, TReasonCode } from "./types.ts";
1
+ import type { CodecOpts, PacketId, TPacketType, TReasonCode } from "./types.ts";
2
+ import type { ProtocolLevelNoV5 } from "./protocolLevels.ts";
2
3
  import type { UnsubackProperties } from "./Properties.ts";
3
4
  export type UnsubackPacketV4 = {
4
5
  type: TPacketType;
@@ -17,8 +18,6 @@ export type UnsubackPacketV5 = {
17
18
  * of an UnsubscribePacket.
18
19
  */
19
20
  export type UnsubackPacket = UnsubackPacketV4 | UnsubackPacketV5;
20
- export declare const unsuback: {
21
- encode(packet: UnsubackPacket, codecOpts: CodecOpts): Uint8Array;
22
- decode(buffer: Uint8Array, flags: number, codecOpts: CodecOpts, packetType: TPacketType): UnsubackPacket;
23
- };
21
+ export declare function encode(packet: UnsubackPacket, codecOpts: CodecOpts): Uint8Array;
22
+ export declare function decode(buffer: Uint8Array, flags: number, codecOpts: CodecOpts, packetType: TPacketType): UnsubackPacket;
24
23
  //# sourceMappingURL=unsuback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unsuback.d.ts","sourceRoot":"","sources":["../../mqttPacket/unsuback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAK1D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,iBAAiB,CAAC;IACjC,EAAE,EAAE,QAAQ,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,CAAC,CAAC;IACjB,EAAE,EAAE,QAAQ,CAAC;IACb,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;CACjC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAEjE,eAAO,MAAM,QAAQ,EAAE;IACrB,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;IACjE,MAAM,CACJ,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,WAAW,GACtB,cAAc,CAAC;CAkDnB,CAAC"}
1
+ {"version":3,"file":"unsuback.d.ts","sourceRoot":"","sources":["../../mqttPacket/unsuback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAK1D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,iBAAiB,CAAC;IACjC,EAAE,EAAE,QAAQ,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,CAAC,CAAC;IACjB,EAAE,EAAE,QAAQ,CAAC;IACb,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;CACjC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAEjE,wBAAgB,MAAM,CACpB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,SAAS,GACnB,UAAU,CAeZ;AAED,wBAAgB,MAAM,CACpB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,WAAW,GACtB,cAAc,CAyBhB"}
@@ -1,44 +1,42 @@
1
1
  import { PacketType } from "./PacketType.js";
2
2
  import { Decoder, hasEmptyFlags } from "./decoder.js";
3
3
  import { Encoder } from "./encoder.js";
4
- export const unsuback = {
5
- encode(packet, codecOpts) {
6
- const flags = 0;
7
- const encoder = new Encoder(packet.type);
8
- encoder.setInt16(packet.id);
9
- if (packet.protocolLevel === 5) {
10
- encoder.setProperties(packet.properties || {}, PacketType.unsuback, codecOpts.maxOutgoingPacketSize);
11
- for (const reasonCode of packet.reasonCodes) {
12
- encoder.setByte(reasonCode);
13
- }
4
+ export function encode(packet, codecOpts) {
5
+ const flags = 0;
6
+ const encoder = new Encoder(packet.type);
7
+ encoder.setInt16(packet.id);
8
+ if (packet.protocolLevel === 5) {
9
+ encoder.setProperties(packet.properties || {}, PacketType.unsuback, codecOpts.maxOutgoingPacketSize);
10
+ for (const reasonCode of packet.reasonCodes) {
11
+ encoder.setByte(reasonCode);
14
12
  }
15
- return encoder.done(flags);
16
- },
17
- decode(buffer, flags, codecOpts, packetType) {
18
- hasEmptyFlags(flags);
19
- const decoder = new Decoder(packetType, buffer);
20
- const id = decoder.getInt16();
21
- if (codecOpts.protocolLevel === 5) {
22
- const properties = decoder.getProperties(PacketType.unsuback);
23
- const reasonCodes = [];
24
- while (!decoder.atEnd()) {
25
- const reasonCode = decoder.getReasonCode();
26
- reasonCodes.push(reasonCode);
27
- }
28
- return {
29
- type: PacketType.unsuback,
30
- protocolLevel: 5,
31
- id,
32
- properties,
33
- reasonCodes: reasonCodes,
34
- };
13
+ }
14
+ return encoder.done(flags);
15
+ }
16
+ export function decode(buffer, flags, codecOpts, packetType) {
17
+ hasEmptyFlags(flags);
18
+ const decoder = new Decoder(packetType, buffer);
19
+ const id = decoder.getInt16();
20
+ if (codecOpts.protocolLevel === 5) {
21
+ const properties = decoder.getProperties(PacketType.unsuback);
22
+ const reasonCodes = [];
23
+ while (!decoder.atEnd()) {
24
+ const reasonCode = decoder.getReasonCode();
25
+ reasonCodes.push(reasonCode);
35
26
  }
36
- decoder.done();
37
27
  return {
38
28
  type: PacketType.unsuback,
39
- protocolLevel: codecOpts.protocolLevel,
29
+ protocolLevel: 5,
40
30
  id,
31
+ properties,
32
+ reasonCodes: reasonCodes,
41
33
  };
42
- },
43
- };
34
+ }
35
+ decoder.done();
36
+ return {
37
+ type: PacketType.unsuback,
38
+ protocolLevel: codecOpts.protocolLevel,
39
+ id,
40
+ };
41
+ }
44
42
  //# sourceMappingURL=unsuback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unsuback.js","sourceRoot":"","sources":["../../mqttPacket/unsuback.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAsBvC,MAAM,CAAC,MAAM,QAAQ,GAQjB;IACF,MAAM,CAAC,MAAsB,EAAE,SAAoB;QACjD,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,aAAa,CACnB,MAAM,CAAC,UAAU,IAAI,EAAE,EACvB,UAAU,CAAC,QAAQ,EACnB,SAAS,CAAC,qBAAqB,CAChC,CAAC;YACF,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC5C,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CACJ,MAAkB,EAClB,KAAa,EACb,SAAoB,EACpB,UAAuB;QAEvB,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,SAAS,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACxB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC3C,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,QAAQ;gBACzB,aAAa,EAAE,CAAC;gBAChB,EAAE;gBACF,UAAU;gBACV,WAAW,EAAE,WAAiC;aAC/C,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,QAAQ;YACzB,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,EAAE;SACH,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"unsuback.js","sourceRoot":"","sources":["../../mqttPacket/unsuback.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAsBvC,MAAM,UAAU,MAAM,CACpB,MAAsB,EACtB,SAAoB;IAEpB,MAAM,KAAK,GAAG,CAAC,CAAC;IAChB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5B,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,aAAa,CACnB,MAAM,CAAC,UAAU,IAAI,EAAE,EACvB,UAAU,CAAC,QAAQ,EACnB,SAAS,CAAC,qBAAqB,CAChC,CAAC;QACF,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5C,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,MAAkB,EAClB,KAAa,EACb,SAAoB,EACpB,UAAuB;IAEvB,aAAa,CAAC,KAAK,CAAC,CAAC;IACrB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC9B,IAAI,SAAS,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3C,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,QAAQ;YACzB,aAAa,EAAE,CAAC;YAChB,EAAE;YACF,UAAU;YACV,WAAW,EAAE,WAAiC;SAC/C,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,CAAC;IACf,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,EAAE;KACH,CAAC;AACJ,CAAC"}
@@ -1,24 +1,41 @@
1
- import type { CodecOpts, PacketId, ProtocolLevelNoV5, TopicFilter, TPacketType } from "./types.ts";
1
+ import type { CodecOpts, PacketId, TopicFilter, TPacketType } from "./types.ts";
2
+ import type { ProtocolLevelNoV5 } from "./protocolLevels.ts";
2
3
  import type { UnsubscribeProperties } from "./Properties.ts";
4
+ /**
5
+ * Represents an MQTT UNSUBSCRIBE packet conforming to MQTT version 3.1.1 (Protocol Level 4) or lower.
6
+ */
3
7
  export type UnsubscribePacketV4 = {
8
+ /** The type of the MQTT control packet. */
4
9
  type: TPacketType;
10
+ /** The protocol version level, restricted to non-v5 variants. */
5
11
  protocolLevel: ProtocolLevelNoV5;
12
+ /** The unique 16-bit packet identifier. */
6
13
  id: PacketId;
14
+ /** The list of topic filters from which the client intends to unsubscribe. */
7
15
  topicFilters: TopicFilter[];
8
16
  };
17
+ /**
18
+ * Represents an MQTT UNSUBSCRIBE packet conforming to MQTT version 5.0.
19
+ */
9
20
  export type UnsubscribePacketV5 = {
21
+ /** The type of the MQTT control packet. */
10
22
  type: TPacketType;
23
+ /** The protocol version level, strictly set to 5. */
11
24
  protocolLevel: 5;
25
+ /** The unique 16-bit packet identifier. */
12
26
  id: PacketId;
27
+ /** Optional user and protocol properties introduced in MQTT v5. */
13
28
  properties?: UnsubscribeProperties;
29
+ /** The list of topic filters from which the client intends to unsubscribe. */
14
30
  topicFilters: TopicFilter[];
15
31
  };
16
32
  /**
17
- * UnsubscribePacket is sent from client to server to unsubscribe from topics
33
+ * Represents a union of available MQTT UNSUBSCRIBE packets (v4 or v5) sent from client to server.
18
34
  */
19
35
  export type UnsubscribePacket = UnsubscribePacketV4 | UnsubscribePacketV5;
20
- export declare const unsubscribe: {
21
- encode(packet: UnsubscribePacket, codecOpts: CodecOpts): Uint8Array;
22
- decode(buffer: Uint8Array, flags: number, codecOpts: CodecOpts, packetType: TPacketType): UnsubscribePacket;
23
- };
36
+ /**
37
+ * Codec utility object responsible for encoding and decoding MQTT UNSUBSCRIBE control packets.
38
+ */
39
+ export declare function encode(packet: UnsubscribePacket, codecOpts: CodecOpts): Uint8Array;
40
+ export declare function decode(buffer: Uint8Array, flags: number, codecOpts: CodecOpts, packetType: TPacketType): UnsubscribePacket;
24
41
  //# sourceMappingURL=unsubscribe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unsubscribe.d.ts","sourceRoot":"","sources":["../../mqttPacket/unsubscribe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,iBAAiB,EAEjB,WAAW,EACX,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAK7D,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,iBAAiB,CAAC;IACjC,EAAE,EAAE,QAAQ,CAAC;IACb,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,CAAC,CAAC;IACjB,EAAE,EAAE,QAAQ,CAAC;IACb,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAE1E,eAAO,MAAM,WAAW,EAAE;IACxB,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;IACpE,MAAM,CACJ,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,WAAW,GACtB,iBAAiB,CAAC;CA4DtB,CAAC"}
1
+ {"version":3,"file":"unsubscribe.d.ts","sourceRoot":"","sources":["../../mqttPacket/unsubscribe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EAER,WAAW,EACX,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAK7D;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,2CAA2C;IAC3C,IAAI,EAAE,WAAW,CAAC;IAClB,iEAAiE;IACjE,aAAa,EAAE,iBAAiB,CAAC;IACjC,2CAA2C;IAC3C,EAAE,EAAE,QAAQ,CAAC;IACb,8EAA8E;IAC9E,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,2CAA2C;IAC3C,IAAI,EAAE,WAAW,CAAC;IAClB,qDAAqD;IACrD,aAAa,EAAE,CAAC,CAAC;IACjB,2CAA2C;IAC3C,EAAE,EAAE,QAAQ,CAAC;IACb,mEAAmE;IACnE,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,8EAA8E;IAC9E,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAE1E;;GAEG;AACH,wBAAgB,MAAM,CACpB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,SAAS,GACnB,UAAU,CAmBZ;AAED,wBAAgB,MAAM,CACpB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,WAAW,GACtB,iBAAiB,CA+BnB"}
@@ -1,53 +1,54 @@
1
1
  import { PacketType } from "./PacketType.js";
2
2
  import { Encoder } from "./encoder.js";
3
3
  import { Decoder, DecoderError } from "./decoder.js";
4
- export const unsubscribe = {
5
- encode(packet, codecOpts) {
6
- // Bits 3,2,1 and 0 of the fixed header of the UNSUBSCRIBE Control Packet are reserved and
7
- // MUST be set to 0,0,1 and 0 respectively. The Server MUST treat any other value as
8
- // malformed and close the Network Connection [MQTT-3.10.1-1].
9
- const flags = 0b0010;
10
- const encoder = new Encoder(packet.type);
11
- encoder.setInt16(packet.id);
12
- if (packet.protocolLevel === 5) {
13
- encoder.setProperties(packet.properties || {}, PacketType.unsubscribe, codecOpts.maxOutgoingPacketSize);
14
- }
15
- for (const topicFilter of packet.topicFilters) {
16
- encoder.setTopicFilter(topicFilter);
17
- }
18
- return encoder.done(flags);
19
- },
20
- decode(buffer, flags, codecOpts, packetType) {
21
- if (flags !== 0b0010) {
22
- throw new DecoderError("Invalid header");
23
- }
24
- const decoder = new Decoder(packetType, buffer);
25
- const id = decoder.getInt16();
26
- let properties = {};
27
- if (codecOpts.protocolLevel === 5) {
28
- properties = decoder.getProperties(PacketType.unsubscribe);
29
- }
30
- const topicFilters = [];
31
- do {
32
- const topicFilter = decoder.getTopicFilter();
33
- topicFilters.push(topicFilter);
34
- } while (!decoder.atEnd());
35
- decoder.done();
36
- if (codecOpts.protocolLevel !== 5) {
37
- return {
38
- type: PacketType.unsubscribe,
39
- protocolLevel: codecOpts.protocolLevel,
40
- id,
41
- topicFilters,
42
- };
43
- }
4
+ /**
5
+ * Codec utility object responsible for encoding and decoding MQTT UNSUBSCRIBE control packets.
6
+ */
7
+ export function encode(packet, codecOpts) {
8
+ // Bits 3,2,1 and 0 of the fixed header of the UNSUBSCRIBE Control Packet are reserved and
9
+ // MUST be set to 0,0,1 and 0 respectively. The Server MUST treat any other value as
10
+ // malformed and close the Network Connection [MQTT-3.10.1-1].
11
+ const flags = 0b0010;
12
+ const encoder = new Encoder(packet.type);
13
+ encoder.setInt16(packet.id);
14
+ if (packet.protocolLevel === 5) {
15
+ encoder.setProperties(packet.properties || {}, PacketType.unsubscribe, codecOpts.maxOutgoingPacketSize);
16
+ }
17
+ for (const topicFilter of packet.topicFilters) {
18
+ encoder.setUtf8String(topicFilter);
19
+ }
20
+ return encoder.done(flags);
21
+ }
22
+ export function decode(buffer, flags, codecOpts, packetType) {
23
+ if (flags !== 0b0010) {
24
+ throw new DecoderError("Invalid header");
25
+ }
26
+ const decoder = new Decoder(packetType, buffer);
27
+ const id = decoder.getInt16();
28
+ let properties = {};
29
+ if (codecOpts.protocolLevel === 5) {
30
+ properties = decoder.getProperties(PacketType.unsubscribe);
31
+ }
32
+ const topicFilters = [];
33
+ do {
34
+ const topicFilter = decoder.getUTF8String();
35
+ topicFilters.push(topicFilter);
36
+ } while (!decoder.atEnd());
37
+ decoder.done();
38
+ if (codecOpts.protocolLevel !== 5) {
44
39
  return {
45
40
  type: PacketType.unsubscribe,
46
- protocolLevel: 5,
41
+ protocolLevel: codecOpts.protocolLevel,
47
42
  id,
48
- properties,
49
43
  topicFilters,
50
44
  };
51
- },
52
- };
45
+ }
46
+ return {
47
+ type: PacketType.unsubscribe,
48
+ protocolLevel: 5,
49
+ id,
50
+ properties,
51
+ topicFilters,
52
+ };
53
+ }
53
54
  //# sourceMappingURL=unsubscribe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unsubscribe.js","sourceRoot":"","sources":["../../mqttPacket/unsubscribe.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAsBrD,MAAM,CAAC,MAAM,WAAW,GAQpB;IACF,MAAM,CAAC,MAAyB,EAAE,SAAoB;QACpD,0FAA0F;QAC1F,oFAAoF;QACpF,8DAA8D;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC;QAErB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,aAAa,CACnB,MAAM,CAAC,UAAU,IAAI,EAAE,EACvB,UAAU,CAAC,WAAW,EACtB,SAAS,CAAC,qBAAqB,CAChC,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YAC9C,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CACJ,MAAkB,EAClB,KAAa,EACb,SAAoB,EACpB,UAAuB;QAEvB,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,SAAS,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;YAClC,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,YAAY,GAAY,EAAE,CAAC;QACjC,GAAG,CAAC;YACF,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YAC7C,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;QAC3B,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,IAAI,SAAS,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,WAAW;gBAC5B,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,EAAE;gBACF,YAAY;aACb,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,WAAW;YAC5B,aAAa,EAAE,CAAC;YAChB,EAAE;YACF,UAAU;YACV,YAAY;SACb,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"unsubscribe.js","sourceRoot":"","sources":["../../mqttPacket/unsubscribe.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAqCrD;;GAEG;AACH,MAAM,UAAU,MAAM,CACpB,MAAyB,EACzB,SAAoB;IAEpB,0FAA0F;IAC1F,oFAAoF;IACpF,8DAA8D;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC;IAErB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5B,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,aAAa,CACnB,MAAM,CAAC,UAAU,IAAI,EAAE,EACvB,UAAU,CAAC,WAAW,EACtB,SAAS,CAAC,qBAAqB,CAChC,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9C,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,MAAkB,EAClB,KAAa,EACb,SAAoB,EACpB,UAAuB;IAEvB,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC9B,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,SAAS,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QAClC,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,YAAY,GAAY,EAAE,CAAC;IACjC,GAAG,CAAC;QACF,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC5C,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;IAC3B,OAAO,CAAC,IAAI,EAAE,CAAC;IACf,IAAI,SAAS,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,WAAW;YAC5B,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,EAAE;YACF,YAAY;SACb,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,WAAW;QAC5B,aAAa,EAAE,CAAC;QAChB,EAAE;QACF,UAAU;QACV,YAAY;KACb,CAAC;AACJ,CAAC"}
@@ -1,20 +1,8 @@
1
- import type { Topic, TopicFilter } from "./types.ts";
2
1
  /**
3
- * check for invalid UTF-8 characters
4
- * @param value string to test
5
- * @returns true if the string contains invalid UTF-8 characters
2
+ * Checks for invalid UTF-8 characters or null bytes.
3
+ *
4
+ * @param value - The string to validate.
5
+ * @returns `true` if the string contains invalid UTF-8 sequences or a null byte, otherwise `false`.
6
6
  */
7
7
  export declare function invalidUTF8(value: string): boolean;
8
- /**
9
- * check for invalid topic characters
10
- * @param value
11
- * @returns true if the topic is invalid
12
- */
13
- export declare function invalidTopic(value: Topic): boolean;
14
- /**
15
- * check for invalid topic filter characters
16
- * @param value topic filter to test
17
- * @returns true if the topic filter is invalid
18
- */
19
- export declare function invalidTopicFilter(value: TopicFilter): boolean;
20
8
  //# sourceMappingURL=validators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../mqttPacket/validators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AASrD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAElD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE9D"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../mqttPacket/validators.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAElD"}
@@ -1,31 +1,10 @@
1
- // deno-lint-ignore no-control-regex
2
- const invalidUTF8regEx = new RegExp(/\x00|\uFFFD/);
3
- // deno-lint-ignore no-control-regex
4
- const invalidTopicRegEx = new RegExp(/^$|\+|#|\x00|\uFFFD/);
5
- // deno-lint-ignore no-control-regex
6
- const invalidTopicFilterRegEx = new RegExp(/^$|#.|[^\/]\+|\+[^\/]|\x00|\uFFFD/);
7
1
  /**
8
- * check for invalid UTF-8 characters
9
- * @param value string to test
10
- * @returns true if the string contains invalid UTF-8 characters
2
+ * Checks for invalid UTF-8 characters or null bytes.
3
+ *
4
+ * @param value - The string to validate.
5
+ * @returns `true` if the string contains invalid UTF-8 sequences or a null byte, otherwise `false`.
11
6
  */
12
7
  export function invalidUTF8(value) {
13
- return invalidUTF8regEx.test(value);
14
- }
15
- /**
16
- * check for invalid topic characters
17
- * @param value
18
- * @returns true if the topic is invalid
19
- */
20
- export function invalidTopic(value) {
21
- return invalidTopicRegEx.test(value);
22
- }
23
- /**
24
- * check for invalid topic filter characters
25
- * @param value topic filter to test
26
- * @returns true if the topic filter is invalid
27
- */
28
- export function invalidTopicFilter(value) {
29
- return invalidTopicFilterRegEx.test(value);
8
+ return value.includes("\x00") || !value.isWellFormed();
30
9
  }
31
10
  //# sourceMappingURL=validators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../mqttPacket/validators.ts"],"names":[],"mappings":"AAEA,oCAAoC;AACpC,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;AACnD,oCAAoC;AACpC,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC5D,oCAAoC;AACpC,MAAM,uBAAuB,GAAG,IAAI,MAAM,CAAC,mCAAmC,CAAC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAkB;IACnD,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../mqttPacket/validators.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;AACzD,CAAC"}