jagproject 26.3.23 → 26.3.26
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/WAProto/GenerateStatics.sh +3 -4
- package/WAProto/WAProto.proto +1215 -511
- package/WAProto/fix-imports.js +73 -0
- package/WAProto/index.d.ts +14017 -0
- package/WAProto/index.js +64857 -145167
- package/engine-requirements.js +4 -7
- package/lib/Defaults/index.d.ts +74 -0
- package/lib/Defaults/index.js +49 -35
- package/lib/Defaults/phonenumber-mcc.json +223 -0
- package/lib/Defaults/wileys-version.json +2 -2
- package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
- package/lib/Signal/Group/group-session-builder.d.ts +15 -0
- package/lib/Signal/Group/group-session-builder.js +5 -3
- package/lib/Signal/Group/group_cipher.d.ts +17 -0
- package/lib/Signal/Group/group_cipher.js +35 -46
- package/lib/Signal/Group/index.d.ts +12 -0
- package/lib/Signal/Group/index.js +21 -21
- package/lib/Signal/Group/keyhelper.d.ts +11 -0
- package/lib/Signal/Group/keyhelper.js +2 -2
- package/lib/Signal/Group/sender-chain-key.d.ts +14 -0
- package/lib/Signal/Group/sender-chain-key.js +5 -10
- package/lib/Signal/Group/sender-key-distribution-message.d.ts +17 -0
- package/lib/Signal/Group/sender-key-distribution-message.js +7 -7
- package/lib/Signal/Group/sender-key-message.d.ts +19 -0
- package/lib/Signal/Group/sender-key-message.js +8 -8
- package/lib/Signal/Group/sender-key-name.d.ts +18 -0
- package/lib/Signal/Group/sender-key-record.d.ts +31 -0
- package/lib/Signal/Group/sender-key-record.js +7 -16
- package/lib/Signal/Group/sender-key-state.d.ts +39 -0
- package/lib/Signal/Group/sender-key-state.js +25 -37
- package/lib/Signal/Group/sender-message-key.d.ts +12 -0
- package/lib/Signal/Group/sender-message-key.js +2 -2
- package/lib/Signal/libsignal.d.ts +5 -0
- package/lib/Signal/libsignal.js +358 -54
- package/lib/Signal/lid-mapping.d.ts +19 -0
- package/lib/Signal/lid-mapping.js +274 -0
- package/lib/Socket/Client/index.d.ts +3 -0
- package/lib/Socket/Client/index.js +2 -2
- package/lib/Socket/Client/types.d.ts +16 -0
- package/lib/Socket/Client/types.js +1 -0
- package/lib/Socket/Client/websocket.d.ts +13 -0
- package/lib/Socket/Client/websocket.js +18 -30
- package/lib/Socket/business.d.ts +202 -0
- package/lib/Socket/business.js +160 -38
- package/lib/Socket/chats.d.ts +111 -0
- package/lib/Socket/chats.js +497 -314
- package/lib/Socket/communities.d.ts +258 -0
- package/lib/Socket/communities.js +438 -0
- package/lib/Socket/community.js +333 -0
- package/lib/Socket/groups.d.ts +150 -0
- package/lib/Socket/groups.js +229 -91
- package/lib/Socket/index.d.ts +245 -0
- package/lib/Socket/index.js +9 -6
- package/lib/Socket/messages-recv.d.ts +187 -0
- package/lib/Socket/messages-recv.js +1105 -501
- package/lib/Socket/messages-send.d.ts +183 -0
- package/lib/Socket/messages-send.js +1181 -501
- package/lib/Socket/mex.d.ts +3 -0
- package/lib/Socket/mex.js +45 -0
- package/lib/Socket/newsletter.d.ts +160 -0
- package/lib/Socket/newsletter.js +227 -200
- package/lib/Socket/socket.d.ts +55 -0
- package/lib/Socket/socket.js +507 -206
- package/lib/Socket/usync.js +6 -6
- package/lib/Store/index.js +17 -5
- package/lib/Store/make-cache-manager-store.js +83 -0
- package/lib/Store/make-in-memory-store.js +48 -89
- package/lib/Store/make-ordered-dictionary.js +1 -1
- package/lib/Types/Auth.d.ts +116 -0
- package/lib/Types/Bussines.d.ts +25 -0
- package/lib/Types/Bussines.js +2 -0
- package/lib/Types/Call.d.ts +15 -0
- package/lib/Types/Chat.d.ts +123 -0
- package/lib/Types/Chat.js +7 -1
- package/lib/Types/Contact.d.ts +24 -0
- package/lib/Types/Events.d.ts +237 -0
- package/lib/Types/Events.js +1 -0
- package/lib/Types/GroupMetadata.d.ts +67 -0
- package/lib/Types/Label.d.ts +47 -0
- package/lib/Types/Label.js +1 -3
- package/lib/Types/LabelAssociation.d.ts +30 -0
- package/lib/Types/LabelAssociation.js +1 -3
- package/lib/Types/Message.d.ts +305 -0
- package/lib/Types/Message.js +9 -5
- package/lib/Types/MexUpdates.js +11 -0
- package/lib/Types/Newsletter.d.ts +135 -0
- package/lib/Types/Newsletter.js +36 -11
- package/lib/Types/Product.d.ts +79 -0
- package/lib/Types/Signal.d.ts +76 -0
- package/lib/Types/Signal.js +1 -0
- package/lib/Types/Socket.d.ts +133 -0
- package/lib/Types/Socket.js +1 -0
- package/lib/Types/State.d.ts +39 -0
- package/lib/Types/State.js +12 -0
- package/lib/Types/USync.d.ts +26 -0
- package/lib/Types/USync.js +1 -0
- package/lib/Types/index.d.ts +65 -0
- package/lib/Types/index.js +14 -14
- package/lib/Utils/audioToBuffer.js +31 -0
- package/lib/Utils/auth-utils.d.ts +19 -0
- package/lib/Utils/auth-utils.js +222 -123
- package/lib/Utils/baileys-event-stream.js +60 -0
- package/lib/Utils/bridge-runtime.d.ts +1 -0
- package/lib/Utils/bridge-runtime.js +14 -0
- package/lib/Utils/browser-utils.d.ts +4 -0
- package/lib/Utils/browser-utils.js +38 -29
- package/lib/Utils/business.d.ts +23 -0
- package/lib/Utils/business.js +54 -48
- package/lib/Utils/chat-utils.d.ts +70 -0
- package/lib/Utils/chat-utils.js +284 -189
- package/lib/Utils/crypto.d.ts +37 -0
- package/lib/Utils/crypto.js +16 -41
- package/lib/Utils/decode-wa-message.d.ts +48 -0
- package/lib/Utils/decode-wa-message.js +128 -48
- package/lib/Utils/event-buffer.d.ts +34 -0
- package/lib/Utils/event-buffer.js +124 -62
- package/lib/Utils/generics.d.ts +91 -0
- package/lib/Utils/generics.js +154 -138
- package/lib/Utils/history.d.ts +22 -0
- package/lib/Utils/history.js +77 -34
- package/lib/Utils/identity-change-handler.d.ts +37 -0
- package/lib/Utils/identity-change-handler.js +54 -0
- package/lib/Utils/index.d.ts +22 -0
- package/lib/Utils/index.js +32 -19
- package/lib/Utils/link-preview.d.ts +21 -0
- package/lib/Utils/link-preview.js +12 -17
- package/lib/Utils/logger.d.ts +13 -0
- package/lib/Utils/lt-hash.d.ts +8 -0
- package/lib/Utils/lt-hash.js +2 -43
- package/lib/Utils/make-mutex.d.ts +9 -0
- package/lib/Utils/make-mutex.js +21 -27
- package/lib/Utils/message-retry-manager.d.ts +110 -0
- package/lib/Utils/message-retry-manager.js +143 -45
- package/lib/Utils/messages-media.d.ts +130 -0
- package/lib/Utils/messages-media.js +429 -502
- package/lib/Utils/messages-newsletter.d.ts +84 -0
- package/lib/Utils/messages-newsletter.js +295 -0
- package/lib/Utils/messages.d.ts +92 -0
- package/lib/Utils/messages.js +1025 -674
- package/lib/Utils/noise-handler.d.ts +20 -0
- package/lib/Utils/noise-handler.js +145 -91
- package/lib/Utils/pre-key-manager.d.ts +28 -0
- package/lib/Utils/pre-key-manager.js +112 -0
- package/lib/Utils/process-message.d.ts +60 -0
- package/lib/Utils/process-message.js +316 -184
- package/lib/Utils/reporting-utils.d.ts +11 -0
- package/lib/Utils/reporting-utils.js +262 -0
- package/lib/Utils/resolve-jid.d.ts +43 -0
- package/lib/Utils/resolve-jid.js +95 -0
- package/lib/Utils/rust-bridge-shim.d.ts +22 -0
- package/lib/Utils/rust-bridge-shim.js +70 -0
- package/lib/Utils/serial-task-queue.js +29 -0
- package/lib/Utils/signal.d.ts +34 -0
- package/lib/Utils/signal.js +56 -39
- package/lib/Utils/streamToBuffer.js +17 -0
- package/lib/Utils/sync-action-utils.d.ts +19 -0
- package/lib/Utils/sync-action-utils.js +52 -0
- package/lib/Utils/tc-token-utils.d.ts +12 -0
- package/lib/Utils/tc-token-utils.js +20 -0
- package/lib/Utils/use-mongo-file-auth-state.js +71 -0
- package/lib/Utils/use-multi-file-auth-state.d.ts +13 -0
- package/lib/Utils/use-multi-file-auth-state.js +11 -12
- package/lib/Utils/use-single-file-auth-state.js +73 -0
- package/lib/Utils/validate-connection.d.ts +11 -0
- package/lib/Utils/validate-connection.js +59 -82
- package/lib/Utils/wileys-event-stream.js +1 -61
- package/lib/WABinary/constants.d.ts +28 -0
- package/lib/WABinary/decode.d.ts +7 -0
- package/lib/WABinary/decode.js +39 -4
- package/lib/WABinary/encode.d.ts +3 -0
- package/lib/WABinary/encode.js +17 -11
- package/lib/WABinary/generic-utils.d.ts +15 -0
- package/lib/WABinary/generic-utils.js +46 -18
- package/lib/WABinary/index.d.ts +6 -0
- package/lib/WABinary/index.js +9 -5
- package/lib/WABinary/jid-utils.d.ts +48 -0
- package/lib/WABinary/jid-utils.js +67 -37
- package/lib/WABinary/types.d.ts +19 -0
- package/lib/WABinary/types.js +34 -0
- package/lib/WAM/BinaryInfo.d.ts +9 -0
- package/lib/WAM/constants.d.ts +40 -0
- package/lib/WAM/constants.js +19183 -11678
- package/lib/WAM/encode.d.ts +3 -0
- package/lib/WAM/encode.js +15 -17
- package/lib/WAM/index.d.ts +4 -0
- package/lib/WAM/index.js +3 -3
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +10 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +6 -6
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +23 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +9 -9
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +13 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +6 -6
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +13 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +7 -8
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +26 -0
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +18 -17
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +10 -0
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +11 -3
- package/lib/WAUSync/Protocols/index.d.ts +5 -0
- package/lib/WAUSync/Protocols/index.js +6 -4
- package/lib/WAUSync/USyncQuery.d.ts +29 -0
- package/lib/WAUSync/USyncQuery.js +38 -30
- package/lib/WAUSync/USyncUser.d.ts +13 -0
- package/lib/WAUSync/index.d.ts +4 -0
- package/lib/WAUSync/index.js +3 -3
- package/lib/index.d.ts +12 -0
- package/lib/index.js +3 -5
- package/package.json +7 -4
- package/LICENSE +0 -21
package/lib/WAM/encode.js
CHANGED
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.encodeWAM = void 0;
|
|
4
|
-
const
|
|
4
|
+
const BinaryInfo_js_1 = require("./BinaryInfo.js");
|
|
5
|
+
const constants_js_1 = require("./constants.js");
|
|
5
6
|
const getHeaderBitLength = (key) => (key < 256 ? 2 : 3);
|
|
6
7
|
const encodeWAM = (binaryInfo) => {
|
|
7
8
|
binaryInfo.buffer = [];
|
|
8
9
|
encodeWAMHeader(binaryInfo);
|
|
9
10
|
encodeEvents(binaryInfo);
|
|
10
|
-
|
|
11
|
-
const totalSize = binaryInfo.buffer
|
|
12
|
-
.map((a) => a.length)
|
|
13
|
-
.reduce((a, b) => a + b);
|
|
11
|
+
const totalSize = binaryInfo.buffer.map(a => a.length).reduce((a, b) => a + b);
|
|
14
12
|
const buffer = Buffer.alloc(totalSize);
|
|
15
13
|
let offset = 0;
|
|
16
|
-
binaryInfo.buffer
|
|
14
|
+
for (const buffer_ of binaryInfo.buffer) {
|
|
17
15
|
buffer_.copy(buffer, offset);
|
|
18
16
|
offset += buffer_.length;
|
|
19
|
-
}
|
|
17
|
+
}
|
|
20
18
|
return buffer;
|
|
21
19
|
};
|
|
22
20
|
exports.encodeWAM = encodeWAM;
|
|
@@ -31,34 +29,34 @@ function encodeWAMHeader(binaryInfo) {
|
|
|
31
29
|
}
|
|
32
30
|
function encodeGlobalAttributes(binaryInfo, globals) {
|
|
33
31
|
for (const [key, _value] of Object.entries(globals)) {
|
|
34
|
-
const id =
|
|
32
|
+
const id = constants_js_1.WEB_GLOBALS.find(a => a?.name === key).id;
|
|
35
33
|
let value = _value;
|
|
36
34
|
if (typeof value === 'boolean') {
|
|
37
35
|
value = value ? 1 : 0;
|
|
38
36
|
}
|
|
39
|
-
binaryInfo.buffer.push(serializeData(id, value,
|
|
37
|
+
binaryInfo.buffer.push(serializeData(id, value, constants_js_1.FLAG_GLOBAL));
|
|
40
38
|
}
|
|
41
39
|
}
|
|
42
40
|
function encodeEvents(binaryInfo) {
|
|
43
|
-
for (const [name, { props, globals }
|
|
41
|
+
for (const [name, { props, globals }] of binaryInfo.events.map(a => Object.entries(a)[0])) {
|
|
44
42
|
encodeGlobalAttributes(binaryInfo, globals);
|
|
45
|
-
const event =
|
|
43
|
+
const event = constants_js_1.WEB_EVENTS.find(a => a.name === name);
|
|
46
44
|
const props_ = Object.entries(props);
|
|
47
45
|
let extended = false;
|
|
48
46
|
for (const [, value] of props_) {
|
|
49
47
|
extended || (extended = value !== null);
|
|
50
48
|
}
|
|
51
|
-
const eventFlag = extended ?
|
|
49
|
+
const eventFlag = extended ? constants_js_1.FLAG_EVENT : constants_js_1.FLAG_EVENT | constants_js_1.FLAG_EXTENDED;
|
|
52
50
|
binaryInfo.buffer.push(serializeData(event.id, -event.weight, eventFlag));
|
|
53
51
|
for (let i = 0; i < props_.length; i++) {
|
|
54
52
|
const [key, _value] = props_[i];
|
|
55
|
-
const id =
|
|
56
|
-
extended = i <
|
|
53
|
+
const id = event.props[key]?.[0];
|
|
54
|
+
extended = i < props_.length - 1;
|
|
57
55
|
let value = _value;
|
|
58
56
|
if (typeof value === 'boolean') {
|
|
59
57
|
value = value ? 1 : 0;
|
|
60
58
|
}
|
|
61
|
-
const fieldFlag = extended ?
|
|
59
|
+
const fieldFlag = extended ? constants_js_1.FLAG_EVENT : constants_js_1.FLAG_FIELD | constants_js_1.FLAG_EXTENDED;
|
|
62
60
|
binaryInfo.buffer.push(serializeData(id, value, fieldFlag));
|
|
63
61
|
}
|
|
64
62
|
}
|
|
@@ -68,7 +66,7 @@ function serializeData(key, value, flag) {
|
|
|
68
66
|
let buffer;
|
|
69
67
|
let offset = 0;
|
|
70
68
|
if (value === null) {
|
|
71
|
-
if (flag ===
|
|
69
|
+
if (flag === constants_js_1.FLAG_GLOBAL) {
|
|
72
70
|
buffer = Buffer.alloc(bufferLength);
|
|
73
71
|
offset = serializeHeader(buffer, offset, key, flag);
|
|
74
72
|
return buffer;
|
|
@@ -146,7 +144,7 @@ function serializeHeader(buffer, offset, key, flag) {
|
|
|
146
144
|
offset += 1;
|
|
147
145
|
}
|
|
148
146
|
else {
|
|
149
|
-
buffer.writeUInt8(flag |
|
|
147
|
+
buffer.writeUInt8(flag | constants_js_1.FLAG_BYTE, offset);
|
|
150
148
|
offset += 1;
|
|
151
149
|
buffer.writeUInt16LE(key, offset);
|
|
152
150
|
offset += 2;
|
package/lib/WAM/index.js
CHANGED
|
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./constants"), exports);
|
|
18
|
-
__exportStar(require("./encode"), exports);
|
|
19
|
-
__exportStar(require("./BinaryInfo"), exports);
|
|
17
|
+
__exportStar(require("./constants.js"), exports);
|
|
18
|
+
__exportStar(require("./encode.js"), exports);
|
|
19
|
+
__exportStar(require("./BinaryInfo.js"), exports);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { USyncQueryProtocol } from '../../Types/USync.js';
|
|
2
|
+
import { type BinaryNode } from '../../WABinary/index.js';
|
|
3
|
+
import { USyncUser } from '../USyncUser.js';
|
|
4
|
+
export declare class USyncContactProtocol implements USyncQueryProtocol {
|
|
5
|
+
name: string;
|
|
6
|
+
getQueryElement(): BinaryNode;
|
|
7
|
+
getUserElement(user: USyncUser): BinaryNode;
|
|
8
|
+
parser(node: BinaryNode): boolean;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=USyncContactProtocol.d.ts.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.USyncContactProtocol = void 0;
|
|
4
|
-
const
|
|
4
|
+
const index_js_1 = require("../../WABinary/index.js");
|
|
5
|
+
const USyncUser_js_1 = require("../USyncUser.js");
|
|
5
6
|
class USyncContactProtocol {
|
|
6
7
|
constructor() {
|
|
7
8
|
this.name = 'contact';
|
|
@@ -9,7 +10,7 @@ class USyncContactProtocol {
|
|
|
9
10
|
getQueryElement() {
|
|
10
11
|
return {
|
|
11
12
|
tag: 'contact',
|
|
12
|
-
attrs: {}
|
|
13
|
+
attrs: {}
|
|
13
14
|
};
|
|
14
15
|
}
|
|
15
16
|
getUserElement(user) {
|
|
@@ -17,14 +18,13 @@ class USyncContactProtocol {
|
|
|
17
18
|
return {
|
|
18
19
|
tag: 'contact',
|
|
19
20
|
attrs: {},
|
|
20
|
-
content: user.phone
|
|
21
|
+
content: user.phone
|
|
21
22
|
};
|
|
22
23
|
}
|
|
23
24
|
parser(node) {
|
|
24
|
-
var _a;
|
|
25
25
|
if (node.tag === 'contact') {
|
|
26
|
-
(0,
|
|
27
|
-
return
|
|
26
|
+
(0, index_js_1.assertNodeErrorFree)(node);
|
|
27
|
+
return node?.attrs?.type === 'in';
|
|
28
28
|
}
|
|
29
29
|
return false;
|
|
30
30
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { USyncQueryProtocol } from '../../Types/USync.js';
|
|
2
|
+
import { type BinaryNode } from '../../WABinary/index.js';
|
|
3
|
+
export type KeyIndexData = {
|
|
4
|
+
timestamp: number;
|
|
5
|
+
signedKeyIndex?: Uint8Array;
|
|
6
|
+
expectedTimestamp?: number;
|
|
7
|
+
};
|
|
8
|
+
export type DeviceListData = {
|
|
9
|
+
id: number;
|
|
10
|
+
keyIndex?: number;
|
|
11
|
+
isHosted?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type ParsedDeviceInfo = {
|
|
14
|
+
deviceList?: DeviceListData[];
|
|
15
|
+
keyIndex?: KeyIndexData;
|
|
16
|
+
};
|
|
17
|
+
export declare class USyncDeviceProtocol implements USyncQueryProtocol {
|
|
18
|
+
name: string;
|
|
19
|
+
getQueryElement(): BinaryNode;
|
|
20
|
+
getUserElement(): BinaryNode | null;
|
|
21
|
+
parser(node: BinaryNode): ParsedDeviceInfo;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=USyncDeviceProtocol.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.USyncDeviceProtocol = void 0;
|
|
4
|
-
const
|
|
4
|
+
const index_js_1 = require("../../WABinary/index.js");
|
|
5
5
|
class USyncDeviceProtocol {
|
|
6
6
|
constructor() {
|
|
7
7
|
this.name = 'devices';
|
|
@@ -10,8 +10,8 @@ class USyncDeviceProtocol {
|
|
|
10
10
|
return {
|
|
11
11
|
tag: 'devices',
|
|
12
12
|
attrs: {
|
|
13
|
-
version: '2'
|
|
14
|
-
}
|
|
13
|
+
version: '2'
|
|
14
|
+
}
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
getUserElement( /* user: USyncUser */) {
|
|
@@ -24,10 +24,10 @@ class USyncDeviceProtocol {
|
|
|
24
24
|
const deviceList = [];
|
|
25
25
|
let keyIndex = undefined;
|
|
26
26
|
if (node.tag === 'devices') {
|
|
27
|
-
(0,
|
|
28
|
-
const deviceListNode = (0,
|
|
29
|
-
const keyIndexNode = (0,
|
|
30
|
-
if (Array.isArray(deviceListNode
|
|
27
|
+
(0, index_js_1.assertNodeErrorFree)(node);
|
|
28
|
+
const deviceListNode = (0, index_js_1.getBinaryNodeChild)(node, 'device-list');
|
|
29
|
+
const keyIndexNode = (0, index_js_1.getBinaryNodeChild)(node, 'key-index-list');
|
|
30
|
+
if (Array.isArray(deviceListNode?.content)) {
|
|
31
31
|
for (const { tag, attrs } of deviceListNode.content) {
|
|
32
32
|
const id = +attrs.id;
|
|
33
33
|
const keyIndex = +attrs['key-index'];
|
|
@@ -40,10 +40,10 @@ class USyncDeviceProtocol {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
if (
|
|
43
|
+
if (keyIndexNode?.tag === 'key-index-list') {
|
|
44
44
|
keyIndex = {
|
|
45
45
|
timestamp: +keyIndexNode.attrs['ts'],
|
|
46
|
-
signedKeyIndex: keyIndexNode
|
|
46
|
+
signedKeyIndex: keyIndexNode?.content,
|
|
47
47
|
expectedTimestamp: keyIndexNode.attrs['expected_ts'] ? +keyIndexNode.attrs['expected_ts'] : undefined
|
|
48
48
|
};
|
|
49
49
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { USyncQueryProtocol } from '../../Types/USync.js';
|
|
2
|
+
import { type BinaryNode } from '../../WABinary/index.js';
|
|
3
|
+
export type DisappearingModeData = {
|
|
4
|
+
duration: number;
|
|
5
|
+
setAt?: Date;
|
|
6
|
+
};
|
|
7
|
+
export declare class USyncDisappearingModeProtocol implements USyncQueryProtocol {
|
|
8
|
+
name: string;
|
|
9
|
+
getQueryElement(): BinaryNode;
|
|
10
|
+
getUserElement(): null;
|
|
11
|
+
parser(node: BinaryNode): DisappearingModeData | undefined;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=USyncDisappearingModeProtocol.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.USyncDisappearingModeProtocol = void 0;
|
|
4
|
-
const
|
|
4
|
+
const index_js_1 = require("../../WABinary/index.js");
|
|
5
5
|
class USyncDisappearingModeProtocol {
|
|
6
6
|
constructor() {
|
|
7
7
|
this.name = 'disappearing_mode';
|
|
@@ -9,7 +9,7 @@ class USyncDisappearingModeProtocol {
|
|
|
9
9
|
getQueryElement() {
|
|
10
10
|
return {
|
|
11
11
|
tag: 'disappearing_mode',
|
|
12
|
-
attrs: {}
|
|
12
|
+
attrs: {}
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
15
|
getUserElement() {
|
|
@@ -17,12 +17,12 @@ class USyncDisappearingModeProtocol {
|
|
|
17
17
|
}
|
|
18
18
|
parser(node) {
|
|
19
19
|
if (node.tag === 'disappearing_mode') {
|
|
20
|
-
(0,
|
|
21
|
-
const duration = +
|
|
22
|
-
const setAt = new Date(+(
|
|
20
|
+
(0, index_js_1.assertNodeErrorFree)(node);
|
|
21
|
+
const duration = +node?.attrs.duration;
|
|
22
|
+
const setAt = new Date(+(node?.attrs.t || 0) * 1000);
|
|
23
23
|
return {
|
|
24
24
|
duration,
|
|
25
|
-
setAt
|
|
25
|
+
setAt
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { USyncQueryProtocol } from '../../Types/USync.js';
|
|
2
|
+
import { type BinaryNode } from '../../WABinary/index.js';
|
|
3
|
+
export type StatusData = {
|
|
4
|
+
status?: string | null;
|
|
5
|
+
setAt?: Date;
|
|
6
|
+
};
|
|
7
|
+
export declare class USyncStatusProtocol implements USyncQueryProtocol {
|
|
8
|
+
name: string;
|
|
9
|
+
getQueryElement(): BinaryNode;
|
|
10
|
+
getUserElement(): null;
|
|
11
|
+
parser(node: BinaryNode): StatusData | undefined;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=USyncStatusProtocol.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.USyncStatusProtocol = void 0;
|
|
4
|
-
const
|
|
4
|
+
const index_js_1 = require("../../WABinary/index.js");
|
|
5
5
|
class USyncStatusProtocol {
|
|
6
6
|
constructor() {
|
|
7
7
|
this.name = 'status';
|
|
@@ -9,20 +9,19 @@ class USyncStatusProtocol {
|
|
|
9
9
|
getQueryElement() {
|
|
10
10
|
return {
|
|
11
11
|
tag: 'status',
|
|
12
|
-
attrs: {}
|
|
12
|
+
attrs: {}
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
15
|
getUserElement() {
|
|
16
16
|
return null;
|
|
17
17
|
}
|
|
18
18
|
parser(node) {
|
|
19
|
-
var _a, _b, _c;
|
|
20
19
|
if (node.tag === 'status') {
|
|
21
|
-
(0,
|
|
22
|
-
let status =
|
|
23
|
-
const setAt = new Date(+(
|
|
20
|
+
(0, index_js_1.assertNodeErrorFree)(node);
|
|
21
|
+
let status = node?.content?.toString() ?? null;
|
|
22
|
+
const setAt = new Date(+(node?.attrs.t || 0) * 1000);
|
|
24
23
|
if (!status) {
|
|
25
|
-
if (
|
|
24
|
+
if (node.attrs?.code && +node.attrs.code === 401) {
|
|
26
25
|
status = '';
|
|
27
26
|
}
|
|
28
27
|
else {
|
|
@@ -34,7 +33,7 @@ class USyncStatusProtocol {
|
|
|
34
33
|
}
|
|
35
34
|
return {
|
|
36
35
|
status,
|
|
37
|
-
setAt
|
|
36
|
+
setAt
|
|
38
37
|
};
|
|
39
38
|
}
|
|
40
39
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { USyncQueryProtocol } from '../../Types/USync.js';
|
|
2
|
+
import { type BinaryNode } from '../../WABinary/index.js';
|
|
3
|
+
import { USyncUser } from '../USyncUser.js';
|
|
4
|
+
export type BotProfileCommand = {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
};
|
|
8
|
+
export type BotProfileInfo = {
|
|
9
|
+
jid: string;
|
|
10
|
+
name: string;
|
|
11
|
+
attributes: string;
|
|
12
|
+
description: string;
|
|
13
|
+
category: string;
|
|
14
|
+
isDefault: boolean;
|
|
15
|
+
prompts: string[];
|
|
16
|
+
personaId: string;
|
|
17
|
+
commands: BotProfileCommand[];
|
|
18
|
+
commandsDescription: string;
|
|
19
|
+
};
|
|
20
|
+
export declare class USyncBotProfileProtocol implements USyncQueryProtocol {
|
|
21
|
+
name: string;
|
|
22
|
+
getQueryElement(): BinaryNode;
|
|
23
|
+
getUserElement(user: USyncUser): BinaryNode;
|
|
24
|
+
parser(node: BinaryNode): BotProfileInfo;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=UsyncBotProfileProtocol.d.ts.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.USyncBotProfileProtocol = void 0;
|
|
4
|
-
const
|
|
4
|
+
const index_js_1 = require("../../WABinary/index.js");
|
|
5
|
+
const USyncUser_js_1 = require("../USyncUser.js");
|
|
5
6
|
class USyncBotProfileProtocol {
|
|
6
7
|
constructor() {
|
|
7
8
|
this.name = 'bot';
|
|
@@ -17,34 +18,34 @@ class USyncBotProfileProtocol {
|
|
|
17
18
|
return {
|
|
18
19
|
tag: 'bot',
|
|
19
20
|
attrs: {},
|
|
20
|
-
content: [{ tag: 'profile', attrs: {
|
|
21
|
+
content: [{ tag: 'profile', attrs: { persona_id: user.personaId } }]
|
|
21
22
|
};
|
|
22
23
|
}
|
|
23
24
|
parser(node) {
|
|
24
|
-
const botNode = (0,
|
|
25
|
-
const profile = (0,
|
|
26
|
-
const commandsNode = (0,
|
|
27
|
-
const promptsNode = (0,
|
|
25
|
+
const botNode = (0, index_js_1.getBinaryNodeChild)(node, 'bot');
|
|
26
|
+
const profile = (0, index_js_1.getBinaryNodeChild)(botNode, 'profile');
|
|
27
|
+
const commandsNode = (0, index_js_1.getBinaryNodeChild)(profile, 'commands');
|
|
28
|
+
const promptsNode = (0, index_js_1.getBinaryNodeChild)(profile, 'prompts');
|
|
28
29
|
const commands = [];
|
|
29
30
|
const prompts = [];
|
|
30
|
-
for (const command of (0,
|
|
31
|
+
for (const command of (0, index_js_1.getBinaryNodeChildren)(commandsNode, 'command')) {
|
|
31
32
|
commands.push({
|
|
32
|
-
name: (0,
|
|
33
|
-
description: (0,
|
|
33
|
+
name: (0, index_js_1.getBinaryNodeChildString)(command, 'name'),
|
|
34
|
+
description: (0, index_js_1.getBinaryNodeChildString)(command, 'description')
|
|
34
35
|
});
|
|
35
36
|
}
|
|
36
|
-
for (const prompt of (0,
|
|
37
|
-
prompts.push(`${(0,
|
|
37
|
+
for (const prompt of (0, index_js_1.getBinaryNodeChildren)(promptsNode, 'prompt')) {
|
|
38
|
+
prompts.push(`${(0, index_js_1.getBinaryNodeChildString)(prompt, 'emoji')} ${(0, index_js_1.getBinaryNodeChildString)(prompt, 'text')}`);
|
|
38
39
|
}
|
|
39
40
|
return {
|
|
40
|
-
isDefault: !!(0,
|
|
41
|
+
isDefault: !!(0, index_js_1.getBinaryNodeChild)(profile, 'default'),
|
|
41
42
|
jid: node.attrs.jid,
|
|
42
|
-
name: (0,
|
|
43
|
-
attributes: (0,
|
|
44
|
-
description: (0,
|
|
45
|
-
category: (0,
|
|
43
|
+
name: (0, index_js_1.getBinaryNodeChildString)(profile, 'name'),
|
|
44
|
+
attributes: (0, index_js_1.getBinaryNodeChildString)(profile, 'attributes'),
|
|
45
|
+
description: (0, index_js_1.getBinaryNodeChildString)(profile, 'description'),
|
|
46
|
+
category: (0, index_js_1.getBinaryNodeChildString)(profile, 'category'),
|
|
46
47
|
personaId: profile.attrs['persona_id'],
|
|
47
|
-
commandsDescription: (0,
|
|
48
|
+
commandsDescription: (0, index_js_1.getBinaryNodeChildString)(commandsNode, 'description'),
|
|
48
49
|
commands,
|
|
49
50
|
prompts
|
|
50
51
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { USyncQueryProtocol } from '../../Types/USync.js';
|
|
2
|
+
import type { BinaryNode } from '../../WABinary/index.js';
|
|
3
|
+
import type { USyncUser } from '../USyncUser.js';
|
|
4
|
+
export declare class USyncLIDProtocol implements USyncQueryProtocol {
|
|
5
|
+
name: string;
|
|
6
|
+
getQueryElement(): BinaryNode;
|
|
7
|
+
getUserElement(user: USyncUser): BinaryNode | null;
|
|
8
|
+
parser(node: BinaryNode): string | null;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=UsyncLIDProtocol.d.ts.map
|
|
@@ -8,11 +8,19 @@ class USyncLIDProtocol {
|
|
|
8
8
|
getQueryElement() {
|
|
9
9
|
return {
|
|
10
10
|
tag: 'lid',
|
|
11
|
-
attrs: {}
|
|
11
|
+
attrs: {}
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
|
-
getUserElement() {
|
|
15
|
-
|
|
14
|
+
getUserElement(user) {
|
|
15
|
+
if (user.lid) {
|
|
16
|
+
return {
|
|
17
|
+
tag: 'lid',
|
|
18
|
+
attrs: { jid: user.lid }
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
16
24
|
}
|
|
17
25
|
parser(node) {
|
|
18
26
|
if (node.tag === 'lid') {
|
|
@@ -14,7 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./USyncDeviceProtocol"), exports);
|
|
18
|
-
__exportStar(require("./USyncContactProtocol"), exports);
|
|
19
|
-
__exportStar(require("./USyncStatusProtocol"), exports);
|
|
20
|
-
__exportStar(require("./USyncDisappearingModeProtocol"), exports);
|
|
17
|
+
__exportStar(require("./USyncDeviceProtocol.js"), exports);
|
|
18
|
+
__exportStar(require("./USyncContactProtocol.js"), exports);
|
|
19
|
+
__exportStar(require("./USyncStatusProtocol.js"), exports);
|
|
20
|
+
__exportStar(require("./USyncDisappearingModeProtocol.js"), exports);
|
|
21
|
+
__exportStar(require("./UsyncBotProfileProtocol.js"), exports);
|
|
22
|
+
__exportStar(require("./UsyncLIDProtocol.js"), exports);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { USyncQueryProtocol } from '../Types/USync.js';
|
|
2
|
+
import { type BinaryNode } from '../WABinary/index.js';
|
|
3
|
+
import { USyncUser } from './USyncUser.js';
|
|
4
|
+
export type USyncQueryResultList = {
|
|
5
|
+
[protocol: string]: unknown;
|
|
6
|
+
id: string;
|
|
7
|
+
};
|
|
8
|
+
export type USyncQueryResult = {
|
|
9
|
+
list: USyncQueryResultList[];
|
|
10
|
+
sideList: USyncQueryResultList[];
|
|
11
|
+
};
|
|
12
|
+
export declare class USyncQuery {
|
|
13
|
+
protocols: USyncQueryProtocol[];
|
|
14
|
+
users: USyncUser[];
|
|
15
|
+
context: string;
|
|
16
|
+
mode: string;
|
|
17
|
+
constructor();
|
|
18
|
+
withMode(mode: string): this;
|
|
19
|
+
withContext(context: string): this;
|
|
20
|
+
withUser(user: USyncUser): this;
|
|
21
|
+
parseUSyncQueryResult(result: BinaryNode | undefined): USyncQueryResult | undefined;
|
|
22
|
+
withDeviceProtocol(): this;
|
|
23
|
+
withContactProtocol(): this;
|
|
24
|
+
withStatusProtocol(): this;
|
|
25
|
+
withDisappearingModeProtocol(): this;
|
|
26
|
+
withBotProfileProtocol(): this;
|
|
27
|
+
withLIDProtocol(): this;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=USyncQuery.d.ts.map
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.USyncQuery = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
4
|
+
const index_js_1 = require("../WABinary/index.js");
|
|
5
|
+
const UsyncBotProfileProtocol_js_1 = require("./Protocols/UsyncBotProfileProtocol.js");
|
|
6
|
+
const UsyncLIDProtocol_js_1 = require("./Protocols/UsyncLIDProtocol.js");
|
|
7
|
+
const index_js_2 = require("./Protocols/index.js");
|
|
8
|
+
const USyncUser_js_1 = require("./USyncUser.js");
|
|
8
9
|
class USyncQuery {
|
|
9
10
|
constructor() {
|
|
10
11
|
this.protocols = [];
|
|
@@ -25,64 +26,71 @@ class USyncQuery {
|
|
|
25
26
|
return this;
|
|
26
27
|
}
|
|
27
28
|
parseUSyncQueryResult(result) {
|
|
28
|
-
if (result.attrs.type !== 'result') {
|
|
29
|
+
if (!result || result.attrs.type !== 'result') {
|
|
29
30
|
return;
|
|
30
31
|
}
|
|
31
|
-
const protocolMap = Object.fromEntries(this.protocols.map(
|
|
32
|
+
const protocolMap = Object.fromEntries(this.protocols.map(protocol => {
|
|
32
33
|
return [protocol.name, protocol.parser];
|
|
33
34
|
}));
|
|
34
35
|
const queryResult = {
|
|
35
36
|
// TODO: implement errors etc.
|
|
36
37
|
list: [],
|
|
37
|
-
sideList: []
|
|
38
|
+
sideList: []
|
|
38
39
|
};
|
|
39
|
-
const usyncNode = (0,
|
|
40
|
+
const usyncNode = (0, index_js_1.getBinaryNodeChild)(result, 'usync');
|
|
40
41
|
//TODO: implement error backoff, refresh etc.
|
|
41
42
|
//TODO: see if there are any errors in the result node
|
|
42
43
|
//const resultNode = getBinaryNodeChild(usyncNode, 'result')
|
|
43
|
-
const listNode = (0,
|
|
44
|
-
if (Array.isArray(listNode
|
|
45
|
-
queryResult.list = listNode.content.
|
|
46
|
-
const id = node
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
44
|
+
const listNode = usyncNode ? (0, index_js_1.getBinaryNodeChild)(usyncNode, 'list') : undefined;
|
|
45
|
+
if (listNode?.content && Array.isArray(listNode.content)) {
|
|
46
|
+
queryResult.list = listNode.content.reduce((acc, node) => {
|
|
47
|
+
const id = node?.attrs.jid;
|
|
48
|
+
if (id) {
|
|
49
|
+
const data = Array.isArray(node?.content)
|
|
50
|
+
? Object.fromEntries(node.content
|
|
51
|
+
.map(content => {
|
|
52
|
+
const protocol = content.tag;
|
|
53
|
+
const parser = protocolMap[protocol];
|
|
54
|
+
if (parser) {
|
|
55
|
+
return [protocol, parser(content)];
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return [protocol, null];
|
|
59
|
+
}
|
|
60
|
+
})
|
|
61
|
+
.filter(([, b]) => b !== null))
|
|
62
|
+
: {};
|
|
63
|
+
acc.push({ ...data, id });
|
|
64
|
+
}
|
|
65
|
+
return acc;
|
|
66
|
+
}, []);
|
|
59
67
|
}
|
|
60
68
|
//TODO: implement side list
|
|
61
69
|
//const sideListNode = getBinaryNodeChild(usyncNode, 'side_list')
|
|
62
70
|
return queryResult;
|
|
63
71
|
}
|
|
64
72
|
withDeviceProtocol() {
|
|
65
|
-
this.protocols.push(new
|
|
73
|
+
this.protocols.push(new index_js_2.USyncDeviceProtocol());
|
|
66
74
|
return this;
|
|
67
75
|
}
|
|
68
76
|
withContactProtocol() {
|
|
69
|
-
this.protocols.push(new
|
|
77
|
+
this.protocols.push(new index_js_2.USyncContactProtocol());
|
|
70
78
|
return this;
|
|
71
79
|
}
|
|
72
80
|
withStatusProtocol() {
|
|
73
|
-
this.protocols.push(new
|
|
81
|
+
this.protocols.push(new index_js_2.USyncStatusProtocol());
|
|
74
82
|
return this;
|
|
75
83
|
}
|
|
76
84
|
withDisappearingModeProtocol() {
|
|
77
|
-
this.protocols.push(new
|
|
85
|
+
this.protocols.push(new index_js_2.USyncDisappearingModeProtocol());
|
|
78
86
|
return this;
|
|
79
87
|
}
|
|
80
88
|
withBotProfileProtocol() {
|
|
81
|
-
this.protocols.push(new
|
|
89
|
+
this.protocols.push(new UsyncBotProfileProtocol_js_1.USyncBotProfileProtocol());
|
|
82
90
|
return this;
|
|
83
91
|
}
|
|
84
92
|
withLIDProtocol() {
|
|
85
|
-
this.protocols.push(new
|
|
93
|
+
this.protocols.push(new UsyncLIDProtocol_js_1.USyncLIDProtocol());
|
|
86
94
|
return this;
|
|
87
95
|
}
|
|
88
96
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare class USyncUser {
|
|
2
|
+
id?: string;
|
|
3
|
+
lid?: string;
|
|
4
|
+
phone?: string;
|
|
5
|
+
type?: string;
|
|
6
|
+
personaId?: string;
|
|
7
|
+
withId(id: string): this;
|
|
8
|
+
withLid(lid: string): this;
|
|
9
|
+
withPhone(phone: string): this;
|
|
10
|
+
withType(type: string): this;
|
|
11
|
+
withPersonaId(personaId: string): this;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=USyncUser.d.ts.map
|