@seriousme/opifex 1.7.0 → 1.7.1

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 (309) hide show
  1. package/dist/bin/conformanceServer.d.ts +3 -0
  2. package/dist/bin/conformanceServer.d.ts.map +1 -0
  3. package/dist/bin/conformanceServer.js +98 -0
  4. package/dist/bin/conformanceServer.js.map +1 -0
  5. package/dist/bin/demoServer.d.ts +3 -0
  6. package/dist/bin/demoServer.d.ts.map +1 -0
  7. package/dist/bin/demoServer.js +97 -0
  8. package/dist/bin/demoServer.js.map +1 -0
  9. package/dist/bin/mqtt.d.ts +3 -0
  10. package/dist/bin/mqtt.d.ts.map +1 -0
  11. package/dist/bin/mqtt.js +257 -0
  12. package/dist/bin/mqtt.js.map +1 -0
  13. package/dist/client/ConnectionState.d.ts +21 -0
  14. package/dist/client/ConnectionState.d.ts.map +1 -0
  15. package/dist/client/ConnectionState.js +17 -0
  16. package/dist/client/ConnectionState.js.map +1 -0
  17. package/dist/client/client.d.ts +94 -0
  18. package/dist/client/client.d.ts.map +1 -0
  19. package/dist/client/client.js +188 -0
  20. package/dist/client/client.js.map +1 -0
  21. package/dist/client/context.d.ts +29 -0
  22. package/dist/client/context.d.ts.map +1 -0
  23. package/dist/client/context.js +153 -0
  24. package/dist/client/context.js.map +1 -0
  25. package/dist/client/deps.d.ts +8 -0
  26. package/dist/client/deps.d.ts.map +1 -0
  27. package/dist/client/deps.js +6 -0
  28. package/dist/client/deps.js.map +1 -0
  29. package/dist/client/handlers/handleConnack.d.ts +10 -0
  30. package/dist/client/handlers/handleConnack.d.ts.map +1 -0
  31. package/dist/client/handlers/handleConnack.js +25 -0
  32. package/dist/client/handlers/handleConnack.js.map +1 -0
  33. package/dist/client/handlers/handlePacket.d.ts +11 -0
  34. package/dist/client/handlers/handlePacket.d.ts.map +1 -0
  35. package/dist/client/handlers/handlePacket.js +58 -0
  36. package/dist/client/handlers/handlePacket.js.map +1 -0
  37. package/dist/client/handlers/handlePuback.d.ts +12 -0
  38. package/dist/client/handlers/handlePuback.d.ts.map +1 -0
  39. package/dist/client/handlers/handlePuback.js +14 -0
  40. package/dist/client/handlers/handlePuback.js.map +1 -0
  41. package/dist/client/handlers/handlePubcomp.d.ts +13 -0
  42. package/dist/client/handlers/handlePubcomp.d.ts.map +1 -0
  43. package/dist/client/handlers/handlePubcomp.js +17 -0
  44. package/dist/client/handlers/handlePubcomp.js.map +1 -0
  45. package/dist/client/handlers/handlePublish.d.ts +10 -0
  46. package/dist/client/handlers/handlePublish.d.ts.map +1 -0
  47. package/dist/client/handlers/handlePublish.js +34 -0
  48. package/dist/client/handlers/handlePublish.js.map +1 -0
  49. package/dist/client/handlers/handlePubrec.d.ts +17 -0
  50. package/dist/client/handlers/handlePubrec.d.ts.map +1 -0
  51. package/dist/client/handlers/handlePubrec.js +27 -0
  52. package/dist/client/handlers/handlePubrec.js.map +1 -0
  53. package/dist/client/handlers/handlePubrel.d.ts +20 -0
  54. package/dist/client/handlers/handlePubrel.d.ts.map +1 -0
  55. package/dist/client/handlers/handlePubrel.js +32 -0
  56. package/dist/client/handlers/handlePubrel.js.map +1 -0
  57. package/dist/client/handlers/handleSuback.d.ts +13 -0
  58. package/dist/client/handlers/handleSuback.d.ts.map +1 -0
  59. package/dist/client/handlers/handleSuback.js +15 -0
  60. package/dist/client/handlers/handleSuback.js.map +1 -0
  61. package/dist/client/handlers/handleUnsuback.d.ts +14 -0
  62. package/dist/client/handlers/handleUnsuback.d.ts.map +1 -0
  63. package/dist/client/handlers/handleUnsuback.js +16 -0
  64. package/dist/client/handlers/handleUnsuback.js.map +1 -0
  65. package/dist/client/mod.d.ts +7 -0
  66. package/dist/client/mod.d.ts.map +1 -0
  67. package/dist/client/mod.js +6 -0
  68. package/dist/client/mod.js.map +1 -0
  69. package/dist/client/store/deps.d.ts +3 -0
  70. package/dist/client/store/deps.d.ts.map +1 -0
  71. package/dist/client/store/deps.js +2 -0
  72. package/dist/client/store/deps.js.map +1 -0
  73. package/dist/client/store/memoryStore.d.ts +34 -0
  74. package/dist/client/store/memoryStore.d.ts.map +1 -0
  75. package/dist/client/store/memoryStore.js +59 -0
  76. package/dist/client/store/memoryStore.js.map +1 -0
  77. package/dist/client/store/store.d.ts +46 -0
  78. package/dist/client/store/store.d.ts.map +1 -0
  79. package/dist/client/store/store.js +5 -0
  80. package/dist/client/store/store.js.map +1 -0
  81. package/dist/mqttConn/mqttConn.d.ts +36 -0
  82. package/dist/mqttConn/mqttConn.d.ts.map +1 -0
  83. package/dist/mqttConn/mqttConn.js +105 -0
  84. package/dist/mqttConn/mqttConn.js.map +1 -0
  85. package/dist/mqttPacket/AuthenticationResult.d.ts +16 -0
  86. package/dist/mqttPacket/AuthenticationResult.d.ts.map +1 -0
  87. package/dist/mqttPacket/AuthenticationResult.js +17 -0
  88. package/dist/mqttPacket/AuthenticationResult.js.map +1 -0
  89. package/dist/mqttPacket/BitMask.d.ts +11 -0
  90. package/dist/mqttPacket/BitMask.d.ts.map +1 -0
  91. package/dist/mqttPacket/BitMask.js +11 -0
  92. package/dist/mqttPacket/BitMask.js.map +1 -0
  93. package/dist/mqttPacket/PacketType.d.ts +19 -0
  94. package/dist/mqttPacket/PacketType.d.ts.map +1 -0
  95. package/dist/mqttPacket/PacketType.js +19 -0
  96. package/dist/mqttPacket/PacketType.js.map +1 -0
  97. package/dist/mqttPacket/connack.d.ts +18 -0
  98. package/dist/mqttPacket/connack.d.ts.map +1 -0
  99. package/dist/mqttPacket/connack.js +28 -0
  100. package/dist/mqttPacket/connack.js.map +1 -0
  101. package/dist/mqttPacket/connect.d.ts +28 -0
  102. package/dist/mqttPacket/connect.d.ts.map +1 -0
  103. package/dist/mqttPacket/connect.js +116 -0
  104. package/dist/mqttPacket/connect.js.map +1 -0
  105. package/dist/mqttPacket/decoder.d.ts +24 -0
  106. package/dist/mqttPacket/decoder.d.ts.map +1 -0
  107. package/dist/mqttPacket/decoder.js +90 -0
  108. package/dist/mqttPacket/decoder.js.map +1 -0
  109. package/dist/mqttPacket/disconnect.d.ts +16 -0
  110. package/dist/mqttPacket/disconnect.d.ts.map +1 -0
  111. package/dist/mqttPacket/disconnect.js +15 -0
  112. package/dist/mqttPacket/disconnect.js.map +1 -0
  113. package/dist/mqttPacket/encoder.d.ts +17 -0
  114. package/dist/mqttPacket/encoder.d.ts.map +1 -0
  115. package/dist/mqttPacket/encoder.js +57 -0
  116. package/dist/mqttPacket/encoder.js.map +1 -0
  117. package/dist/mqttPacket/length.d.ts +12 -0
  118. package/dist/mqttPacket/length.d.ts.map +1 -0
  119. package/dist/mqttPacket/length.js +44 -0
  120. package/dist/mqttPacket/length.js.map +1 -0
  121. package/dist/mqttPacket/mod.d.ts +122 -0
  122. package/dist/mqttPacket/mod.d.ts.map +1 -0
  123. package/dist/mqttPacket/mod.js +77 -0
  124. package/dist/mqttPacket/mod.js.map +1 -0
  125. package/dist/mqttPacket/pingreq.d.ts +15 -0
  126. package/dist/mqttPacket/pingreq.d.ts.map +1 -0
  127. package/dist/mqttPacket/pingreq.js +16 -0
  128. package/dist/mqttPacket/pingreq.js.map +1 -0
  129. package/dist/mqttPacket/pingres.d.ts +16 -0
  130. package/dist/mqttPacket/pingres.d.ts.map +1 -0
  131. package/dist/mqttPacket/pingres.js +15 -0
  132. package/dist/mqttPacket/pingres.js.map +1 -0
  133. package/dist/mqttPacket/puback.d.ts +16 -0
  134. package/dist/mqttPacket/puback.d.ts.map +1 -0
  135. package/dist/mqttPacket/puback.js +21 -0
  136. package/dist/mqttPacket/puback.js.map +1 -0
  137. package/dist/mqttPacket/pubcomp.d.ts +17 -0
  138. package/dist/mqttPacket/pubcomp.d.ts.map +1 -0
  139. package/dist/mqttPacket/pubcomp.js +21 -0
  140. package/dist/mqttPacket/pubcomp.js.map +1 -0
  141. package/dist/mqttPacket/publish.d.ts +22 -0
  142. package/dist/mqttPacket/publish.d.ts.map +1 -0
  143. package/dist/mqttPacket/publish.js +52 -0
  144. package/dist/mqttPacket/publish.js.map +1 -0
  145. package/dist/mqttPacket/pubrec.d.ts +17 -0
  146. package/dist/mqttPacket/pubrec.d.ts.map +1 -0
  147. package/dist/mqttPacket/pubrec.js +21 -0
  148. package/dist/mqttPacket/pubrec.js.map +1 -0
  149. package/dist/mqttPacket/pubrel.d.ts +17 -0
  150. package/dist/mqttPacket/pubrel.d.ts.map +1 -0
  151. package/dist/mqttPacket/pubrel.js +21 -0
  152. package/dist/mqttPacket/pubrel.js.map +1 -0
  153. package/dist/mqttPacket/suback.d.ts +18 -0
  154. package/dist/mqttPacket/suback.d.ts.map +1 -0
  155. package/dist/mqttPacket/suback.js +30 -0
  156. package/dist/mqttPacket/suback.js.map +1 -0
  157. package/dist/mqttPacket/subscribe.d.ts +24 -0
  158. package/dist/mqttPacket/subscribe.d.ts.map +1 -0
  159. package/dist/mqttPacket/subscribe.js +53 -0
  160. package/dist/mqttPacket/subscribe.js.map +1 -0
  161. package/dist/mqttPacket/types.d.ts +48 -0
  162. package/dist/mqttPacket/types.d.ts.map +1 -0
  163. package/dist/mqttPacket/types.js +2 -0
  164. package/dist/mqttPacket/types.js.map +1 -0
  165. package/dist/mqttPacket/unsuback.d.ts +17 -0
  166. package/dist/mqttPacket/unsuback.d.ts.map +1 -0
  167. package/dist/mqttPacket/unsuback.js +21 -0
  168. package/dist/mqttPacket/unsuback.js.map +1 -0
  169. package/dist/mqttPacket/unsubscribe.d.ts +17 -0
  170. package/dist/mqttPacket/unsubscribe.d.ts.map +1 -0
  171. package/dist/mqttPacket/unsubscribe.js +37 -0
  172. package/dist/mqttPacket/unsubscribe.js.map +1 -0
  173. package/dist/mqttPacket/validators.d.ts +5 -0
  174. package/dist/mqttPacket/validators.d.ts.map +1 -0
  175. package/dist/mqttPacket/validators.js +16 -0
  176. package/dist/mqttPacket/validators.js.map +1 -0
  177. package/dist/node/tcpClient.d.ts +18 -0
  178. package/dist/node/tcpClient.d.ts.map +1 -0
  179. package/dist/node/tcpClient.js +82 -0
  180. package/dist/node/tcpClient.js.map +1 -0
  181. package/dist/node/tcpServer.d.ts +17 -0
  182. package/dist/node/tcpServer.d.ts.map +1 -0
  183. package/dist/node/tcpServer.js +51 -0
  184. package/dist/node/tcpServer.js.map +1 -0
  185. package/dist/node/wrapNodeSocket.d.ts +12 -0
  186. package/dist/node/wrapNodeSocket.d.ts.map +1 -0
  187. package/dist/node/wrapNodeSocket.js +57 -0
  188. package/dist/node/wrapNodeSocket.js.map +1 -0
  189. package/dist/persistence/deps.d.ts +5 -0
  190. package/dist/persistence/deps.d.ts.map +1 -0
  191. package/dist/persistence/deps.js +4 -0
  192. package/dist/persistence/deps.js.map +1 -0
  193. package/dist/persistence/memory/memoryPersistence.d.ts +28 -0
  194. package/dist/persistence/memory/memoryPersistence.d.ts.map +1 -0
  195. package/dist/persistence/memory/memoryPersistence.js +119 -0
  196. package/dist/persistence/memory/memoryPersistence.js.map +1 -0
  197. package/dist/persistence/persistence.d.ts +24 -0
  198. package/dist/persistence/persistence.d.ts.map +1 -0
  199. package/dist/persistence/persistence.js +2 -0
  200. package/dist/persistence/persistence.js.map +1 -0
  201. package/dist/persistence/store.d.ts +13 -0
  202. package/dist/persistence/store.d.ts.map +1 -0
  203. package/dist/persistence/store.js +2 -0
  204. package/dist/persistence/store.js.map +1 -0
  205. package/dist/server/context.d.ts +45 -0
  206. package/dist/server/context.d.ts.map +1 -0
  207. package/dist/server/context.js +101 -0
  208. package/dist/server/context.js.map +1 -0
  209. package/dist/server/deps.d.ts +10 -0
  210. package/dist/server/deps.d.ts.map +1 -0
  211. package/dist/server/deps.js +6 -0
  212. package/dist/server/deps.js.map +1 -0
  213. package/dist/server/handlers/handleConnect.d.ts +9 -0
  214. package/dist/server/handlers/handleConnect.d.ts.map +1 -0
  215. package/dist/server/handlers/handleConnect.js +81 -0
  216. package/dist/server/handlers/handleConnect.js.map +1 -0
  217. package/dist/server/handlers/handleDisconnect.d.ts +8 -0
  218. package/dist/server/handlers/handleDisconnect.d.ts.map +1 -0
  219. package/dist/server/handlers/handleDisconnect.js +10 -0
  220. package/dist/server/handlers/handleDisconnect.js.map +1 -0
  221. package/dist/server/handlers/handlePacket.d.ts +11 -0
  222. package/dist/server/handlers/handlePacket.d.ts.map +1 -0
  223. package/dist/server/handlers/handlePacket.js +66 -0
  224. package/dist/server/handlers/handlePacket.js.map +1 -0
  225. package/dist/server/handlers/handlePingreq.d.ts +8 -0
  226. package/dist/server/handlers/handlePingreq.d.ts.map +1 -0
  227. package/dist/server/handlers/handlePingreq.js +12 -0
  228. package/dist/server/handlers/handlePingreq.js.map +1 -0
  229. package/dist/server/handlers/handlePuback.d.ts +13 -0
  230. package/dist/server/handlers/handlePuback.d.ts.map +1 -0
  231. package/dist/server/handlers/handlePuback.js +17 -0
  232. package/dist/server/handlers/handlePuback.js.map +1 -0
  233. package/dist/server/handlers/handlePubcomp.d.ts +12 -0
  234. package/dist/server/handlers/handlePubcomp.d.ts.map +1 -0
  235. package/dist/server/handlers/handlePubcomp.js +15 -0
  236. package/dist/server/handlers/handlePubcomp.js.map +1 -0
  237. package/dist/server/handlers/handlePublish.d.ts +11 -0
  238. package/dist/server/handlers/handlePublish.d.ts.map +1 -0
  239. package/dist/server/handlers/handlePublish.js +55 -0
  240. package/dist/server/handlers/handlePublish.js.map +1 -0
  241. package/dist/server/handlers/handlePubrec.d.ts +15 -0
  242. package/dist/server/handlers/handlePubrec.d.ts.map +1 -0
  243. package/dist/server/handlers/handlePubrec.js +24 -0
  244. package/dist/server/handlers/handlePubrec.js.map +1 -0
  245. package/dist/server/handlers/handlePubrel.d.ts +16 -0
  246. package/dist/server/handlers/handlePubrel.d.ts.map +1 -0
  247. package/dist/server/handlers/handlePubrel.js +28 -0
  248. package/dist/server/handlers/handlePubrel.js.map +1 -0
  249. package/dist/server/handlers/handleSubscribe.d.ts +13 -0
  250. package/dist/server/handlers/handleSubscribe.d.ts.map +1 -0
  251. package/dist/server/handlers/handleSubscribe.js +57 -0
  252. package/dist/server/handlers/handleSubscribe.js.map +1 -0
  253. package/dist/server/handlers/handleUnsubscribe.d.ts +10 -0
  254. package/dist/server/handlers/handleUnsubscribe.d.ts.map +1 -0
  255. package/dist/server/handlers/handleUnsubscribe.js +19 -0
  256. package/dist/server/handlers/handleUnsubscribe.js.map +1 -0
  257. package/dist/server/mod.d.ts +11 -0
  258. package/dist/server/mod.d.ts.map +1 -0
  259. package/dist/server/mod.js +8 -0
  260. package/dist/server/mod.js.map +1 -0
  261. package/dist/server/server.d.ts +27 -0
  262. package/dist/server/server.d.ts.map +1 -0
  263. package/dist/server/server.js +48 -0
  264. package/dist/server/server.js.map +1 -0
  265. package/dist/socket/socket.d.ts +29 -0
  266. package/dist/socket/socket.d.ts.map +1 -0
  267. package/dist/socket/socket.js +37 -0
  268. package/dist/socket/socket.js.map +1 -0
  269. package/dist/timer/timer.d.ts +13 -0
  270. package/dist/timer/timer.d.ts.map +1 -0
  271. package/dist/timer/timer.js +41 -0
  272. package/dist/timer/timer.js.map +1 -0
  273. package/dist/trie/trie.d.ts +21 -0
  274. package/dist/trie/trie.d.ts.map +1 -0
  275. package/dist/trie/trie.js +96 -0
  276. package/dist/trie/trie.js.map +1 -0
  277. package/dist/utils/args.d.ts +28 -0
  278. package/dist/utils/args.d.ts.map +1 -0
  279. package/dist/utils/args.js +76 -0
  280. package/dist/utils/args.js.map +1 -0
  281. package/dist/utils/assert.d.ts +10 -0
  282. package/dist/utils/assert.d.ts.map +1 -0
  283. package/dist/utils/assert.js +21 -0
  284. package/dist/utils/assert.js.map +1 -0
  285. package/dist/utils/asyncQueue.d.ts +28 -0
  286. package/dist/utils/asyncQueue.d.ts.map +1 -0
  287. package/dist/utils/asyncQueue.js +70 -0
  288. package/dist/utils/asyncQueue.js.map +1 -0
  289. package/dist/utils/deferred.d.ts +10 -0
  290. package/dist/utils/deferred.d.ts.map +1 -0
  291. package/dist/utils/deferred.js +15 -0
  292. package/dist/utils/deferred.js.map +1 -0
  293. package/dist/utils/logger.d.ts +63 -0
  294. package/dist/utils/logger.d.ts.map +1 -0
  295. package/dist/utils/logger.js +59 -0
  296. package/dist/utils/logger.js.map +1 -0
  297. package/dist/utils/mod.d.ts +13 -0
  298. package/dist/utils/mod.d.ts.map +1 -0
  299. package/dist/utils/mod.js +12 -0
  300. package/dist/utils/mod.js.map +1 -0
  301. package/dist/utils/nextTick.d.ts +17 -0
  302. package/dist/utils/nextTick.d.ts.map +1 -0
  303. package/dist/utils/nextTick.js +19 -0
  304. package/dist/utils/nextTick.js.map +1 -0
  305. package/dist/utils/platform.d.ts +5 -0
  306. package/dist/utils/platform.d.ts.map +1 -0
  307. package/dist/utils/platform.js +8 -0
  308. package/dist/utils/platform.js.map +1 -0
  309. package/package.json +2 -3
@@ -0,0 +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"}
@@ -0,0 +1,11 @@
1
+ export declare const BitMask: {
2
+ readonly bit0: number;
3
+ readonly bit1: number;
4
+ readonly bit2: number;
5
+ readonly bit3: number;
6
+ readonly bit4: number;
7
+ readonly bit5: number;
8
+ readonly bit6: number;
9
+ readonly bit7: number;
10
+ };
11
+ //# sourceMappingURL=BitMask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitMask.d.ts","sourceRoot":"","sources":["../../mqttPacket/BitMask.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO;;;;;;;;;CASV,CAAC"}
@@ -0,0 +1,11 @@
1
+ export const BitMask = {
2
+ bit0: 2 ** 0,
3
+ bit1: 2 ** 1,
4
+ bit2: 2 ** 2,
5
+ bit3: 2 ** 3,
6
+ bit4: 2 ** 4,
7
+ bit5: 2 ** 5,
8
+ bit6: 2 ** 6,
9
+ bit7: 2 ** 7,
10
+ };
11
+ //# sourceMappingURL=BitMask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitMask.js","sourceRoot":"","sources":["../../mqttPacket/BitMask.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,CAAC,IAAI,CAAC;IACZ,IAAI,EAAE,CAAC,IAAI,CAAC;IACZ,IAAI,EAAE,CAAC,IAAI,CAAC;IACZ,IAAI,EAAE,CAAC,IAAI,CAAC;IACZ,IAAI,EAAE,CAAC,IAAI,CAAC;IACZ,IAAI,EAAE,CAAC,IAAI,CAAC;IACZ,IAAI,EAAE,CAAC,IAAI,CAAC;IACZ,IAAI,EAAE,CAAC,IAAI,CAAC;CACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ export declare const PacketType: {
2
+ readonly reserved: 0;
3
+ readonly connect: 1;
4
+ readonly connack: 2;
5
+ readonly publish: 3;
6
+ readonly puback: 4;
7
+ readonly pubrec: 5;
8
+ readonly pubrel: 6;
9
+ readonly pubcomp: 7;
10
+ readonly subscribe: 8;
11
+ readonly suback: 9;
12
+ readonly unsubscribe: 10;
13
+ readonly unsuback: 11;
14
+ readonly pingreq: 12;
15
+ readonly pingres: 13;
16
+ readonly disconnect: 14;
17
+ };
18
+ export declare const PacketNameByType: Record<number, string>;
19
+ //# sourceMappingURL=PacketType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PacketType.d.ts","sourceRoot":"","sources":["../../mqttPacket/PacketType.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;CAgBb,CAAC;AAEX,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEnD,CAAC"}
@@ -0,0 +1,19 @@
1
+ export const PacketType = {
2
+ reserved: 0,
3
+ connect: 1,
4
+ connack: 2,
5
+ publish: 3,
6
+ puback: 4,
7
+ pubrec: 5,
8
+ pubrel: 6,
9
+ pubcomp: 7,
10
+ subscribe: 8,
11
+ suback: 9,
12
+ unsubscribe: 10,
13
+ unsuback: 11,
14
+ pingreq: 12,
15
+ pingres: 13,
16
+ disconnect: 14,
17
+ };
18
+ export const PacketNameByType = Object.fromEntries(Object.entries(PacketType).map(([k, v]) => [v, k]));
19
+ //# sourceMappingURL=PacketType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PacketType.js","sourceRoot":"","sources":["../../mqttPacket/PacketType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,WAAW,EAAE,EAAE;IACf,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,EAAE;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAA2B,MAAM,CAAC,WAAW,CACxE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACnD,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { TAuthenticationResult, TPacketType } from "./types.ts";
2
+ /**
3
+ * ConnackPacket is sent from the server to the client in response to a connect packet.
4
+ * It indicates that the connect is accepted.
5
+ */
6
+ export type ConnackPacket = {
7
+ type: TPacketType;
8
+ sessionPresent: boolean;
9
+ returnCode: TAuthenticationResult;
10
+ };
11
+ export declare const connack: {
12
+ encode(packet: ConnackPacket): {
13
+ flags: number;
14
+ bytes: number[];
15
+ };
16
+ decode(buffer: Uint8Array, _flags: number): ConnackPacket | undefined;
17
+ };
18
+ //# sourceMappingURL=connack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connack.d.ts","sourceRoot":"","sources":["../../mqttPacket/connack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMrE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,qBAAqB,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE;IACpB,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAClE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;CAyBvE,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { PacketType } from "./PacketType.js";
2
+ import { BitMask } from "./BitMask.js";
3
+ import { booleanFlag, Decoder, DecoderError } from "./decoder.js";
4
+ import { AuthenticationResultByNumber } from "./AuthenticationResult.js";
5
+ export const connack = {
6
+ encode(packet) {
7
+ const flags = 0;
8
+ return {
9
+ flags,
10
+ bytes: [packet.sessionPresent ? 1 : 0, packet.returnCode || 0],
11
+ };
12
+ },
13
+ decode(buffer, _flags) {
14
+ const decoder = new Decoder(buffer);
15
+ const sessionPresent = booleanFlag(decoder.getByte(), BitMask.bit0);
16
+ const returnCode = decoder.getByte();
17
+ decoder.done();
18
+ if (!AuthenticationResultByNumber[returnCode]) {
19
+ throw new DecoderError("Invalid return code");
20
+ }
21
+ return {
22
+ type: PacketType.connack,
23
+ sessionPresent,
24
+ returnCode,
25
+ };
26
+ },
27
+ };
28
+ //# sourceMappingURL=connack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connack.js","sourceRoot":"","sources":["../../mqttPacket/connack.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAYzE,MAAM,CAAC,MAAM,OAAO,GAGhB;IACF,MAAM,CAAC,MAAqB;QAC1B,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,OAAO;YACL,KAAK;YACL,KAAK,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;SAC/D,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,MAAkB,EAAE,MAAc;QACvC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QAEpC,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAA2B,CAAC;QAC9D,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,YAAY,CAAC,qBAAqB,CAAC,CAAC;QAChD,CAAC;QACD,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,OAAO;YACxB,cAAc;YACd,UAAU;SACX,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { ClientId, Payload, QoS, Topic, TPacketType } from "./types.ts";
2
+ /**
3
+ * ConnectPacket is sent from the client to the server to initiate a connection.
4
+ */
5
+ export type ConnectPacket = {
6
+ type: TPacketType;
7
+ protocolName?: string;
8
+ protocolLevel?: number;
9
+ clientId?: ClientId;
10
+ username?: string;
11
+ password?: Uint8Array;
12
+ will?: {
13
+ topic: Topic;
14
+ payload: Payload;
15
+ retain?: boolean;
16
+ qos?: QoS;
17
+ };
18
+ clean?: boolean;
19
+ keepAlive?: number;
20
+ };
21
+ export declare const connect: {
22
+ encode(packet: ConnectPacket): {
23
+ flags: number;
24
+ bytes: number[];
25
+ };
26
+ decode(buffer: Uint8Array, flags: number): ConnectPacket;
27
+ };
28
+ //# sourceMappingURL=connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../mqttPacket/connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAW7E;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,GAAG,CAAC,EAAE,GAAG,CAAC;KACX,CAAC;IACF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AASF,eAAO,MAAM,OAAO,EAAE;IACpB,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAClE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;CA4H1D,CAAC"}
@@ -0,0 +1,116 @@
1
+ import { PacketType } from "./PacketType.js";
2
+ import { BitMask } from "./BitMask.js";
3
+ import { Encoder } from "./encoder.js";
4
+ import { booleanFlag, Decoder, DecoderError, hasEmptyFlags, } from "./decoder.js";
5
+ function invalidProtocolName(version, name) {
6
+ if (version === 4 && name !== "MQTT") {
7
+ return true;
8
+ }
9
+ return false;
10
+ }
11
+ export const connect = {
12
+ encode(packet) {
13
+ const flags = 0;
14
+ const protocolLevel = 4;
15
+ const protocolName = protocolLevel === 4 ? "MQTT" : "MQIsdp";
16
+ const clientId = packet.clientId || "";
17
+ const usernameFlag = !!packet.username;
18
+ const passwordFlag = !!packet.password;
19
+ const willRetain = !!packet.will?.retain;
20
+ const willQoS = packet.will?.qos || 0;
21
+ const willFlag = !!packet.will;
22
+ const cleanSession = packet.clean !== false;
23
+ const connectFlags = (usernameFlag ? BitMask.bit7 : 0) +
24
+ (passwordFlag ? BitMask.bit6 : 0) +
25
+ (willRetain ? BitMask.bit5 : 0) +
26
+ (willQoS & 2 ? BitMask.bit4 : 0) +
27
+ (willQoS & 1 ? BitMask.bit3 : 0) +
28
+ (willFlag ? BitMask.bit2 : 0) +
29
+ (cleanSession ? BitMask.bit1 : 0);
30
+ const keepAlive = packet.keepAlive || 0;
31
+ const encoder = new Encoder();
32
+ encoder
33
+ .setUtf8String(protocolName)
34
+ .setByte(protocolLevel)
35
+ .setByte(connectFlags)
36
+ .setInt16(keepAlive)
37
+ .setUtf8String(clientId);
38
+ if (packet.will) {
39
+ encoder.setTopic(packet.will.topic).setByteArray(packet.will.payload);
40
+ }
41
+ if (packet.username) {
42
+ encoder.setUtf8String(packet.username);
43
+ }
44
+ if (packet.password) {
45
+ encoder.setByteArray(packet.password);
46
+ }
47
+ return { flags, bytes: encoder.done() };
48
+ },
49
+ decode(buffer, flags) {
50
+ const decoder = new Decoder(buffer);
51
+ const protocolName = decoder.getUtf8String();
52
+ const protocolLevel = decoder.getByte();
53
+ if (invalidProtocolName(protocolLevel, protocolName)) {
54
+ throw new DecoderError("Invalid protocol name");
55
+ }
56
+ const connectFlags = decoder.getByte();
57
+ const usernameFlag = booleanFlag(connectFlags, BitMask.bit7);
58
+ const passwordFlag = booleanFlag(connectFlags, BitMask.bit6);
59
+ const willRetain = booleanFlag(connectFlags, BitMask.bit5);
60
+ const willQoS = (connectFlags & (BitMask.bit4 + BitMask.bit3)) >> 3;
61
+ const willFlag = booleanFlag(connectFlags, BitMask.bit2);
62
+ const cleanSession = booleanFlag(connectFlags, BitMask.bit1);
63
+ const reservedBit = booleanFlag(connectFlags, BitMask.bit0);
64
+ hasEmptyFlags(flags);
65
+ // The Server MUST validate that the reserved flag in the CONNECT Control Packet
66
+ // is set to zero and disconnect the Client if it is not zero [MQTT-3.1.2-3].
67
+ if (reservedBit) {
68
+ throw new DecoderError("Invalid reserved bit");
69
+ }
70
+ if (willQoS !== 0 && willQoS !== 1 && willQoS !== 2) {
71
+ throw new DecoderError("Invalid will qos");
72
+ }
73
+ const keepAlive = decoder.getInt16();
74
+ const clientId = decoder.getUtf8String();
75
+ let willTopic;
76
+ let willPayload;
77
+ if (willFlag) {
78
+ willTopic = decoder.getTopic();
79
+ willPayload = decoder.getByteArray();
80
+ }
81
+ let username;
82
+ let password;
83
+ if (usernameFlag) {
84
+ username = decoder.getUtf8String();
85
+ }
86
+ if (passwordFlag) {
87
+ password = decoder.getByteArray();
88
+ }
89
+ decoder.done();
90
+ if (!willFlag && (willQoS !== 0 || willRetain === true)) {
91
+ throw new DecoderError("Will QoS must be 0 and Will retain to false when Will flag is false");
92
+ }
93
+ if (clientId.length === 0 && cleanSession === false) {
94
+ throw new DecoderError("Clean session must be true if clientID is empty");
95
+ }
96
+ return {
97
+ type: PacketType.connect,
98
+ protocolName: protocolName,
99
+ protocolLevel,
100
+ clientId: clientId,
101
+ username: username ? username : undefined,
102
+ password: password ? password : undefined,
103
+ will: willFlag
104
+ ? {
105
+ topic: willTopic || "",
106
+ payload: willPayload || Uint8Array.from([0]),
107
+ retain: willRetain,
108
+ qos: willQoS,
109
+ }
110
+ : undefined,
111
+ clean: cleanSession,
112
+ keepAlive,
113
+ };
114
+ },
115
+ };
116
+ //# sourceMappingURL=connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../mqttPacket/connect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { TBitMask, Topic, TopicFilter } from "./types.ts";
2
+ export declare function booleanFlag(byte: number, mask: TBitMask): boolean;
3
+ export declare function isEmptyBuf(buf: Uint8Array): void;
4
+ export declare function hasEmptyFlags(flags: number): void;
5
+ export declare class DecoderError extends Error {
6
+ constructor(message: string);
7
+ }
8
+ export declare class Decoder {
9
+ private buf;
10
+ private pos;
11
+ private len;
12
+ constructor(buf: Uint8Array, pos?: number);
13
+ checkpos(pos: number): void;
14
+ getByte(): number;
15
+ getInt16(): number;
16
+ getByteArray(): Uint8Array;
17
+ getUtf8String(): string;
18
+ getTopic(): Topic;
19
+ getTopicFilter(): TopicFilter;
20
+ getRemainder(): Uint8Array<ArrayBufferLike>;
21
+ atEnd(): boolean;
22
+ done(): boolean;
23
+ }
24
+ //# sourceMappingURL=decoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../mqttPacket/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK/D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAEjE;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAIhD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAIjD;AAED,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,EAAE,UAAU,EAAE,GAAG,GAAE,MAAU;IAK5C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM3B,OAAO,IAAI,MAAM;IAKjB,QAAQ,IAAI,MAAM;IAMlB,YAAY,IAAI,UAAU;IAS1B,aAAa,IAAI,MAAM;IAKvB,QAAQ,IAAI,KAAK;IAUjB,cAAc,IAAI,WAAW;IAU7B,YAAY;IAOZ,KAAK,IAAI,OAAO;IAMhB,IAAI,IAAI,OAAO;CAMhB"}
@@ -0,0 +1,90 @@
1
+ import { invalidTopic, invalidTopicFilter } from "./validators.js";
2
+ const utf8Decoder = new TextDecoder("utf-8");
3
+ export function booleanFlag(byte, mask) {
4
+ return !!(byte & mask);
5
+ }
6
+ export function isEmptyBuf(buf) {
7
+ if (buf.length > 0) {
8
+ throw new DecoderError("Packet too long");
9
+ }
10
+ }
11
+ export function hasEmptyFlags(flags) {
12
+ if (flags !== 0) {
13
+ throw new DecoderError("Invalid fixed header flags");
14
+ }
15
+ }
16
+ export class DecoderError extends Error {
17
+ constructor(message) {
18
+ super(message);
19
+ this.name = "DecoderError";
20
+ }
21
+ }
22
+ export class Decoder {
23
+ buf;
24
+ pos;
25
+ len;
26
+ constructor(buf, pos = 0) {
27
+ this.buf = buf;
28
+ this.pos = pos;
29
+ this.len = buf.length;
30
+ }
31
+ checkpos(pos) {
32
+ if (pos > this.len) {
33
+ throw new DecoderError("Packet too short");
34
+ }
35
+ }
36
+ getByte() {
37
+ this.checkpos(this.pos);
38
+ return this.buf[this.pos++];
39
+ }
40
+ getInt16() {
41
+ const msb = this.getByte();
42
+ const lsb = this.getByte();
43
+ return (msb << 8) | lsb;
44
+ }
45
+ getByteArray() {
46
+ const len = this.getInt16();
47
+ const start = this.pos;
48
+ const end = this.pos + len;
49
+ this.pos = end;
50
+ this.checkpos(end);
51
+ return this.buf.subarray(start, end);
52
+ }
53
+ getUtf8String() {
54
+ const str = utf8Decoder.decode(this.getByteArray());
55
+ return str;
56
+ }
57
+ getTopic() {
58
+ const topic = this.getUtf8String();
59
+ if (invalidTopic(topic)) {
60
+ throw new DecoderError("Topic must contain valid UTF-8 and contain more than 1 byte and no wildcards");
61
+ }
62
+ return topic;
63
+ }
64
+ getTopicFilter() {
65
+ const topicFilter = this.getUtf8String();
66
+ if (invalidTopicFilter(topicFilter)) {
67
+ throw new DecoderError("Topicfilter must contain valid UTF-8 and contain more than 1 byte and valid wildcards");
68
+ }
69
+ return topicFilter;
70
+ }
71
+ getRemainder() {
72
+ const start = this.pos;
73
+ const end = this.len;
74
+ this.pos = end;
75
+ return this.buf.subarray(start, end);
76
+ }
77
+ atEnd() {
78
+ if (this.len === this.pos) {
79
+ return true;
80
+ }
81
+ return false;
82
+ }
83
+ done() {
84
+ if (this.atEnd()) {
85
+ return true;
86
+ }
87
+ throw new DecoderError("Packet too long");
88
+ }
89
+ }
90
+ //# sourceMappingURL=decoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../mqttPacket/decoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { TPacketType } from "./types.ts";
2
+ /**
3
+ * DisconnectPacket is the final control packet sent from the client to the server.
4
+ * It indicates that the client is disconnecting cleanly.
5
+ */
6
+ export type DisconnectPacket = {
7
+ type: TPacketType;
8
+ };
9
+ export declare const disconnect: {
10
+ encode(_packet: DisconnectPacket): {
11
+ flags: number;
12
+ bytes: number[];
13
+ };
14
+ decode(buffer: Uint8Array, _flags: number): DisconnectPacket;
15
+ };
16
+ //# sourceMappingURL=disconnect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disconnect.d.ts","sourceRoot":"","sources":["../../mqttPacket/disconnect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE;IACvB,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACtE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC;CAa9D,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { PacketType } from "./PacketType.js";
2
+ import { isEmptyBuf } from "./decoder.js";
3
+ export const disconnect = {
4
+ encode(_packet) {
5
+ const flags = 0;
6
+ return { flags, bytes: [] };
7
+ },
8
+ decode(buffer, _flags) {
9
+ isEmptyBuf(buffer);
10
+ return {
11
+ type: PacketType.disconnect,
12
+ };
13
+ },
14
+ };
15
+ //# sourceMappingURL=disconnect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disconnect.js","sourceRoot":"","sources":["../../mqttPacket/disconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAW1C,MAAM,CAAC,MAAM,UAAU,GAGnB;IACF,MAAM,CAAC,OAAyB;QAC9B,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,MAAkB,EAAE,MAAc;QACvC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnB,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Topic, TopicFilter } from "./types.ts";
2
+ export declare class EncoderError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ export declare class Encoder {
6
+ private buffer;
7
+ constructor();
8
+ setByte(value: number): this;
9
+ setInt16(value: number): this;
10
+ setByteArray(value: Uint8Array): this;
11
+ setUtf8String(value: string): this;
12
+ setTopic(value: Topic): this;
13
+ setTopicFilter(value: TopicFilter): this;
14
+ setRemainder(value: Uint8Array | number[]): this;
15
+ done(): number[];
16
+ }
17
+ //# sourceMappingURL=encoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../mqttPacket/encoder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGrD,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAW;;IAMzB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM7B,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IASrC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAU5B,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAUxC,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE,GAAG,IAAI;IAKhD,IAAI,IAAI,MAAM,EAAE;CAGjB"}
@@ -0,0 +1,57 @@
1
+ const utf8Encoder = new TextEncoder();
2
+ import { invalidTopic, invalidTopicFilter } from "./validators.js";
3
+ export class EncoderError extends Error {
4
+ constructor(message) {
5
+ super(message);
6
+ this.name = "EncoderError";
7
+ }
8
+ }
9
+ export class Encoder {
10
+ buffer;
11
+ constructor() {
12
+ this.buffer = [];
13
+ }
14
+ setByte(value) {
15
+ this.buffer.push(value);
16
+ return this;
17
+ }
18
+ setInt16(value) {
19
+ this.setByte(value >> 8);
20
+ this.setByte(value & 0xff);
21
+ return this;
22
+ }
23
+ setByteArray(value) {
24
+ if (value.length > 0xffff) {
25
+ throw new EncoderError("More than 0xffff bytes of data");
26
+ }
27
+ this.setInt16(value.length);
28
+ this.buffer.push(...value);
29
+ return this;
30
+ }
31
+ setUtf8String(value) {
32
+ this.setByteArray(utf8Encoder.encode(value));
33
+ return this;
34
+ }
35
+ setTopic(value) {
36
+ if (invalidTopic(value)) {
37
+ throw new EncoderError("Topic must contain valid UTF-8 and contain more than 1 byte and no wildcards");
38
+ }
39
+ this.setUtf8String(value);
40
+ return this;
41
+ }
42
+ setTopicFilter(value) {
43
+ if (invalidTopicFilter(value)) {
44
+ throw new EncoderError("Topicfilter must contain valid UTF-8 and contain more than 1 byte and valid wildcards");
45
+ }
46
+ this.setUtf8String(value);
47
+ return this;
48
+ }
49
+ setRemainder(value) {
50
+ this.buffer.push(...value);
51
+ return this;
52
+ }
53
+ done() {
54
+ return this.buffer;
55
+ }
56
+ }
57
+ //# sourceMappingURL=encoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../mqttPacket/encoder.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,OAAO;IACV,MAAM,CAAW;IAEzB;QACE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,KAAiB;QAC5B,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,YAAY,CAAC,gCAAgC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,YAAY,CACpB,8EAA8E,CAC/E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,KAAkB;QAC/B,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,YAAY,CACpB,uFAAuF,CACxF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,KAA4B;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ export declare function encodeLength(n: number): number[];
2
+ export declare function decodeLength(buf: Uint8Array, start: number): {
3
+ length: number;
4
+ numLengthBytes: number;
5
+ };
6
+ export type LengthDecoderResult = {
7
+ done: boolean;
8
+ length: number;
9
+ numLengthBytes: number;
10
+ };
11
+ export declare function getLengthDecoder(): (encodedByte: number) => LengthDecoderResult;
12
+ //# sourceMappingURL=length.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"length.d.ts","sourceRoot":"","sources":["../../mqttPacket/length.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAehD;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,MAAM,GACZ;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAU5C;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,gBAAgB,IAAI,CAClC,WAAW,EAAE,MAAM,KAChB,mBAAmB,CAgBvB"}
@@ -0,0 +1,44 @@
1
+ export function encodeLength(n) {
2
+ const output = [];
3
+ let x = n;
4
+ do {
5
+ let encodedByte = x % 0x80;
6
+ x = Math.floor(x / 0x80);
7
+ if (x > 0) {
8
+ encodedByte = encodedByte | 0x80;
9
+ }
10
+ output.push(encodedByte);
11
+ } while (x > 0);
12
+ if (output.length > 4) {
13
+ throw Error("length encoding failed");
14
+ }
15
+ return output;
16
+ }
17
+ export function decodeLength(buf, start) {
18
+ const decode = getLengthDecoder();
19
+ const lenBuf = buf.subarray(start);
20
+ for (const byte of lenBuf) {
21
+ const { done, length, numLengthBytes } = decode(byte);
22
+ if (done) {
23
+ return { length, numLengthBytes };
24
+ }
25
+ }
26
+ throw Error("length decoding failed");
27
+ }
28
+ export function getLengthDecoder() {
29
+ let numLengthBytes = 1;
30
+ let length = 0;
31
+ let multiplier = 1;
32
+ return function addLengthByte(encodedByte) {
33
+ length += (encodedByte & 0x7f) * multiplier;
34
+ multiplier *= 0x80;
35
+ if ((encodedByte & 0x80) === 0) {
36
+ return { done: true, length, numLengthBytes };
37
+ }
38
+ if (numLengthBytes++ >= 4) {
39
+ throw Error("length decoding failed");
40
+ }
41
+ return { done: false, length, numLengthBytes };
42
+ };
43
+ }
44
+ //# sourceMappingURL=length.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"length.js","sourceRoot":"","sources":["../../mqttPacket/length.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,GAAG,CAAC;QACF,IAAI,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC;QAC3B,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC;QACnC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;IAChB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,GAAe,EACf,KAAa;IAEb,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IACD,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACxC,CAAC;AAQD,MAAM,UAAU,gBAAgB;IAG9B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,OAAO,SAAS,aAAa,CAAC,WAAmB;QAC/C,MAAM,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC;QAC5C,UAAU,IAAI,IAAI,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAChD,CAAC;QACD,IAAI,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IACjD,CAAC,CAAC;AACJ,CAAC"}