supunmd-bail 2.1.1 → 2.1.3

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 (216) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +428 -0
  3. package/WAProto/index.js +130529 -45236
  4. package/engine-requirements.js +1 -1
  5. package/lib/Defaults/baileys-version.json +1 -1
  6. package/lib/Defaults/index.d.ts +9 -18
  7. package/lib/Defaults/index.js +136 -104
  8. package/lib/Defaults/phonenumber-mcc.json +223 -0
  9. package/lib/Signal/Group/ciphertext-message.d.ts +0 -1
  10. package/lib/Signal/Group/ciphertext-message.js +5 -2
  11. package/lib/Signal/Group/group-session-builder.d.ts +3 -4
  12. package/lib/Signal/Group/group-session-builder.js +41 -7
  13. package/lib/Signal/Group/group_cipher.d.ts +4 -4
  14. package/lib/Signal/Group/group_cipher.js +51 -37
  15. package/lib/Signal/Group/index.d.ts +11 -12
  16. package/lib/Signal/Group/index.js +57 -12
  17. package/lib/Signal/Group/keyhelper.d.ts +1 -2
  18. package/lib/Signal/Group/keyhelper.js +44 -7
  19. package/lib/Signal/Group/queue-job.d.ts +0 -1
  20. package/lib/Signal/Group/queue-job.js +5 -2
  21. package/lib/Signal/Group/sender-chain-key.d.ts +2 -3
  22. package/lib/Signal/Group/sender-chain-key.js +15 -7
  23. package/lib/Signal/Group/sender-key-distribution-message.d.ts +1 -2
  24. package/lib/Signal/Group/sender-key-distribution-message.js +11 -8
  25. package/lib/Signal/Group/sender-key-message.d.ts +1 -2
  26. package/lib/Signal/Group/sender-key-message.js +12 -9
  27. package/lib/Signal/Group/sender-key-name.d.ts +0 -1
  28. package/lib/Signal/Group/sender-key-name.js +5 -2
  29. package/lib/Signal/Group/sender-key-record.d.ts +2 -3
  30. package/lib/Signal/Group/sender-key-record.js +21 -9
  31. package/lib/Signal/Group/sender-key-state.d.ts +6 -7
  32. package/lib/Signal/Group/sender-key-state.js +42 -27
  33. package/lib/Signal/Group/sender-message-key.d.ts +0 -1
  34. package/lib/Signal/Group/sender-message-key.js +7 -4
  35. package/lib/Signal/libsignal.d.ts +3 -5
  36. package/lib/Signal/libsignal.js +90 -258
  37. package/lib/Socket/Client/{types.d.ts → abstract-socket-client.d.ts} +3 -2
  38. package/lib/Socket/Client/abstract-socket-client.js +13 -0
  39. package/lib/Socket/Client/index.d.ts +3 -3
  40. package/lib/Socket/Client/index.js +19 -3
  41. package/lib/Socket/Client/mobile-socket-client.d.ts +13 -0
  42. package/lib/Socket/Client/mobile-socket-client.js +65 -0
  43. package/lib/Socket/Client/{websocket.d.ts → web-socket-client.d.ts} +1 -2
  44. package/lib/Socket/Client/web-socket-client.js +62 -0
  45. package/lib/Socket/business.d.ts +108 -125
  46. package/lib/Socket/business.js +43 -159
  47. package/lib/Socket/chats.d.ts +239 -70
  48. package/lib/Socket/chats.js +384 -363
  49. package/lib/Socket/dugong.d.ts +254 -0
  50. package/lib/Socket/dugong.js +484 -0
  51. package/lib/Socket/groups.d.ts +56 -78
  52. package/lib/Socket/groups.js +96 -106
  53. package/lib/Socket/index.d.ts +115 -173
  54. package/lib/Socket/index.js +10 -17
  55. package/lib/Socket/messages-recv.d.ts +79 -91
  56. package/lib/Socket/messages-recv.js +521 -639
  57. package/lib/Socket/messages-send.d.ts +91 -111
  58. package/lib/Socket/messages-send.js +438 -599
  59. package/lib/Socket/newsletter.d.ts +84 -97
  60. package/lib/Socket/newsletter.js +1 -181
  61. package/lib/Socket/registration.d.ts +267 -0
  62. package/lib/Socket/registration.js +166 -0
  63. package/lib/Socket/socket.d.ts +18 -26
  64. package/lib/Socket/socket.js +230 -448
  65. package/lib/Socket/usync.d.ts +16 -17
  66. package/lib/Socket/usync.js +26 -19
  67. package/lib/Store/index.d.ts +3 -0
  68. package/lib/Store/index.js +10 -0
  69. package/lib/Store/make-cache-manager-store.d.ts +13 -0
  70. package/lib/Store/make-cache-manager-store.js +83 -0
  71. package/lib/Store/make-in-memory-store.d.ts +118 -0
  72. package/lib/Store/make-in-memory-store.js +427 -0
  73. package/lib/Store/make-ordered-dictionary.d.ts +13 -0
  74. package/lib/Store/make-ordered-dictionary.js +81 -0
  75. package/lib/Store/object-repository.d.ts +10 -0
  76. package/lib/Store/object-repository.js +27 -0
  77. package/lib/Types/Auth.d.ts +12 -13
  78. package/lib/Types/Auth.js +2 -2
  79. package/lib/Types/Call.d.ts +1 -2
  80. package/lib/Types/Call.js +2 -2
  81. package/lib/Types/Chat.d.ts +13 -34
  82. package/lib/Types/Chat.js +4 -8
  83. package/lib/Types/Contact.d.ts +1 -6
  84. package/lib/Types/Contact.js +2 -2
  85. package/lib/Types/Events.d.ts +15 -60
  86. package/lib/Types/Events.js +2 -2
  87. package/lib/Types/GroupMetadata.d.ts +5 -17
  88. package/lib/Types/GroupMetadata.js +2 -2
  89. package/lib/Types/Label.d.ts +0 -12
  90. package/lib/Types/Label.js +5 -3
  91. package/lib/Types/LabelAssociation.d.ts +0 -1
  92. package/lib/Types/LabelAssociation.js +5 -3
  93. package/lib/Types/Message.d.ts +54 -84
  94. package/lib/Types/Message.js +9 -11
  95. package/lib/Types/Newsletter.d.ts +98 -130
  96. package/lib/Types/Newsletter.js +38 -31
  97. package/lib/Types/Product.d.ts +1 -2
  98. package/lib/Types/Product.js +2 -2
  99. package/lib/Types/Signal.d.ts +1 -20
  100. package/lib/Types/Signal.js +2 -2
  101. package/lib/Types/Socket.d.ts +25 -47
  102. package/lib/Types/Socket.js +2 -3
  103. package/lib/Types/State.d.ts +2 -14
  104. package/lib/Types/State.js +2 -13
  105. package/lib/Types/USync.d.ts +2 -3
  106. package/lib/Types/USync.js +2 -2
  107. package/lib/Types/index.d.ts +14 -22
  108. package/lib/Types/index.js +31 -15
  109. package/lib/Utils/auth-utils.d.ts +6 -7
  110. package/lib/Utils/auth-utils.js +148 -199
  111. package/lib/Utils/baileys-event-stream.d.ts +1 -2
  112. package/lib/Utils/baileys-event-stream.js +22 -15
  113. package/lib/Utils/business.d.ts +2 -3
  114. package/lib/Utils/business.js +69 -66
  115. package/lib/Utils/chat-utils.d.ts +22 -21
  116. package/lib/Utils/chat-utils.js +226 -260
  117. package/lib/Utils/crypto.d.ts +19 -19
  118. package/lib/Utils/crypto.js +86 -77
  119. package/lib/Utils/decode-wa-message.d.ts +8 -37
  120. package/lib/Utils/decode-wa-message.js +83 -164
  121. package/lib/Utils/event-buffer.d.ts +8 -7
  122. package/lib/Utils/event-buffer.js +76 -110
  123. package/lib/Utils/generics.d.ts +29 -27
  124. package/lib/Utils/generics.js +210 -168
  125. package/lib/Utils/history.d.ts +8 -12
  126. package/lib/Utils/history.js +46 -34
  127. package/lib/Utils/index.d.ts +17 -20
  128. package/lib/Utils/index.js +33 -20
  129. package/lib/Utils/link-preview.d.ts +5 -5
  130. package/lib/Utils/link-preview.js +22 -14
  131. package/lib/Utils/logger.d.ts +3 -11
  132. package/lib/Utils/logger.js +7 -3
  133. package/lib/Utils/lt-hash.d.ts +8 -9
  134. package/lib/Utils/lt-hash.js +28 -25
  135. package/lib/Utils/make-mutex.d.ts +2 -3
  136. package/lib/Utils/make-mutex.js +10 -7
  137. package/lib/Utils/messages-media.d.ts +44 -42
  138. package/lib/Utils/messages-media.js +475 -319
  139. package/lib/Utils/messages.d.ts +18 -17
  140. package/lib/Utils/messages.js +259 -383
  141. package/lib/Utils/noise-handler.d.ts +15 -14
  142. package/lib/Utils/noise-handler.js +38 -30
  143. package/lib/Utils/process-message.d.ts +13 -14
  144. package/lib/Utils/process-message.js +147 -239
  145. package/lib/Utils/signal.d.ts +5 -7
  146. package/lib/Utils/signal.js +72 -78
  147. package/lib/Utils/use-multi-file-auth-state.d.ts +2 -2
  148. package/lib/Utils/use-multi-file-auth-state.js +27 -29
  149. package/lib/Utils/validate-connection.d.ts +7 -7
  150. package/lib/Utils/validate-connection.js +106 -72
  151. package/lib/WABinary/constants.d.ts +27 -25
  152. package/lib/WABinary/constants.js +20 -1281
  153. package/lib/WABinary/decode.d.ts +5 -5
  154. package/lib/WABinary/decode.js +42 -28
  155. package/lib/WABinary/encode.d.ts +3 -3
  156. package/lib/WABinary/encode.js +154 -105
  157. package/lib/WABinary/generic-utils.d.ts +7 -5
  158. package/lib/WABinary/generic-utils.js +63 -56
  159. package/lib/WABinary/index.d.ts +5 -6
  160. package/lib/WABinary/index.js +21 -6
  161. package/lib/WABinary/jid-utils.d.ts +8 -25
  162. package/lib/WABinary/jid-utils.js +40 -74
  163. package/lib/WABinary/types.d.ts +1 -2
  164. package/lib/WABinary/types.js +2 -2
  165. package/lib/WAM/BinaryInfo.d.ts +11 -3
  166. package/lib/WAM/BinaryInfo.js +5 -2
  167. package/lib/WAM/constants.d.ts +3 -5
  168. package/lib/WAM/constants.js +11958 -19461
  169. package/lib/WAM/encode.d.ts +3 -3
  170. package/lib/WAM/encode.js +22 -17
  171. package/lib/WAM/index.d.ts +3 -4
  172. package/lib/WAM/index.js +19 -4
  173. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +3 -4
  174. package/lib/WAUSync/Protocols/USyncContactProtocol.js +11 -8
  175. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +2 -3
  176. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +14 -11
  177. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +2 -3
  178. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +12 -9
  179. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +2 -3
  180. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +13 -9
  181. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +3 -4
  182. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +22 -20
  183. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +3 -5
  184. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +8 -13
  185. package/lib/WAUSync/Protocols/index.d.ts +4 -5
  186. package/lib/WAUSync/Protocols/index.js +20 -5
  187. package/lib/WAUSync/USyncQuery.d.ts +4 -5
  188. package/lib/WAUSync/USyncQuery.js +35 -40
  189. package/lib/WAUSync/USyncUser.d.ts +5 -6
  190. package/lib/WAUSync/USyncUser.js +5 -2
  191. package/lib/WAUSync/index.d.ts +3 -4
  192. package/lib/WAUSync/index.js +19 -4
  193. package/lib/index.d.ts +9 -19
  194. package/lib/index.js +1 -36
  195. package/package.json +109 -99
  196. package/WAProto/GenerateStatics.sh +0 -3
  197. package/WAProto/WAProto.proto +0 -5519
  198. package/WAProto/fix-imports.js +0 -29
  199. package/WAProto/index.d.ts +0 -11969
  200. package/lib/Signal/lid-mapping.d.ts +0 -23
  201. package/lib/Signal/lid-mapping.js +0 -171
  202. package/lib/Socket/Client/types.js +0 -11
  203. package/lib/Socket/Client/websocket.js +0 -50
  204. package/lib/Socket/communities.d.ts +0 -244
  205. package/lib/Socket/communities.js +0 -431
  206. package/lib/Socket/mex.d.ts +0 -3
  207. package/lib/Socket/mex.js +0 -42
  208. package/lib/Types/Bussines.d.ts +0 -25
  209. package/lib/Types/Bussines.js +0 -2
  210. package/lib/Utils/browser-utils.d.ts +0 -4
  211. package/lib/Utils/browser-utils.js +0 -28
  212. package/lib/Utils/message-retry-manager.d.ts +0 -82
  213. package/lib/Utils/message-retry-manager.js +0 -149
  214. package/lib/Utils/pre-key-manager.d.ts +0 -28
  215. package/lib/Utils/pre-key-manager.js +0 -106
  216. /package/lib/{supun → supunmd} +0 -0
@@ -1,7 +1,7 @@
1
- import type { BinaryNode, BinaryNodeCodingOptions } from './types.js';
2
- export declare const decompressingIfRequired: (buffer: Buffer) => Promise<Buffer<ArrayBufferLike>>;
3
- export declare const decodeDecompressedBinaryNode: (buffer: Buffer, opts: Pick<BinaryNodeCodingOptions, "DOUBLE_BYTE_TOKENS" | "SINGLE_BYTE_TOKENS" | "TAGS">, indexRef?: {
1
+ /// <reference types="node" />
2
+ import type { BinaryNode, BinaryNodeCodingOptions } from './types';
3
+ export declare const decompressingIfRequired: (buffer: Buffer) => Buffer;
4
+ export declare const decodeDecompressedBinaryNode: (buffer: Buffer, opts: Pick<BinaryNodeCodingOptions, 'DOUBLE_BYTE_TOKENS' | 'SINGLE_BYTE_TOKENS' | 'TAGS'>, indexRef?: {
4
5
  index: number;
5
6
  }) => BinaryNode;
6
- export declare const decodeBinaryNode: (buff: Buffer) => Promise<BinaryNode>;
7
- //# sourceMappingURL=decode.d.ts.map
7
+ export declare const decodeBinaryNode: (buff: Buffer) => BinaryNode;
@@ -1,19 +1,43 @@
1
- import { promisify } from 'util';
2
- import { inflate } from 'zlib';
3
- import * as constants from './constants.js';
4
- import { jidEncode, WAJIDDomains } from './jid-utils.js';
5
- const inflatePromise = promisify(inflate);
6
- export const decompressingIfRequired = async (buffer) => {
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.decodeBinaryNode = exports.decodeDecompressedBinaryNode = exports.decompressingIfRequired = void 0;
27
+ const zlib_1 = require("zlib");
28
+ const constants = __importStar(require("./constants"));
29
+ const jid_utils_1 = require("./jid-utils");
30
+ const decompressingIfRequired = (buffer) => {
7
31
  if (2 & buffer.readUInt8()) {
8
- buffer = await inflatePromise(buffer.slice(1));
32
+ buffer = (0, zlib_1.inflateSync)(buffer.slice(1));
9
33
  }
10
- else {
11
- // nodes with no compression have a 0x00 prefix, we remove that
34
+ else { // nodes with no compression have a 0x00 prefix, we remove that
12
35
  buffer = buffer.slice(1);
13
36
  }
14
37
  return buffer;
15
38
  };
16
- export const decodeDecompressedBinaryNode = (buffer, opts, indexRef = { index: 0 }) => {
39
+ exports.decompressingIfRequired = decompressingIfRequired;
40
+ const decodeDecompressedBinaryNode = (buffer, opts, indexRef = { index: 0 }) => {
17
41
  const { DOUBLE_BYTE_TOKENS, SINGLE_BYTE_TOKENS, TAGS } = opts;
18
42
  const checkEOS = (length) => {
19
43
  if (indexRef.index + length > buffer.length) {
@@ -120,21 +144,10 @@ export const decodeDecompressedBinaryNode = (buffer, opts, indexRef = { index: 0
120
144
  throw new Error('invalid jid pair: ' + i + ', ' + j);
121
145
  };
122
146
  const readAdJid = () => {
123
- const rawDomainType = readByte();
124
- const domainType = Number(rawDomainType);
147
+ const agent = readByte();
125
148
  const device = readByte();
126
149
  const user = readString(readByte());
127
- let server = 's.whatsapp.net'; // default whatsapp server
128
- if (domainType === WAJIDDomains.LID) {
129
- server = 'lid';
130
- }
131
- else if (domainType === WAJIDDomains.HOSTED) {
132
- server = 'hosted';
133
- }
134
- else if (domainType === WAJIDDomains.HOSTED_LID) {
135
- server = 'hosted.lid';
136
- }
137
- return jidEncode(user, server, device);
150
+ return (0, jid_utils_1.jidEncode)(user, agent === 0 ? 's.whatsapp.net' : 'lid', device);
138
151
  };
139
152
  const readString = (tag) => {
140
153
  if (tag >= 1 && tag < SINGLE_BYTE_TOKENS.length) {
@@ -169,7 +182,7 @@ export const decodeDecompressedBinaryNode = (buffer, opts, indexRef = { index: 0
169
182
  const items = [];
170
183
  const size = readListSize(tag);
171
184
  for (let i = 0; i < size; i++) {
172
- items.push(decodeDecompressedBinaryNode(buffer, opts, indexRef));
185
+ items.push((0, exports.decodeDecompressedBinaryNode)(buffer, opts, indexRef));
173
186
  }
174
187
  return items;
175
188
  };
@@ -231,8 +244,9 @@ export const decodeDecompressedBinaryNode = (buffer, opts, indexRef = { index: 0
231
244
  content: data
232
245
  };
233
246
  };
234
- export const decodeBinaryNode = async (buff) => {
235
- const decompBuff = await decompressingIfRequired(buff);
236
- return decodeDecompressedBinaryNode(decompBuff, constants);
247
+ exports.decodeDecompressedBinaryNode = decodeDecompressedBinaryNode;
248
+ const decodeBinaryNode = (buff) => {
249
+ const decompBuff = (0, exports.decompressingIfRequired)(buff);
250
+ return (0, exports.decodeDecompressedBinaryNode)(decompBuff, constants);
237
251
  };
238
- //# sourceMappingURL=decode.js.map
252
+ exports.decodeBinaryNode = decodeBinaryNode;
@@ -1,3 +1,3 @@
1
- import type { BinaryNode, BinaryNodeCodingOptions } from './types.js';
2
- export declare const encodeBinaryNode: (node: BinaryNode, opts?: Pick<BinaryNodeCodingOptions, "TAGS" | "TOKEN_MAP">, buffer?: number[]) => Buffer;
3
- //# sourceMappingURL=encode.d.ts.map
1
+ /// <reference types="node" />
2
+ import type { BinaryNode, BinaryNodeCodingOptions } from './types';
3
+ export declare const encodeBinaryNode: ({ tag, attrs, content }: BinaryNode, opts?: Pick<BinaryNodeCodingOptions, 'TAGS' | 'TOKEN_MAP'>, buffer?: number[]) => Buffer;
@@ -1,216 +1,265 @@
1
- import * as constants from './constants.js';
2
- import { jidDecode } from './jid-utils.js';
3
- export const encodeBinaryNode = (node, opts = constants, buffer = [0]) => {
4
- const encoded = encodeBinaryNodeInner(node, opts, buffer);
5
- return Buffer.from(encoded);
6
- };
1
+ "use strict"
2
+
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k
5
+ var desc = Object.getOwnPropertyDescriptor(m, k)
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k] } }
8
+ }
9
+ Object.defineProperty(o, k2, desc)
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k
12
+ o[k2] = m[k]
13
+ }))
14
+
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v })
17
+ }) : function(o, v) {
18
+ o["default"] = v
19
+ })
20
+
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod
23
+ var result = {}
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k)
25
+ __setModuleDefault(result, mod)
26
+ return result
27
+ }
28
+
29
+ Object.defineProperty(exports, "__esModule", { value: true })
30
+
31
+ const constants = __importStar(require("./constants"))
32
+ const jid_utils_1 = require("./jid-utils")
33
+
34
+ const encodeBinaryNode = (node, opts = constants, buffer = [0]) => {
35
+ const encoded = encodeBinaryNodeInner(node, opts, buffer)
36
+ return Buffer.from(encoded)
37
+ }
38
+
7
39
  const encodeBinaryNodeInner = ({ tag, attrs, content }, opts, buffer) => {
8
- const { TAGS, TOKEN_MAP } = opts;
9
- const pushByte = (value) => buffer.push(value & 0xff);
40
+ const { TAGS, TOKEN_MAP } = opts
41
+ const pushByte = (value) => buffer.push(value & 0xff)
10
42
  const pushInt = (value, n, littleEndian = false) => {
11
43
  for (let i = 0; i < n; i++) {
12
- const curShift = littleEndian ? i : n - 1 - i;
13
- buffer.push((value >> (curShift * 8)) & 0xff);
44
+ const curShift = littleEndian ? i : n - 1 - i
45
+ buffer.push((value >> (curShift * 8)) & 0xff)
14
46
  }
15
- };
47
+ }
48
+
16
49
  const pushBytes = (bytes) => {
17
50
  for (const b of bytes) {
18
- buffer.push(b);
51
+ buffer.push(b)
19
52
  }
20
- };
53
+ }
54
+
21
55
  const pushInt16 = (value) => {
22
- pushBytes([(value >> 8) & 0xff, value & 0xff]);
23
- };
24
- const pushInt20 = (value) => pushBytes([(value >> 16) & 0x0f, (value >> 8) & 0xff, value & 0xff]);
56
+ pushBytes([(value >> 8) & 0xff, value & 0xff])
57
+ }
58
+
59
+ const pushInt20 = (value) => (pushBytes([(value >> 16) & 0x0f, (value >> 8) & 0xff, value & 0xff]))
25
60
  const writeByteLength = (length) => {
26
61
  if (length >= 4294967296) {
27
- throw new Error('string too large to encode: ' + length);
62
+ throw new Error('string too large to encode: ' + length)
28
63
  }
29
64
  if (length >= 1 << 20) {
30
- pushByte(TAGS.BINARY_32);
31
- pushInt(length, 4); // 32 bit integer
65
+ pushByte(TAGS.BINARY_32)
66
+ pushInt(length, 4) // 32 bit integer
32
67
  }
33
68
  else if (length >= 256) {
34
- pushByte(TAGS.BINARY_20);
35
- pushInt20(length);
69
+ pushByte(TAGS.BINARY_20)
70
+ pushInt20(length)
36
71
  }
37
72
  else {
38
- pushByte(TAGS.BINARY_8);
39
- pushByte(length);
73
+ pushByte(TAGS.BINARY_8)
74
+ pushByte(length)
40
75
  }
41
- };
76
+ }
77
+
42
78
  const writeStringRaw = (str) => {
43
- const bytes = Buffer.from(str, 'utf-8');
44
- writeByteLength(bytes.length);
45
- pushBytes(bytes);
46
- };
79
+ const bytes = Buffer.from(str, 'utf-8')
80
+ writeByteLength(bytes.length)
81
+ pushBytes(bytes)
82
+ }
83
+
47
84
  const writeJid = ({ domainType, device, user, server }) => {
48
85
  if (typeof device !== 'undefined') {
49
- pushByte(TAGS.AD_JID);
50
- pushByte(domainType || 0);
51
- pushByte(device || 0);
52
- writeString(user);
86
+ pushByte(TAGS.AD_JID)
87
+ pushByte(domainType || 0)
88
+ pushByte(device || 0)
89
+ writeString(user)
53
90
  }
54
91
  else {
55
- pushByte(TAGS.JID_PAIR);
92
+ pushByte(TAGS.JID_PAIR)
56
93
  if (user.length) {
57
- writeString(user);
94
+ writeString(user)
58
95
  }
59
96
  else {
60
- pushByte(TAGS.LIST_EMPTY);
97
+ pushByte(TAGS.LIST_EMPTY)
61
98
  }
62
- writeString(server);
99
+ writeString(server)
63
100
  }
64
- };
101
+ }
102
+
65
103
  const packNibble = (char) => {
66
104
  switch (char) {
67
105
  case '-':
68
- return 10;
106
+ return 10
69
107
  case '.':
70
- return 11;
108
+ return 11
71
109
  case '\0':
72
- return 15;
110
+ return 15
73
111
  default:
74
112
  if (char >= '0' && char <= '9') {
75
- return char.charCodeAt(0) - '0'.charCodeAt(0);
113
+ return char.charCodeAt(0) - '0'.charCodeAt(0)
76
114
  }
77
- throw new Error(`invalid byte for nibble "${char}"`);
115
+ throw new Error(`invalid byte for nibble "${char}"`)
78
116
  }
79
- };
117
+ }
118
+
80
119
  const packHex = (char) => {
81
120
  if (char >= '0' && char <= '9') {
82
- return char.charCodeAt(0) - '0'.charCodeAt(0);
121
+ return char.charCodeAt(0) - '0'.charCodeAt(0)
83
122
  }
84
123
  if (char >= 'A' && char <= 'F') {
85
- return 10 + char.charCodeAt(0) - 'A'.charCodeAt(0);
124
+ return 10 + char.charCodeAt(0) - 'A'.charCodeAt(0)
86
125
  }
87
126
  if (char >= 'a' && char <= 'f') {
88
- return 10 + char.charCodeAt(0) - 'a'.charCodeAt(0);
127
+ return 10 + char.charCodeAt(0) - 'a'.charCodeAt(0)
89
128
  }
90
129
  if (char === '\0') {
91
- return 15;
130
+ return 15
92
131
  }
93
- throw new Error(`Invalid hex char "${char}"`);
94
- };
132
+ throw new Error(`Invalid hex char "${char}"`)
133
+ }
134
+
95
135
  const writePackedBytes = (str, type) => {
96
136
  if (str.length > TAGS.PACKED_MAX) {
97
- throw new Error('Too many bytes to pack');
137
+ throw new Error('Too many bytes to pack')
98
138
  }
99
- pushByte(type === 'nibble' ? TAGS.NIBBLE_8 : TAGS.HEX_8);
100
- let roundedLength = Math.ceil(str.length / 2.0);
139
+ pushByte(type === 'nibble' ? TAGS.NIBBLE_8 : TAGS.HEX_8)
140
+ let roundedLength = Math.ceil(str.length / 2.0)
101
141
  if (str.length % 2 !== 0) {
102
- roundedLength |= 128;
142
+ roundedLength |= 128
103
143
  }
104
- pushByte(roundedLength);
105
- const packFunction = type === 'nibble' ? packNibble : packHex;
144
+ pushByte(roundedLength)
145
+ const packFunction = type === 'nibble' ? packNibble : packHex
106
146
  const packBytePair = (v1, v2) => {
107
- const result = (packFunction(v1) << 4) | packFunction(v2);
108
- return result;
109
- };
110
- const strLengthHalf = Math.floor(str.length / 2);
147
+ const result = (packFunction(v1) << 4) | packFunction(v2)
148
+ return result
149
+ }
150
+ const strLengthHalf = Math.floor(str.length / 2)
111
151
  for (let i = 0; i < strLengthHalf; i++) {
112
- pushByte(packBytePair(str[2 * i], str[2 * i + 1]));
152
+ pushByte(packBytePair(str[2 * i], str[2 * i + 1]))
113
153
  }
114
154
  if (str.length % 2 !== 0) {
115
- pushByte(packBytePair(str[str.length - 1], '\x00'));
155
+ pushByte(packBytePair(str[str.length - 1], '\x00'))
116
156
  }
117
- };
157
+ }
158
+
118
159
  const isNibble = (str) => {
119
160
  if (!str || str.length > TAGS.PACKED_MAX) {
120
- return false;
161
+ return false
121
162
  }
122
163
  for (const char of str) {
123
- const isInNibbleRange = char >= '0' && char <= '9';
164
+ const isInNibbleRange = char >= '0' && char <= '9'
124
165
  if (!isInNibbleRange && char !== '-' && char !== '.') {
125
- return false;
166
+ return false
126
167
  }
127
168
  }
128
- return true;
129
- };
169
+ return true
170
+ }
171
+
130
172
  const isHex = (str) => {
131
173
  if (!str || str.length > TAGS.PACKED_MAX) {
132
- return false;
174
+ return false
133
175
  }
134
176
  for (const char of str) {
135
- const isInNibbleRange = char >= '0' && char <= '9';
177
+ const isInNibbleRange = char >= '0' && char <= '9'
136
178
  if (!isInNibbleRange && !(char >= 'A' && char <= 'F')) {
137
- return false;
179
+ return false
138
180
  }
139
181
  }
140
- return true;
141
- };
182
+ return true
183
+ }
184
+
142
185
  const writeString = (str) => {
143
- if (str === undefined || str === null) {
144
- pushByte(TAGS.LIST_EMPTY);
145
- return;
186
+ if (str === undefined || str === null) {
187
+ pushByte(TAGS.LIST_EMPTY)
188
+ return
146
189
  }
147
- const tokenIndex = TOKEN_MAP[str];
190
+ const tokenIndex = TOKEN_MAP[str]
148
191
  if (tokenIndex) {
149
192
  if (typeof tokenIndex.dict === 'number') {
150
- pushByte(TAGS.DICTIONARY_0 + tokenIndex.dict);
193
+ pushByte(TAGS.DICTIONARY_0 + tokenIndex.dict)
151
194
  }
152
- pushByte(tokenIndex.index);
195
+ pushByte(tokenIndex.index)
153
196
  }
154
197
  else if (isNibble(str)) {
155
- writePackedBytes(str, 'nibble');
198
+ writePackedBytes(str, 'nibble')
156
199
  }
157
200
  else if (isHex(str)) {
158
- writePackedBytes(str, 'hex');
201
+ writePackedBytes(str, 'hex')
159
202
  }
160
203
  else if (str) {
161
- const decodedJid = jidDecode(str);
204
+ const decodedJid = (0, jid_utils_1.jidDecode)(str)
162
205
  if (decodedJid) {
163
- writeJid(decodedJid);
206
+ writeJid(decodedJid)
164
207
  }
165
208
  else {
166
- writeStringRaw(str);
209
+ writeStringRaw(str)
167
210
  }
168
211
  }
169
- };
212
+ }
213
+
170
214
  const writeListStart = (listSize) => {
171
215
  if (listSize === 0) {
172
- pushByte(TAGS.LIST_EMPTY);
216
+ pushByte(TAGS.LIST_EMPTY)
173
217
  }
174
218
  else if (listSize < 256) {
175
- pushBytes([TAGS.LIST_8, listSize]);
219
+ pushBytes([TAGS.LIST_8, listSize])
176
220
  }
177
221
  else {
178
- pushByte(TAGS.LIST_16);
179
- pushInt16(listSize);
222
+ pushByte(TAGS.LIST_16)
223
+ pushInt16(listSize)
180
224
  }
181
- };
225
+ }
226
+
182
227
  if (!tag) {
183
- throw new Error('Invalid node: tag cannot be undefined');
228
+ throw new Error('Invalid node: tag cannot be undefined')
184
229
  }
185
- const validAttributes = Object.keys(attrs || {}).filter(k => typeof attrs[k] !== 'undefined' && attrs[k] !== null);
186
- writeListStart(2 * validAttributes.length + 1 + (typeof content !== 'undefined' ? 1 : 0));
187
- writeString(tag);
230
+
231
+ const validAttributes = Object.keys(attrs).filter(k => (typeof attrs[k] !== 'undefined' && attrs[k] !== null))
232
+ writeListStart(2 * validAttributes.length + 1 + (typeof content !== 'undefined' ? 1 : 0))
233
+ writeString(tag)
188
234
  for (const key of validAttributes) {
189
235
  if (typeof attrs[key] === 'string') {
190
- writeString(key);
191
- writeString(attrs[key]);
236
+ writeString(key)
237
+ writeString(attrs[key])
192
238
  }
193
239
  }
194
240
  if (typeof content === 'string') {
195
- writeString(content);
241
+ writeString(content)
196
242
  }
197
243
  else if (Buffer.isBuffer(content) || content instanceof Uint8Array) {
198
- writeByteLength(content.length);
199
- pushBytes(content);
244
+ writeByteLength(content.length)
245
+ pushBytes(content)
200
246
  }
201
247
  else if (Array.isArray(content)) {
202
- const validContent = content.filter(item => item && (item.tag || Buffer.isBuffer(item) || item instanceof Uint8Array || typeof item === 'string'));
203
- writeListStart(validContent.length);
248
+ const validContent = content.filter(item => item && (item.tag || Buffer.isBuffer(item) || item instanceof Uint8Array || typeof item === 'string'))
249
+ writeListStart(validContent.length)
204
250
  for (const item of validContent) {
205
- encodeBinaryNodeInner(item, opts, buffer);
251
+ encodeBinaryNodeInner(item, opts, buffer)
206
252
  }
207
253
  }
208
254
  else if (typeof content === 'undefined') {
209
255
  // do nothing
210
256
  }
211
257
  else {
212
- throw new Error(`invalid children for header "${tag}": ${content} (${typeof content})`);
258
+ throw new Error(`invalid children for header "${tag}": ${content} (${typeof content})`)
213
259
  }
214
- return buffer;
215
- };
216
- //# sourceMappingURL=encode.js.map
260
+ return buffer
261
+ }
262
+
263
+ module.exports = {
264
+ encodeBinaryNode
265
+ }
@@ -1,9 +1,10 @@
1
- import { proto } from '../../WAProto/index.js';
2
- import { type BinaryNode } from './types.js';
1
+ /// <reference types="node" />
2
+ import { proto } from '../../WAProto';
3
+ import { BinaryNode } from './types';
3
4
  export declare const getBinaryNodeChildren: (node: BinaryNode | undefined, childTag: string) => BinaryNode[];
4
5
  export declare const getAllBinaryNodeChildren: ({ content }: BinaryNode) => BinaryNode[];
5
6
  export declare const getBinaryNodeChild: (node: BinaryNode | undefined, childTag: string) => BinaryNode | undefined;
6
- export declare const getBinaryNodeChildBuffer: (node: BinaryNode | undefined, childTag: string) => Uint8Array<ArrayBufferLike> | Buffer<ArrayBufferLike> | undefined;
7
+ export declare const getBinaryNodeChildBuffer: (node: BinaryNode | undefined, childTag: string) => Uint8Array | Buffer | undefined;
7
8
  export declare const getBinaryNodeChildString: (node: BinaryNode | undefined, childTag: string) => string | undefined;
8
9
  export declare const getBinaryNodeChildUInt: (node: BinaryNode, childTag: string, length: number) => number | undefined;
9
10
  export declare const assertNodeErrorFree: (node: BinaryNode) => void;
@@ -11,5 +12,6 @@ export declare const reduceBinaryNodeToDictionary: (node: BinaryNode, tag: strin
11
12
  [_: string]: string;
12
13
  };
13
14
  export declare const getBinaryNodeMessages: ({ content }: BinaryNode) => proto.WebMessageInfo[];
14
- export declare function binaryNodeToString(node: BinaryNode | BinaryNode['content'], i?: number): string;
15
- //# sourceMappingURL=generic-utils.d.ts.map
15
+ export declare function binaryNodeToString(node: BinaryNode | BinaryNode['content'], i?: number): any;
16
+ export declare const getBinaryNodeFilter: (node: BinaryNode[]) => boolean;
17
+ export declare const getAdditionalNode: (name: string) => BinaryNode[];