@seriousme/opifex 2.0.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/client/ConnectionState.ts +1 -1
  2. package/client/client.ts +40 -9
  3. package/client/context.ts +11 -13
  4. package/client/deps.ts +8 -5
  5. package/client/handlers/handleConnack.ts +2 -2
  6. package/client/mod.ts +13 -2
  7. package/client/store/memoryStore.ts +11 -10
  8. package/client/store/store.ts +1 -1
  9. package/deno/tcpClient.ts +21 -8
  10. package/deno/tcpServer.ts +21 -4
  11. package/deno/tlsServer.ts +20 -4
  12. package/deno/wsServer.ts +23 -0
  13. package/dist/client/ConnectionState.d.ts +1 -1
  14. package/dist/client/ConnectionState.d.ts.map +1 -1
  15. package/dist/client/client.d.ts +38 -9
  16. package/dist/client/client.d.ts.map +1 -1
  17. package/dist/client/client.js +23 -0
  18. package/dist/client/client.js.map +1 -1
  19. package/dist/client/context.d.ts +8 -8
  20. package/dist/client/context.d.ts.map +1 -1
  21. package/dist/client/context.js.map +1 -1
  22. package/dist/client/deps.d.ts +3 -3
  23. package/dist/client/deps.d.ts.map +1 -1
  24. package/dist/client/deps.js.map +1 -1
  25. package/dist/client/handlers/handleConnack.d.ts.map +1 -1
  26. package/dist/client/handlers/handleConnack.js.map +1 -1
  27. package/dist/client/mod.d.ts +3 -2
  28. package/dist/client/mod.d.ts.map +1 -1
  29. package/dist/client/mod.js +1 -1
  30. package/dist/client/mod.js.map +1 -1
  31. package/dist/client/store/memoryStore.d.ts +3 -3
  32. package/dist/client/store/memoryStore.d.ts.map +1 -1
  33. package/dist/client/store/memoryStore.js +2 -2
  34. package/dist/client/store/memoryStore.js.map +1 -1
  35. package/dist/client/store/store.d.ts +1 -1
  36. package/dist/client/store/store.d.ts.map +1 -1
  37. package/dist/examples/authHandler.test.js +3 -3
  38. package/dist/examples/authHandler.test.js.map +1 -1
  39. package/dist/mqttConn/mqttConn.d.ts +2 -17
  40. package/dist/mqttConn/mqttConn.d.ts.map +1 -1
  41. package/dist/mqttConn/mqttConn.js +1 -1
  42. package/dist/mqttConn/mqttConn.js.map +1 -1
  43. package/dist/mqttPacket/AuthenticationResult.d.ts +4 -0
  44. package/dist/mqttPacket/AuthenticationResult.d.ts.map +1 -1
  45. package/dist/mqttPacket/AuthenticationResult.js.map +1 -1
  46. package/dist/mqttPacket/PacketType.d.ts +4 -0
  47. package/dist/mqttPacket/PacketType.d.ts.map +1 -1
  48. package/dist/mqttPacket/Properties.d.ts +2 -2
  49. package/dist/mqttPacket/Properties.d.ts.map +1 -1
  50. package/dist/mqttPacket/ReasonCode.d.ts +3 -5
  51. package/dist/mqttPacket/ReasonCode.d.ts.map +1 -1
  52. package/dist/mqttPacket/ReasonCode.js.map +1 -1
  53. package/dist/mqttPacket/RetainHandling.d.ts +4 -0
  54. package/dist/mqttPacket/RetainHandling.d.ts.map +1 -1
  55. package/dist/mqttPacket/auth.d.ts +6 -5
  56. package/dist/mqttPacket/auth.d.ts.map +1 -1
  57. package/dist/mqttPacket/auth.js +2 -2
  58. package/dist/mqttPacket/auth.js.map +1 -1
  59. package/dist/mqttPacket/codec.d.ts.map +1 -1
  60. package/dist/mqttPacket/codec.js.map +1 -1
  61. package/dist/mqttPacket/connack.d.ts +9 -7
  62. package/dist/mqttPacket/connack.d.ts.map +1 -1
  63. package/dist/mqttPacket/connack.js +2 -2
  64. package/dist/mqttPacket/connack.js.map +1 -1
  65. package/dist/mqttPacket/connect.d.ts +5 -4
  66. package/dist/mqttPacket/connect.d.ts.map +1 -1
  67. package/dist/mqttPacket/connect.js.map +1 -1
  68. package/dist/mqttPacket/decoder.d.ts +6 -4
  69. package/dist/mqttPacket/decoder.d.ts.map +1 -1
  70. package/dist/mqttPacket/decoder.js +1 -1
  71. package/dist/mqttPacket/decoder.js.map +1 -1
  72. package/dist/mqttPacket/disconnect.d.ts +7 -5
  73. package/dist/mqttPacket/disconnect.d.ts.map +1 -1
  74. package/dist/mqttPacket/disconnect.js +2 -2
  75. package/dist/mqttPacket/disconnect.js.map +1 -1
  76. package/dist/mqttPacket/encoder.d.ts +7 -5
  77. package/dist/mqttPacket/encoder.d.ts.map +1 -1
  78. package/dist/mqttPacket/encoder.js +1 -1
  79. package/dist/mqttPacket/encoder.js.map +1 -1
  80. package/dist/mqttPacket/mod.d.ts +1 -1
  81. package/dist/mqttPacket/mod.d.ts.map +1 -1
  82. package/dist/mqttPacket/pingreq.d.ts +4 -3
  83. package/dist/mqttPacket/pingreq.d.ts.map +1 -1
  84. package/dist/mqttPacket/pingreq.js.map +1 -1
  85. package/dist/mqttPacket/pingres.d.ts +4 -3
  86. package/dist/mqttPacket/pingres.d.ts.map +1 -1
  87. package/dist/mqttPacket/pingres.js.map +1 -1
  88. package/dist/mqttPacket/pubblishAcks.d.ts +7 -7
  89. package/dist/mqttPacket/pubblishAcks.d.ts.map +1 -1
  90. package/dist/mqttPacket/pubblishAcks.js +2 -2
  91. package/dist/mqttPacket/pubblishAcks.js.map +1 -1
  92. package/dist/mqttPacket/publish.d.ts +5 -4
  93. package/dist/mqttPacket/publish.d.ts.map +1 -1
  94. package/dist/mqttPacket/publish.js.map +1 -1
  95. package/dist/mqttPacket/suback.d.ts +7 -5
  96. package/dist/mqttPacket/suback.d.ts.map +1 -1
  97. package/dist/mqttPacket/suback.js +2 -2
  98. package/dist/mqttPacket/suback.js.map +1 -1
  99. package/dist/mqttPacket/subscribe.d.ts +7 -5
  100. package/dist/mqttPacket/subscribe.d.ts.map +1 -1
  101. package/dist/mqttPacket/subscribe.js.map +1 -1
  102. package/dist/mqttPacket/types.d.ts +1 -21
  103. package/dist/mqttPacket/types.d.ts.map +1 -1
  104. package/dist/mqttPacket/unsuback.d.ts +7 -5
  105. package/dist/mqttPacket/unsuback.d.ts.map +1 -1
  106. package/dist/mqttPacket/unsuback.js +1 -1
  107. package/dist/mqttPacket/unsuback.js.map +1 -1
  108. package/dist/mqttPacket/unsubscribe.d.ts +5 -4
  109. package/dist/mqttPacket/unsubscribe.d.ts.map +1 -1
  110. package/dist/mqttPacket/unsubscribe.js.map +1 -1
  111. package/dist/node/tcpClient.d.ts +21 -1
  112. package/dist/node/tcpClient.d.ts.map +1 -1
  113. package/dist/node/tcpClient.js +18 -4
  114. package/dist/node/tcpClient.js.map +1 -1
  115. package/dist/node/tcpServer.d.ts +18 -0
  116. package/dist/node/tcpServer.d.ts.map +1 -1
  117. package/dist/node/tcpServer.js +17 -2
  118. package/dist/node/tcpServer.js.map +1 -1
  119. package/dist/node/tlsServer.d.ts +18 -0
  120. package/dist/node/tlsServer.d.ts.map +1 -1
  121. package/dist/node/tlsServer.js +17 -2
  122. package/dist/node/tlsServer.js.map +1 -1
  123. package/dist/persistence/basicPersistence.d.ts +4 -4
  124. package/dist/persistence/basicPersistence.d.ts.map +1 -1
  125. package/dist/persistence/basicPersistence.js.map +1 -1
  126. package/dist/persistence/deps.d.ts +1 -1
  127. package/dist/persistence/deps.d.ts.map +1 -1
  128. package/dist/persistence/memory/memoryStorage.d.ts +3 -3
  129. package/dist/persistence/memory/memoryStorage.d.ts.map +1 -1
  130. package/dist/persistence/mod.d.ts +1 -1
  131. package/dist/persistence/mod.d.ts.map +1 -1
  132. package/dist/persistence/persistence.d.ts +3 -3
  133. package/dist/persistence/persistence.d.ts.map +1 -1
  134. package/dist/persistence/sqlite/sqliteStorage.d.ts +2 -2
  135. package/dist/persistence/sqlite/sqliteStorage.d.ts.map +1 -1
  136. package/dist/persistence/storage.d.ts +1 -1
  137. package/dist/persistence/storage.d.ts.map +1 -1
  138. package/dist/server/context.d.ts +4 -4
  139. package/dist/server/context.d.ts.map +1 -1
  140. package/dist/server/context.js.map +1 -1
  141. package/dist/server/deps.d.ts +2 -2
  142. package/dist/server/deps.d.ts.map +1 -1
  143. package/dist/server/deps.js.map +1 -1
  144. package/dist/server/handlers/completeConnect.d.ts +3 -2
  145. package/dist/server/handlers/completeConnect.d.ts.map +1 -1
  146. package/dist/server/handlers/completeConnect.js.map +1 -1
  147. package/dist/server/handlers/handlePublish.d.ts.map +1 -1
  148. package/dist/server/handlers/handlePublish.js.map +1 -1
  149. package/dist/server/handlers/handleSubscribe.d.ts.map +1 -1
  150. package/dist/server/handlers/handleSubscribe.js.map +1 -1
  151. package/dist/server/handlers/handleUnsubscribe.d.ts.map +1 -1
  152. package/dist/server/handlers/handleUnsubscribe.js.map +1 -1
  153. package/dist/server/mod.d.ts +1 -1
  154. package/dist/server/mod.d.ts.map +1 -1
  155. package/dist/server/server.d.ts +3 -3
  156. package/dist/server/server.d.ts.map +1 -1
  157. package/dist/server/server.js.map +1 -1
  158. package/dist/socket/socket.d.ts +4 -0
  159. package/dist/socket/socket.d.ts.map +1 -1
  160. package/dist/socket/socket.js.map +1 -1
  161. package/dist/utils/logger.d.ts +3 -3
  162. package/dist/utils/logger.d.ts.map +1 -1
  163. package/dist/utils/logger.js +1 -1
  164. package/dist/utils/logger.js.map +1 -1
  165. package/dist/web/wsClient.d.ts +7 -0
  166. package/dist/web/wsClient.d.ts.map +1 -1
  167. package/dist/web/wsClient.js +12 -1
  168. package/dist/web/wsClient.js.map +1 -1
  169. package/examples/authHandler.test.ts +3 -3
  170. package/mqttConn/mqttConn.ts +2 -18
  171. package/mqttPacket/AuthenticationResult.ts +6 -0
  172. package/mqttPacket/PacketType.ts +5 -0
  173. package/mqttPacket/Properties.ts +2 -2
  174. package/mqttPacket/ReasonCode.ts +6 -8
  175. package/mqttPacket/RetainHandling.ts +5 -0
  176. package/mqttPacket/auth.ts +7 -7
  177. package/mqttPacket/codec.ts +3 -2
  178. package/mqttPacket/connack.ts +11 -10
  179. package/mqttPacket/connect.ts +4 -11
  180. package/mqttPacket/decoder.ts +9 -11
  181. package/mqttPacket/disconnect.ts +7 -7
  182. package/mqttPacket/encoder.test.ts +2 -2
  183. package/mqttPacket/encoder.ts +9 -7
  184. package/mqttPacket/mod.ts +0 -4
  185. package/mqttPacket/pingreq.ts +3 -3
  186. package/mqttPacket/pingres.ts +3 -3
  187. package/mqttPacket/pubblishAcks.ts +9 -9
  188. package/mqttPacket/publish.ts +4 -11
  189. package/mqttPacket/publishAcks.test.ts +3 -3
  190. package/mqttPacket/suback.ts +8 -13
  191. package/mqttPacket/subscribe.ts +6 -12
  192. package/mqttPacket/types.ts +1 -26
  193. package/mqttPacket/unsuback.ts +8 -7
  194. package/mqttPacket/unsubscribe.ts +4 -10
  195. package/node/tcpClient.ts +21 -6
  196. package/node/tcpServer.ts +23 -6
  197. package/node/tlsServer.ts +23 -7
  198. package/package.json +1 -1
  199. package/persistence/basicPersistence.ts +5 -5
  200. package/persistence/deps.ts +1 -1
  201. package/persistence/memory/memoryStorage.ts +3 -3
  202. package/persistence/mod.ts +1 -1
  203. package/persistence/persistence.testing.ts +4 -4
  204. package/persistence/persistence.ts +3 -3
  205. package/persistence/sqlite/sqliteStorage.ts +2 -2
  206. package/persistence/storage.ts +1 -1
  207. package/server/context.ts +5 -5
  208. package/server/deps.ts +1 -2
  209. package/server/handlers/completeConnect.ts +2 -2
  210. package/server/handlers/handlePublish.ts +3 -4
  211. package/server/handlers/handleSubscribe.ts +3 -4
  212. package/server/handlers/handleUnsubscribe.ts +2 -2
  213. package/server/mod.ts +1 -1
  214. package/server/server.ts +3 -3
  215. package/socket/socket.ts +4 -0
  216. package/tools/benchmarks/receiver.ts +2 -2
  217. package/tools/benchmarks/sender.ts +2 -2
  218. package/utils/logger.ts +3 -3
  219. package/web/wsClient.ts +13 -1
package/server/mod.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  export { ReasonCode } from "./deps.ts";
6
6
  export type {
7
7
  ConnectPacket,
8
- IPersistence,
8
+ Persistence,
9
9
  ShareName,
10
10
  SockConn,
11
11
  Topic,
package/server/server.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { logger, MemoryPersistence, ReasonCode } from "./deps.ts";
2
2
  import { Context } from "./context.ts";
3
3
  import type { Handlers } from "./context.ts";
4
- import type { IPersistence, ShareName, SockConn, Topic } from "./deps.ts";
4
+ import type { Persistence, ShareName, SockConn, Topic } from "./deps.ts";
5
5
  import { handlePacket } from "./handlers/handlePacket.ts";
6
6
  import { createConfiguration } from "./config.ts";
7
7
  import type { Configuration, ConfigurationInput } from "./config.ts";
@@ -69,7 +69,7 @@ const defaultIsAuthorizedToSubscribe = (
69
69
  */
70
70
  export type MqttServerOptions = {
71
71
  /** Optional persistence layer implementation. Defaults to MemoryPersistence. */
72
- persistence?: IPersistence;
72
+ persistence?: Persistence;
73
73
  /** Optional custom handlers for authentication and authorization. */
74
74
  handlers?: Handlers;
75
75
  /** Optional configuration data */
@@ -91,7 +91,7 @@ export class MqttServer {
91
91
  /** The registered authentication and authorization handlers. */
92
92
  handlers: Handlers;
93
93
  /** The persistence layer used for storing sessions and messages. */
94
- persistence: IPersistence;
94
+ persistence: Persistence;
95
95
  /** The persistence layer used for storing sessions and messages. */
96
96
  configuration: Configuration;
97
97
 
package/socket/socket.ts CHANGED
@@ -1,10 +1,14 @@
1
+ /** Net adresses */
1
2
  export type NetAddr = {
2
3
  transport: "tcp" | "udp";
3
4
  hostname: string;
4
5
  port: number;
5
6
  };
7
+ /** Unix adresses */
6
8
  export type UnixAddr = { transport: "unix" | "unixpacket"; path: string };
9
+ /** vSock adresses */
7
10
  export type VsockAddr = { transport: "vsock"; cid: number; port: number };
11
+ /** Socket adresses */
8
12
  export type SockAddr = NetAddr | UnixAddr | VsockAddr;
9
13
  /** Socket connection descriptor. */
10
14
  export type SockConn = {
@@ -1,11 +1,11 @@
1
1
  import { exit } from "node:process";
2
2
  import { getArgs, importClientClass } from "./utils.ts";
3
3
  import { logger } from "../../utils/mod.ts";
4
- import type { TLogLevel } from "../../utils/logger.ts";
4
+ import type { LogLevel } from "../../utils/logger.ts";
5
5
  import type { QoS } from "../../client/deps.ts";
6
6
 
7
7
  export async function runReceiver(
8
- level: TLogLevel,
8
+ level: LogLevel,
9
9
  url: string,
10
10
  topic: string,
11
11
  qos: QoS,
@@ -2,7 +2,7 @@ import { exit } from "node:process";
2
2
  import { runAsap } from "../../dev_utils/timers.ts";
3
3
  import { getArgs, importClientClass } from "./utils.ts";
4
4
  import { logger } from "../../utils/mod.ts";
5
- import type { TLogLevel } from "../../utils/logger.ts";
5
+ import type { LogLevel } from "../../utils/logger.ts";
6
6
  import type { QoS } from "../../client/deps.ts";
7
7
 
8
8
  const { TcpClient } = await importClientClass();
@@ -13,7 +13,7 @@ client.onError = (err: Error) => {
13
13
  };
14
14
 
15
15
  export async function runSender(
16
- level: TLogLevel,
16
+ level: LogLevel,
17
17
  url: string,
18
18
  topic: string,
19
19
  qos: QoS,
package/utils/logger.ts CHANGED
@@ -19,7 +19,7 @@ export const LogLevel = {
19
19
  /**
20
20
  * Union type representing the permitted numeric log level indices.
21
21
  */
22
- export type TLogLevel = typeof LogLevel[keyof typeof LogLevel];
22
+ export type LogLevel = typeof LogLevel[keyof typeof LogLevel];
23
23
 
24
24
  type LogArgument = unknown | (() => unknown);
25
25
 
@@ -88,9 +88,9 @@ export class Logger {
88
88
 
89
89
  /**
90
90
  * Adjusts the current verbosity threshold, enabling or masking specific log outputs.
91
- * @param {TLogLevel} logLevel - The minimum numeric severity level threshold to output.
91
+ * @param {LogLevel} logLevel - The minimum numeric severity level threshold to output.
92
92
  */
93
- level(logLevel: TLogLevel) {
93
+ level(logLevel: LogLevel) {
94
94
  this.isWarn = logLevel >= LogLevel.warn;
95
95
  this.isInfo = logLevel >= LogLevel.info;
96
96
  this.isVerbose = logLevel >= LogLevel.verbose;
package/web/wsClient.ts CHANGED
@@ -1,16 +1,28 @@
1
+ /*
2
+ * this is a WebSockets specific client
3
+ * it extends the platform agnostic Client class
4
+ * @module
5
+ */
6
+
1
7
  import { Client } from "../client/client.ts";
2
8
  import { logger } from "../client/deps.ts";
3
9
  import type { SockConn } from "../client/deps.ts";
4
10
  import { wrapWebSocket } from "./wrapWebSocket.ts";
5
11
 
12
+ /**
13
+ * WsClient extends the Client class to provide WebSocket based clients
14
+ * it is used by the MQTTclient to connect to the broker
15
+ * see the /examples folder for an example
16
+ */
6
17
  export class WsClient extends Client {
18
+ /** create a websocket and wrap it in a SockConn */
7
19
  private async establishSocket(url: string): Promise<SockConn> {
8
20
  const ws = new WebSocket(url);
9
21
  const conn = await wrapWebSocket(ws);
10
22
  return conn;
11
23
  }
12
24
 
13
- // overload createConn from the base client class
25
+ /** createConn provides support for both "ws:" and "wss:" URLs */
14
26
  protected override createConn(): Promise<SockConn> {
15
27
  const { protocol, hostname, port: portStr, pathname } = this.connectUrl;
16
28
  const port = portStr ? Number(portStr) : (protocol === "wss:" ? 443 : 80);