@seriousme/opifex 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/README.md +17 -2
  2. package/dist/bin/conformanceServer.d.ts +3 -0
  3. package/dist/bin/conformanceServer.d.ts.map +1 -0
  4. package/dist/bin/conformanceServer.js +98 -0
  5. package/dist/bin/conformanceServer.js.map +1 -0
  6. package/dist/bin/demoServer.d.ts +3 -0
  7. package/dist/bin/demoServer.d.ts.map +1 -0
  8. package/dist/bin/demoServer.js +97 -0
  9. package/dist/bin/demoServer.js.map +1 -0
  10. package/dist/bin/mqtt.d.ts +3 -0
  11. package/dist/bin/mqtt.d.ts.map +1 -0
  12. package/dist/bin/mqtt.js +257 -0
  13. package/dist/bin/mqtt.js.map +1 -0
  14. package/dist/client/ConnectionState.d.ts +21 -0
  15. package/dist/client/ConnectionState.d.ts.map +1 -0
  16. package/dist/client/ConnectionState.js +17 -0
  17. package/dist/client/ConnectionState.js.map +1 -0
  18. package/dist/client/client.d.ts +94 -0
  19. package/dist/client/client.d.ts.map +1 -0
  20. package/dist/client/client.js +188 -0
  21. package/dist/client/client.js.map +1 -0
  22. package/dist/client/context.d.ts +29 -0
  23. package/dist/client/context.d.ts.map +1 -0
  24. package/dist/client/context.js +153 -0
  25. package/dist/client/context.js.map +1 -0
  26. package/dist/client/deps.d.ts +8 -0
  27. package/dist/client/deps.d.ts.map +1 -0
  28. package/dist/client/deps.js +6 -0
  29. package/dist/client/deps.js.map +1 -0
  30. package/dist/client/handlers/handleConnack.d.ts +10 -0
  31. package/dist/client/handlers/handleConnack.d.ts.map +1 -0
  32. package/dist/client/handlers/handleConnack.js +25 -0
  33. package/dist/client/handlers/handleConnack.js.map +1 -0
  34. package/dist/client/handlers/handlePacket.d.ts +11 -0
  35. package/dist/client/handlers/handlePacket.d.ts.map +1 -0
  36. package/dist/client/handlers/handlePacket.js +58 -0
  37. package/dist/client/handlers/handlePacket.js.map +1 -0
  38. package/dist/client/handlers/handlePuback.d.ts +12 -0
  39. package/dist/client/handlers/handlePuback.d.ts.map +1 -0
  40. package/dist/client/handlers/handlePuback.js +14 -0
  41. package/dist/client/handlers/handlePuback.js.map +1 -0
  42. package/dist/client/handlers/handlePubcomp.d.ts +13 -0
  43. package/dist/client/handlers/handlePubcomp.d.ts.map +1 -0
  44. package/dist/client/handlers/handlePubcomp.js +17 -0
  45. package/dist/client/handlers/handlePubcomp.js.map +1 -0
  46. package/dist/client/handlers/handlePublish.d.ts +10 -0
  47. package/dist/client/handlers/handlePublish.d.ts.map +1 -0
  48. package/dist/client/handlers/handlePublish.js +34 -0
  49. package/dist/client/handlers/handlePublish.js.map +1 -0
  50. package/dist/client/handlers/handlePubrec.d.ts +17 -0
  51. package/dist/client/handlers/handlePubrec.d.ts.map +1 -0
  52. package/dist/client/handlers/handlePubrec.js +27 -0
  53. package/dist/client/handlers/handlePubrec.js.map +1 -0
  54. package/dist/client/handlers/handlePubrel.d.ts +20 -0
  55. package/dist/client/handlers/handlePubrel.d.ts.map +1 -0
  56. package/dist/client/handlers/handlePubrel.js +32 -0
  57. package/dist/client/handlers/handlePubrel.js.map +1 -0
  58. package/dist/client/handlers/handleSuback.d.ts +13 -0
  59. package/dist/client/handlers/handleSuback.d.ts.map +1 -0
  60. package/dist/client/handlers/handleSuback.js +15 -0
  61. package/dist/client/handlers/handleSuback.js.map +1 -0
  62. package/dist/client/handlers/handleUnsuback.d.ts +14 -0
  63. package/dist/client/handlers/handleUnsuback.d.ts.map +1 -0
  64. package/dist/client/handlers/handleUnsuback.js +16 -0
  65. package/dist/client/handlers/handleUnsuback.js.map +1 -0
  66. package/dist/client/mod.d.ts +7 -0
  67. package/dist/client/mod.d.ts.map +1 -0
  68. package/dist/client/mod.js +6 -0
  69. package/dist/client/mod.js.map +1 -0
  70. package/dist/client/store/deps.d.ts +3 -0
  71. package/dist/client/store/deps.d.ts.map +1 -0
  72. package/dist/client/store/deps.js +2 -0
  73. package/dist/client/store/deps.js.map +1 -0
  74. package/dist/client/store/memoryStore.d.ts +34 -0
  75. package/dist/client/store/memoryStore.d.ts.map +1 -0
  76. package/dist/client/store/memoryStore.js +59 -0
  77. package/dist/client/store/memoryStore.js.map +1 -0
  78. package/dist/client/store/store.d.ts +46 -0
  79. package/dist/client/store/store.d.ts.map +1 -0
  80. package/dist/client/store/store.js +5 -0
  81. package/dist/client/store/store.js.map +1 -0
  82. package/dist/mqttConn/mqttConn.d.ts +79 -0
  83. package/dist/mqttConn/mqttConn.d.ts.map +1 -0
  84. package/dist/mqttConn/mqttConn.js +151 -0
  85. package/dist/mqttConn/mqttConn.js.map +1 -0
  86. package/dist/mqttPacket/AuthenticationResult.d.ts +16 -0
  87. package/dist/mqttPacket/AuthenticationResult.d.ts.map +1 -0
  88. package/dist/mqttPacket/AuthenticationResult.js +17 -0
  89. package/dist/mqttPacket/AuthenticationResult.js.map +1 -0
  90. package/dist/mqttPacket/BitMask.d.ts +11 -0
  91. package/dist/mqttPacket/BitMask.d.ts.map +1 -0
  92. package/dist/mqttPacket/BitMask.js +11 -0
  93. package/dist/mqttPacket/BitMask.js.map +1 -0
  94. package/dist/mqttPacket/PacketType.d.ts +19 -0
  95. package/dist/mqttPacket/PacketType.d.ts.map +1 -0
  96. package/dist/mqttPacket/PacketType.js +19 -0
  97. package/dist/mqttPacket/PacketType.js.map +1 -0
  98. package/dist/mqttPacket/connack.d.ts +18 -0
  99. package/dist/mqttPacket/connack.d.ts.map +1 -0
  100. package/dist/mqttPacket/connack.js +28 -0
  101. package/dist/mqttPacket/connack.js.map +1 -0
  102. package/dist/mqttPacket/connect.d.ts +28 -0
  103. package/dist/mqttPacket/connect.d.ts.map +1 -0
  104. package/dist/mqttPacket/connect.js +116 -0
  105. package/dist/mqttPacket/connect.js.map +1 -0
  106. package/dist/mqttPacket/decoder.d.ts +24 -0
  107. package/dist/mqttPacket/decoder.d.ts.map +1 -0
  108. package/dist/mqttPacket/decoder.js +90 -0
  109. package/dist/mqttPacket/decoder.js.map +1 -0
  110. package/dist/mqttPacket/disconnect.d.ts +16 -0
  111. package/dist/mqttPacket/disconnect.d.ts.map +1 -0
  112. package/dist/mqttPacket/disconnect.js +15 -0
  113. package/dist/mqttPacket/disconnect.js.map +1 -0
  114. package/dist/mqttPacket/encoder.d.ts +17 -0
  115. package/dist/mqttPacket/encoder.d.ts.map +1 -0
  116. package/dist/mqttPacket/encoder.js +57 -0
  117. package/dist/mqttPacket/encoder.js.map +1 -0
  118. package/dist/mqttPacket/length.d.ts +12 -0
  119. package/dist/mqttPacket/length.d.ts.map +1 -0
  120. package/dist/mqttPacket/length.js +44 -0
  121. package/dist/mqttPacket/length.js.map +1 -0
  122. package/dist/mqttPacket/mod.d.ts +122 -0
  123. package/dist/mqttPacket/mod.d.ts.map +1 -0
  124. package/dist/mqttPacket/mod.js +77 -0
  125. package/dist/mqttPacket/mod.js.map +1 -0
  126. package/dist/mqttPacket/pingreq.d.ts +15 -0
  127. package/dist/mqttPacket/pingreq.d.ts.map +1 -0
  128. package/dist/mqttPacket/pingreq.js +16 -0
  129. package/dist/mqttPacket/pingreq.js.map +1 -0
  130. package/dist/mqttPacket/pingres.d.ts +16 -0
  131. package/dist/mqttPacket/pingres.d.ts.map +1 -0
  132. package/dist/mqttPacket/pingres.js +15 -0
  133. package/dist/mqttPacket/pingres.js.map +1 -0
  134. package/dist/mqttPacket/puback.d.ts +16 -0
  135. package/dist/mqttPacket/puback.d.ts.map +1 -0
  136. package/dist/mqttPacket/puback.js +21 -0
  137. package/dist/mqttPacket/puback.js.map +1 -0
  138. package/dist/mqttPacket/pubcomp.d.ts +17 -0
  139. package/dist/mqttPacket/pubcomp.d.ts.map +1 -0
  140. package/dist/mqttPacket/pubcomp.js +21 -0
  141. package/dist/mqttPacket/pubcomp.js.map +1 -0
  142. package/dist/mqttPacket/publish.d.ts +22 -0
  143. package/dist/mqttPacket/publish.d.ts.map +1 -0
  144. package/dist/mqttPacket/publish.js +52 -0
  145. package/dist/mqttPacket/publish.js.map +1 -0
  146. package/dist/mqttPacket/pubrec.d.ts +17 -0
  147. package/dist/mqttPacket/pubrec.d.ts.map +1 -0
  148. package/dist/mqttPacket/pubrec.js +21 -0
  149. package/dist/mqttPacket/pubrec.js.map +1 -0
  150. package/dist/mqttPacket/pubrel.d.ts +17 -0
  151. package/dist/mqttPacket/pubrel.d.ts.map +1 -0
  152. package/dist/mqttPacket/pubrel.js +21 -0
  153. package/dist/mqttPacket/pubrel.js.map +1 -0
  154. package/dist/mqttPacket/suback.d.ts +18 -0
  155. package/dist/mqttPacket/suback.d.ts.map +1 -0
  156. package/dist/mqttPacket/suback.js +30 -0
  157. package/dist/mqttPacket/suback.js.map +1 -0
  158. package/dist/mqttPacket/subscribe.d.ts +24 -0
  159. package/dist/mqttPacket/subscribe.d.ts.map +1 -0
  160. package/dist/mqttPacket/subscribe.js +53 -0
  161. package/dist/mqttPacket/subscribe.js.map +1 -0
  162. package/dist/mqttPacket/types.d.ts +48 -0
  163. package/dist/mqttPacket/types.d.ts.map +1 -0
  164. package/dist/mqttPacket/types.js +2 -0
  165. package/dist/mqttPacket/types.js.map +1 -0
  166. package/dist/mqttPacket/unsuback.d.ts +17 -0
  167. package/dist/mqttPacket/unsuback.d.ts.map +1 -0
  168. package/dist/mqttPacket/unsuback.js +21 -0
  169. package/dist/mqttPacket/unsuback.js.map +1 -0
  170. package/dist/mqttPacket/unsubscribe.d.ts +17 -0
  171. package/dist/mqttPacket/unsubscribe.d.ts.map +1 -0
  172. package/dist/mqttPacket/unsubscribe.js +37 -0
  173. package/dist/mqttPacket/unsubscribe.js.map +1 -0
  174. package/dist/mqttPacket/validators.d.ts +5 -0
  175. package/dist/mqttPacket/validators.d.ts.map +1 -0
  176. package/dist/mqttPacket/validators.js +16 -0
  177. package/dist/mqttPacket/validators.js.map +1 -0
  178. package/dist/node/tcpClient.d.ts +18 -0
  179. package/dist/node/tcpClient.d.ts.map +1 -0
  180. package/dist/node/tcpClient.js +82 -0
  181. package/dist/node/tcpClient.js.map +1 -0
  182. package/dist/node/tcpServer.d.ts +17 -0
  183. package/dist/node/tcpServer.d.ts.map +1 -0
  184. package/dist/node/tcpServer.js +51 -0
  185. package/dist/node/tcpServer.js.map +1 -0
  186. package/dist/node/wrapNodeSocket.d.ts +12 -0
  187. package/dist/node/wrapNodeSocket.d.ts.map +1 -0
  188. package/dist/node/wrapNodeSocket.js +57 -0
  189. package/dist/node/wrapNodeSocket.js.map +1 -0
  190. package/dist/persistence/deps.d.ts +5 -0
  191. package/dist/persistence/deps.d.ts.map +1 -0
  192. package/dist/persistence/deps.js +4 -0
  193. package/dist/persistence/deps.js.map +1 -0
  194. package/dist/persistence/memory/memoryPersistence.d.ts +28 -0
  195. package/dist/persistence/memory/memoryPersistence.d.ts.map +1 -0
  196. package/dist/persistence/memory/memoryPersistence.js +119 -0
  197. package/dist/persistence/memory/memoryPersistence.js.map +1 -0
  198. package/dist/persistence/persistence.d.ts +81 -0
  199. package/dist/persistence/persistence.d.ts.map +1 -0
  200. package/dist/persistence/persistence.js +2 -0
  201. package/dist/persistence/persistence.js.map +1 -0
  202. package/dist/persistence/store.d.ts +13 -0
  203. package/dist/persistence/store.d.ts.map +1 -0
  204. package/dist/persistence/store.js +2 -0
  205. package/dist/persistence/store.js.map +1 -0
  206. package/dist/server/context.d.ts +45 -0
  207. package/dist/server/context.d.ts.map +1 -0
  208. package/dist/server/context.js +101 -0
  209. package/dist/server/context.js.map +1 -0
  210. package/dist/server/deps.d.ts +10 -0
  211. package/dist/server/deps.d.ts.map +1 -0
  212. package/dist/server/deps.js +6 -0
  213. package/dist/server/deps.js.map +1 -0
  214. package/dist/server/handlers/handleConnect.d.ts +9 -0
  215. package/dist/server/handlers/handleConnect.d.ts.map +1 -0
  216. package/dist/server/handlers/handleConnect.js +81 -0
  217. package/dist/server/handlers/handleConnect.js.map +1 -0
  218. package/dist/server/handlers/handleDisconnect.d.ts +8 -0
  219. package/dist/server/handlers/handleDisconnect.d.ts.map +1 -0
  220. package/dist/server/handlers/handleDisconnect.js +10 -0
  221. package/dist/server/handlers/handleDisconnect.js.map +1 -0
  222. package/dist/server/handlers/handlePacket.d.ts +11 -0
  223. package/dist/server/handlers/handlePacket.d.ts.map +1 -0
  224. package/dist/server/handlers/handlePacket.js +66 -0
  225. package/dist/server/handlers/handlePacket.js.map +1 -0
  226. package/dist/server/handlers/handlePingreq.d.ts +8 -0
  227. package/dist/server/handlers/handlePingreq.d.ts.map +1 -0
  228. package/dist/server/handlers/handlePingreq.js +12 -0
  229. package/dist/server/handlers/handlePingreq.js.map +1 -0
  230. package/dist/server/handlers/handlePuback.d.ts +13 -0
  231. package/dist/server/handlers/handlePuback.d.ts.map +1 -0
  232. package/dist/server/handlers/handlePuback.js +17 -0
  233. package/dist/server/handlers/handlePuback.js.map +1 -0
  234. package/dist/server/handlers/handlePubcomp.d.ts +12 -0
  235. package/dist/server/handlers/handlePubcomp.d.ts.map +1 -0
  236. package/dist/server/handlers/handlePubcomp.js +15 -0
  237. package/dist/server/handlers/handlePubcomp.js.map +1 -0
  238. package/dist/server/handlers/handlePublish.d.ts +11 -0
  239. package/dist/server/handlers/handlePublish.d.ts.map +1 -0
  240. package/dist/server/handlers/handlePublish.js +55 -0
  241. package/dist/server/handlers/handlePublish.js.map +1 -0
  242. package/dist/server/handlers/handlePubrec.d.ts +15 -0
  243. package/dist/server/handlers/handlePubrec.d.ts.map +1 -0
  244. package/dist/server/handlers/handlePubrec.js +24 -0
  245. package/dist/server/handlers/handlePubrec.js.map +1 -0
  246. package/dist/server/handlers/handlePubrel.d.ts +16 -0
  247. package/dist/server/handlers/handlePubrel.d.ts.map +1 -0
  248. package/dist/server/handlers/handlePubrel.js +28 -0
  249. package/dist/server/handlers/handlePubrel.js.map +1 -0
  250. package/dist/server/handlers/handleSubscribe.d.ts +13 -0
  251. package/dist/server/handlers/handleSubscribe.d.ts.map +1 -0
  252. package/dist/server/handlers/handleSubscribe.js +57 -0
  253. package/dist/server/handlers/handleSubscribe.js.map +1 -0
  254. package/dist/server/handlers/handleUnsubscribe.d.ts +10 -0
  255. package/dist/server/handlers/handleUnsubscribe.d.ts.map +1 -0
  256. package/dist/server/handlers/handleUnsubscribe.js +19 -0
  257. package/dist/server/handlers/handleUnsubscribe.js.map +1 -0
  258. package/dist/server/mod.d.ts +11 -0
  259. package/dist/server/mod.d.ts.map +1 -0
  260. package/dist/server/mod.js +8 -0
  261. package/dist/server/mod.js.map +1 -0
  262. package/dist/server/server.d.ts +27 -0
  263. package/dist/server/server.d.ts.map +1 -0
  264. package/dist/server/server.js +48 -0
  265. package/dist/server/server.js.map +1 -0
  266. package/dist/socket/socket.d.ts +29 -0
  267. package/dist/socket/socket.d.ts.map +1 -0
  268. package/dist/socket/socket.js +37 -0
  269. package/dist/socket/socket.js.map +1 -0
  270. package/dist/timer/timer.d.ts +13 -0
  271. package/dist/timer/timer.d.ts.map +1 -0
  272. package/dist/timer/timer.js +41 -0
  273. package/dist/timer/timer.js.map +1 -0
  274. package/dist/trie/trie.d.ts +21 -0
  275. package/dist/trie/trie.d.ts.map +1 -0
  276. package/dist/trie/trie.js +96 -0
  277. package/dist/trie/trie.js.map +1 -0
  278. package/dist/utils/args.d.ts +28 -0
  279. package/dist/utils/args.d.ts.map +1 -0
  280. package/dist/utils/args.js +76 -0
  281. package/dist/utils/args.js.map +1 -0
  282. package/dist/utils/assert.d.ts +10 -0
  283. package/dist/utils/assert.d.ts.map +1 -0
  284. package/dist/utils/assert.js +21 -0
  285. package/dist/utils/assert.js.map +1 -0
  286. package/dist/utils/asyncQueue.d.ts +28 -0
  287. package/dist/utils/asyncQueue.d.ts.map +1 -0
  288. package/dist/utils/asyncQueue.js +70 -0
  289. package/dist/utils/asyncQueue.js.map +1 -0
  290. package/dist/utils/deferred.d.ts +10 -0
  291. package/dist/utils/deferred.d.ts.map +1 -0
  292. package/dist/utils/deferred.js +15 -0
  293. package/dist/utils/deferred.js.map +1 -0
  294. package/dist/utils/logger.d.ts +63 -0
  295. package/dist/utils/logger.d.ts.map +1 -0
  296. package/dist/utils/logger.js +59 -0
  297. package/dist/utils/logger.js.map +1 -0
  298. package/dist/utils/mod.d.ts +13 -0
  299. package/dist/utils/mod.d.ts.map +1 -0
  300. package/dist/utils/mod.js +12 -0
  301. package/dist/utils/mod.js.map +1 -0
  302. package/dist/utils/nextTick.d.ts +17 -0
  303. package/dist/utils/nextTick.d.ts.map +1 -0
  304. package/dist/utils/nextTick.js +19 -0
  305. package/dist/utils/nextTick.js.map +1 -0
  306. package/dist/utils/platform.d.ts +5 -0
  307. package/dist/utils/platform.d.ts.map +1 -0
  308. package/dist/utils/platform.js +8 -0
  309. package/dist/utils/platform.js.map +1 -0
  310. package/examples/tcpServer.test.ts +149 -0
  311. package/mqttConn/mqttConn.ts +58 -2
  312. package/package.json +14 -10
  313. package/persistence/persistence.ts +66 -2
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Create a promise that can be resolved/rejected later
3
+ */
4
+ export declare class Deferred<T> {
5
+ promise: Promise<T>;
6
+ resolve: (val: T) => void;
7
+ reject: (err: Error) => void;
8
+ constructor();
9
+ }
10
+ //# sourceMappingURL=deferred.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferred.d.ts","sourceRoot":"","sources":["../../utils/deferred.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,QAAQ,CAAC,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,EAAG,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC3B,MAAM,EAAG,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;;CAQ/B"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Create a promise that can be resolved/rejected later
3
+ */
4
+ export class Deferred {
5
+ promise;
6
+ resolve;
7
+ reject;
8
+ constructor() {
9
+ this.promise = new Promise((resolve, reject) => {
10
+ this.resolve = resolve;
11
+ this.reject = reject;
12
+ });
13
+ }
14
+ }
15
+ //# sourceMappingURL=deferred.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferred.js","sourceRoot":"","sources":["../../utils/deferred.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,QAAQ;IACnB,OAAO,CAAa;IACpB,OAAO,CAAoB;IAC3B,MAAM,CAAwB;IAE9B;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * The available log levels
3
+ */
4
+ export declare const LogLevel: {
5
+ readonly error: 0;
6
+ readonly warn: 1;
7
+ readonly info: 2;
8
+ readonly verbose: 3;
9
+ readonly debug: 4;
10
+ };
11
+ export type TLogLevel = typeof LogLevel[keyof typeof LogLevel];
12
+ /**
13
+ * Simple logger class
14
+ * @example
15
+ * ```ts
16
+ * const logger = new Logger();
17
+ * logger.level(LogLevel.debug);
18
+ * logger.debug("debug message");
19
+ * logger.verbose("verbose message");
20
+ * logger.info("info message");
21
+ * logger.warn("warn message");
22
+ * logger.error("error message");
23
+ * ```
24
+ */
25
+ export declare class Logger {
26
+ private defaultError;
27
+ private defaultWarn;
28
+ private defaultInfo;
29
+ private defaultVerbose;
30
+ private defaultDebug;
31
+ private noop;
32
+ error: {
33
+ (...data: any[]): void;
34
+ (message?: any, ...optionalParams: any[]): void;
35
+ };
36
+ warn: {
37
+ (...data: any[]): void;
38
+ (message?: any, ...optionalParams: any[]): void;
39
+ };
40
+ info: {
41
+ (...data: any[]): void;
42
+ (message?: any, ...optionalParams: any[]): void;
43
+ };
44
+ verbose: (..._data: any[]) => void;
45
+ debug: (..._data: any[]) => void;
46
+ constructor();
47
+ level(logLevel: TLogLevel): void;
48
+ }
49
+ /**
50
+ * logger provides a singleton logger instance
51
+ * @example
52
+ * ```ts
53
+ * import { logger } from "./utils/logger.ts";
54
+ * logger.level(LogLevel.debug);
55
+ * logger.debug("debug message");
56
+ * logger.verbose("verbose message");
57
+ * logger.info("info message");
58
+ * logger.warn("warn message");
59
+ * logger.error("error message");
60
+ * ```
61
+ */
62
+ export declare const logger: Logger;
63
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;CAMX,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,QAAQ,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAE/D;;;;;;;;;;;;GAYG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,YAAY,CAAe;IAEnC,OAAO,CAAC,IAAI,CAA2B;IACvC,KAAK;;;MAAqB;IAC1B,IAAI;;;MAAoB;IACxB,IAAI;;;MAAoB;IACxB,OAAO,aAJmB,GAAG,EAAE,UAIX;IACpB,KAAK,aALqB,GAAG,EAAE,UAKb;;IAIlB,KAAK,CAAC,QAAQ,EAAE,SAAS;CAM1B;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM,EAAE,MAAqB,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * The available log levels
3
+ */
4
+ export const LogLevel = {
5
+ error: 0,
6
+ warn: 1,
7
+ info: 2,
8
+ verbose: 3,
9
+ debug: 4,
10
+ };
11
+ /**
12
+ * Simple logger class
13
+ * @example
14
+ * ```ts
15
+ * const logger = new Logger();
16
+ * logger.level(LogLevel.debug);
17
+ * logger.debug("debug message");
18
+ * logger.verbose("verbose message");
19
+ * logger.info("info message");
20
+ * logger.warn("warn message");
21
+ * logger.error("error message");
22
+ * ```
23
+ */
24
+ export class Logger {
25
+ defaultError = console.error;
26
+ defaultWarn = console.warn;
27
+ defaultInfo = console.info;
28
+ defaultVerbose = console.log;
29
+ defaultDebug = console.log;
30
+ // deno-lint-ignore no-explicit-any
31
+ noop = (..._data) => { };
32
+ error = this.defaultError;
33
+ warn = this.defaultWarn;
34
+ info = this.defaultInfo;
35
+ verbose = this.noop;
36
+ debug = this.noop;
37
+ constructor() { }
38
+ level(logLevel) {
39
+ this.warn = logLevel > 0 ? this.defaultWarn : this.noop;
40
+ this.info = logLevel > 1 ? this.defaultInfo : this.noop;
41
+ this.verbose = logLevel > 2 ? this.defaultVerbose : this.noop;
42
+ this.debug = logLevel > 3 ? this.defaultDebug : this.noop;
43
+ }
44
+ }
45
+ /**
46
+ * logger provides a singleton logger instance
47
+ * @example
48
+ * ```ts
49
+ * import { logger } from "./utils/logger.ts";
50
+ * logger.level(LogLevel.debug);
51
+ * logger.debug("debug message");
52
+ * logger.verbose("verbose message");
53
+ * logger.info("info message");
54
+ * logger.warn("warn message");
55
+ * logger.error("error message");
56
+ * ```
57
+ */
58
+ export const logger = new Logger();
59
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;CACA,CAAC;AAIX;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,MAAM;IACT,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IAC7B,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IACnC,mCAAmC;IAC3B,IAAI,GAAG,CAAC,GAAG,KAAY,EAAE,EAAE,GAAE,CAAC,CAAC;IACvC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;IAC1B,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;IACxB,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;IACxB,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;IACpB,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;IAElB,gBAAe,CAAC;IAEhB,KAAK,CAAC,QAAmB;QACvB,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9D,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5D,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,MAAM,GAAW,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This module provides various utilities
3
+ * @module
4
+ */
5
+ export { assert } from "./assert.ts";
6
+ export { Deferred } from "./deferred.ts";
7
+ export { Logger, logger, LogLevel } from "./logger.ts";
8
+ export { AsyncQueue } from "./asyncQueue.ts";
9
+ export { nextTick } from "./nextTick.ts";
10
+ export { parseArgs } from "./args.ts";
11
+ export type { Args } from "./args.ts";
12
+ export { getArgs } from "./platform.ts";
13
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../utils/mod.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * This module provides various utilities
3
+ * @module
4
+ */
5
+ export { assert } from "./assert.js";
6
+ export { Deferred } from "./deferred.js";
7
+ export { Logger, logger, LogLevel } from "./logger.js";
8
+ export { AsyncQueue } from "./asyncQueue.js";
9
+ export { nextTick } from "./nextTick.js";
10
+ export { parseArgs } from "./args.js";
11
+ export { getArgs } from "./platform.js";
12
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../utils/mod.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Returns a promise that resolves on the next tick of the Node.js event loop.
3
+ * This is useful for deferring execution of code until after the current call stack is cleared.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * async function example() {
8
+ * console.log('Before nextTick');
9
+ * await nextTick();
10
+ * console.log('After nextTick');
11
+ * }
12
+ * ```
13
+ *
14
+ * @returns {Promise<void>} A promise that resolves on the next tick of the event loop
15
+ */
16
+ export declare function nextTick(): Promise<void>;
17
+ //# sourceMappingURL=nextTick.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextTick.d.ts","sourceRoot":"","sources":["../../utils/nextTick.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAExC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Returns a promise that resolves on the next tick of the Node.js event loop.
3
+ * This is useful for deferring execution of code until after the current call stack is cleared.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * async function example() {
8
+ * console.log('Before nextTick');
9
+ * await nextTick();
10
+ * console.log('After nextTick');
11
+ * }
12
+ * ```
13
+ *
14
+ * @returns {Promise<void>} A promise that resolves on the next tick of the event loop
15
+ */
16
+ export function nextTick() {
17
+ return new Promise((resolve) => setTimeout(resolve, 0));
18
+ }
19
+ //# sourceMappingURL=nextTick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextTick.js","sourceRoot":"","sources":["../../utils/nextTick.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @returns an array of command line arguments
3
+ */
4
+ export declare function getArgs(): string[];
5
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../utils/platform.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,OAAO,IAAI,MAAM,EAAE,CAElC"}
@@ -0,0 +1,8 @@
1
+ import { argv } from "node:process";
2
+ /**
3
+ * @returns an array of command line arguments
4
+ */
5
+ export function getArgs() {
6
+ return argv.slice(2);
7
+ }
8
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../utils/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,149 @@
1
+ import { test } from "node:test";
2
+ import assert from "node:assert/strict";
3
+ import { TcpClient } from "@seriousme/opifex/tcpClient";
4
+ import { TcpServer } from "@seriousme/opifex/tcpServer";
5
+ import { logger, LogLevel } from "@seriousme/opifex/utils";
6
+ import type { PublishPacket, QoS } from "@seriousme/opifex/mqttPacket";
7
+
8
+ logger.level(LogLevel.info);
9
+ export function sleep(ms: number): Promise<unknown> {
10
+ return new Promise((r) => setTimeout(r, ms));
11
+ }
12
+
13
+ test("Test pubSub using client and server", async function () {
14
+ const server = new TcpServer({ port: 0 }, {});
15
+ server.start();
16
+
17
+ assert.deepStrictEqual(
18
+ server.port !== undefined,
19
+ true,
20
+ "server runs a a random port",
21
+ );
22
+ logger.verbose({ port: server.port, address: server.address });
23
+
24
+ const params = {
25
+ url: new URL(`mqtt://${server.address}:${server.port}`),
26
+ numberOfRetries: 0,
27
+ };
28
+
29
+ const client = new TcpClient();
30
+
31
+ await client.connect(params);
32
+ assert(true, "Client connected to server");
33
+
34
+ const publishSet: { topic: string; qos: QoS }[] = [
35
+ { topic: "t0@q0", qos: 0 },
36
+ { topic: "t1@q0", qos: 0 },
37
+ { topic: "t2@q0", qos: 0 },
38
+ { topic: "t0@q1", qos: 1 },
39
+ { topic: "t1@q1", qos: 1 },
40
+ { topic: "t2@q1", qos: 1 },
41
+ { topic: "t0@q2", qos: 2 },
42
+ { topic: "t1@q2", qos: 2 },
43
+ { topic: "t2@q2", qos: 2 },
44
+ ];
45
+
46
+ const subscriptions = publishSet.map((item) => ({
47
+ topicFilter: item.topic,
48
+ qos: item.qos,
49
+ }));
50
+ await client.subscribe({
51
+ subscriptions,
52
+ });
53
+
54
+ // the IIFE ensures message reception runs in parallel
55
+ logger.verbose(`Start receiving`);
56
+ const received: PublishPacket[] = [];
57
+ (async function () {
58
+ for await (const item of client.messages()) {
59
+ logger.verbose(`Receiving: ${item.topic} -- ${item.qos}`);
60
+ received.push(item);
61
+ }
62
+ })();
63
+ // end of IIFE
64
+ for (const item of publishSet) {
65
+ logger.verbose(`Publishing: ${item.topic} -- ${item.qos}`);
66
+ await client.publish({
67
+ topic: item.topic,
68
+ qos: item.qos,
69
+ payload: new Uint8Array([0x01]),
70
+ });
71
+ }
72
+
73
+ await sleep(100);
74
+ logger.verbose(`Disconnect client`);
75
+ //client.closeMessages();
76
+ await client.disconnect();
77
+
78
+ logger.verbose(`Check completeness`);
79
+ for (const item of publishSet) {
80
+ const found = received.find((f) =>
81
+ f.topic == item.topic && f.qos === item.qos
82
+ );
83
+ logger.verbose(`Found: ${item.topic} -- ${item.qos}`);
84
+ assert(found, `${item.topic} -- ${item.qos}`);
85
+ }
86
+
87
+ logger.verbose(`Stop server`);
88
+ server.stop();
89
+ });
90
+
91
+ test("Test subscription persistence after reconnect", async function () {
92
+ // Start server
93
+ const server = new TcpServer({ port: 0 }, {});
94
+ server.start();
95
+
96
+ const params = {
97
+ url: new URL(`mqtt://${server.address}:${server.port}`),
98
+ numberOfRetries: 0,
99
+ };
100
+
101
+ const client = new TcpClient();
102
+ const testTopic = "test/topic";
103
+ const received: PublishPacket[] = [];
104
+
105
+ // First connection and subscription
106
+ await client.connect(params);
107
+ await client.subscribe({
108
+ subscriptions: [{
109
+ topicFilter: testTopic,
110
+ qos: 0,
111
+ }],
112
+ });
113
+
114
+ // Start receiving messages
115
+ (async function () {
116
+ for await (const item of client.messages()) {
117
+ received.push(item);
118
+ }
119
+ })();
120
+
121
+ // Disconnect client
122
+ await client.disconnect();
123
+ await sleep(100);
124
+
125
+ // Reconnect client
126
+ await client.connect(params);
127
+ await sleep(100);
128
+
129
+ // Publish test message
130
+ await client.publish({
131
+ topic: testTopic,
132
+ qos: 0,
133
+ payload: new Uint8Array([0x01]),
134
+ });
135
+
136
+ await sleep(100);
137
+ logger.verbose(`Disconnect client`);
138
+ await client.disconnect();
139
+
140
+ // Verify message was received
141
+ assert.equal(received.length, 1, "Should receive one message");
142
+ assert.equal(
143
+ received[0].topic,
144
+ testTopic,
145
+ "Should receive message on subscribed topic",
146
+ );
147
+
148
+ server.stop();
149
+ });
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @module mqttConn
3
+ */
4
+
1
5
  import {
2
6
  type AnyPacket,
3
7
  decodePayload,
@@ -10,21 +14,39 @@ import { assert } from "../utils/mod.ts";
10
14
  import type { SockConn } from "../socket/socket.ts";
11
15
  import { Conn } from "../socket/socket.ts";
12
16
 
17
+ /**
18
+ * Common MQTT connection error messages
19
+ */
13
20
  export const MqttConnError = {
14
21
  invalidPacket: "Invalid Packet",
15
22
  packetTooLarge: "Packet too large",
16
23
  UnexpectedEof: "Unexpected EOF",
17
24
  } as const;
18
25
 
26
+ /**
27
+ * Interface for MQTT connection handling
28
+ */
19
29
  export interface IMqttConn extends AsyncIterable<AnyPacket> {
30
+ /** Underlying connection */
20
31
  readonly conn: Conn;
32
+ /** Whether connection is closed */
21
33
  readonly isClosed: boolean;
34
+ /** Reason for connection closure if any */
22
35
  readonly reason: string | undefined;
36
+ /** Async iterator for receiving packets */
23
37
  [Symbol.asyncIterator](): AsyncIterableIterator<AnyPacket>;
38
+ /** Send an MQTT packet */
24
39
  send(data: AnyPacket): Promise<void>;
40
+ /** Close the connection */
25
41
  close(): void;
26
42
  }
27
43
 
44
+ /**
45
+ * Read a single byte from the connection
46
+ * @param conn Connection to read from
47
+ * @returns Single byte as number
48
+ * @throws Error if EOF reached unexpectedly
49
+ */
28
50
  async function readByte(conn: Conn): Promise<number> {
29
51
  const buf = new Uint8Array(1);
30
52
  const bytesRead = await conn.read(buf);
@@ -33,6 +55,12 @@ async function readByte(conn: Conn): Promise<number> {
33
55
  return buf[0];
34
56
  }
35
57
 
58
+ /**
59
+ * Read exact number of bytes into buffer
60
+ * @param conn Connection to read from
61
+ * @param buf Buffer to read into
62
+ * @throws Error if EOF reached unexpectedly
63
+ */
36
64
  async function readFull(conn: Conn, buf: Uint8Array): Promise<void> {
37
65
  let bytesRead = 0;
38
66
  while (bytesRead < buf.length) {
@@ -43,8 +71,12 @@ async function readFull(conn: Conn, buf: Uint8Array): Promise<void> {
43
71
  }
44
72
  }
45
73
 
46
- /** Read MQTT packet
47
- * @throws `Error` if packet is invalid
74
+ /**
75
+ * Read a complete MQTT packet from the connection
76
+ * @param conn Connection to read from
77
+ * @param maxPacketSize Maximum allowed packet size
78
+ * @returns Decoded MQTT packet
79
+ * @throws Error if packet is invalid or too large
48
80
  */
49
81
  export async function readPacket(
50
82
  conn: Conn,
@@ -70,12 +102,25 @@ export async function readPacket(
70
102
  return packet;
71
103
  }
72
104
 
105
+ /**
106
+ * MQTT Connection class implementing IMqttConn interface
107
+ */
73
108
  export class MqttConn implements IMqttConn {
109
+ /** Underlying connection */
74
110
  readonly conn: Conn;
111
+ /** Maximum allowed packet size */
75
112
  private readonly maxPacketSize: number;
113
+ /** Reason for connection closure if any */
76
114
  private _reason: string | undefined = undefined;
115
+ /** Whether connection is closed */
77
116
  private _isClosed = false;
78
117
 
118
+ /**
119
+ * Create new MQTT connection
120
+ * @param options Connection options
121
+ * @param options.conn Underlying socket connection
122
+ * @param options.maxPacketSize Maximum allowed packet size (default 2MB)
123
+ */
79
124
  constructor({
80
125
  conn,
81
126
  maxPacketSize,
@@ -87,10 +132,15 @@ export class MqttConn implements IMqttConn {
87
132
  this.maxPacketSize = maxPacketSize || 2 * 1024 * 1024;
88
133
  }
89
134
 
135
+ /** Get reason for connection closure */
90
136
  get reason(): string | undefined {
91
137
  return this._reason;
92
138
  }
93
139
 
140
+ /**
141
+ * Async iterator for receiving packets
142
+ * @yields MQTT packets
143
+ */
94
144
  async *[Symbol.asyncIterator](): AsyncIterableIterator<AnyPacket> {
95
145
  while (!this._isClosed) {
96
146
  try {
@@ -109,6 +159,10 @@ export class MqttConn implements IMqttConn {
109
159
  }
110
160
  }
111
161
 
162
+ /**
163
+ * Send an MQTT packet
164
+ * @param data Packet to send
165
+ */
112
166
  async send(data: AnyPacket): Promise<void> {
113
167
  try {
114
168
  await this.conn.write(encode(data));
@@ -120,10 +174,12 @@ export class MqttConn implements IMqttConn {
120
174
  }
121
175
  }
122
176
 
177
+ /** Whether connection is closed */
123
178
  get isClosed(): boolean {
124
179
  return this._isClosed;
125
180
  }
126
181
 
182
+ /** Close the connection */
127
183
  close(): void {
128
184
  if (this.isClosed) return;
129
185
  try {
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@seriousme/opifex",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "MQTT client & server for Deno & NodeJS",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "test": "node --experimental-strip-types --test --test-skip-pattern='/^Deno/'",
8
8
  "prebuild": "rm -rf dist",
9
9
  "build": "npx -p typescript tsc --build",
10
- "postbuild": "deno fmt",
10
+ "format": "deno fmt",
11
11
  "preversion": "npm run test",
12
- "version": "npm run build",
13
- "postversion": "jq '( { name:.name , version:.version, license:.license } + .deno)' package.json > deno.json"
12
+ "postversion": "jq '( { name:.name , version:.version, license:.license } + .deno)' package.json > deno.json",
13
+ "postpostversion": "deno install"
14
14
  },
15
15
  "keywords": [
16
16
  "MQTT",
@@ -32,21 +32,25 @@
32
32
  "dist/**/*.d.ts.map"
33
33
  ],
34
34
  "exports": {
35
+ "./tcpClient": "./dist/node/tcpClient.js",
36
+ "./tcpServer": "./dist/node/tcpServer.js",
35
37
  "./server": "./dist/server/mod.js",
36
38
  "./client": "./dist/client/mod.js",
39
+ "./persistence": "./dist/persistence/persistence.js",
40
+ "./mqttConn": "./dist/mqttConn/mod.js",
37
41
  "./mqttPacket": "./dist/mqttPacket/mod.js",
38
- "./utils": "./dist/utils/mod.js",
39
- "./tcpClient": "./dist/node/tcpClient.js",
40
- "./tcpServer": "./dist/node/tcpServer.js"
42
+ "./utils": "./dist/utils/mod.js"
41
43
  },
42
44
  "deno": {
43
45
  "exports": {
46
+ "./tcpClient": "./deno/tcpClient.ts",
47
+ "./tcpServer": "./deno/tcpServer.ts",
44
48
  "./server": "./server/mod.ts",
45
49
  "./client": "./client/mod.ts",
50
+ "./persistence": "./persistence/persistence.ts",
51
+ "./mqttConn": "./mqttConn/mod.ts",
46
52
  "./mqttPacket": "./mqttPacket/mod.ts",
47
- "./utils": "./utils/mod.ts",
48
- "./tcpClient": "./deno/tcpClient.ts",
49
- "./tcpServer": "./deno/tcpServer.ts"
53
+ "./utils": "./utils/mod.ts"
50
54
  },
51
55
  "exclude": [
52
56
  "dist"