@merajah/baileys 1.0.9 → 4.2.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.
Files changed (204) hide show
  1. package/lib/cache.js +1 -0
  2. package/lib/converter.js +1 -0
  3. package/lib/extra.js +1 -0
  4. package/lib/index.js +32 -22
  5. package/lib/serialize.js +1 -0
  6. package/lib/wrapper.js +1 -0
  7. package/package.json +21 -108
  8. package/readme.md +64 -42
  9. package/WAProto/index.js +0 -169661
  10. package/lib/Defaults/baileys-version.json +0 -3
  11. package/lib/Defaults/index.d.ts +0 -53
  12. package/lib/Defaults/index.js +0 -147
  13. package/lib/Defaults/phonenumber-mcc.json +0 -223
  14. package/lib/Signal/Group/ciphertext-message.d.ts +0 -9
  15. package/lib/Signal/Group/ciphertext-message.js +0 -15
  16. package/lib/Signal/Group/group-session-builder.d.ts +0 -14
  17. package/lib/Signal/Group/group-session-builder.js +0 -64
  18. package/lib/Signal/Group/group_cipher.d.ts +0 -17
  19. package/lib/Signal/Group/group_cipher.js +0 -96
  20. package/lib/Signal/Group/index.d.ts +0 -11
  21. package/lib/Signal/Group/index.js +0 -57
  22. package/lib/Signal/Group/keyhelper.d.ts +0 -10
  23. package/lib/Signal/Group/keyhelper.js +0 -55
  24. package/lib/Signal/Group/queue-job.d.ts +0 -1
  25. package/lib/Signal/Group/queue-job.js +0 -57
  26. package/lib/Signal/Group/sender-chain-key.d.ts +0 -13
  27. package/lib/Signal/Group/sender-chain-key.js +0 -34
  28. package/lib/Signal/Group/sender-key-distribution-message.d.ts +0 -16
  29. package/lib/Signal/Group/sender-key-distribution-message.js +0 -66
  30. package/lib/Signal/Group/sender-key-message.d.ts +0 -18
  31. package/lib/Signal/Group/sender-key-message.js +0 -69
  32. package/lib/Signal/Group/sender-key-name.d.ts +0 -17
  33. package/lib/Signal/Group/sender-key-name.js +0 -51
  34. package/lib/Signal/Group/sender-key-record.d.ts +0 -30
  35. package/lib/Signal/Group/sender-key-record.js +0 -53
  36. package/lib/Signal/Group/sender-key-state.d.ts +0 -38
  37. package/lib/Signal/Group/sender-key-state.js +0 -99
  38. package/lib/Signal/Group/sender-message-key.d.ts +0 -11
  39. package/lib/Signal/Group/sender-message-key.js +0 -29
  40. package/lib/Signal/libsignal.d.ts +0 -3
  41. package/lib/Signal/libsignal.js +0 -174
  42. package/lib/Socket/Client/abstract-socket-client.d.ts +0 -17
  43. package/lib/Socket/Client/abstract-socket-client.js +0 -13
  44. package/lib/Socket/Client/index.d.ts +0 -3
  45. package/lib/Socket/Client/index.js +0 -19
  46. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -13
  47. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  48. package/lib/Socket/Client/web-socket-client.d.ts +0 -12
  49. package/lib/Socket/Client/web-socket-client.js +0 -62
  50. package/lib/Socket/business.d.ts +0 -171
  51. package/lib/Socket/business.js +0 -260
  52. package/lib/Socket/chats.d.ts +0 -267
  53. package/lib/Socket/chats.js +0 -970
  54. package/lib/Socket/groups.d.ts +0 -115
  55. package/lib/Socket/groups.js +0 -317
  56. package/lib/Socket/index.d.ts +0 -173
  57. package/lib/Socket/index.js +0 -11
  58. package/lib/Socket/manager.d.ts +0 -253
  59. package/lib/Socket/manager.js +0 -480
  60. package/lib/Socket/messages-recv.d.ts +0 -161
  61. package/lib/Socket/messages-recv.js +0 -1110
  62. package/lib/Socket/messages-send.d.ts +0 -149
  63. package/lib/Socket/messages-send.js +0 -909
  64. package/lib/Socket/newsletter.js +0 -357
  65. package/lib/Socket/registration.d.ts +0 -267
  66. package/lib/Socket/registration.js +0 -166
  67. package/lib/Socket/socket.d.ts +0 -43
  68. package/lib/Socket/socket.js +0 -680
  69. package/lib/Socket/usync.d.ts +0 -36
  70. package/lib/Socket/usync.js +0 -70
  71. package/lib/Store/index.d.ts +0 -3
  72. package/lib/Store/index.js +0 -10
  73. package/lib/Store/make-cache-manager-store.d.ts +0 -13
  74. package/lib/Store/make-cache-manager-store.js +0 -83
  75. package/lib/Store/make-in-memory-store.d.ts +0 -118
  76. package/lib/Store/make-in-memory-store.js +0 -427
  77. package/lib/Store/make-ordered-dictionary.d.ts +0 -13
  78. package/lib/Store/make-ordered-dictionary.js +0 -81
  79. package/lib/Store/object-repository.d.ts +0 -10
  80. package/lib/Store/object-repository.js +0 -27
  81. package/lib/Types/Auth.d.ts +0 -110
  82. package/lib/Types/Auth.js +0 -2
  83. package/lib/Types/Call.d.ts +0 -13
  84. package/lib/Types/Call.js +0 -2
  85. package/lib/Types/Chat.d.ts +0 -102
  86. package/lib/Types/Chat.js +0 -4
  87. package/lib/Types/Contact.d.ts +0 -19
  88. package/lib/Types/Contact.js +0 -2
  89. package/lib/Types/Events.d.ts +0 -157
  90. package/lib/Types/Events.js +0 -2
  91. package/lib/Types/GroupMetadata.d.ts +0 -55
  92. package/lib/Types/GroupMetadata.js +0 -2
  93. package/lib/Types/Label.d.ts +0 -35
  94. package/lib/Types/Label.js +0 -27
  95. package/lib/Types/LabelAssociation.d.ts +0 -29
  96. package/lib/Types/LabelAssociation.js +0 -9
  97. package/lib/Types/Message.d.ts +0 -273
  98. package/lib/Types/Message.js +0 -9
  99. package/lib/Types/Newsletter.d.ts +0 -103
  100. package/lib/Types/Newsletter.js +0 -38
  101. package/lib/Types/Product.d.ts +0 -78
  102. package/lib/Types/Product.js +0 -2
  103. package/lib/Types/Signal.d.ts +0 -57
  104. package/lib/Types/Signal.js +0 -2
  105. package/lib/Types/Socket.d.ts +0 -111
  106. package/lib/Types/Socket.js +0 -2
  107. package/lib/Types/State.d.ts +0 -27
  108. package/lib/Types/State.js +0 -2
  109. package/lib/Types/USync.d.ts +0 -25
  110. package/lib/Types/USync.js +0 -2
  111. package/lib/Types/index.d.ts +0 -57
  112. package/lib/Types/index.js +0 -42
  113. package/lib/Utils/auth-utils.d.ts +0 -18
  114. package/lib/Utils/auth-utils.js +0 -206
  115. package/lib/Utils/baileys-event-stream.d.ts +0 -16
  116. package/lib/Utils/baileys-event-stream.js +0 -63
  117. package/lib/Utils/business.d.ts +0 -22
  118. package/lib/Utils/business.js +0 -234
  119. package/lib/Utils/chat-utils.d.ts +0 -71
  120. package/lib/Utils/chat-utils.js +0 -729
  121. package/lib/Utils/crypto.d.ts +0 -41
  122. package/lib/Utils/crypto.js +0 -151
  123. package/lib/Utils/decode-wa-message.d.ts +0 -19
  124. package/lib/Utils/decode-wa-message.js +0 -198
  125. package/lib/Utils/event-buffer.d.ts +0 -35
  126. package/lib/Utils/event-buffer.js +0 -514
  127. package/lib/Utils/generics.d.ts +0 -92
  128. package/lib/Utils/generics.js +0 -428
  129. package/lib/Utils/history.d.ts +0 -15
  130. package/lib/Utils/history.js +0 -96
  131. package/lib/Utils/index.d.ts +0 -17
  132. package/lib/Utils/index.js +0 -33
  133. package/lib/Utils/link-preview.d.ts +0 -21
  134. package/lib/Utils/link-preview.js +0 -93
  135. package/lib/Utils/logger.d.ts +0 -4
  136. package/lib/Utils/logger.js +0 -7
  137. package/lib/Utils/lt-hash.d.ts +0 -12
  138. package/lib/Utils/lt-hash.js +0 -51
  139. package/lib/Utils/make-mutex.d.ts +0 -7
  140. package/lib/Utils/make-mutex.js +0 -43
  141. package/lib/Utils/messages-media.d.ts +0 -116
  142. package/lib/Utils/messages-media.js +0 -819
  143. package/lib/Utils/messages.d.ts +0 -77
  144. package/lib/Utils/messages.js +0 -816
  145. package/lib/Utils/noise-handler.d.ts +0 -21
  146. package/lib/Utils/noise-handler.js +0 -155
  147. package/lib/Utils/process-message.d.ts +0 -41
  148. package/lib/Utils/process-message.js +0 -321
  149. package/lib/Utils/signal.d.ts +0 -32
  150. package/lib/Utils/signal.js +0 -153
  151. package/lib/Utils/use-multi-file-auth-state.d.ts +0 -13
  152. package/lib/Utils/use-multi-file-auth-state.js +0 -119
  153. package/lib/Utils/validate-connection.d.ts +0 -11
  154. package/lib/Utils/validate-connection.js +0 -231
  155. package/lib/WABinary/constants.d.ts +0 -30
  156. package/lib/WABinary/constants.js +0 -40
  157. package/lib/WABinary/decode.d.ts +0 -7
  158. package/lib/WABinary/decode.js +0 -252
  159. package/lib/WABinary/encode.d.ts +0 -3
  160. package/lib/WABinary/encode.js +0 -265
  161. package/lib/WABinary/generic-utils.d.ts +0 -17
  162. package/lib/WABinary/generic-utils.js +0 -198
  163. package/lib/WABinary/index.d.ts +0 -5
  164. package/lib/WABinary/index.js +0 -21
  165. package/lib/WABinary/jid-utils.d.ts +0 -31
  166. package/lib/WABinary/jid-utils.js +0 -62
  167. package/lib/WABinary/types.d.ts +0 -18
  168. package/lib/WABinary/types.js +0 -2
  169. package/lib/WAM/BinaryInfo.d.ts +0 -17
  170. package/lib/WAM/BinaryInfo.js +0 -13
  171. package/lib/WAM/constants.d.ts +0 -38
  172. package/lib/WAM/constants.js +0 -15350
  173. package/lib/WAM/encode.d.ts +0 -3
  174. package/lib/WAM/encode.js +0 -155
  175. package/lib/WAM/index.d.ts +0 -3
  176. package/lib/WAM/index.js +0 -19
  177. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -9
  178. package/lib/WAUSync/Protocols/USyncContactProtocol.js +0 -32
  179. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -22
  180. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +0 -57
  181. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -12
  182. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +0 -30
  183. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -12
  184. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +0 -42
  185. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +0 -25
  186. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +0 -53
  187. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +0 -8
  188. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +0 -24
  189. package/lib/WAUSync/Protocols/index.d.ts +0 -4
  190. package/lib/WAUSync/Protocols/index.js +0 -20
  191. package/lib/WAUSync/USyncQuery.d.ts +0 -28
  192. package/lib/WAUSync/USyncQuery.js +0 -89
  193. package/lib/WAUSync/USyncUser.d.ts +0 -12
  194. package/lib/WAUSync/USyncUser.js +0 -26
  195. package/lib/WAUSync/index.d.ts +0 -3
  196. package/lib/WAUSync/index.js +0 -19
  197. package/lib/baileys.d.ts +0 -68
  198. package/lib/baileys.js +0 -266
  199. package/lib/extra/loader.d.ts +0 -16
  200. package/lib/extra/loader.js +0 -37
  201. package/lib/extra/raw.d.ts +0 -43
  202. package/lib/extra/raw.js +0 -131
  203. package/lib/index.d.ts +0 -14
  204. package/require.js +0 -13
@@ -1,3 +0,0 @@
1
- /// <reference types="node" />
2
- import { BinaryInfo } from './BinaryInfo';
3
- export declare const encodeWAM: (binaryInfo: BinaryInfo) => Buffer;
package/lib/WAM/encode.js DELETED
@@ -1,155 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeWAM = void 0;
4
- const constants_1 = require("./constants");
5
- const getHeaderBitLength = (key) => (key < 256 ? 2 : 3);
6
- const encodeWAM = (binaryInfo) => {
7
- binaryInfo.buffer = [];
8
- encodeWAMHeader(binaryInfo);
9
- encodeEvents(binaryInfo);
10
- console.log(binaryInfo.buffer);
11
- const totalSize = binaryInfo.buffer
12
- .map((a) => a.length)
13
- .reduce((a, b) => a + b);
14
- const buffer = Buffer.alloc(totalSize);
15
- let offset = 0;
16
- binaryInfo.buffer.forEach((buffer_) => {
17
- buffer_.copy(buffer, offset);
18
- offset += buffer_.length;
19
- });
20
- return buffer;
21
- };
22
- exports.encodeWAM = encodeWAM;
23
- function encodeWAMHeader(binaryInfo) {
24
- const headerBuffer = Buffer.alloc(8); // starting buffer
25
- headerBuffer.write('WAM', 0, 'utf8');
26
- headerBuffer.writeUInt8(binaryInfo.protocolVersion, 3);
27
- headerBuffer.writeUInt8(1, 4); //random flag
28
- headerBuffer.writeUInt16BE(binaryInfo.sequence, 5);
29
- headerBuffer.writeUInt8(0, 7); // regular channel
30
- binaryInfo.buffer.push(headerBuffer);
31
- }
32
- function encodeGlobalAttributes(binaryInfo, globals) {
33
- for (const [key, _value] of Object.entries(globals)) {
34
- const id = constants_1.WEB_GLOBALS.find(a => (a === null || a === void 0 ? void 0 : a.name) === key).id;
35
- let value = _value;
36
- if (typeof value === 'boolean') {
37
- value = value ? 1 : 0;
38
- }
39
- binaryInfo.buffer.push(serializeData(id, value, constants_1.FLAG_GLOBAL));
40
- }
41
- }
42
- function encodeEvents(binaryInfo) {
43
- for (const [name, { props, globals },] of binaryInfo.events.map((a) => Object.entries(a)[0])) {
44
- encodeGlobalAttributes(binaryInfo, globals);
45
- const event = constants_1.WEB_EVENTS.find((a) => a.name === name);
46
- const props_ = Object.entries(props);
47
- let extended = false;
48
- for (const [, value] of props_) {
49
- extended || (extended = value !== null);
50
- }
51
- const eventFlag = extended ? constants_1.FLAG_EVENT : constants_1.FLAG_EVENT | constants_1.FLAG_EXTENDED;
52
- binaryInfo.buffer.push(serializeData(event.id, -event.weight, eventFlag));
53
- for (let i = 0; i < props_.length; i++) {
54
- const [key, _value] = props_[i];
55
- const id = (event.props)[key][0];
56
- extended = i < (props_.length - 1);
57
- let value = _value;
58
- if (typeof value === 'boolean') {
59
- value = value ? 1 : 0;
60
- }
61
- const fieldFlag = extended ? constants_1.FLAG_EVENT : constants_1.FLAG_FIELD | constants_1.FLAG_EXTENDED;
62
- binaryInfo.buffer.push(serializeData(id, value, fieldFlag));
63
- }
64
- }
65
- }
66
- function serializeData(key, value, flag) {
67
- const bufferLength = getHeaderBitLength(key);
68
- let buffer;
69
- let offset = 0;
70
- if (value === null) {
71
- if (flag === constants_1.FLAG_GLOBAL) {
72
- buffer = Buffer.alloc(bufferLength);
73
- offset = serializeHeader(buffer, offset, key, flag);
74
- return buffer;
75
- }
76
- }
77
- else if (typeof value === 'number' && Number.isInteger(value)) {
78
- // is number
79
- if (value === 0 || value === 1) {
80
- buffer = Buffer.alloc(bufferLength);
81
- offset = serializeHeader(buffer, offset, key, flag | ((value + 1) << 4));
82
- return buffer;
83
- }
84
- else if (-128 <= value && value < 128) {
85
- buffer = Buffer.alloc(bufferLength + 1);
86
- offset = serializeHeader(buffer, offset, key, flag | (3 << 4));
87
- buffer.writeInt8(value, offset);
88
- return buffer;
89
- }
90
- else if (-32768 <= value && value < 32768) {
91
- buffer = Buffer.alloc(bufferLength + 2);
92
- offset = serializeHeader(buffer, offset, key, flag | (4 << 4));
93
- buffer.writeInt16LE(value, offset);
94
- return buffer;
95
- }
96
- else if (-2147483648 <= value && value < 2147483648) {
97
- buffer = Buffer.alloc(bufferLength + 4);
98
- offset = serializeHeader(buffer, offset, key, flag | (5 << 4));
99
- buffer.writeInt32LE(value, offset);
100
- return buffer;
101
- }
102
- else {
103
- buffer = Buffer.alloc(bufferLength + 8);
104
- offset = serializeHeader(buffer, offset, key, flag | (7 << 4));
105
- buffer.writeDoubleLE(value, offset);
106
- return buffer;
107
- }
108
- }
109
- else if (typeof value === 'number') {
110
- // is float
111
- buffer = Buffer.alloc(bufferLength + 8);
112
- offset = serializeHeader(buffer, offset, key, flag | (7 << 4));
113
- buffer.writeDoubleLE(value, offset);
114
- return buffer;
115
- }
116
- else if (typeof value === 'string') {
117
- // is string
118
- const utf8Bytes = Buffer.byteLength(value, 'utf8');
119
- if (utf8Bytes < 256) {
120
- buffer = Buffer.alloc(bufferLength + 1 + utf8Bytes);
121
- offset = serializeHeader(buffer, offset, key, flag | (8 << 4));
122
- buffer.writeUint8(utf8Bytes, offset++);
123
- }
124
- else if (utf8Bytes < 65536) {
125
- buffer = Buffer.alloc(bufferLength + 2 + utf8Bytes);
126
- offset = serializeHeader(buffer, offset, key, flag | (9 << 4));
127
- buffer.writeUInt16LE(utf8Bytes, offset);
128
- offset += 2;
129
- }
130
- else {
131
- buffer = Buffer.alloc(bufferLength + 4 + utf8Bytes);
132
- offset = serializeHeader(buffer, offset, key, flag | (10 << 4));
133
- buffer.writeUInt32LE(utf8Bytes, offset);
134
- offset += 4;
135
- }
136
- buffer.write(value, offset, 'utf8');
137
- return buffer;
138
- }
139
- throw 'missing';
140
- }
141
- function serializeHeader(buffer, offset, key, flag) {
142
- if (key < 256) {
143
- buffer.writeUInt8(flag, offset);
144
- offset += 1;
145
- buffer.writeUInt8(key, offset);
146
- offset += 1;
147
- }
148
- else {
149
- buffer.writeUInt8(flag | constants_1.FLAG_BYTE, offset);
150
- offset += 1;
151
- buffer.writeUInt16LE(key, offset);
152
- offset += 2;
153
- }
154
- return offset;
155
- }
@@ -1,3 +0,0 @@
1
- export * from './constants';
2
- export * from './encode';
3
- export * from './BinaryInfo';
package/lib/WAM/index.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./constants"), exports);
18
- __exportStar(require("./encode"), exports);
19
- __exportStar(require("./BinaryInfo"), exports);
@@ -1,9 +0,0 @@
1
- import { USyncQueryProtocol } from '../../Types/USync';
2
- import { BinaryNode } from '../../WABinary';
3
- import { USyncUser } from '../USyncUser';
4
- export declare class USyncContactProtocol implements USyncQueryProtocol {
5
- name: string;
6
- getQueryElement(): BinaryNode;
7
- getUserElement(user: USyncUser): BinaryNode;
8
- parser(node: BinaryNode): boolean;
9
- }
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.USyncContactProtocol = void 0;
4
- const WABinary_1 = require("../../WABinary");
5
- class USyncContactProtocol {
6
- constructor() {
7
- this.name = 'contact';
8
- }
9
- getQueryElement() {
10
- return {
11
- tag: 'contact',
12
- attrs: {},
13
- };
14
- }
15
- getUserElement(user) {
16
- //TODO: Implement type / username fields (not yet supported)
17
- return {
18
- tag: 'contact',
19
- attrs: {},
20
- content: user.phone,
21
- };
22
- }
23
- parser(node) {
24
- var _a;
25
- if (node.tag === 'contact') {
26
- (0, WABinary_1.assertNodeErrorFree)(node);
27
- return ((_a = node === null || node === void 0 ? void 0 : node.attrs) === null || _a === void 0 ? void 0 : _a.type) === 'in';
28
- }
29
- return false;
30
- }
31
- }
32
- exports.USyncContactProtocol = USyncContactProtocol;
@@ -1,22 +0,0 @@
1
- import { USyncQueryProtocol } from '../../Types/USync';
2
- import { BinaryNode } from '../../WABinary';
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
- }
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.USyncDeviceProtocol = void 0;
4
- const WABinary_1 = require("../../WABinary");
5
- class USyncDeviceProtocol {
6
- constructor() {
7
- this.name = 'devices';
8
- }
9
- getQueryElement() {
10
- return {
11
- tag: 'devices',
12
- attrs: {
13
- version: '2',
14
- },
15
- };
16
- }
17
- getUserElement( /* user: USyncUser */) {
18
- //TODO: Implement device phashing, ts and expectedTs
19
- //TODO: if all are not present, return null <- current behavior
20
- //TODO: otherwise return a node w tag 'devices' w those as attrs
21
- return null;
22
- }
23
- parser(node) {
24
- const deviceList = [];
25
- let keyIndex = undefined;
26
- if (node.tag === 'devices') {
27
- (0, WABinary_1.assertNodeErrorFree)(node);
28
- const deviceListNode = (0, WABinary_1.getBinaryNodeChild)(node, 'device-list');
29
- const keyIndexNode = (0, WABinary_1.getBinaryNodeChild)(node, 'key-index-list');
30
- if (Array.isArray(deviceListNode === null || deviceListNode === void 0 ? void 0 : deviceListNode.content)) {
31
- for (const { tag, attrs } of deviceListNode.content) {
32
- const id = +attrs.id;
33
- const keyIndex = +attrs['key-index'];
34
- if (tag === 'device') {
35
- deviceList.push({
36
- id,
37
- keyIndex,
38
- isHosted: !!(attrs['is_hosted'] && attrs['is_hosted'] === 'true')
39
- });
40
- }
41
- }
42
- }
43
- if ((keyIndexNode === null || keyIndexNode === void 0 ? void 0 : keyIndexNode.tag) === 'key-index-list') {
44
- keyIndex = {
45
- timestamp: +keyIndexNode.attrs['ts'],
46
- signedKeyIndex: keyIndexNode === null || keyIndexNode === void 0 ? void 0 : keyIndexNode.content,
47
- expectedTimestamp: keyIndexNode.attrs['expected_ts'] ? +keyIndexNode.attrs['expected_ts'] : undefined
48
- };
49
- }
50
- }
51
- return {
52
- deviceList,
53
- keyIndex
54
- };
55
- }
56
- }
57
- exports.USyncDeviceProtocol = USyncDeviceProtocol;
@@ -1,12 +0,0 @@
1
- import { USyncQueryProtocol } from '../../Types/USync';
2
- import { BinaryNode } from '../../WABinary';
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
- }
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.USyncDisappearingModeProtocol = void 0;
4
- const WABinary_1 = require("../../WABinary");
5
- class USyncDisappearingModeProtocol {
6
- constructor() {
7
- this.name = 'disappearing_mode';
8
- }
9
- getQueryElement() {
10
- return {
11
- tag: 'disappearing_mode',
12
- attrs: {},
13
- };
14
- }
15
- getUserElement() {
16
- return null;
17
- }
18
- parser(node) {
19
- if (node.tag === 'status') {
20
- (0, WABinary_1.assertNodeErrorFree)(node);
21
- const duration = +(node === null || node === void 0 ? void 0 : node.attrs.duration);
22
- const setAt = new Date(+((node === null || node === void 0 ? void 0 : node.attrs.t) || 0) * 1000);
23
- return {
24
- duration,
25
- setAt,
26
- };
27
- }
28
- }
29
- }
30
- exports.USyncDisappearingModeProtocol = USyncDisappearingModeProtocol;
@@ -1,12 +0,0 @@
1
- import { USyncQueryProtocol } from '../../Types/USync';
2
- import { BinaryNode } from '../../WABinary';
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
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.USyncStatusProtocol = void 0;
4
- const WABinary_1 = require("../../WABinary");
5
- class USyncStatusProtocol {
6
- constructor() {
7
- this.name = 'status';
8
- }
9
- getQueryElement() {
10
- return {
11
- tag: 'status',
12
- attrs: {},
13
- };
14
- }
15
- getUserElement() {
16
- return null;
17
- }
18
- parser(node) {
19
- var _a, _b, _c;
20
- if (node.tag === 'status') {
21
- (0, WABinary_1.assertNodeErrorFree)(node);
22
- let status = (_b = (_a = node === null || node === void 0 ? void 0 : node.content) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : null;
23
- const setAt = new Date(+((node === null || node === void 0 ? void 0 : node.attrs.t) || 0) * 1000);
24
- if (!status) {
25
- if (+((_c = node.attrs) === null || _c === void 0 ? void 0 : _c.code) === 401) {
26
- status = '';
27
- }
28
- else {
29
- status = null;
30
- }
31
- }
32
- else if (typeof status === 'string' && status.length === 0) {
33
- status = null;
34
- }
35
- return {
36
- status,
37
- setAt,
38
- };
39
- }
40
- }
41
- }
42
- exports.USyncStatusProtocol = USyncStatusProtocol;
@@ -1,25 +0,0 @@
1
- import { USyncQueryProtocol } from '../../Types/USync';
2
- import { BinaryNode } from '../../WABinary';
3
- import { USyncUser } from '../USyncUser';
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
- }
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.USyncBotProfileProtocol = void 0;
4
- const WABinary_1 = require("../../WABinary");
5
- class USyncBotProfileProtocol {
6
- constructor() {
7
- this.name = 'bot';
8
- }
9
- getQueryElement() {
10
- return {
11
- tag: 'bot',
12
- attrs: {},
13
- content: [{ tag: 'profile', attrs: { v: '1' } }]
14
- };
15
- }
16
- getUserElement(user) {
17
- return {
18
- tag: 'bot',
19
- attrs: {},
20
- content: [{ tag: 'profile', attrs: { 'persona_id': user.personaId } }]
21
- };
22
- }
23
- parser(node) {
24
- const botNode = (0, WABinary_1.getBinaryNodeChild)(node, 'bot');
25
- const profile = (0, WABinary_1.getBinaryNodeChild)(botNode, 'profile');
26
- const commandsNode = (0, WABinary_1.getBinaryNodeChild)(profile, 'commands');
27
- const promptsNode = (0, WABinary_1.getBinaryNodeChild)(profile, 'prompts');
28
- const commands = [];
29
- const prompts = [];
30
- for (const command of (0, WABinary_1.getBinaryNodeChildren)(commandsNode, 'command')) {
31
- commands.push({
32
- name: (0, WABinary_1.getBinaryNodeChildString)(command, 'name'),
33
- description: (0, WABinary_1.getBinaryNodeChildString)(command, 'description')
34
- });
35
- }
36
- for (const prompt of (0, WABinary_1.getBinaryNodeChildren)(promptsNode, 'prompt')) {
37
- prompts.push(`${(0, WABinary_1.getBinaryNodeChildString)(prompt, 'emoji')} ${(0, WABinary_1.getBinaryNodeChildString)(prompt, 'text')}`);
38
- }
39
- return {
40
- isDefault: !!(0, WABinary_1.getBinaryNodeChild)(profile, 'default'),
41
- jid: node.attrs.jid,
42
- name: (0, WABinary_1.getBinaryNodeChildString)(profile, 'name'),
43
- attributes: (0, WABinary_1.getBinaryNodeChildString)(profile, 'attributes'),
44
- description: (0, WABinary_1.getBinaryNodeChildString)(profile, 'description'),
45
- category: (0, WABinary_1.getBinaryNodeChildString)(profile, 'category'),
46
- personaId: profile.attrs['persona_id'],
47
- commandsDescription: (0, WABinary_1.getBinaryNodeChildString)(commandsNode, 'description'),
48
- commands,
49
- prompts
50
- };
51
- }
52
- }
53
- exports.USyncBotProfileProtocol = USyncBotProfileProtocol;
@@ -1,8 +0,0 @@
1
- import { USyncQueryProtocol } from '../../Types/USync';
2
- import { BinaryNode } from '../../WABinary';
3
- export declare class USyncLIDProtocol implements USyncQueryProtocol {
4
- name: string;
5
- getQueryElement(): BinaryNode;
6
- getUserElement(): null;
7
- parser(node: BinaryNode): string | null;
8
- }
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.USyncLIDProtocol = void 0;
4
- class USyncLIDProtocol {
5
- constructor() {
6
- this.name = 'lid';
7
- }
8
- getQueryElement() {
9
- return {
10
- tag: 'lid',
11
- attrs: {},
12
- };
13
- }
14
- getUserElement() {
15
- return null;
16
- }
17
- parser(node) {
18
- if (node.tag === 'lid') {
19
- return node.attrs.val;
20
- }
21
- return null;
22
- }
23
- }
24
- exports.USyncLIDProtocol = USyncLIDProtocol;
@@ -1,4 +0,0 @@
1
- export * from './USyncDeviceProtocol';
2
- export * from './USyncContactProtocol';
3
- export * from './USyncStatusProtocol';
4
- export * from './USyncDisappearingModeProtocol';
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
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);
@@ -1,28 +0,0 @@
1
- import { USyncQueryProtocol } from '../Types/USync';
2
- import { BinaryNode } from '../WABinary';
3
- import { USyncUser } from './USyncUser';
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): USyncQueryResult | undefined;
22
- withDeviceProtocol(): this;
23
- withContactProtocol(): this;
24
- withStatusProtocol(): this;
25
- withDisappearingModeProtocol(): this;
26
- withBotProfileProtocol(): this;
27
- withLIDProtocol(): this;
28
- }
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.USyncQuery = void 0;
4
- const WABinary_1 = require("../WABinary");
5
- const UsyncBotProfileProtocol_1 = require("./Protocols/UsyncBotProfileProtocol");
6
- const UsyncLIDProtocol_1 = require("./Protocols/UsyncLIDProtocol");
7
- const Protocols_1 = require("./Protocols");
8
- class USyncQuery {
9
- constructor() {
10
- this.protocols = [];
11
- this.users = [];
12
- this.context = 'interactive';
13
- this.mode = 'query';
14
- }
15
- withMode(mode) {
16
- this.mode = mode;
17
- return this;
18
- }
19
- withContext(context) {
20
- this.context = context;
21
- return this;
22
- }
23
- withUser(user) {
24
- this.users.push(user);
25
- return this;
26
- }
27
- parseUSyncQueryResult(result) {
28
- if (result.attrs.type !== 'result') {
29
- return;
30
- }
31
- const protocolMap = Object.fromEntries(this.protocols.map((protocol) => {
32
- return [protocol.name, protocol.parser];
33
- }));
34
- const queryResult = {
35
- // TODO: implement errors etc.
36
- list: [],
37
- sideList: [],
38
- };
39
- const usyncNode = (0, WABinary_1.getBinaryNodeChild)(result, 'usync');
40
- //TODO: implement error backoff, refresh etc.
41
- //TODO: see if there are any errors in the result node
42
- //const resultNode = getBinaryNodeChild(usyncNode, 'result')
43
- const listNode = (0, WABinary_1.getBinaryNodeChild)(usyncNode, 'list');
44
- if (Array.isArray(listNode === null || listNode === void 0 ? void 0 : listNode.content) && typeof listNode !== 'undefined') {
45
- queryResult.list = listNode.content.map((node) => {
46
- const id = node === null || node === void 0 ? void 0 : node.attrs.jid;
47
- const data = Array.isArray(node === null || node === void 0 ? void 0 : node.content) ? Object.fromEntries(node.content.map((content) => {
48
- const protocol = content.tag;
49
- const parser = protocolMap[protocol];
50
- if (parser) {
51
- return [protocol, parser(content)];
52
- }
53
- else {
54
- return [protocol, null];
55
- }
56
- }).filter(([, b]) => b !== null)) : {};
57
- return { ...data, id };
58
- });
59
- }
60
- //TODO: implement side list
61
- //const sideListNode = getBinaryNodeChild(usyncNode, 'side_list')
62
- return queryResult;
63
- }
64
- withDeviceProtocol() {
65
- this.protocols.push(new Protocols_1.USyncDeviceProtocol());
66
- return this;
67
- }
68
- withContactProtocol() {
69
- this.protocols.push(new Protocols_1.USyncContactProtocol());
70
- return this;
71
- }
72
- withStatusProtocol() {
73
- this.protocols.push(new Protocols_1.USyncStatusProtocol());
74
- return this;
75
- }
76
- withDisappearingModeProtocol() {
77
- this.protocols.push(new Protocols_1.USyncDisappearingModeProtocol());
78
- return this;
79
- }
80
- withBotProfileProtocol() {
81
- this.protocols.push(new UsyncBotProfileProtocol_1.USyncBotProfileProtocol());
82
- return this;
83
- }
84
- withLIDProtocol() {
85
- this.protocols.push(new UsyncLIDProtocol_1.USyncLIDProtocol());
86
- return this;
87
- }
88
- }
89
- exports.USyncQuery = USyncQuery;