@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.
- package/dist/bin/conformanceServer.d.ts +3 -0
- package/dist/bin/conformanceServer.d.ts.map +1 -0
- package/dist/bin/conformanceServer.js +98 -0
- package/dist/bin/conformanceServer.js.map +1 -0
- package/dist/bin/demoServer.d.ts +3 -0
- package/dist/bin/demoServer.d.ts.map +1 -0
- package/dist/bin/demoServer.js +97 -0
- package/dist/bin/demoServer.js.map +1 -0
- package/dist/bin/mqtt.d.ts +3 -0
- package/dist/bin/mqtt.d.ts.map +1 -0
- package/dist/bin/mqtt.js +257 -0
- package/dist/bin/mqtt.js.map +1 -0
- package/dist/client/ConnectionState.d.ts +21 -0
- package/dist/client/ConnectionState.d.ts.map +1 -0
- package/dist/client/ConnectionState.js +17 -0
- package/dist/client/ConnectionState.js.map +1 -0
- package/dist/client/client.d.ts +94 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +188 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/context.d.ts +29 -0
- package/dist/client/context.d.ts.map +1 -0
- package/dist/client/context.js +153 -0
- package/dist/client/context.js.map +1 -0
- package/dist/client/deps.d.ts +8 -0
- package/dist/client/deps.d.ts.map +1 -0
- package/dist/client/deps.js +6 -0
- package/dist/client/deps.js.map +1 -0
- package/dist/client/handlers/handleConnack.d.ts +10 -0
- package/dist/client/handlers/handleConnack.d.ts.map +1 -0
- package/dist/client/handlers/handleConnack.js +25 -0
- package/dist/client/handlers/handleConnack.js.map +1 -0
- package/dist/client/handlers/handlePacket.d.ts +11 -0
- package/dist/client/handlers/handlePacket.d.ts.map +1 -0
- package/dist/client/handlers/handlePacket.js +58 -0
- package/dist/client/handlers/handlePacket.js.map +1 -0
- package/dist/client/handlers/handlePuback.d.ts +12 -0
- package/dist/client/handlers/handlePuback.d.ts.map +1 -0
- package/dist/client/handlers/handlePuback.js +14 -0
- package/dist/client/handlers/handlePuback.js.map +1 -0
- package/dist/client/handlers/handlePubcomp.d.ts +13 -0
- package/dist/client/handlers/handlePubcomp.d.ts.map +1 -0
- package/dist/client/handlers/handlePubcomp.js +17 -0
- package/dist/client/handlers/handlePubcomp.js.map +1 -0
- package/dist/client/handlers/handlePublish.d.ts +10 -0
- package/dist/client/handlers/handlePublish.d.ts.map +1 -0
- package/dist/client/handlers/handlePublish.js +34 -0
- package/dist/client/handlers/handlePublish.js.map +1 -0
- package/dist/client/handlers/handlePubrec.d.ts +17 -0
- package/dist/client/handlers/handlePubrec.d.ts.map +1 -0
- package/dist/client/handlers/handlePubrec.js +27 -0
- package/dist/client/handlers/handlePubrec.js.map +1 -0
- package/dist/client/handlers/handlePubrel.d.ts +20 -0
- package/dist/client/handlers/handlePubrel.d.ts.map +1 -0
- package/dist/client/handlers/handlePubrel.js +32 -0
- package/dist/client/handlers/handlePubrel.js.map +1 -0
- package/dist/client/handlers/handleSuback.d.ts +13 -0
- package/dist/client/handlers/handleSuback.d.ts.map +1 -0
- package/dist/client/handlers/handleSuback.js +15 -0
- package/dist/client/handlers/handleSuback.js.map +1 -0
- package/dist/client/handlers/handleUnsuback.d.ts +14 -0
- package/dist/client/handlers/handleUnsuback.d.ts.map +1 -0
- package/dist/client/handlers/handleUnsuback.js +16 -0
- package/dist/client/handlers/handleUnsuback.js.map +1 -0
- package/dist/client/mod.d.ts +7 -0
- package/dist/client/mod.d.ts.map +1 -0
- package/dist/client/mod.js +6 -0
- package/dist/client/mod.js.map +1 -0
- package/dist/client/store/deps.d.ts +3 -0
- package/dist/client/store/deps.d.ts.map +1 -0
- package/dist/client/store/deps.js +2 -0
- package/dist/client/store/deps.js.map +1 -0
- package/dist/client/store/memoryStore.d.ts +34 -0
- package/dist/client/store/memoryStore.d.ts.map +1 -0
- package/dist/client/store/memoryStore.js +59 -0
- package/dist/client/store/memoryStore.js.map +1 -0
- package/dist/client/store/store.d.ts +46 -0
- package/dist/client/store/store.d.ts.map +1 -0
- package/dist/client/store/store.js +5 -0
- package/dist/client/store/store.js.map +1 -0
- package/dist/mqttConn/mqttConn.d.ts +36 -0
- package/dist/mqttConn/mqttConn.d.ts.map +1 -0
- package/dist/mqttConn/mqttConn.js +105 -0
- package/dist/mqttConn/mqttConn.js.map +1 -0
- package/dist/mqttPacket/AuthenticationResult.d.ts +16 -0
- package/dist/mqttPacket/AuthenticationResult.d.ts.map +1 -0
- package/dist/mqttPacket/AuthenticationResult.js +17 -0
- package/dist/mqttPacket/AuthenticationResult.js.map +1 -0
- package/dist/mqttPacket/BitMask.d.ts +11 -0
- package/dist/mqttPacket/BitMask.d.ts.map +1 -0
- package/dist/mqttPacket/BitMask.js +11 -0
- package/dist/mqttPacket/BitMask.js.map +1 -0
- package/dist/mqttPacket/PacketType.d.ts +19 -0
- package/dist/mqttPacket/PacketType.d.ts.map +1 -0
- package/dist/mqttPacket/PacketType.js +19 -0
- package/dist/mqttPacket/PacketType.js.map +1 -0
- package/dist/mqttPacket/connack.d.ts +18 -0
- package/dist/mqttPacket/connack.d.ts.map +1 -0
- package/dist/mqttPacket/connack.js +28 -0
- package/dist/mqttPacket/connack.js.map +1 -0
- package/dist/mqttPacket/connect.d.ts +28 -0
- package/dist/mqttPacket/connect.d.ts.map +1 -0
- package/dist/mqttPacket/connect.js +116 -0
- package/dist/mqttPacket/connect.js.map +1 -0
- package/dist/mqttPacket/decoder.d.ts +24 -0
- package/dist/mqttPacket/decoder.d.ts.map +1 -0
- package/dist/mqttPacket/decoder.js +90 -0
- package/dist/mqttPacket/decoder.js.map +1 -0
- package/dist/mqttPacket/disconnect.d.ts +16 -0
- package/dist/mqttPacket/disconnect.d.ts.map +1 -0
- package/dist/mqttPacket/disconnect.js +15 -0
- package/dist/mqttPacket/disconnect.js.map +1 -0
- package/dist/mqttPacket/encoder.d.ts +17 -0
- package/dist/mqttPacket/encoder.d.ts.map +1 -0
- package/dist/mqttPacket/encoder.js +57 -0
- package/dist/mqttPacket/encoder.js.map +1 -0
- package/dist/mqttPacket/length.d.ts +12 -0
- package/dist/mqttPacket/length.d.ts.map +1 -0
- package/dist/mqttPacket/length.js +44 -0
- package/dist/mqttPacket/length.js.map +1 -0
- package/dist/mqttPacket/mod.d.ts +122 -0
- package/dist/mqttPacket/mod.d.ts.map +1 -0
- package/dist/mqttPacket/mod.js +77 -0
- package/dist/mqttPacket/mod.js.map +1 -0
- package/dist/mqttPacket/pingreq.d.ts +15 -0
- package/dist/mqttPacket/pingreq.d.ts.map +1 -0
- package/dist/mqttPacket/pingreq.js +16 -0
- package/dist/mqttPacket/pingreq.js.map +1 -0
- package/dist/mqttPacket/pingres.d.ts +16 -0
- package/dist/mqttPacket/pingres.d.ts.map +1 -0
- package/dist/mqttPacket/pingres.js +15 -0
- package/dist/mqttPacket/pingres.js.map +1 -0
- package/dist/mqttPacket/puback.d.ts +16 -0
- package/dist/mqttPacket/puback.d.ts.map +1 -0
- package/dist/mqttPacket/puback.js +21 -0
- package/dist/mqttPacket/puback.js.map +1 -0
- package/dist/mqttPacket/pubcomp.d.ts +17 -0
- package/dist/mqttPacket/pubcomp.d.ts.map +1 -0
- package/dist/mqttPacket/pubcomp.js +21 -0
- package/dist/mqttPacket/pubcomp.js.map +1 -0
- package/dist/mqttPacket/publish.d.ts +22 -0
- package/dist/mqttPacket/publish.d.ts.map +1 -0
- package/dist/mqttPacket/publish.js +52 -0
- package/dist/mqttPacket/publish.js.map +1 -0
- package/dist/mqttPacket/pubrec.d.ts +17 -0
- package/dist/mqttPacket/pubrec.d.ts.map +1 -0
- package/dist/mqttPacket/pubrec.js +21 -0
- package/dist/mqttPacket/pubrec.js.map +1 -0
- package/dist/mqttPacket/pubrel.d.ts +17 -0
- package/dist/mqttPacket/pubrel.d.ts.map +1 -0
- package/dist/mqttPacket/pubrel.js +21 -0
- package/dist/mqttPacket/pubrel.js.map +1 -0
- package/dist/mqttPacket/suback.d.ts +18 -0
- package/dist/mqttPacket/suback.d.ts.map +1 -0
- package/dist/mqttPacket/suback.js +30 -0
- package/dist/mqttPacket/suback.js.map +1 -0
- package/dist/mqttPacket/subscribe.d.ts +24 -0
- package/dist/mqttPacket/subscribe.d.ts.map +1 -0
- package/dist/mqttPacket/subscribe.js +53 -0
- package/dist/mqttPacket/subscribe.js.map +1 -0
- package/dist/mqttPacket/types.d.ts +48 -0
- package/dist/mqttPacket/types.d.ts.map +1 -0
- package/dist/mqttPacket/types.js +2 -0
- package/dist/mqttPacket/types.js.map +1 -0
- package/dist/mqttPacket/unsuback.d.ts +17 -0
- package/dist/mqttPacket/unsuback.d.ts.map +1 -0
- package/dist/mqttPacket/unsuback.js +21 -0
- package/dist/mqttPacket/unsuback.js.map +1 -0
- package/dist/mqttPacket/unsubscribe.d.ts +17 -0
- package/dist/mqttPacket/unsubscribe.d.ts.map +1 -0
- package/dist/mqttPacket/unsubscribe.js +37 -0
- package/dist/mqttPacket/unsubscribe.js.map +1 -0
- package/dist/mqttPacket/validators.d.ts +5 -0
- package/dist/mqttPacket/validators.d.ts.map +1 -0
- package/dist/mqttPacket/validators.js +16 -0
- package/dist/mqttPacket/validators.js.map +1 -0
- package/dist/node/tcpClient.d.ts +18 -0
- package/dist/node/tcpClient.d.ts.map +1 -0
- package/dist/node/tcpClient.js +82 -0
- package/dist/node/tcpClient.js.map +1 -0
- package/dist/node/tcpServer.d.ts +17 -0
- package/dist/node/tcpServer.d.ts.map +1 -0
- package/dist/node/tcpServer.js +51 -0
- package/dist/node/tcpServer.js.map +1 -0
- package/dist/node/wrapNodeSocket.d.ts +12 -0
- package/dist/node/wrapNodeSocket.d.ts.map +1 -0
- package/dist/node/wrapNodeSocket.js +57 -0
- package/dist/node/wrapNodeSocket.js.map +1 -0
- package/dist/persistence/deps.d.ts +5 -0
- package/dist/persistence/deps.d.ts.map +1 -0
- package/dist/persistence/deps.js +4 -0
- package/dist/persistence/deps.js.map +1 -0
- package/dist/persistence/memory/memoryPersistence.d.ts +28 -0
- package/dist/persistence/memory/memoryPersistence.d.ts.map +1 -0
- package/dist/persistence/memory/memoryPersistence.js +119 -0
- package/dist/persistence/memory/memoryPersistence.js.map +1 -0
- package/dist/persistence/persistence.d.ts +24 -0
- package/dist/persistence/persistence.d.ts.map +1 -0
- package/dist/persistence/persistence.js +2 -0
- package/dist/persistence/persistence.js.map +1 -0
- package/dist/persistence/store.d.ts +13 -0
- package/dist/persistence/store.d.ts.map +1 -0
- package/dist/persistence/store.js +2 -0
- package/dist/persistence/store.js.map +1 -0
- package/dist/server/context.d.ts +45 -0
- package/dist/server/context.d.ts.map +1 -0
- package/dist/server/context.js +101 -0
- package/dist/server/context.js.map +1 -0
- package/dist/server/deps.d.ts +10 -0
- package/dist/server/deps.d.ts.map +1 -0
- package/dist/server/deps.js +6 -0
- package/dist/server/deps.js.map +1 -0
- package/dist/server/handlers/handleConnect.d.ts +9 -0
- package/dist/server/handlers/handleConnect.d.ts.map +1 -0
- package/dist/server/handlers/handleConnect.js +81 -0
- package/dist/server/handlers/handleConnect.js.map +1 -0
- package/dist/server/handlers/handleDisconnect.d.ts +8 -0
- package/dist/server/handlers/handleDisconnect.d.ts.map +1 -0
- package/dist/server/handlers/handleDisconnect.js +10 -0
- package/dist/server/handlers/handleDisconnect.js.map +1 -0
- package/dist/server/handlers/handlePacket.d.ts +11 -0
- package/dist/server/handlers/handlePacket.d.ts.map +1 -0
- package/dist/server/handlers/handlePacket.js +66 -0
- package/dist/server/handlers/handlePacket.js.map +1 -0
- package/dist/server/handlers/handlePingreq.d.ts +8 -0
- package/dist/server/handlers/handlePingreq.d.ts.map +1 -0
- package/dist/server/handlers/handlePingreq.js +12 -0
- package/dist/server/handlers/handlePingreq.js.map +1 -0
- package/dist/server/handlers/handlePuback.d.ts +13 -0
- package/dist/server/handlers/handlePuback.d.ts.map +1 -0
- package/dist/server/handlers/handlePuback.js +17 -0
- package/dist/server/handlers/handlePuback.js.map +1 -0
- package/dist/server/handlers/handlePubcomp.d.ts +12 -0
- package/dist/server/handlers/handlePubcomp.d.ts.map +1 -0
- package/dist/server/handlers/handlePubcomp.js +15 -0
- package/dist/server/handlers/handlePubcomp.js.map +1 -0
- package/dist/server/handlers/handlePublish.d.ts +11 -0
- package/dist/server/handlers/handlePublish.d.ts.map +1 -0
- package/dist/server/handlers/handlePublish.js +55 -0
- package/dist/server/handlers/handlePublish.js.map +1 -0
- package/dist/server/handlers/handlePubrec.d.ts +15 -0
- package/dist/server/handlers/handlePubrec.d.ts.map +1 -0
- package/dist/server/handlers/handlePubrec.js +24 -0
- package/dist/server/handlers/handlePubrec.js.map +1 -0
- package/dist/server/handlers/handlePubrel.d.ts +16 -0
- package/dist/server/handlers/handlePubrel.d.ts.map +1 -0
- package/dist/server/handlers/handlePubrel.js +28 -0
- package/dist/server/handlers/handlePubrel.js.map +1 -0
- package/dist/server/handlers/handleSubscribe.d.ts +13 -0
- package/dist/server/handlers/handleSubscribe.d.ts.map +1 -0
- package/dist/server/handlers/handleSubscribe.js +57 -0
- package/dist/server/handlers/handleSubscribe.js.map +1 -0
- package/dist/server/handlers/handleUnsubscribe.d.ts +10 -0
- package/dist/server/handlers/handleUnsubscribe.d.ts.map +1 -0
- package/dist/server/handlers/handleUnsubscribe.js +19 -0
- package/dist/server/handlers/handleUnsubscribe.js.map +1 -0
- package/dist/server/mod.d.ts +11 -0
- package/dist/server/mod.d.ts.map +1 -0
- package/dist/server/mod.js +8 -0
- package/dist/server/mod.js.map +1 -0
- package/dist/server/server.d.ts +27 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +48 -0
- package/dist/server/server.js.map +1 -0
- package/dist/socket/socket.d.ts +29 -0
- package/dist/socket/socket.d.ts.map +1 -0
- package/dist/socket/socket.js +37 -0
- package/dist/socket/socket.js.map +1 -0
- package/dist/timer/timer.d.ts +13 -0
- package/dist/timer/timer.d.ts.map +1 -0
- package/dist/timer/timer.js +41 -0
- package/dist/timer/timer.js.map +1 -0
- package/dist/trie/trie.d.ts +21 -0
- package/dist/trie/trie.d.ts.map +1 -0
- package/dist/trie/trie.js +96 -0
- package/dist/trie/trie.js.map +1 -0
- package/dist/utils/args.d.ts +28 -0
- package/dist/utils/args.d.ts.map +1 -0
- package/dist/utils/args.js +76 -0
- package/dist/utils/args.js.map +1 -0
- package/dist/utils/assert.d.ts +10 -0
- package/dist/utils/assert.d.ts.map +1 -0
- package/dist/utils/assert.js +21 -0
- package/dist/utils/assert.js.map +1 -0
- package/dist/utils/asyncQueue.d.ts +28 -0
- package/dist/utils/asyncQueue.d.ts.map +1 -0
- package/dist/utils/asyncQueue.js +70 -0
- package/dist/utils/asyncQueue.js.map +1 -0
- package/dist/utils/deferred.d.ts +10 -0
- package/dist/utils/deferred.d.ts.map +1 -0
- package/dist/utils/deferred.js +15 -0
- package/dist/utils/deferred.js.map +1 -0
- package/dist/utils/logger.d.ts +63 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +59 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/mod.d.ts +13 -0
- package/dist/utils/mod.d.ts.map +1 -0
- package/dist/utils/mod.js +12 -0
- package/dist/utils/mod.js.map +1 -0
- package/dist/utils/nextTick.d.ts +17 -0
- package/dist/utils/nextTick.d.ts.map +1 -0
- package/dist/utils/nextTick.js +19 -0
- package/dist/utils/nextTick.js.map +1 -0
- package/dist/utils/platform.d.ts +5 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +8 -0
- package/dist/utils/platform.js.map +1 -0
- 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 @@
|
|
|
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":"AACA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AAE7C,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,IAAc;IACtD,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAe;IACxC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,YAAY,CAAC,4BAA4B,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,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,GAAG,CAAa;IAChB,GAAG,CAAS;IACZ,GAAG,CAAS;IAEpB,YAAY,GAAe,EAAE,MAAc,CAAC;QAC1C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IACxB,CAAC;IACD,QAAQ,CAAC,GAAW;QAClB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACnB,MAAM,IAAI,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,QAAQ;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;IAC1B,CAAC;IAED,YAAY;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,aAAa;QACX,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACpD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,YAAY,CACpB,8EAA8E,CAC/E,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,cAAc;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACzC,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,YAAY,CACpB,uFAAuF,CACxF,CAAC;QACJ,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,YAAY;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC5C,CAAC;CACF"}
|
|
@@ -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"}
|