@pontalabs/baileys 1.0.6 → 1.0.7

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 (185) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +839 -267
  3. package/WAProto/GenerateStatics.sh +4 -3
  4. package/WAProto/WAProto.proto +511 -1215
  5. package/WAProto/index.d.ts +55 -14017
  6. package/WAProto/index.js +29 -97689
  7. package/lib/Defaults/index.d.ts +74 -72
  8. package/lib/Defaults/index.js +108 -94
  9. package/lib/Signal/Group/ciphertext-message.d.ts +7 -8
  10. package/lib/Signal/Group/ciphertext-message.js +16 -9
  11. package/lib/Signal/Group/group-session-builder.d.ts +13 -11
  12. package/lib/Signal/Group/group-session-builder.js +61 -19
  13. package/lib/Signal/Group/group_cipher.d.ts +16 -14
  14. package/lib/Signal/Group/group_cipher.js +70 -41
  15. package/lib/Signal/Group/index.d.ts +11 -12
  16. package/lib/Signal/Group/index.js +61 -12
  17. package/lib/Signal/Group/keyhelper.d.ts +14 -9
  18. package/lib/Signal/Group/keyhelper.js +58 -10
  19. package/lib/Signal/Group/sender-chain-key.d.ts +13 -13
  20. package/lib/Signal/Group/sender-chain-key.js +34 -13
  21. package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -16
  22. package/lib/Signal/Group/sender-key-distribution-message.js +36 -28
  23. package/lib/Signal/Group/sender-key-message.d.ts +18 -18
  24. package/lib/Signal/Group/sender-key-message.js +45 -38
  25. package/lib/Signal/Group/sender-key-name.d.ts +15 -14
  26. package/lib/Signal/Group/sender-key-name.js +31 -20
  27. package/lib/Signal/Group/sender-key-record.d.ts +25 -24
  28. package/lib/Signal/Group/sender-key-record.js +35 -18
  29. package/lib/Signal/Group/sender-key-state.d.ts +34 -29
  30. package/lib/Signal/Group/sender-key-state.js +100 -37
  31. package/lib/Signal/Group/sender-message-key.d.ts +10 -11
  32. package/lib/Signal/Group/sender-message-key.js +22 -15
  33. package/lib/Signal/libsignal.d.ts +8 -5
  34. package/lib/Signal/libsignal.js +142 -288
  35. package/lib/Signal/lid-mapping.d.ts +28 -23
  36. package/lib/Signal/lid-mapping.js +184 -277
  37. package/lib/Socket/Client/index.d.ts +2 -3
  38. package/lib/Socket/Client/index.js +22 -3
  39. package/lib/Socket/Client/types.d.ts +15 -15
  40. package/lib/Socket/Client/types.js +15 -8
  41. package/lib/Socket/Client/websocket.d.ts +12 -12
  42. package/lib/Socket/Client/websocket.js +37 -29
  43. package/lib/Socket/business.d.ts +178 -208
  44. package/lib/Socket/business.js +127 -91
  45. package/lib/Socket/chats.d.ts +93 -120
  46. package/lib/Socket/chats.js +652 -727
  47. package/lib/Socket/community.js +10 -2
  48. package/lib/Socket/groups.d.ts +111 -143
  49. package/lib/Socket/groups.js +186 -165
  50. package/lib/Socket/index.d.ts +183 -252
  51. package/lib/Socket/index.js +18 -38
  52. package/lib/Socket/messages-recv.d.ts +167 -196
  53. package/lib/Socket/messages-recv.js +1567 -1443
  54. package/lib/Socket/messages-send.d.ts +158 -192
  55. package/lib/Socket/messages-send.js +1208 -1102
  56. package/lib/Socket/newsletter.d.ts +138 -163
  57. package/lib/Socket/newsletter.js +249 -153
  58. package/lib/Socket/socket.d.ts +36 -50
  59. package/lib/Socket/socket.js +820 -749
  60. package/lib/Store/index.d.ts +4 -4
  61. package/lib/Store/index.js +24 -4
  62. package/lib/Store/make-in-memory-store.d.ts +104 -44
  63. package/lib/Store/make-in-memory-store.js +213 -199
  64. package/lib/Store/make-ordered-dictionary.d.ts +12 -13
  65. package/lib/Store/make-ordered-dictionary.js +45 -38
  66. package/lib/Store/object-repository.d.ts +10 -11
  67. package/lib/Store/object-repository.js +16 -9
  68. package/lib/Types/Auth.d.ts +97 -93
  69. package/lib/Types/Auth.js +3 -2
  70. package/lib/Types/Bussines.js +3 -2
  71. package/lib/Types/Call.d.ts +13 -14
  72. package/lib/Types/Call.js +3 -2
  73. package/lib/Types/Chat.d.ts +97 -78
  74. package/lib/Types/Chat.js +9 -8
  75. package/lib/Types/Contact.d.ts +9 -12
  76. package/lib/Types/Contact.js +3 -2
  77. package/lib/Types/Events.d.ts +176 -206
  78. package/lib/Types/Events.js +3 -2
  79. package/lib/Types/GroupMetadata.d.ts +48 -53
  80. package/lib/Types/GroupMetadata.js +3 -2
  81. package/lib/Types/Label.d.ts +14 -13
  82. package/lib/Types/Label.js +30 -24
  83. package/lib/Types/LabelAssociation.d.ts +20 -15
  84. package/lib/Types/LabelAssociation.js +12 -6
  85. package/lib/Types/Message.d.ts +412 -248
  86. package/lib/Types/Message.js +19 -17
  87. package/lib/Types/Product.d.ts +71 -58
  88. package/lib/Types/Product.js +3 -2
  89. package/lib/Types/Signal.d.ts +82 -71
  90. package/lib/Types/Signal.js +3 -2
  91. package/lib/Types/Socket.d.ts +81 -76
  92. package/lib/Types/Socket.js +3 -3
  93. package/lib/Types/State.d.ts +19 -75
  94. package/lib/Types/State.js +14 -56
  95. package/lib/Types/USync.d.ts +8 -8
  96. package/lib/Types/USync.js +3 -2
  97. package/lib/Types/index.d.ts +62 -47
  98. package/lib/Types/index.js +50 -26
  99. package/lib/Utils/auth-utils.d.ts +10 -13
  100. package/lib/Utils/auth-utils.js +472 -213
  101. package/lib/Utils/business.d.ts +20 -14
  102. package/lib/Utils/business.js +134 -110
  103. package/lib/Utils/chat-utils.d.ts +70 -88
  104. package/lib/Utils/chat-utils.js +403 -466
  105. package/lib/Utils/crypto.d.ts +46 -27
  106. package/lib/Utils/crypto.js +188 -117
  107. package/lib/Utils/decode-wa-message.d.ts +45 -58
  108. package/lib/Utils/decode-wa-message.js +311 -212
  109. package/lib/Utils/event-buffer.d.ts +17 -14
  110. package/lib/Utils/event-buffer.js +296 -321
  111. package/lib/Utils/generics.d.ts +92 -66
  112. package/lib/Utils/generics.js +436 -270
  113. package/lib/Utils/history.d.ts +23 -24
  114. package/lib/Utils/history.js +76 -106
  115. package/lib/Utils/index.d.ts +21 -24
  116. package/lib/Utils/index.js +41 -24
  117. package/lib/Utils/link-preview.d.ts +14 -12
  118. package/lib/Utils/link-preview.js +75 -40
  119. package/lib/Utils/logger.d.ts +11 -10
  120. package/lib/Utils/logger.js +7 -3
  121. package/lib/Utils/lt-hash.d.ts +14 -8
  122. package/lib/Utils/lt-hash.js +53 -3
  123. package/lib/Utils/make-mutex.d.ts +7 -7
  124. package/lib/Utils/make-mutex.js +44 -28
  125. package/lib/Utils/message-retry-manager.d.ts +88 -115
  126. package/lib/Utils/message-retry-manager.js +160 -265
  127. package/lib/Utils/messages-media.d.ts +107 -105
  128. package/lib/Utils/messages-media.js +619 -548
  129. package/lib/Utils/messages.d.ts +66 -52
  130. package/lib/Utils/messages.js +1558 -1730
  131. package/lib/Utils/noise-handler.d.ts +18 -18
  132. package/lib/Utils/noise-handler.js +130 -176
  133. package/lib/Utils/process-message.d.ts +32 -43
  134. package/lib/Utils/process-message.js +282 -484
  135. package/lib/Utils/rich-message-utils.js +724 -1220
  136. package/lib/Utils/signal.d.ts +32 -37
  137. package/lib/Utils/signal.js +105 -140
  138. package/lib/Utils/use-multi-file-auth-state.d.ts +5 -5
  139. package/lib/Utils/use-multi-file-auth-state.js +120 -70
  140. package/lib/Utils/use-single-file-auth-state.d.ts +13 -11
  141. package/lib/Utils/use-single-file-auth-state.js +66 -92
  142. package/lib/Utils/validate-connection.d.ts +13 -11
  143. package/lib/Utils/validate-connection.js +113 -128
  144. package/lib/WABinary/constants.d.ts +27 -25
  145. package/lib/WABinary/constants.js +1292 -1451
  146. package/lib/WABinary/decode.d.ts +9 -7
  147. package/lib/WABinary/decode.js +189 -163
  148. package/lib/WABinary/encode.d.ts +3 -3
  149. package/lib/WABinary/encode.js +155 -110
  150. package/lib/WABinary/generic-utils.d.ts +27 -14
  151. package/lib/WABinary/generic-utils.js +105 -177
  152. package/lib/WABinary/index.d.ts +5 -6
  153. package/lib/WABinary/index.js +25 -6
  154. package/lib/WABinary/jid-utils.d.ts +54 -41
  155. package/lib/WABinary/jid-utils.js +152 -83
  156. package/lib/WABinary/types.d.ts +13 -10
  157. package/lib/WABinary/types.js +3 -2
  158. package/lib/WAM/BinaryInfo.d.ts +15 -8
  159. package/lib/WAM/BinaryInfo.js +14 -7
  160. package/lib/WAM/constants.d.ts +37 -30
  161. package/lib/WAM/constants.js +11983 -19465
  162. package/lib/WAM/encode.d.ts +3 -3
  163. package/lib/WAM/encode.js +109 -95
  164. package/lib/WAM/index.d.ts +3 -4
  165. package/lib/WAM/index.js +23 -4
  166. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -9
  167. package/lib/WAUSync/Protocols/USyncContactProtocol.js +21 -37
  168. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -19
  169. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +26 -18
  170. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -11
  171. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +20 -12
  172. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -11
  173. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +24 -16
  174. package/lib/WAUSync/Protocols/index.d.ts +6 -6
  175. package/lib/WAUSync/Protocols/index.js +26 -6
  176. package/lib/WAUSync/USyncQuery.d.ts +28 -27
  177. package/lib/WAUSync/USyncQuery.js +62 -68
  178. package/lib/WAUSync/USyncUser.d.ts +10 -15
  179. package/lib/WAUSync/USyncUser.js +19 -20
  180. package/lib/WAUSync/index.d.ts +3 -4
  181. package/lib/WAUSync/index.js +23 -4
  182. package/lib/index.d.ts +12 -11
  183. package/lib/index.js +39 -12
  184. package/package.json +42 -86
  185. package/engine-requirements.js +0 -10
@@ -1,220 +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
- if (str === '') {
148
- writeStringRaw(str);
149
- return;
150
- }
151
- const tokenIndex = TOKEN_MAP[str];
190
+ const tokenIndex = TOKEN_MAP[str]
152
191
  if (tokenIndex) {
153
192
  if (typeof tokenIndex.dict === 'number') {
154
- pushByte(TAGS.DICTIONARY_0 + tokenIndex.dict);
193
+ pushByte(TAGS.DICTIONARY_0 + tokenIndex.dict)
155
194
  }
156
- pushByte(tokenIndex.index);
195
+ pushByte(tokenIndex.index)
157
196
  }
158
197
  else if (isNibble(str)) {
159
- writePackedBytes(str, 'nibble');
198
+ writePackedBytes(str, 'nibble')
160
199
  }
161
200
  else if (isHex(str)) {
162
- writePackedBytes(str, 'hex');
201
+ writePackedBytes(str, 'hex')
163
202
  }
164
- else {
165
- const decodedJid = jidDecode(str);
203
+ else if (str) {
204
+ const decodedJid = (0, jid_utils_1.jidDecode)(str)
166
205
  if (decodedJid) {
167
- writeJid(decodedJid);
206
+ writeJid(decodedJid)
168
207
  }
169
208
  else {
170
- writeStringRaw(str);
209
+ writeStringRaw(str)
171
210
  }
172
211
  }
173
- };
212
+ }
213
+
174
214
  const writeListStart = (listSize) => {
175
215
  if (listSize === 0) {
176
- pushByte(TAGS.LIST_EMPTY);
216
+ pushByte(TAGS.LIST_EMPTY)
177
217
  }
178
218
  else if (listSize < 256) {
179
- pushBytes([TAGS.LIST_8, listSize]);
219
+ pushBytes([TAGS.LIST_8, listSize])
180
220
  }
181
221
  else {
182
- pushByte(TAGS.LIST_16);
183
- pushInt16(listSize);
222
+ pushByte(TAGS.LIST_16)
223
+ pushInt16(listSize)
184
224
  }
185
- };
225
+ }
226
+
186
227
  if (!tag) {
187
- throw new Error('Invalid node: tag cannot be undefined');
228
+ throw new Error('Invalid node: tag cannot be undefined')
188
229
  }
189
- const validAttributes = Object.keys(attrs || {}).filter(k => typeof attrs[k] !== 'undefined' && attrs[k] !== null);
190
- writeListStart(2 * validAttributes.length + 1 + (typeof content !== 'undefined' ? 1 : 0));
191
- 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)
192
234
  for (const key of validAttributes) {
193
235
  if (typeof attrs[key] === 'string') {
194
- writeString(key);
195
- writeString(attrs[key]);
236
+ writeString(key)
237
+ writeString(attrs[key])
196
238
  }
197
239
  }
198
240
  if (typeof content === 'string') {
199
- writeString(content);
241
+ writeString(content)
200
242
  }
201
243
  else if (Buffer.isBuffer(content) || content instanceof Uint8Array) {
202
- writeByteLength(content.length);
203
- pushBytes(content);
244
+ writeByteLength(content.length)
245
+ pushBytes(content)
204
246
  }
205
247
  else if (Array.isArray(content)) {
206
- const validContent = content.filter(item => item && (item.tag || Buffer.isBuffer(item) || item instanceof Uint8Array || typeof item === 'string'));
207
- 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)
208
250
  for (const item of validContent) {
209
- encodeBinaryNodeInner(item, opts, buffer);
251
+ encodeBinaryNodeInner(item, opts, buffer)
210
252
  }
211
253
  }
212
254
  else if (typeof content === 'undefined') {
213
255
  // do nothing
214
256
  }
215
257
  else {
216
- throw new Error(`invalid children for header "${tag}": ${content} (${typeof content})`);
258
+ throw new Error(`invalid children for header "${tag}": ${content} (${typeof content})`)
217
259
  }
218
- return buffer;
219
- };
220
- //# sourceMappingURL=encode.js.map
260
+ return buffer
261
+ }
262
+
263
+ module.exports = {
264
+ encodeBinaryNode
265
+ }
@@ -1,15 +1,28 @@
1
- import { proto } from '../../WAProto/index.js';
2
- import { type BinaryNode } from './types.js';
3
- export declare const getBinaryNodeChildren: (node: BinaryNode | undefined, childTag: string) => BinaryNode[];
4
- export declare const getBinaryNodeChild: (node: BinaryNode | undefined, childTag: string) => BinaryNode | undefined;
5
- export declare const getAllBinaryNodeChildren: ({ content }: BinaryNode) => BinaryNode[];
6
- export declare const getBinaryNodeChildBuffer: (node: BinaryNode | undefined, childTag: string) => Uint8Array<ArrayBufferLike> | Buffer<ArrayBufferLike> | undefined;
7
- export declare const getBinaryNodeChildString: (node: BinaryNode | undefined, childTag: string) => string | undefined;
8
- export declare const getBinaryNodeChildUInt: (node: BinaryNode, childTag: string, length: number) => number | undefined;
9
- export declare const assertNodeErrorFree: (node: BinaryNode) => void;
1
+ import { proto } from '../../WAProto'
2
+ import { BinaryNode } from './types'
3
+
4
+ export declare const getBinaryNodeChildren: (node: BinaryNode | undefined, childTag: string) => BinaryNode[]
5
+
6
+ export declare const getAllBinaryNodeChildren: ({ content }: BinaryNode) => BinaryNode[]
7
+
8
+ export declare const getBinaryNodeChild: (node: BinaryNode | undefined, childTag: string) => BinaryNode | undefined
9
+
10
+ export declare const getBinaryNodeChildBuffer: (node: BinaryNode | undefined, childTag: string) => Uint8Array | Buffer | undefined
11
+
12
+ export declare const getBinaryNodeChildString: (node: BinaryNode | undefined, childTag: string) => string | undefined
13
+
14
+ export declare const getBinaryNodeChildUInt: (node: BinaryNode, childTag: string, length: number) => number | undefined
15
+
16
+ export declare const assertNodeErrorFree: (node: BinaryNode) => void
17
+
10
18
  export declare const reduceBinaryNodeToDictionary: (node: BinaryNode, tag: string) => {
11
- [_: string]: string;
12
- };
13
- 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
19
+ [_: string]: string
20
+ }
21
+
22
+ export declare const getBinaryNodeMessages: ({ content }: BinaryNode) => proto.WebMessageInfo[]
23
+
24
+ export declare const getBinaryFilteredButtons: (nodeContent: BinaryNode | BinaryNode['content']) => BinaryNode['content']
25
+
26
+ export declare const getBinaryFilteredBizBot: (nodeContent: BinaryNode | BinaryNode['content']) => BinaryNode['content']
27
+
28
+ export declare function binaryNodeToString(node: BinaryNode | BinaryNode['content'], i?: number): any