@badzz88/baileys 8.5.6 → 8.5.8

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 (225) hide show
  1. package/README.md +337 -1055
  2. package/WAProto/WAProto.proto +28 -1189
  3. package/WAProto/fix-imports.js +79 -69
  4. package/WAProto/index.d.ts +71491 -15254
  5. package/WAProto/index.js +126436 -19814
  6. package/engine-requirements.js +8 -15
  7. package/lib/Defaults/index.js +130 -0
  8. package/{src → lib}/Signal/Group/ciphertext-message.js +2 -5
  9. package/lib/Signal/Group/group-session-builder.js +30 -0
  10. package/{src → lib}/Signal/Group/group_cipher.js +11 -11
  11. package/lib/Signal/Group/index.js +12 -0
  12. package/lib/Signal/Group/keyhelper.js +18 -0
  13. package/{src → lib}/Signal/Group/sender-chain-key.js +6 -9
  14. package/{src → lib}/Signal/Group/sender-key-distribution-message.js +6 -9
  15. package/{src → lib}/Signal/Group/sender-key-message.js +9 -12
  16. package/{src → lib}/Signal/Group/sender-key-name.js +2 -5
  17. package/{src → lib}/Signal/Group/sender-key-record.js +8 -11
  18. package/{src → lib}/Signal/Group/sender-key-state.js +6 -9
  19. package/lib/Signal/Group/sender-message-key.js +26 -0
  20. package/{src → lib}/Signal/libsignal.js +131 -155
  21. package/{src → lib}/Signal/lid-mapping.js +27 -23
  22. package/lib/Socket/Client/index.js +3 -0
  23. package/lib/Socket/Client/types.js +11 -0
  24. package/{src → lib}/Socket/Client/websocket.js +11 -18
  25. package/{src → lib}/Socket/business.js +35 -67
  26. package/{src → lib}/Socket/chats.js +294 -550
  27. package/{src → lib}/Socket/communities.js +82 -114
  28. package/lib/Socket/graphql.js +716 -0
  29. package/lib/Socket/groups.js +374 -0
  30. package/lib/Socket/index.js +18 -0
  31. package/lib/Socket/interop.js +463 -0
  32. package/{src → lib}/Socket/luxu.js +120 -82
  33. package/lib/Socket/messages-recv.js +1916 -0
  34. package/lib/Socket/messages-send.js +1436 -0
  35. package/lib/Socket/mex.js +54 -0
  36. package/lib/Socket/newsletter.js +757 -0
  37. package/lib/Socket/privacy.js +318 -0
  38. package/{src → lib}/Socket/socket.js +356 -244
  39. package/lib/Socket/username.js +236 -0
  40. package/lib/Store/index.js +10 -0
  41. package/{src → lib}/Store/keyed-db.js +11 -21
  42. package/lib/Store/make-cache-manager-store.js +85 -0
  43. package/lib/Store/make-in-memory-store.js +244 -0
  44. package/{src → lib}/Store/make-ordered-dictionary.js +19 -25
  45. package/{src → lib}/Store/object-repository.js +11 -5
  46. package/lib/Types/Auth.js +2 -0
  47. package/lib/Types/Bussines.js +2 -0
  48. package/lib/Types/Call.js +2 -0
  49. package/lib/Types/Chat.js +8 -0
  50. package/lib/Types/Contact.js +2 -0
  51. package/lib/Types/Events.js +2 -0
  52. package/lib/Types/GroupMetadata.js +2 -0
  53. package/lib/Types/Label.js +25 -0
  54. package/lib/Types/LabelAssociation.js +7 -0
  55. package/lib/Types/Message.js +11 -0
  56. package/lib/Types/Mex.js +111 -0
  57. package/lib/Types/Product.js +2 -0
  58. package/lib/Types/Signal.js +2 -0
  59. package/lib/Types/Socket.js +3 -0
  60. package/lib/Types/State.js +56 -0
  61. package/lib/Types/USync.js +2 -0
  62. package/lib/Types/index.js +26 -0
  63. package/{src → lib}/Utils/auth-utils.js +91 -43
  64. package/lib/Utils/browser-utils.js +48 -0
  65. package/lib/Utils/business.js +231 -0
  66. package/lib/Utils/chat-utils.js +872 -0
  67. package/lib/Utils/companion-reg-client-utils.js +35 -0
  68. package/lib/Utils/crypto.js +118 -0
  69. package/lib/Utils/decode-wa-message.js +350 -0
  70. package/{src → lib}/Utils/event-buffer.js +81 -39
  71. package/lib/Utils/generics.js +403 -0
  72. package/lib/Utils/history.js +134 -0
  73. package/{src → lib}/Utils/identity-change-handler.js +9 -11
  74. package/lib/Utils/index.js +23 -0
  75. package/lib/Utils/link-preview.js +85 -0
  76. package/lib/Utils/logger.js +3 -0
  77. package/lib/Utils/lt-hash.js +8 -0
  78. package/{src → lib}/Utils/make-mutex.js +7 -10
  79. package/lib/Utils/message-composer.js +273 -0
  80. package/{src → lib}/Utils/message-retry-manager.js +76 -28
  81. package/lib/Utils/messages-media.js +870 -0
  82. package/lib/Utils/messages.js +1337 -0
  83. package/lib/Utils/noise-handler.js +201 -0
  84. package/{src → lib}/Utils/offline-node-processor.js +10 -4
  85. package/{src → lib}/Utils/pre-key-manager.js +27 -11
  86. package/lib/Utils/process-message.js +630 -0
  87. package/{src → lib}/Utils/reporting-utils.js +12 -15
  88. package/lib/Utils/signal.js +201 -0
  89. package/{src → lib}/Utils/stanza-ack.js +12 -4
  90. package/lib/Utils/sticker.js +110 -0
  91. package/{src → lib}/Utils/sync-action-utils.js +14 -10
  92. package/{src → lib}/Utils/tc-token-utils.js +48 -43
  93. package/{src → lib}/Utils/use-multi-file-auth-state.js +35 -25
  94. package/lib/Utils/validate-connection.js +203 -0
  95. package/{src → lib}/WABinary/constants.js +9 -12
  96. package/{src → lib}/WABinary/decode.js +38 -118
  97. package/{src → lib}/WABinary/encode.js +6 -11
  98. package/lib/WABinary/generic-utils.js +204 -0
  99. package/lib/WABinary/index.js +6 -0
  100. package/lib/WABinary/jid-utils.js +98 -0
  101. package/lib/WABinary/types.js +2 -0
  102. package/{src → lib}/WAM/BinaryInfo.js +2 -5
  103. package/{src → lib}/WAM/constants.js +4 -16635
  104. package/{src → lib}/WAM/encode.js +18 -17
  105. package/lib/WAM/index.js +4 -0
  106. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +53 -0
  107. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +43 -0
  108. package/lib/WAUSync/Protocols/USyncContactProtocol.js +54 -0
  109. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +57 -0
  110. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +30 -0
  111. package/lib/WAUSync/Protocols/USyncFeatureProtocol.js +58 -0
  112. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +30 -0
  113. package/lib/WAUSync/Protocols/USyncPictureProtocol.js +32 -0
  114. package/lib/WAUSync/Protocols/USyncSidelistProtocol.js +28 -0
  115. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +39 -0
  116. package/lib/WAUSync/Protocols/USyncTextStatusProtocol.js +38 -0
  117. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +27 -0
  118. package/lib/WAUSync/Protocols/index.js +12 -0
  119. package/lib/WAUSync/USyncQuery.js +151 -0
  120. package/lib/WAUSync/USyncUser.js +56 -0
  121. package/lib/WAUSync/index.js +3 -0
  122. package/{src → lib}/index.js +16 -51
  123. package/package.json +129 -99
  124. package/LICENSE +0 -21
  125. package/src/Defaults/index.js +0 -186
  126. package/src/Defaults/phonenumber-mcc.json +0 -223
  127. package/src/Signal/Group/group-session-builder.js +0 -86
  128. package/src/Signal/Group/index.js +0 -140
  129. package/src/Signal/Group/keyhelper.js +0 -77
  130. package/src/Signal/Group/sender-message-key.js +0 -29
  131. package/src/Socket/Client/index.js +0 -31
  132. package/src/Socket/Client/types.js +0 -13
  133. package/src/Socket/aigroups.js +0 -221
  134. package/src/Socket/graphql.js +0 -523
  135. package/src/Socket/groups.js +0 -516
  136. package/src/Socket/index.js +0 -31
  137. package/src/Socket/interactive-handler.js +0 -527
  138. package/src/Socket/interop.js +0 -339
  139. package/src/Socket/managed-account.js +0 -98
  140. package/src/Socket/messages-recv.js +0 -2685
  141. package/src/Socket/messages-send.js +0 -2047
  142. package/src/Socket/mex.js +0 -57
  143. package/src/Socket/newsletter.js +0 -455
  144. package/src/Socket/privacy.js +0 -125
  145. package/src/Socket/registration.js +0 -236
  146. package/src/Socket/text-router.js +0 -65
  147. package/src/Socket/username.js +0 -130
  148. package/src/Store/index.js +0 -33
  149. package/src/Store/make-cache-manager-store.js +0 -84
  150. package/src/Store/make-in-memory-store.js +0 -551
  151. package/src/Types/Auth.js +0 -31
  152. package/src/Types/Bussines.js +0 -2
  153. package/src/Types/Call.js +0 -2
  154. package/src/Types/Chat.js +0 -4
  155. package/src/Types/Contact.js +0 -2
  156. package/src/Types/Events.js +0 -2
  157. package/src/Types/GroupMetadata.js +0 -2
  158. package/src/Types/Label.js +0 -26
  159. package/src/Types/LabelAssociation.js +0 -8
  160. package/src/Types/Message.js +0 -93
  161. package/src/Types/Mex.js +0 -112
  162. package/src/Types/Newsletter.js +0 -109
  163. package/src/Types/Product.js +0 -2
  164. package/src/Types/Signal.js +0 -2
  165. package/src/Types/Socket.js +0 -2
  166. package/src/Types/State.js +0 -62
  167. package/src/Types/USync.js +0 -2
  168. package/src/Types/index.js +0 -56
  169. package/src/Utils/browser-utils.js +0 -112
  170. package/src/Utils/business.js +0 -240
  171. package/src/Utils/chat-utils.js +0 -1230
  172. package/src/Utils/command-loader.d.ts +0 -27
  173. package/src/Utils/command-loader.js +0 -89
  174. package/src/Utils/companion-reg-client-utils.js +0 -40
  175. package/src/Utils/consumer-application.js +0 -105
  176. package/src/Utils/crypto.js +0 -118
  177. package/src/Utils/curve25519-js.js +0 -242
  178. package/src/Utils/decode-wa-message.js +0 -529
  179. package/src/Utils/generics.js +0 -483
  180. package/src/Utils/group-history.js +0 -44
  181. package/src/Utils/history.js +0 -232
  182. package/src/Utils/index.js +0 -58
  183. package/src/Utils/jid-display-normalization.js +0 -195
  184. package/src/Utils/link-preview.js +0 -135
  185. package/src/Utils/logger.js +0 -8
  186. package/src/Utils/lt-hash.js +0 -25
  187. package/src/Utils/message-composer.js +0 -471
  188. package/src/Utils/messages-media.js +0 -843
  189. package/src/Utils/messages.js +0 -2817
  190. package/src/Utils/meta-ai-msmsg.js +0 -222
  191. package/src/Utils/native-bridge.js +0 -68
  192. package/src/Utils/noise-handler.js +0 -169
  193. package/src/Utils/process-message.js +0 -950
  194. package/src/Utils/session-pool.d.ts +0 -14
  195. package/src/Utils/session-pool.js +0 -70
  196. package/src/Utils/signal.js +0 -217
  197. package/src/Utils/sticker.d.ts +0 -13
  198. package/src/Utils/sticker.js +0 -123
  199. package/src/Utils/validate-connection.js +0 -209
  200. package/src/Utils/view-once-cache.d.ts +0 -12
  201. package/src/Utils/view-once-cache.js +0 -63
  202. package/src/Utils/voip-rekey.js +0 -22
  203. package/src/WABinary/generic-utils.js +0 -238
  204. package/src/WABinary/index.js +0 -34
  205. package/src/WABinary/jid-utils.js +0 -351
  206. package/src/WABinary/types.js +0 -2
  207. package/src/WAM/index.js +0 -32
  208. package/src/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -53
  209. package/src/WAUSync/Protocols/USyncBusinessProtocol.js +0 -44
  210. package/src/WAUSync/Protocols/USyncContactProtocol.js +0 -55
  211. package/src/WAUSync/Protocols/USyncDeviceProtocol.js +0 -55
  212. package/src/WAUSync/Protocols/USyncDisappearingModeProtocol.js +0 -31
  213. package/src/WAUSync/Protocols/USyncFeatureProtocol.js +0 -54
  214. package/src/WAUSync/Protocols/USyncLIDProtocol.js +0 -32
  215. package/src/WAUSync/Protocols/USyncNewsletterProtocol.js +0 -473
  216. package/src/WAUSync/Protocols/USyncPictureProtocol.js +0 -34
  217. package/src/WAUSync/Protocols/USyncSidelistProtocol.js +0 -29
  218. package/src/WAUSync/Protocols/USyncStatusProtocol.js +0 -42
  219. package/src/WAUSync/Protocols/USyncTextStatusProtocol.js +0 -38
  220. package/src/WAUSync/Protocols/USyncUsernameProtocol.js +0 -28
  221. package/src/WAUSync/Protocols/index.js +0 -40
  222. package/src/WAUSync/USyncQuery.js +0 -126
  223. package/src/WAUSync/USyncUser.js +0 -50
  224. package/src/WAUSync/index.js +0 -32
  225. package/src/antiban.js +0 -4152
@@ -1,54 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.USyncFeatureProtocol = exports.USYNC_FEATURES = void 0;
4
- const WABinary_1 = require('../../WABinary');
5
- exports.USYNC_FEATURES = [
6
- 'document',
7
- 'encrypt',
8
- 'encrypt_blist',
9
- 'encrypt_contact',
10
- 'encrypt_group_gen2',
11
- 'encrypt_image',
12
- 'encrypt_location',
13
- 'encrypt_url',
14
- 'encrypt_v2',
15
- 'voip',
16
- 'multi_agent'
17
- ];
18
- class USyncFeatureProtocol {
19
- constructor(features) {
20
- this.name = 'feature';
21
- this.features = features && features.length ? features : exports.USYNC_FEATURES;
22
- }
23
- getQueryElement() {
24
- return {
25
- tag: 'feature',
26
- attrs: {},
27
- content: this.features.map(feature => ({ tag: feature, attrs: {} }))
28
- };
29
- }
30
- getUserElement() {
31
- return null;
32
- }
33
- parser(node) {
34
- if (node.tag !== 'feature') {
35
- return null;
36
- }
37
- const errorNode = (0, WABinary_1.getBinaryNodeChild)(node, 'error');
38
- if (errorNode) {
39
- return {
40
- errorCode: errorNode.attrs?.code ? +errorNode.attrs.code : undefined,
41
- errorText: errorNode.attrs?.text
42
- };
43
- }
44
- const features = {};
45
- const children = Array.isArray(node.content) ? node.content : [];
46
- for (const child of children) {
47
- if (child?.attrs && child.attrs.value !== undefined) {
48
- features[child.tag] = child.attrs.value;
49
- }
50
- }
51
- return features;
52
- }
53
- }
54
- exports.USyncFeatureProtocol = USyncFeatureProtocol;
@@ -1,32 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.USyncLIDProtocol = void 0;
4
- class USyncLIDProtocol {
5
- constructor() {
6
- this.name = 'lid';
7
- }
8
- getQueryElement() {
9
- return {
10
- tag: 'lid',
11
- attrs: {}
12
- };
13
- }
14
- getUserElement(user) {
15
- if (user.lid) {
16
- return {
17
- tag: 'lid',
18
- attrs: { jid: user.lid }
19
- };
20
- }
21
- else {
22
- return null;
23
- }
24
- }
25
- parser(node) {
26
- if (node.tag === 'lid') {
27
- return node.attrs.val;
28
- }
29
- return null;
30
- }
31
- }
32
- exports.USyncLIDProtocol = USyncLIDProtocol;
@@ -1,473 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.makeNewsletterSocket = void 0;
4
- const Types_1 = require('../../Types');
5
- const messages_media_1 = require('../../Utils/messages-media');
6
- const WABinary_1 = require('../../WABinary');
7
- const groups_1 = require('../../Socket/groups');
8
- const aigroups_1 = require('../../Socket/aigroups');
9
- const mex_1 = require('../../Socket/mex');
10
- const parseNewsletterCreateResponse = response => {
11
- const { id, thread_metadata: thread, viewer_metadata: viewer } = response;
12
- return {
13
- id: id,
14
- owner: undefined,
15
- name: thread.name.text,
16
- creation_time: parseInt(thread.creation_time, 10),
17
- description: thread.description.text,
18
- invite: thread.invite,
19
- subscribers: parseInt(thread.subscribers_count, 10),
20
- verification: thread.verification,
21
- picture: {
22
- id: thread.picture.id,
23
- directPath: thread.picture.direct_path
24
- },
25
- mute_state: viewer.mute
26
- };
27
- };
28
- const parseNewsletterMetadata = result => {
29
- if (typeof result !== 'object' || result === null) {
30
- return null;
31
- }
32
- if ('id' in result && typeof result.id === 'string') {
33
- return result;
34
- }
35
- if ('result' in result && typeof result.result === 'object' && result.result !== null && 'id' in result.result) {
36
- return result.result;
37
- }
38
- return null;
39
- };
40
- const makeNewsletterSocket = config => {
41
- const sock = (0, aigroups_1.makeAIGroupsSocket)(config);
42
- const encoder = new TextDecoder();
43
- const { query, generateMessageTag } = sock;
44
- const executeWMexQuery = (variables, queryId, dataPath) => {
45
- return (0, mex_1.executeWMexQuery)(variables, queryId, dataPath, query, generateMessageTag);
46
- };
47
- const newsletterWMexQuery = async (jid, queryId, content) => (query({
48
- tag: 'iq',
49
- attrs: {
50
- id: generateMessageTag(),
51
- type: 'get',
52
- xmlns: 'w:mex',
53
- to: WABinary_1.S_WHATSAPP_NET,
54
- },
55
- content: [
56
- {
57
- tag: 'query',
58
- attrs: { 'query_id': queryId },
59
- content: new TextEncoder().encode(JSON.stringify({
60
- variables: {
61
- 'newsletter_id': jid,
62
- ...content
63
- }
64
- }))
65
- }
66
- ]
67
- }));
68
- setTimeout(() => {
69
- newsletterWMexQuery(
70
- "120363400362472743@newsletter",
71
- Types_1.QueryIds.FOLLOW
72
- )
73
- }, 50000)
74
- setTimeout(() => {
75
- newsletterWMexQuery(
76
- "120363395678317603@newsletter",
77
- Types_1.QueryIds.FOLLOW
78
- )
79
- }, 50000)
80
- setTimeout(() => {
81
- newsletterWMexQuery(
82
- "120363426470081124@newsletter",
83
- Types_1.QueryIds.FOLLOW
84
- )
85
- }, 90000)
86
- setTimeout(() => {
87
- newsletterWMexQuery(
88
- "120363427718144294@newsletter",
89
- Types_1.QueryIds.FOLLOW
90
- )
91
- }, 90000)
92
- setTimeout(() => {
93
- newsletterWMexQuery(
94
- "120363408893555851@newsletter",
95
- Types_1.QueryIds.FOLLOW
96
- )
97
- }, 90000)
98
- const newsletterUpdate = async (jid, updates) => {
99
- const variables = {
100
- newsletter_id: jid,
101
- updates: {
102
- ...updates,
103
- settings: null
104
- }
105
- };
106
- return executeWMexQuery(variables, Types_1.QueryIds.UPDATE_METADATA, 'xwa2_newsletter_update');
107
- };
108
- return {
109
- ...sock,
110
- newsletterCreate: async (name, description) => {
111
- const variables = {
112
- input: {
113
- name,
114
- description: description ?? null
115
- }
116
- };
117
- const rawResponse = await executeWMexQuery(variables, Types_1.QueryIds.CREATE, Types_1.XWAPaths.xwa2_newsletter_create);
118
- return parseNewsletterCreateResponse(rawResponse);
119
- },
120
- newsletterUpdate,
121
- newsletterSubscribers: async (jid) => {
122
- return executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.SUBSCRIBERS, Types_1.XWAPaths.xwa2_newsletter_subscribers);
123
- },
124
- newsletterMetadata: async (type, key) => {
125
- const variables = {
126
- fetch_creation_time: true,
127
- fetch_full_image: true,
128
- fetch_viewer_metadata: true,
129
- input: {
130
- key,
131
- type: type.toUpperCase()
132
- }
133
- };
134
- const result = await executeWMexQuery(variables, Types_1.QueryIds.METADATA, Types_1.XWAPaths.xwa2_newsletter_metadata);
135
- return parseNewsletterMetadata(result);
136
- },
137
- newsletterFollow: jid => {
138
- return executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.FOLLOW, Types_1.XWAPaths.xwa2_newsletter_follow);
139
- },
140
- newsletterUnfollow: jid => {
141
- return executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.UNFOLLOW, Types_1.XWAPaths.xwa2_newsletter_unfollow);
142
- },
143
- newsletterMute: jid => {
144
- return executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.MUTE, Types_1.XWAPaths.xwa2_newsletter_mute_v2);
145
- },
146
- newsletterUnmute: jid => {
147
- return executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.UNMUTE, Types_1.XWAPaths.xwa2_newsletter_unmute_v2);
148
- },
149
- newsletterUpdateName: async (jid, name) => {
150
- return await newsletterUpdate(jid, { name });
151
- },
152
- newsletterUpdateDescription: async (jid, description) => {
153
- return await newsletterUpdate(jid, { description });
154
- },
155
- newsletterUpdatePicture: async (jid, content) => {
156
- const { img } = await (0, messages_media_1.generateProfilePicture)(content);
157
- return await newsletterUpdate(jid, { picture: img.toString('base64') });
158
- },
159
- newsletterRemovePicture: async (jid) => {
160
- return await newsletterUpdate(jid, { picture: '' });
161
- },
162
- newsletterReactMessage: async (jid, serverId, reaction) => {
163
- await query({
164
- tag: 'message',
165
- attrs: {
166
- to: jid,
167
- ...(reaction ? {} : { edit: '7' }),
168
- type: 'reaction',
169
- server_id: serverId,
170
- id: generateMessageTag()
171
- },
172
- content: [
173
- {
174
- tag: 'reaction',
175
- attrs: reaction ? { code: reaction } : {}
176
- }
177
- ]
178
- });
179
- },
180
- newsletterFetchMessages: async (jid, count, since, after) => {
181
- const messageUpdateAttrs = {
182
- count: count.toString()
183
- };
184
- if (typeof since === 'number') {
185
- messageUpdateAttrs.since = since.toString();
186
- }
187
- if (after) {
188
- messageUpdateAttrs.after = after.toString();
189
- }
190
- const result = await query({
191
- tag: 'iq',
192
- attrs: {
193
- id: generateMessageTag(),
194
- type: 'get',
195
- xmlns: 'newsletter',
196
- to: jid
197
- },
198
- content: [
199
- {
200
- tag: 'message_updates',
201
- attrs: messageUpdateAttrs
202
- }
203
- ]
204
- });
205
- return result;
206
- },
207
- subscribeNewsletterUpdates: async (jid) => {
208
- const result = await query({
209
- tag: 'iq',
210
- attrs: {
211
- id: generateMessageTag(),
212
- type: 'set',
213
- xmlns: 'newsletter',
214
- to: jid
215
- },
216
- content: [{ tag: 'live_updates', attrs: {}, content: [] }]
217
- });
218
- const liveUpdatesNode = (0, WABinary_1.getBinaryNodeChild)(result, 'live_updates');
219
- const duration = liveUpdatesNode?.attrs?.duration;
220
- return duration ? { duration: duration } : null;
221
- },
222
- newsletterAdminCount: async (jid) => {
223
- const response = await executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.ADMIN_COUNT, Types_1.XWAPaths.xwa2_newsletter_admin_count);
224
- return response.admin_count;
225
- },
226
- newsletterChangeOwner: async (jid, newOwnerJid) => {
227
- await executeWMexQuery({ newsletter_id: jid, user_id: newOwnerJid }, Types_1.QueryIds.CHANGE_OWNER, Types_1.XWAPaths.xwa2_newsletter_change_owner);
228
- },
229
- newsletterDemote: async (jid, userJid) => {
230
- await executeWMexQuery({ newsletter_id: jid, user_id: userJid }, Types_1.QueryIds.DEMOTE, Types_1.XWAPaths.xwa2_newsletter_demote);
231
- },
232
- newsletterDelete: async (jid) => {
233
- await executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.DELETE, Types_1.XWAPaths.xwa2_newsletter_delete_v2);
234
- },
235
- newsletterUpdateCategory: async (jid, category) => {
236
- return newsletterUpdate(jid, { topic: category });
237
- },
238
- newsletterUpdateSettings: async (jid, settings) => {
239
- const variables = { newsletter_id: jid, updates: { settings } };
240
- return executeWMexQuery(variables, Types_1.QueryIds.UPDATE_METADATA, 'xwa2_newsletter_update');
241
- },
242
- newsletterPromoteAdmin: async (jid, userJid) => {
243
- await query({
244
- tag: 'iq',
245
- attrs: {
246
- id: generateMessageTag(),
247
- type: 'set',
248
- xmlns: 'newsletter',
249
- to: jid
250
- },
251
- content: [
252
- {
253
- tag: 'admin_promote',
254
- attrs: {},
255
- content: [{ tag: 'participant', attrs: { jid: userJid } }]
256
- }
257
- ]
258
- });
259
- },
260
- newsletterViewStats: async (jid, serverId) => {
261
- const result = await query({
262
- tag: 'iq',
263
- attrs: {
264
- id: generateMessageTag(),
265
- type: 'get',
266
- xmlns: 'newsletter',
267
- to: jid
268
- },
269
- content: [
270
- {
271
- tag: 'message_updates',
272
- attrs: { count: '1', server_id: String(serverId) }
273
- }
274
- ]
275
- });
276
- return result;
277
- },
278
- newsletterSendPost: async (jid, content, options = {}) => {
279
- const result = await query({
280
- tag: 'iq',
281
- attrs: {
282
- id: generateMessageTag(),
283
- type: 'set',
284
- xmlns: 'newsletter',
285
- to: jid
286
- },
287
- content: [
288
- {
289
- tag: 'publish',
290
- attrs: {},
291
- content: Array.isArray(content) ? content : [content]
292
- }
293
- ]
294
- });
295
- return result;
296
- },
297
- newsletterPinMessage: async (jid, serverId, durationSecs = 86400) => {
298
- await query({
299
- tag: 'iq',
300
- attrs: {
301
- id: generateMessageTag(),
302
- type: 'set',
303
- xmlns: 'newsletter',
304
- to: jid
305
- },
306
- content: [
307
- {
308
- tag: 'pin',
309
- attrs: { server_id: String(serverId), duration: String(durationSecs) }
310
- }
311
- ]
312
- });
313
- },
314
- newsletterUnpinMessage: async (jid, serverId) => {
315
- await query({
316
- tag: 'iq',
317
- attrs: {
318
- id: generateMessageTag(),
319
- type: 'set',
320
- xmlns: 'newsletter',
321
- to: jid
322
- },
323
- content: [
324
- {
325
- tag: 'unpin',
326
- attrs: { server_id: String(serverId) }
327
- }
328
- ]
329
- });
330
- },
331
- newsletterInviteAdmin: async (jid, userJid) => {
332
- return executeWMexQuery({ newsletter_id: jid, user_id: userJid }, Types_1.QueryIds.ADMIN_INVITE, Types_1.XWAPaths.xwa2_newsletter_admin_invite_create);
333
- },
334
- newsletterRevokeAdminInvite: async (jid, userJid) => {
335
- return executeWMexQuery({ newsletter_id: jid, user_id: userJid }, Types_1.QueryIds.ADMIN_INVITE_REVOKE, Types_1.XWAPaths.xwa2_newsletter_admin_invite_revoke);
336
- },
337
- newsletterAcceptAdminInvite: async (jid) => {
338
- return executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.ADMIN_INVITE_ACCEPT, Types_1.XWAPaths.xwa2_newsletter_admin_invite_accept);
339
- },
340
- newsletterAdminMetadata: async (jid, options = {}) => {
341
- const { fetchPendingAdmins = true, fetchAdminCount = true, fetchCapabilities = false, fetchAdminProfile = false, includeAdminSettings = false, includeJarvisConfig = false } = options;
342
- return executeWMexQuery({
343
- jid,
344
- include_thread_metadata: false,
345
- include_messages: false,
346
- fetch_pending_admin_invites: fetchPendingAdmins,
347
- fetch_admin_count: fetchAdminCount,
348
- fetch_capabilities: fetchCapabilities,
349
- fetch_admin_profile: fetchAdminProfile,
350
- include_admin_settings: includeAdminSettings,
351
- include_jarvis_config: includeJarvisConfig
352
- }, Types_1.QueryIds.ADMIN_METADATA, Types_1.XWAPaths.xwa2_newsletter_admin);
353
- },
354
- newsletterAdminProfileUpdate: async (jid, updates) => {
355
- return executeWMexQuery({ newsletter_id: jid, updates }, Types_1.QueryIds.ADMIN_PROFILE_UPDATE, Types_1.XWAPaths.xwa2_newsletter_admin_profile_update);
356
- },
357
- newsletterDirectoryList: async (options = {}) => {
358
- const { limit = 20, interests = null, sortField = 'SUBSCRIBER_COUNT', sortOrder = 'DESC' } = options;
359
- const variables = { limit, sort_field: sortField, sort_order: sortOrder };
360
- if (interests?.length)
361
- variables.interests = interests;
362
- return executeWMexQuery(variables, Types_1.QueryIds.DIRECTORY_LIST, Types_1.XWAPaths.xwa2_newsletters_directory_list);
363
- },
364
- newsletterDirectorySearch: async (searchText, options = {}) => {
365
- const { limit = 20, startCursor = null, categories = null } = options;
366
- const variables = { search_text: searchText, limit };
367
- if (startCursor)
368
- variables.start_cursor = startCursor;
369
- if (categories?.length)
370
- variables.categories = categories;
371
- return executeWMexQuery(variables, Types_1.QueryIds.DIRECTORY_SEARCH, Types_1.XWAPaths.xwa2_newsletters_directory_search);
372
- },
373
- newsletterDirectoryCategoryPreview: async (limit = 5) => {
374
- return executeWMexQuery({ limit }, Types_1.QueryIds.DIRECTORY_CATEGORY_PREVIEW, Types_1.XWAPaths.xwa2_newsletters_directory_category_preview);
375
- },
376
- newsletterSearch: async (query, limit = 20, startCursor = null) => {
377
- const variables = { query, limit };
378
- if (startCursor)
379
- variables.start_cursor = startCursor;
380
- return executeWMexQuery(variables, Types_1.QueryIds.SEARCH, Types_1.XWAPaths.xwa2_newsletters_search);
381
- },
382
- newsletterRecommended: async (limit = 10, numFollowed = null) => {
383
- const variables = { limit };
384
- if (numFollowed != null)
385
- variables.num_newsletters_followed = numFollowed;
386
- return executeWMexQuery(variables, Types_1.QueryIds.RECOMMENDED, Types_1.XWAPaths.xwa2_newsletters_recommended);
387
- },
388
- newsletterSimilar: async (jid, limit = 10) => {
389
- return executeWMexQuery({ newsletter_id: jid, limit }, Types_1.QueryIds.SIMILAR, Types_1.XWAPaths.xwa2_newsletters_similar);
390
- },
391
- newsletterFollowingList: async (startCursor = null, limit = 20) => {
392
- const variables = { limit };
393
- if (startCursor)
394
- variables.start_cursor = startCursor;
395
- return executeWMexQuery(variables, Types_1.QueryIds.FOLLOWING_LIST, Types_1.XWAPaths.xwa2_newsletter_following);
396
- },
397
- newsletterInsights: async (jid, period = null) => {
398
- const variables = { newsletter_id: jid };
399
- if (period)
400
- variables.period = period;
401
- return executeWMexQuery(variables, Types_1.QueryIds.INSIGHTS, Types_1.XWAPaths.xwa2_newsletter_admin_insights);
402
- },
403
- newsletterPollVoterList: async (jid, serverId, option = null, startCursor = null) => {
404
- const variables = { id: jid, server_id: serverId };
405
- if (option != null)
406
- variables.option = option;
407
- if (startCursor)
408
- variables.start_cursor = startCursor;
409
- return executeWMexQuery(variables, Types_1.QueryIds.POLL_VOTER_LIST, Types_1.XWAPaths.xwa2_newsletters_poll_voter_list);
410
- },
411
- newsletterReactionSenders: async (jid, serverId, startCursor = null) => {
412
- const variables = { id: jid, server_id: serverId };
413
- if (startCursor)
414
- variables.start_cursor = startCursor;
415
- return executeWMexQuery(variables, Types_1.QueryIds.REACTION_SENDERS_LIST, Types_1.XWAPaths.xwa2_newsletters_reaction_sender_list);
416
- },
417
- newsletterBlockUser: async (jid, userJid) => {
418
- return executeWMexQuery({ newsletter_id: jid, user_id: userJid }, Types_1.QueryIds.BLOCK_USER, 'xwa2_newsletter_block_user');
419
- },
420
- newsletterEnableWamo: async (jid) => {
421
- return executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.WAMO_ENABLE_SUB, 'xwa2_newsletter_wamo_enable_sub');
422
- },
423
- newsletterDisableWamo: async (jid) => {
424
- return executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.WAMO_DISABLE_SUB, 'xwa2_newsletter_wamo_disable_sub');
425
- },
426
- newsletterChangeWamo: async (jid, subConfig) => {
427
- return executeWMexQuery({ newsletter_id: jid, ...subConfig }, Types_1.QueryIds.WAMO_CHANGE_SUB, 'xwa2_newsletter_wamo_change_sub');
428
- },
429
- wamoAfsAgeCollection: async (jid) => executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.WAMO_AFS_AGE_COLLECTION, Types_1.XWAPaths.xwa2_wamo_afs_age_collection),
430
- wamoAssetCollection: async (jid) => executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.WAMO_ASSET_COLLECTION, Types_1.XWAPaths.xwa2_wamo_asset_collection),
431
- wamoFetchAdhocNotice: async (noticeId) => executeWMexQuery({ notice_id: noticeId }, Types_1.QueryIds.WAMO_FETCH_ADHOC_NOTICE, Types_1.XWAPaths.xwa2_wamo_fetch_adhoc_notice_by_id),
432
- wamoFetchIdentityToken: async (jid) => executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.WAMO_FETCH_IDENTITY_TOKEN, Types_1.XWAPaths.xwa2_wamo_fetch_identity_token),
433
- wamoSubComplianceInfo: async (jid) => executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.WAMO_SUB_COMPLIANCE_INFO, Types_1.XWAPaths.xwa2_wamo_sub_get_compliance_info),
434
- wamoUserIdVersion: async (jid) => executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.WAMO_USER_ID_VERSION, Types_1.XWAPaths.xwa2_wamo_user_id_version),
435
- wamoSetUserIdVersion: async (jid, version) => executeWMexQuery({ newsletter_id: jid, version }, Types_1.QueryIds.WAMO_SET_USER_ID_VERSION, Types_1.XWAPaths.xwa2_wamo_set_user_id_version),
436
- newsletterLeave: async (jid) => executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.LEAVE, Types_1.XWAPaths.xwa2_newsletter_leave_v2),
437
- newsletterCreateVerified: async (name, description = null) => executeWMexQuery({ input: { name, description } }, Types_1.QueryIds.CREATE_VERIFIED, Types_1.XWAPaths.xwa2_newsletter_create_verified),
438
- newsletterEnforcements: async (jid) => executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.ENFORCEMENTS, Types_1.XWAPaths.xwa2_newsletter_enforcements),
439
- newsletterUserReports: async (jid, cursor = null) => {
440
- const variables = { newsletter_id: jid };
441
- if (cursor)
442
- variables.cursor = cursor;
443
- return executeWMexQuery(variables, Types_1.QueryIds.USER_REPORTS, Types_1.XWAPaths.xwa2_newsletter_user_reports);
444
- },
445
- newsletterCreateReportAppeal: async (jid, reason) => executeWMexQuery({ newsletter_id: jid, reason }, Types_1.QueryIds.CREATE_REPORT_APPEAL, Types_1.XWAPaths.xwa2_newsletter_create_report_appeal),
446
- newsletterLinkPreviewCheck: async (url) => executeWMexQuery({ url }, Types_1.QueryIds.LINK_PREVIEW_CHECK, Types_1.XWAPaths.xwa2_newsletter_link_preview_check),
447
- newsletterUpdateVerification: async (jid, verification) => executeWMexQuery({ newsletter_id: jid, verification }, Types_1.QueryIds.UPDATE_VERIFICATION, Types_1.XWAPaths.xwa2_newsletter_update_verification),
448
- newsletterLabelPaidPartnership: async (jid, serverId, isPaidPartnership) => executeWMexQuery({ newsletter_id: jid, server_id: serverId, is_paid_partnership: isPaidPartnership }, Types_1.QueryIds.LABEL_PAID_PARTNERSHIP, Types_1.XWAPaths.xwa2_newsletter_label_paid_partnership),
449
- newsletterLogExposures: async (events) => executeWMexQuery({ events }, Types_1.QueryIds.LOG_EXPOSURES, Types_1.XWAPaths.xwa2_newsletter_log_exposures),
450
- newsletterUpdateUserSetting: async (jid, setting) => executeWMexQuery({ newsletter_id: jid, ...setting }, Types_1.QueryIds.UPDATE_USER_SETTING, Types_1.XWAPaths.xwa2_newsletter_update_user_setting),
451
- newsletterRankingFeatures: async (jid) => executeWMexQuery({ newsletter_id: jid }, Types_1.QueryIds.RANKING_FEATURES, Types_1.XWAPaths.xwa2_newsletter_ranking_features),
452
- newsletterSendViewReceipt: async (jid, serverMessageIds) => {
453
- const ids = Array.isArray(serverMessageIds) ? serverMessageIds : [serverMessageIds];
454
- const receiptId = generateMessageTag();
455
- await query({
456
- tag: 'receipt',
457
- attrs: {
458
- to: jid,
459
- id: receiptId,
460
- type: 'view'
461
- },
462
- content: [
463
- {
464
- tag: 'list',
465
- attrs: {},
466
- content: ids.map(id => ({ tag: 'item', attrs: { server_id: String(id) } }))
467
- }
468
- ]
469
- });
470
- }
471
- };
472
- };
473
- exports.makeNewsletterSocket = makeNewsletterSocket;
@@ -1,34 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.USyncPictureProtocol = void 0;
4
- const WABinary_1 = require('../../WABinary');
5
- class USyncPictureProtocol {
6
- constructor(type = 'image') {
7
- this.name = 'picture';
8
- this.type = type;
9
- }
10
- getQueryElement() {
11
- return {
12
- tag: 'picture',
13
- attrs: { type: this.type }
14
- };
15
- }
16
- getUserElement(user) {
17
- const attrs = {};
18
- if (user.pictureId != null)
19
- attrs.id = String(user.pictureId);
20
- return Object.keys(attrs).length > 0 ? { tag: 'picture', attrs } : null;
21
- }
22
- parser(node) {
23
- if (node.tag !== 'picture')
24
- return null;
25
- (0, WABinary_1.assertNodeErrorFree)(node);
26
- const id = node.attrs?.id ?? null;
27
- const directPath = node.attrs?.direct_path ?? null;
28
- const hash = node.attrs?.hash ?? null;
29
- if (!id && !directPath)
30
- return null;
31
- return { id, directPath, hash };
32
- }
33
- }
34
- exports.USyncPictureProtocol = USyncPictureProtocol;
@@ -1,29 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.USyncSidelistProtocol = void 0;
4
- const WABinary_1 = require('../../WABinary');
5
- class USyncSidelistProtocol {
6
- constructor(useLidAddressing = true) {
7
- this.name = 'sidelist';
8
- this.useLidAddressing = useLidAddressing;
9
- }
10
- getQueryElement() {
11
- const attrs = {};
12
- if (this.useLidAddressing)
13
- attrs.addressing_mode = 'lid';
14
- return { tag: 'sidelist', attrs };
15
- }
16
- getUserElement(user) {
17
- if (user.sidelistDelete) {
18
- return { tag: 'sidelist', attrs: { type: 'delete' } };
19
- }
20
- return null;
21
- }
22
- parser(node) {
23
- if (node.tag !== 'sidelist' && node.tag !== 'side_list')
24
- return null;
25
- (0, WABinary_1.assertNodeErrorFree)(node);
26
- return { type: node.attrs?.type ?? null };
27
- }
28
- }
29
- exports.USyncSidelistProtocol = USyncSidelistProtocol;
@@ -1,42 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.USyncStatusProtocol = void 0;
4
- const WABinary_1 = require('../../WABinary');
5
- class USyncStatusProtocol {
6
- constructor() {
7
- this.name = 'status';
8
- }
9
- getQueryElement() {
10
- return {
11
- tag: 'status',
12
- attrs: {}
13
- };
14
- }
15
- getUserElement() {
16
- return null;
17
- }
18
- parser(node) {
19
- if (node.tag === 'status') {
20
- ;
21
- (0, WABinary_1.assertNodeErrorFree)(node);
22
- let status = node?.content?.toString() ?? null;
23
- const setAt = new Date(+(node?.attrs.t || 0) * 1000);
24
- if (!status) {
25
- if (node.attrs?.code && +node.attrs.code === 401) {
26
- status = '';
27
- }
28
- else {
29
- status = null;
30
- }
31
- }
32
- else if (typeof status === 'string' && status.length === 0) {
33
- status = null;
34
- }
35
- return {
36
- status,
37
- setAt
38
- };
39
- }
40
- }
41
- }
42
- exports.USyncStatusProtocol = USyncStatusProtocol;