@seriousme/opifex 1.2.0 → 1.3.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.
- package/CHANGELOG.md +37 -0
- package/README.md +72 -4
- package/bin/conformanceServer.ts +1 -1
- package/bin/mqtt.ts +5 -2
- package/client/client.ts +3 -3
- package/client/context.ts +2 -0
- package/client/mod.ts +1 -2
- package/deno/client.ts +4 -3
- package/deno/server.ts +3 -2
- package/deno.json +4 -2
- package/deno.lock +0 -16
- package/dev_utils/dummyConn.ts +4 -4
- package/dist/bin/conformanceServer.js +52 -0
- package/dist/bin/demoServer.js +29 -57
- package/dist/bin/mqtt.js +148 -187
- package/dist/client/ConnectionState.js +7 -0
- package/dist/client/client.js +125 -0
- package/dist/client/context.js +148 -0
- package/dist/client/deps.js +5 -0
- package/dist/client/handlers/handleConnack.js +18 -0
- package/dist/client/handlers/handlePacket.js +50 -0
- package/dist/client/handlers/handlePuback.js +6 -0
- package/dist/client/handlers/handlePubcomp.js +9 -0
- package/dist/client/handlers/handlePublish.js +28 -0
- package/dist/client/handlers/handlePubrec.js +17 -0
- package/dist/client/handlers/handlePubrel.js +19 -0
- package/dist/client/handlers/handleSuback.js +9 -0
- package/dist/client/handlers/handleUnsuback.js +7 -0
- package/dist/client/mod.js +5 -3
- package/dist/client/store/deps.js +1 -0
- package/dist/client/store/memoryStore.js +36 -0
- package/dist/client/store/store.js +1 -0
- package/dist/mqttConn/mqttConn.js +104 -0
- package/dist/mqttPacket/AuthenticationResult.js +12 -0
- package/dist/mqttPacket/BitMask.js +10 -0
- package/dist/mqttPacket/PacketType.js +18 -0
- package/dist/mqttPacket/connack.js +27 -0
- package/dist/mqttPacket/connect.js +115 -0
- package/dist/mqttPacket/decoder.js +89 -0
- package/dist/mqttPacket/disconnect.js +14 -0
- package/dist/mqttPacket/encoder.js +56 -0
- package/dist/mqttPacket/length.js +43 -0
- package/dist/mqttPacket/mod.js +71 -0
- package/dist/mqttPacket/pingreq.js +15 -0
- package/dist/mqttPacket/pingres.js +14 -0
- package/dist/mqttPacket/puback.js +20 -0
- package/dist/mqttPacket/pubcomp.js +20 -0
- package/dist/mqttPacket/publish.js +51 -0
- package/dist/mqttPacket/pubrec.js +20 -0
- package/dist/mqttPacket/pubrel.js +20 -0
- package/dist/mqttPacket/suback.js +29 -0
- package/dist/mqttPacket/subscribe.js +52 -0
- package/dist/mqttPacket/types.js +1 -0
- package/dist/mqttPacket/unsuback.js +20 -0
- package/dist/mqttPacket/unsubscribe.js +36 -0
- package/dist/mqttPacket/validators.js +15 -0
- package/dist/node/client.js +65 -0
- package/dist/node/server.js +22 -0
- package/dist/node/wrapNodeSocket.js +47 -0
- package/dist/persistence/deps.js +3 -0
- package/dist/persistence/memory/memoryPersistence.js +117 -0
- package/dist/persistence/persistence.js +1 -0
- package/dist/persistence/store.js +1 -0
- package/dist/server/context.js +100 -0
- package/dist/server/deps.js +5 -0
- package/dist/server/handlers/handleConnect.js +46 -0
- package/dist/server/handlers/handleDisconnect.js +4 -0
- package/dist/server/handlers/handlePacket.js +58 -0
- package/dist/server/handlers/handlePingreq.js +6 -0
- package/dist/server/handlers/handlePuback.js +8 -0
- package/dist/server/handlers/handlePubcomp.js +8 -0
- package/dist/server/handlers/handlePublish.js +40 -0
- package/dist/server/handlers/handlePubrec.js +15 -0
- package/dist/server/handlers/handlePubrel.js +18 -0
- package/dist/server/handlers/handleSubscribe.js +33 -0
- package/dist/server/handlers/handleUnsubscribe.js +12 -0
- package/dist/server/mod.js +7 -589
- package/dist/server/server.js +47 -0
- package/dist/socket/socket.js +36 -0
- package/dist/timer/timer.js +40 -0
- package/dist/trie/trie.js +95 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/args.js +61 -0
- package/dist/utils/assert.js +19 -0
- package/dist/utils/asyncQueue.js +56 -0
- package/dist/utils/deferred.js +11 -0
- package/dist/utils/logger.js +29 -0
- package/dist/utils/mod.js +7 -0
- package/dist/utils/nextTick.js +3 -0
- package/dist/utils/platform.js +4 -0
- package/mqttConn/mqttConn.ts +4 -1
- package/node/README.md +3 -1
- package/node/client.ts +30 -6
- package/node/server.ts +2 -0
- package/node/wrapNodeSocket.ts +4 -4
- package/package.json +16 -3
- package/server/mod.ts +1 -2
- package/socket/socket.ts +3 -2
- package/timer/timer.ts +1 -1
- package/tsconfig.json +3 -0
- package/.vscode/extensions.json +0 -10
- package/.vscode/settings.json +0 -12
- package/deno/wrapDenoConn.ts +0 -12
- package/dist/client-DqLTBVC2.js +0 -541
- package/dist/timer-DDWVNsyG.js +0 -924
- 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 };
|