@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,357 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractNewsletterMetadata = exports.makeNewsletterSocket = void 0;
4
- const Types_1 = require("../Types");
5
- const Utils_1 = require("../Utils");
6
- const WABinary_1 = require("../WABinary");
7
- const groups_1 = require("./groups");
8
- const { QueryIds } = Types_1
9
-
10
- const { Boom } = require('@hapi/boom');
11
-
12
- const wMexQuery = (
13
- variables,
14
- queryId,
15
- query,
16
- generateMessageTag
17
- ) => {
18
- return query({
19
- tag: 'iq',
20
- attrs: {
21
- id: generateMessageTag(),
22
- type: 'get',
23
- to: WABinary_1.S_WHATSAPP_NET,
24
- xmlns: 'w:mex'
25
- },
26
- content: [
27
- {
28
- tag: 'query',
29
- attrs: { query_id: queryId },
30
- content: Buffer.from(JSON.stringify({ variables }), 'utf-8')
31
- }
32
- ]
33
- })
34
- }
35
-
36
- const parseNewsletterCreateResponse = (responseList) => {
37
- return responseList.map((res) => {
38
- const thread = res.thread_metadata;
39
- const viewer = res.viewer_metadata;
40
-
41
- if (!thread || !viewer) {
42
- return {
43
- id: res.id,
44
- state: res.state?.type || null,
45
- deleted: true
46
- };
47
- }
48
-
49
- return {
50
- id: res.id,
51
- state: res.state?.type || null,
52
- owner: viewer.role || undefined,
53
- name: thread?.name?.text || null,
54
- creation_time: parseInt(thread?.creation_time || "0", 10),
55
- description: thread?.description?.text || null,
56
- invite: thread?.invite || null,
57
- subscribers: parseInt(thread?.subscribers_count || "0", 10),
58
- verification: thread?.verification || null,
59
- picture: {
60
- id: thread?.picture?.id || null,
61
- directPath: thread?.picture?.direct_path || null
62
- },
63
- mute_state: viewer?.mute || "OFF"
64
- };
65
- });
66
- };
67
-
68
- const executeWMexQuery = async (
69
- variables,
70
- queryId,
71
- dataPath,
72
- query,
73
- generateMessageTag
74
- ) => {
75
- const result = await wMexQuery(variables, queryId, query, generateMessageTag)
76
- const child = (0, WABinary_1.getBinaryNodeChild)(result, 'result')
77
- if (child?.content) {
78
- const data = JSON.parse(child.content.toString())
79
-
80
- if (data.errors && data.errors.length > 0) {
81
- const errorMessages = data.errors.map((err) => err.message || 'Unknown error').join(', ')
82
- const firstError = data.errors[0]
83
- const errorCode = firstError.extensions?.error_code || 400
84
- throw new Boom(`GraphQL server error: ${errorMessages}`, { statusCode: errorCode, data: firstError })
85
- }
86
-
87
- const response = dataPath ? data?.data?.[dataPath] : data?.data
88
- if (typeof response !== 'undefined') {
89
- return response
90
- }
91
- }
92
-
93
- const action = (dataPath || '').startsWith('xwa2_')
94
- ? dataPath.substring(5).replace(/_/g, ' ')
95
- : dataPath?.replace(/_/g, ' ')
96
- throw new Boom(`Failed to ${action}, unexpected response structure.`, { statusCode: 400, data: result })
97
- }
98
-
99
- const makeNewsletterSocket = (config) => {
100
- const sock = (0, groups_1.makeGroupsSocket)(config);
101
- const { authState, signalRepository, query, generateMessageTag, delay } = sock;
102
- const encoder = new TextEncoder();
103
- const newsletterQuery = async (jid, type, content) => (query({
104
- tag: 'iq',
105
- attrs: {
106
- id: generateMessageTag(),
107
- type,
108
- xmlns: 'newsletter',
109
- to: jid,
110
- },
111
- content
112
- }));
113
- const newsletterWMexQuery = async (jid, queryId, content) => (query({
114
- tag: 'iq',
115
- attrs: {
116
- id: generateMessageTag(),
117
- type: 'get',
118
- xmlns: 'w:mex',
119
- to: WABinary_1.S_WHATSAPP_NET,
120
- },
121
- content: [
122
- {
123
- tag: 'query',
124
- attrs: { 'query_id': queryId },
125
- content: encoder.encode(JSON.stringify({
126
- variables: {
127
- 'newsletter_id': jid,
128
- ...content
129
- }
130
- }))
131
- }
132
- ]
133
- }));
134
- const newsletterMetadata = async (type, key, role) => {
135
- const result = await newsletterWMexQuery(undefined, QueryIds.METADATA, {
136
- input: {
137
- key,
138
- type: type.toUpperCase(),
139
- view_role: role || 'GUEST'
140
- },
141
- fetch_viewer_metadata: true,
142
- fetch_full_image: true,
143
- fetch_creation_time: true
144
- })
145
-
146
- return extractNewsletterMetadata(result)
147
- }
148
-
149
- const parseFetchedUpdates = async (node, type) => {
150
- let child;
151
- if (type === 'messages') {
152
- child = (0, WABinary_1.getBinaryNodeChild)(node, 'messages');
153
- }
154
- else {
155
- const parent = (0, WABinary_1.getBinaryNodeChild)(node, 'message_updates');
156
- child = (0, WABinary_1.getBinaryNodeChild)(parent, 'messages');
157
- }
158
- return await Promise.all((0, WABinary_1.getAllBinaryNodeChildren)(child).map(async (messageNode) => {
159
- var _a, _b;
160
- messageNode.attrs.from = child === null || child === void 0 ? void 0 : child.attrs.jid;
161
- const views = parseInt(((_b = (_a = (0, WABinary_1.getBinaryNodeChild)(messageNode, 'views_count')) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b.count) || '0');
162
- const reactionNode = (0, WABinary_1.getBinaryNodeChild)(messageNode, 'reactions');
163
- const reactions = (0, WABinary_1.getBinaryNodeChildren)(reactionNode, 'reaction')
164
- .map(({ attrs }) => ({ count: +attrs.count, code: attrs.code }));
165
- const data = {
166
- 'server_id': messageNode.attrs.server_id,
167
- views,
168
- reactions
169
- };
170
- if (type === 'messages') {
171
- const { fullMessage: message, decrypt } = await (0, Utils_1.decryptMessageNode)(messageNode, authState.creds.me.id, authState.creds.me.lid || '', signalRepository, config.logger);
172
- await decrypt();
173
- data.message = message;
174
- }
175
- return data;
176
- }));
177
- };
178
- return {
179
- ...sock,
180
- newsletterFetchAllParticipating: async () => {
181
- const data = {}
182
-
183
- const result = await newsletterWMexQuery(undefined, QueryIds.SUBSCRIBED)
184
- const child = JSON.parse(WABinary_1.getBinaryNodeChild(result, 'result')?.content?.toString())
185
- const newsletters = child.data["xwa2_newsletter_subscribed"]
186
-
187
- for (const i of newsletters) {
188
- if (i.id == null) continue
189
-
190
- const metadata = await newsletterMetadata('JID', i.id)
191
- if (metadata.id !== null) data[metadata.id] = metadata
192
- }
193
-
194
- return data
195
- },
196
- subscribeNewsletterUpdates: async (jid) => {
197
- var _a;
198
- const result = await newsletterQuery(jid, 'set', [{ tag: 'live_updates', attrs: {}, content: [] }]);
199
- return (_a = (0, WABinary_1.getBinaryNodeChild)(result, 'live_updates')) === null || _a === void 0 ? void 0 : _a.attrs;
200
- },
201
- newsletterReactionMode: async (jid, mode) => {
202
- await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
203
- updates: { settings: { 'reaction_codes': { value: mode } } }
204
- });
205
- },
206
- newsletterUpdateDescription: async (jid, description) => {
207
- await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
208
- updates: { description: description || '', settings: null }
209
- });
210
- },
211
- newsletterUpdateName: async (jid, name) => {
212
- await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
213
- updates: { name, settings: null }
214
- });
215
- },
216
- newsletterUpdatePicture: async (jid, content) => {
217
- const { img } = await (0, Utils_1.generateProfilePicture)(content);
218
- await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
219
- updates: { picture: img.toString('base64'), settings: null }
220
- });
221
- },
222
- newsletterRemovePicture: async (jid) => {
223
- await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
224
- updates: { picture: '', settings: null }
225
- });
226
- },
227
- newsletterUnfollow: async (jid) => {
228
- await newsletterWMexQuery(jid, Types_1.QueryIds.UNFOLLOW);
229
- },
230
- newsletterFollow: async (jid) => {
231
- await newsletterWMexQuery(jid, Types_1.QueryIds.FOLLOW);
232
- },
233
- newsletterUnmute: async (jid) => {
234
- await newsletterWMexQuery(jid, Types_1.QueryIds.UNMUTE);
235
- },
236
- newsletterMute: async (jid) => {
237
- await newsletterWMexQuery(jid, Types_1.QueryIds.MUTE);
238
- },
239
- newsletterAction: async (jid, type) => {
240
- await newsletterWMexQuery(jid, type.toUpperCase());
241
- },
242
- newsletterCreate: async (name, description, reaction_codes = "ALL") => {
243
- //TODO: Implement TOS system wide for Meta AI, communities, and here etc.
244
- /**tos query */
245
- await query({
246
- tag: 'iq',
247
- attrs: {
248
- to: WABinary_1.S_WHATSAPP_NET,
249
- xmlns: 'tos',
250
- id: generateMessageTag(),
251
- type: 'set'
252
- },
253
- content: [
254
- {
255
- tag: 'notice',
256
- attrs: {
257
- id: '20601218',
258
- stage: '5'
259
- },
260
- content: []
261
- }
262
- ]
263
- });
264
- const result = await newsletterWMexQuery(undefined, Types_1.QueryIds.CREATE, {
265
- input: { name, description, settings: { 'reaction_codes': { value: reaction_codes.toUpperCase() } } }
266
- });
267
- return (0, exports.extractNewsletterMetadata)(result, true);
268
- },
269
- newsletterMetadata: async (type, key, role) => {
270
- const result = await newsletterWMexQuery(undefined, Types_1.QueryIds.METADATA, {
271
- input: {
272
- key,
273
- type: type.toUpperCase(),
274
- 'view_role': role || 'GUEST'
275
- },
276
- 'fetch_viewer_metadata': true,
277
- 'fetch_full_image': true,
278
- 'fetch_creation_time': true
279
- });
280
- return (0, exports.extractNewsletterMetadata)(result);
281
- },
282
- newsletterAdminCount: async (jid) => {
283
- var _a, _b;
284
- const result = await newsletterWMexQuery(jid, Types_1.QueryIds.ADMIN_COUNT);
285
- const buff = (_b = (_a = (0, WABinary_1.getBinaryNodeChild)(result, 'result')) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.toString();
286
- return JSON.parse(buff).data[Types_1.XWAPaths.ADMIN_COUNT].admin_count;
287
- },
288
- /**user is Lid, not Jid */
289
- newsletterChangeOwner: async (jid, user) => {
290
- await newsletterWMexQuery(jid, Types_1.QueryIds.CHANGE_OWNER, {
291
- 'user_id': user
292
- });
293
- },
294
- /**user is Lid, not Jid */
295
- newsletterDemote: async (jid, user) => {
296
- await newsletterWMexQuery(jid, Types_1.QueryIds.DEMOTE, {
297
- 'user_id': user
298
- });
299
- },
300
- newsletterDelete: async (jid) => {
301
- await newsletterWMexQuery(jid, Types_1.QueryIds.DELETE);
302
- },
303
- /**if code wasn't passed, the reaction will be removed (if is reacted) */
304
- newsletterReactMessage: async (jid, serverId, code) => {
305
- await query({
306
- tag: 'message',
307
- attrs: { to: jid, ...(!code ? { edit: '7' } : {}), type: 'reaction', 'server_id': serverId, id: (0, Utils_1.generateMessageID)() },
308
- content: [{
309
- tag: 'reaction',
310
- attrs: code ? { code } : {}
311
- }]
312
- });
313
- },
314
- newsletterFetchMessages: async (type, key, count, after) => {
315
- const result = await newsletterQuery(WABinary_1.S_WHATSAPP_NET, 'get', [
316
- {
317
- tag: 'messages',
318
- attrs: { type, ...(type === 'invite' ? { key } : { jid: key }), count: count.toString(), after: (after === null || after === void 0 ? void 0 : after.toString()) || '100' }
319
- }
320
- ]);
321
- return await parseFetchedUpdates(result, 'messages');
322
- },
323
- newsletterFetchUpdates: async (jid, count, after, since) => {
324
- const result = await newsletterQuery(jid, 'get', [
325
- {
326
- tag: 'message_updates',
327
- attrs: { count: count.toString(), after: (after === null || after === void 0 ? void 0 : after.toString()) || '100', since: (since === null || since === void 0 ? void 0 : since.toString()) || '0' }
328
- }
329
- ]);
330
- return await parseFetchedUpdates(result, 'updates');
331
- }
332
- };
333
- };
334
- exports.makeNewsletterSocket = makeNewsletterSocket;
335
- const extractNewsletterMetadata = (node, isCreate) => {
336
- const result = WABinary_1.getBinaryNodeChild(node, 'result')?.content?.toString()
337
- const metadataPath = JSON.parse(result).data[isCreate ? Types_1.XWAPaths.CREATE : Types_1.XWAPaths.NEWSLETTER]
338
-
339
- const metadata = {
340
- id: metadataPath?.id,
341
- state: metadataPath?.state?.type,
342
- creation_time: +metadataPath?.thread_metadata?.creation_time,
343
- name: metadataPath?.thread_metadata?.name?.text,
344
- nameTime: +metadataPath?.thread_metadata?.name?.update_time,
345
- description: metadataPath?.thread_metadata?.description?.text,
346
- descriptionTime: +metadataPath?.thread_metadata?.description?.update_time,
347
- invite: metadataPath?.thread_metadata?.invite,
348
- picture: Utils_1.getUrlFromDirectPath(metadataPath?.thread_metadata?.picture?.direct_path || ''),
349
- preview: Utils_1.getUrlFromDirectPath(metadataPath?.thread_metadata?.preview?.direct_path || ''),
350
- reaction_codes: metadataPath?.thread_metadata?.settings?.reaction_codes?.value,
351
- subscribers: +metadataPath?.thread_metadata?.subscribers_count,
352
- verification: metadataPath?.thread_metadata?.verification,
353
- viewer_metadata: metadataPath?.viewer_metadata
354
- }
355
- return metadata
356
- }
357
- exports.extractNewsletterMetadata = extractNewsletterMetadata;
@@ -1,267 +0,0 @@
1
- /// <reference types="node" />
2
- import { AxiosRequestConfig } from 'axios';
3
- import { KeyPair, SignedKeyPair, SocketConfig } from '../Types';
4
- export declare const makeRegistrationSocket: (config: SocketConfig) => {
5
- register: (code: string) => Promise<ExistsResponse>;
6
- requestRegistrationCode: (registrationOptions?: RegistrationOptions) => Promise<ExistsResponse>;
7
- logger: import("pino").Logger<import("pino").LoggerOptions>;
8
- getOrderDetails: (orderId: string, tokenBase64: string) => Promise<import("../Types").OrderDetails>;
9
- getCatalog: ({ jid, limit, cursor }: import("../Types").GetCatalogOptions) => Promise<{
10
- products: import("../Types").Product[];
11
- nextPageCursor: string | undefined;
12
- }>;
13
- getCollections: (jid?: string | undefined, limit?: number) => Promise<{
14
- collections: import("../Types").CatalogCollection[];
15
- }>;
16
- productCreate: (create: import("../Types").ProductCreate) => Promise<import("../Types").Product>;
17
- productDelete: (productIds: string[]) => Promise<{
18
- deleted: number;
19
- }>;
20
- productUpdate: (productId: string, update: import("../Types").ProductUpdate) => Promise<import("../Types").Product>;
21
- sendMessageAck: ({ tag, attrs, content }: import("../WABinary").BinaryNode) => Promise<void>;
22
- sendRetryRequest: (node: import("../WABinary").BinaryNode, forceIncludeKeys?: boolean) => Promise<void>;
23
- offerCall: (toJid: string, isVideo?: boolean) => Promise<{
24
- id: string;
25
- to: string;
26
- }>;
27
- rejectCall: (callId: string, callFrom: string) => Promise<void>;
28
- getPrivacyTokens: (jids: string[]) => Promise<import("../WABinary").BinaryNode>;
29
- assertSessions: (jids: string[], force: boolean) => Promise<boolean>;
30
- relayMessage: (jid: string, message: import("../Types").WAProto.IMessage, { messageId: msgId, participant, additionalAttributes, additionalNodes, useUserDevicesCache, cachedGroupMetadata, statusJidList }: import("../Types").MessageRelayOptions) => Promise<string>;
31
- sendReceipt: (jid: string, participant: string | undefined, messageIds: string[], type: import("../Types").MessageReceiptType) => Promise<void>;
32
- sendReceipts: (keys: import("../Types").WAProto.IMessageKey[], type: import("../Types").MessageReceiptType) => Promise<void>;
33
- getButtonArgs: (message: import("../Types").WAProto.IMessage) => {
34
- [key: string]: string;
35
- };
36
- readMessages: (keys: import("../Types").WAProto.IMessageKey[]) => Promise<void>;
37
- refreshMediaConn: (forceGet?: boolean) => Promise<import("../Types").MediaConnInfo>;
38
- getUSyncDevices: (jids: string[], useCache: boolean, ignoreZeroDevices: boolean) => Promise<import("../WABinary").JidWithDevice[]>;
39
- createParticipantNodes: (jids: string[], message: import("../Types").WAProto.IMessage, extraAttrs?: {
40
- [key: string]: string;
41
- } | undefined) => Promise<{
42
- nodes: import("../WABinary").BinaryNode[];
43
- shouldIncludeDeviceIdentity: boolean;
44
- }>;
45
- waUploadToServer: import("../Types").WAMediaUploadFunction;
46
- fetchPrivacySettings: (force?: boolean) => Promise<{
47
- [_: string]: string;
48
- }>;
49
- updateMediaMessage: (message: import("../Types").WAProto.IWebMessageInfo) => Promise<import("../Types").WAProto.IWebMessageInfo>;
50
- sendMessage: (jid: string, content: import("../Types").AnyMessageContent, options?: import("../Types").MiscMessageGenerationOptions) => Promise<import("../Types").WAProto.WebMessageInfo | undefined>;
51
- subscribeNewsletterUpdates: (jid: string) => Promise<{
52
- duration: string;
53
- }>;
54
- newsletterReactionMode: (jid: string, mode: import("../Types").NewsletterReactionMode) => Promise<void>;
55
- newsletterUpdateDescription: (jid: string, description?: string | undefined) => Promise<void>;
56
- newsletterUpdateName: (jid: string, name: string) => Promise<void>;
57
- newsletterUpdatePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise<void>;
58
- newsletterRemovePicture: (jid: string) => Promise<void>;
59
- newsletterUnfollow: (jid: string) => Promise<void>;
60
- newsletterFollow: (jid: string) => Promise<void>;
61
- newsletterUnmute: (jid: string) => Promise<void>;
62
- newsletterMute: (jid: string) => Promise<void>;
63
- newsletterAction: (jid: string, type: "mute" | "follow" | "unfollow" | "unmute") => Promise<void>;
64
- newsletterCreate: (name: string, description: string, reaction_codes: string) => Promise<import("../Types").NewsletterMetadata>;
65
- newsletterMetadata: (type: "invite" | "jid", key: string, role?: import("../Types").NewsletterViewRole | undefined) => Promise<import("../Types").NewsletterMetadata>;
66
- newsletterAdminCount: (jid: string) => Promise<number>;
67
- newsletterChangeOwner: (jid: string, user: string) => Promise<void>;
68
- newsletterDemote: (jid: string, user: string) => Promise<void>;
69
- newsletterDelete: (jid: string) => Promise<void>;
70
- newsletterReactMessage: (jid: string, serverId: string, code?: string | undefined) => Promise<void>;
71
- newsletterFetchMessages: (type: "invite" | "jid", key: string, count: number, after?: number | undefined) => Promise<import("../Types").NewsletterFetchedUpdate[]>;
72
- newsletterFetchUpdates: (jid: string, count: number, after?: number | undefined, since?: number | undefined) => Promise<import("../Types").NewsletterFetchedUpdate[]>;
73
- groupMetadata: (jid: string) => Promise<import("../Types").GroupMetadata>;
74
- groupCreate: (subject: string, participants: string[]) => Promise<import("../Types").GroupMetadata>;
75
- groupLeave: (id: string) => Promise<void>;
76
- /** the network code of your mobile network
77
- * @see {@link https://de.wikipedia.org/wiki/Mobile_Network_Code}
78
- */
79
- groupUpdateSubject: (jid: string, subject: string) => Promise<void>;
80
- groupRequestParticipantsList: (jid: string) => Promise<{
81
- [key: string]: string;
82
- }[]>;
83
- groupRequestParticipantsUpdate: (jid: string, participants: string[], action: "reject" | "approve") => Promise<{
84
- status: string;
85
- jid: string;
86
- }[]>;
87
- groupParticipantsUpdate: (jid: string, participants: string[], action: import("../Types").ParticipantAction) => Promise<{
88
- status: string;
89
- jid: string;
90
- content: import("../WABinary").BinaryNode;
91
- }[]>;
92
- groupUpdateDescription: (jid: string, description?: string | undefined) => Promise<void>;
93
- groupInviteCode: (jid: string) => Promise<string | undefined>;
94
- groupRevokeInvite: (jid: string) => Promise<string | undefined>;
95
- groupAcceptInvite: (code: string) => Promise<string | undefined>;
96
- groupAcceptInviteV4: (key: string | import("../Types").WAProto.IMessageKey, inviteMessage: import("../Types").WAProto.Message.IGroupInviteMessage) => Promise<string>;
97
- groupGetInviteInfo: (code: string) => Promise<import("../Types").GroupMetadata>;
98
- groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
99
- groupSettingUpdate: (jid: string, setting: "announcement" | "locked" | "not_announcement" | "unlocked") => Promise<void>;
100
- groupMemberAddMode: (jid: string, mode: "all_member_add" | "admin_add") => Promise<void>;
101
- groupJoinApprovalMode: (jid: string, mode: "on" | "off") => Promise<void>;
102
- groupFetchAllParticipating: () => Promise<{
103
- [_: string]: import("../Types").GroupMetadata;
104
- }>;
105
- processingMutex: {
106
- mutex<T>(code: () => T | Promise<T>): Promise<T>;
107
- };
108
- upsertMessage: (msg: import("../Types").WAProto.IWebMessageInfo, type: import("../Types").MessageUpsertType) => Promise<void>;
109
- appPatch: (patchCreate: import("../Types").WAPatchCreate) => Promise<void>;
110
- sendPresenceUpdate: (type: import("../Types").WAPresence, toJid?: string | undefined) => Promise<void>;
111
- presenceSubscribe: (toJid: string, tcToken?: Buffer | undefined) => Promise<void>;
112
- profilePictureUrl: (jid: string, type?: "image" | "preview", timeoutMs?: number | undefined) => Promise<string | undefined>;
113
- onWhatsApp: (...jids: string[]) => Promise<{
114
- exists: boolean;
115
- jid: string;
116
- }[]>;
117
- fetchBlocklist: () => Promise<string[]>;
118
- fetchStatus: (jid: string) => Promise<{
119
- status: string | undefined;
120
- setAt: Date;
121
- } | undefined>;
122
- updateProfilePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise<void>;
123
- removeProfilePicture: (jid: string) => Promise<void>;
124
- updateProfileStatus: (status: string) => Promise<void>;
125
- updateProfileName: (name: string) => Promise<void>;
126
- updateBlockStatus: (jid: string, action: "block" | "unblock") => Promise<void>;
127
- updateLastSeenPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
128
- updateOnlinePrivacy: (value: import("../Types").WAPrivacyOnlineValue) => Promise<void>;
129
- updateProfilePicturePrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
130
- updateStatusPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
131
- updateReadReceiptsPrivacy: (value: import("../Types").WAReadReceiptsValue) => Promise<void>;
132
- updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
133
- updateDefaultDisappearingMode: (duration: number) => Promise<void>;
134
- getBusinessProfile: (jid: string) => Promise<void | import("../Types").WABusinessProfile>;
135
- resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
136
- chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
137
- cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: string | number | undefined) => Promise<void>;
138
- addChatLabel: (jid: string, labelId: string) => Promise<void>;
139
- removeChatLabel: (jid: string, labelId: string) => Promise<void>;
140
- addMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
141
- removeMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
142
- star: (jid: string, messages: {
143
- id: string;
144
- fromMe?: boolean | undefined;
145
- }[], star: boolean) => Promise<void>;
146
- type: "md";
147
- ws: any;
148
- ev: import("../Types").BaileysEventEmitter & {
149
- process(handler: (events: Partial<import("../Types").BaileysEventMap>) => void | Promise<void>): () => void;
150
- buffer(): void;
151
- createBufferedFunction<A extends any[], T_1>(work: (...args: A) => Promise<T_1>): (...args: A) => Promise<T_1>;
152
- flush(force?: boolean | undefined): boolean;
153
- isBuffering(): boolean;
154
- };
155
- authState: {
156
- creds: import("../Types").AuthenticationCreds;
157
- keys: import("../Types").SignalKeyStoreWithTransaction;
158
- };
159
- signalRepository: import("../Types").SignalRepository;
160
- user: import("../Types").Contact | undefined;
161
- generateMessageTag: () => string;
162
- query: (node: import("../WABinary").BinaryNode, timeoutMs?: number | undefined) => Promise<import("../WABinary").BinaryNode>;
163
- waitForMessage: <T_2>(msgId: string, timeoutMs?: number | undefined) => Promise<T_2>;
164
- waitForSocketOpen: () => Promise<void>;
165
- sendRawMessage: (data: Uint8Array | Buffer) => Promise<void>;
166
- sendNode: (frame: import("../WABinary").BinaryNode) => Promise<void>;
167
- logout: (msg?: string | undefined) => Promise<void>;
168
- end: (error: Error | undefined) => void;
169
- onUnexpectedError: (err: Error | import("@hapi/boom").Boom<any>, msg: string) => void;
170
- uploadPreKeys: (count?: number) => Promise<void>;
171
- uploadPreKeysToServerIfRequired: () => Promise<void>;
172
- requestPairingCode: (phoneNumber: string) => Promise<string>;
173
- waitForConnectionUpdate: (check: (u: Partial<import("../Types").ConnectionState>) => boolean | undefined, timeoutMs?: number | undefined) => Promise<void>;
174
- sendWAMBuffer: (wamBuffer: Buffer) => Promise<import("../WABinary").BinaryNode>;
175
- };
176
- export interface RegistrationData {
177
- registrationId: number;
178
- signedPreKey: SignedKeyPair;
179
- noiseKey: KeyPair;
180
- signedIdentityKey: KeyPair;
181
- identityId: Buffer;
182
- phoneId: string;
183
- deviceId: string;
184
- backupToken: Buffer;
185
- }
186
- export interface RegistrationOptions {
187
- /** your phone number */
188
- phoneNumber?: string;
189
- /** the country code of your phone number */
190
- phoneNumberCountryCode: string;
191
- /** your phone number without country code */
192
- phoneNumberNationalNumber: string;
193
- /** the country code of your mobile network
194
- * @see {@link https://de.wikipedia.org/wiki/Mobile_Country_Code}
195
- */
196
- phoneNumberMobileCountryCode: string;
197
- /** the network code of your mobile network
198
- * @see {@link https://de.wikipedia.org/wiki/Mobile_Network_Code}
199
- */
200
- phoneNumberMobileNetworkCode: string;
201
- /**
202
- * How to send the one time code
203
- */
204
- method?: 'sms' | 'voice' | 'captcha';
205
- /**
206
- * The captcha code if it was requested
207
- */
208
- captcha?: string;
209
- }
210
- export type RegistrationParams = RegistrationData & RegistrationOptions;
211
- export declare function registrationParams(params: RegistrationParams): {
212
- cc: string;
213
- in: string;
214
- Rc: string;
215
- lg: string;
216
- lc: string;
217
- mistyped: string;
218
- authkey: string;
219
- e_regid: string;
220
- e_keytype: string;
221
- e_ident: string;
222
- e_skey_id: string;
223
- e_skey_val: string;
224
- e_skey_sig: string;
225
- fdid: string;
226
- network_ratio_type: string;
227
- expid: string;
228
- simnum: string;
229
- hasinrc: string;
230
- pid: string;
231
- id: string;
232
- backup_token: string;
233
- token: string;
234
- fraud_checkpoint_code: string | undefined;
235
- };
236
- /**
237
- * Requests a registration code for the given phone number.
238
- */
239
- export declare function mobileRegisterCode(params: RegistrationParams, fetchOptions?: AxiosRequestConfig): Promise<ExistsResponse>;
240
- export declare function mobileRegisterExists(params: RegistrationParams, fetchOptions?: AxiosRequestConfig): Promise<ExistsResponse>;
241
- /**
242
- * Registers the phone number on whatsapp with the received OTP code.
243
- */
244
- export declare function mobileRegister(params: RegistrationParams & {
245
- code: string;
246
- }, fetchOptions?: AxiosRequestConfig): Promise<ExistsResponse>;
247
- /**
248
- * Encrypts the given string as AEAD aes-256-gcm with the public whatsapp key and a random keypair.
249
- */
250
- export declare function mobileRegisterEncrypt(data: string): string;
251
- export declare function mobileRegisterFetch(path: string, opts?: AxiosRequestConfig): Promise<ExistsResponse>;
252
- export interface ExistsResponse {
253
- status: 'fail' | 'sent';
254
- voice_length?: number;
255
- voice_wait?: number;
256
- sms_length?: number;
257
- sms_wait?: number;
258
- reason?: 'incorrect' | 'missing_param' | 'code_checkpoint';
259
- login?: string;
260
- flash_type?: number;
261
- ab_hash?: string;
262
- ab_key?: string;
263
- exp_cfg?: string;
264
- lid?: string;
265
- image_blob?: string;
266
- audio_blob?: string;
267
- }