@seriousme/opifex 1.2.1 → 1.4.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 (108) hide show
  1. package/.github/workflows/update-license-year.sh +14 -0
  2. package/.github/workflows/update-license-year.yml +13 -0
  3. package/CHANGELOG.md +16 -0
  4. package/LICENSE.txt +1 -1
  5. package/README.md +72 -4
  6. package/bin/conformanceServer.ts +1 -1
  7. package/bin/mqtt.ts +5 -2
  8. package/client/client.ts +13 -3
  9. package/client/context.ts +2 -0
  10. package/client/mod.ts +1 -2
  11. package/deno/client.ts +10 -5
  12. package/deno/server.ts +3 -2
  13. package/deno.json +4 -1
  14. package/deno.lock +11 -8
  15. package/dev_utils/dummyConn.ts +4 -4
  16. package/dist/bin/conformanceServer.js +52 -0
  17. package/dist/bin/demoServer.js +29 -57
  18. package/dist/bin/mqtt.js +148 -187
  19. package/dist/client/ConnectionState.js +7 -0
  20. package/dist/client/client.js +129 -0
  21. package/dist/client/context.js +148 -0
  22. package/dist/client/deps.js +5 -0
  23. package/dist/client/handlers/handleConnack.js +18 -0
  24. package/dist/client/handlers/handlePacket.js +50 -0
  25. package/dist/client/handlers/handlePuback.js +6 -0
  26. package/dist/client/handlers/handlePubcomp.js +9 -0
  27. package/dist/client/handlers/handlePublish.js +28 -0
  28. package/dist/client/handlers/handlePubrec.js +17 -0
  29. package/dist/client/handlers/handlePubrel.js +19 -0
  30. package/dist/client/handlers/handleSuback.js +9 -0
  31. package/dist/client/handlers/handleUnsuback.js +7 -0
  32. package/dist/client/mod.js +5 -3
  33. package/dist/client/store/deps.js +1 -0
  34. package/dist/client/store/memoryStore.js +36 -0
  35. package/dist/client/store/store.js +1 -0
  36. package/dist/mqttConn/mqttConn.js +104 -0
  37. package/dist/mqttPacket/AuthenticationResult.js +12 -0
  38. package/dist/mqttPacket/BitMask.js +10 -0
  39. package/dist/mqttPacket/PacketType.js +18 -0
  40. package/dist/mqttPacket/connack.js +27 -0
  41. package/dist/mqttPacket/connect.js +115 -0
  42. package/dist/mqttPacket/decoder.js +89 -0
  43. package/dist/mqttPacket/disconnect.js +14 -0
  44. package/dist/mqttPacket/encoder.js +56 -0
  45. package/dist/mqttPacket/length.js +43 -0
  46. package/dist/mqttPacket/mod.js +71 -0
  47. package/dist/mqttPacket/pingreq.js +15 -0
  48. package/dist/mqttPacket/pingres.js +14 -0
  49. package/dist/mqttPacket/puback.js +20 -0
  50. package/dist/mqttPacket/pubcomp.js +20 -0
  51. package/dist/mqttPacket/publish.js +51 -0
  52. package/dist/mqttPacket/pubrec.js +20 -0
  53. package/dist/mqttPacket/pubrel.js +20 -0
  54. package/dist/mqttPacket/suback.js +29 -0
  55. package/dist/mqttPacket/subscribe.js +52 -0
  56. package/dist/mqttPacket/types.js +1 -0
  57. package/dist/mqttPacket/unsuback.js +20 -0
  58. package/dist/mqttPacket/unsubscribe.js +36 -0
  59. package/dist/mqttPacket/validators.js +15 -0
  60. package/dist/node/client.js +64 -0
  61. package/dist/node/server.js +22 -0
  62. package/dist/node/wrapNodeSocket.js +47 -0
  63. package/dist/persistence/deps.js +3 -0
  64. package/dist/persistence/memory/memoryPersistence.js +117 -0
  65. package/dist/persistence/persistence.js +1 -0
  66. package/dist/persistence/store.js +1 -0
  67. package/dist/server/context.js +100 -0
  68. package/dist/server/deps.js +5 -0
  69. package/dist/server/handlers/handleConnect.js +46 -0
  70. package/dist/server/handlers/handleDisconnect.js +4 -0
  71. package/dist/server/handlers/handlePacket.js +58 -0
  72. package/dist/server/handlers/handlePingreq.js +6 -0
  73. package/dist/server/handlers/handlePuback.js +8 -0
  74. package/dist/server/handlers/handlePubcomp.js +8 -0
  75. package/dist/server/handlers/handlePublish.js +40 -0
  76. package/dist/server/handlers/handlePubrec.js +15 -0
  77. package/dist/server/handlers/handlePubrel.js +18 -0
  78. package/dist/server/handlers/handleSubscribe.js +33 -0
  79. package/dist/server/handlers/handleUnsubscribe.js +12 -0
  80. package/dist/server/mod.js +7 -589
  81. package/dist/server/server.js +47 -0
  82. package/dist/socket/socket.js +36 -0
  83. package/dist/timer/timer.js +40 -0
  84. package/dist/trie/trie.js +95 -0
  85. package/dist/tsconfig.tsbuildinfo +1 -0
  86. package/dist/utils/args.js +61 -0
  87. package/dist/utils/assert.js +19 -0
  88. package/dist/utils/asyncQueue.js +56 -0
  89. package/dist/utils/deferred.js +11 -0
  90. package/dist/utils/logger.js +29 -0
  91. package/dist/utils/mod.js +7 -0
  92. package/dist/utils/nextTick.js +3 -0
  93. package/dist/utils/platform.js +4 -0
  94. package/mqttConn/mqttConn.ts +4 -1
  95. package/node/client.ts +29 -6
  96. package/node/server.ts +2 -0
  97. package/node/wrapNodeSocket.ts +1 -1
  98. package/package.json +17 -4
  99. package/server/mod.ts +1 -2
  100. package/socket/socket.ts +3 -2
  101. package/timer/timer.ts +1 -1
  102. package/tsconfig.json +3 -0
  103. package/.vscode/extensions.json +0 -10
  104. package/.vscode/settings.json +0 -12
  105. package/deno/wrapDenoConn.ts +0 -12
  106. package/dist/client-DqLTBVC2.js +0 -541
  107. package/dist/timer-DDWVNsyG.js +0 -924
  108. package/dist/wrapNodeSocket-BAJm059T.js +0 -115
@@ -1,115 +0,0 @@
1
- import { argv } from "node:process";
2
- import { Writable } from "node:stream";
3
-
4
- function formatValue(key, value, boolean, string) {
5
- if (key === "__proto__" || key === "constructor") {
6
- throw new Error(`Invalid argument: ${key}`);
7
- }
8
- if (boolean.includes(key)) {
9
- if (value !== "false") {
10
- return true;
11
- }
12
- return false;
13
- }
14
- if (!string.includes(key)) {
15
- const num = Number(value);
16
- if (!Number.isNaN(num)) {
17
- return num;
18
- }
19
- }
20
- return value;
21
- }
22
- function parseKeyValue(arg, alias) {
23
- if (arg.startsWith("--no-")) {
24
- const key = arg.slice(5);
25
- return [key, false];
26
- }
27
- if (arg.startsWith("--")) {
28
- const [key, value] = arg.slice(2).split("=", 2);
29
- return [key, value];
30
- }
31
- if (arg.startsWith("-")) {
32
- const [flag, value] = arg.slice(1).split("=", 2);
33
- const key = alias[flag] || flag;
34
- return [key, value];
35
- }
36
- return ["_", arg];
37
- }
38
- function parseArgs(args, opts = {}) {
39
- const { alias = {}, boolean = [], string = [], default: defaults = {} } =
40
- opts;
41
- const result = { ...defaults };
42
- result["_"] = [];
43
- for (let i = 0; i < args.length; i++) {
44
- const [key, value] = parseKeyValue(args[i], alias);
45
- if (key === "_") {
46
- result["_"].push(formatValue(key, value, boolean, string));
47
- continue;
48
- }
49
- if (value === void 0) {
50
- const nextArg = args[i + 1];
51
- if (
52
- nextArg !== void 0 && !nextArg.startsWith("-") && !boolean.includes(key)
53
- ) {
54
- result[key] = formatValue(key, nextArg, boolean, string);
55
- i++;
56
- } else {
57
- result[key] = formatValue(key, value, boolean, string);
58
- }
59
- continue;
60
- }
61
- result[key] = formatValue(key, value, boolean, string);
62
- }
63
- return result;
64
- }
65
-
66
- function getArgs() {
67
- return argv.slice(2);
68
- }
69
-
70
- function closer(sock) {
71
- if (!sock.closed) {
72
- sock.end();
73
- }
74
- }
75
- function wrapNodeSocket(socket) {
76
- const readable = new ReadableStream(
77
- {
78
- type: "bytes",
79
- start(controller) {
80
- socket.on("data", (data) => {
81
- controller.enqueue(data);
82
- const desiredSize = controller.desiredSize ?? 0;
83
- if (desiredSize <= 0) {
84
- socket.pause();
85
- }
86
- });
87
- socket.on("error", (err) => controller.error(err));
88
- socket.on("end", () => {
89
- controller.byobRequest?.respond(1);
90
- controller.close();
91
- });
92
- },
93
- pull: () => {
94
- socket.resume();
95
- },
96
- cancel: () => {
97
- socket.end();
98
- },
99
- },
100
- );
101
- const writable = Writable.toWeb(socket);
102
- const remoteAddr = {
103
- hostname: socket.remoteAddress || "",
104
- port: socket.remotePort || 0,
105
- };
106
- const conn = {
107
- readable,
108
- writable,
109
- closer: () => closer(socket),
110
- remoteAddr,
111
- };
112
- return conn;
113
- }
114
-
115
- export { getArgs as g, parseArgs as p, wrapNodeSocket as w };