@sixcore/baileys 1.0.0 → 1.0.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 (228) hide show
  1. package/WAProto/index.js +14270 -302
  2. package/jessica.js +91 -0
  3. package/lib/Defaults/baileys-version.json +1 -1
  4. package/lib/Defaults/index.js +117 -79
  5. package/lib/Defaults/phonenumber-mcc.json +223 -0
  6. package/lib/Signal/Group/ciphertext-message.d.ts +9 -0
  7. package/lib/Signal/Group/ciphertext-message.js +15 -0
  8. package/lib/Signal/Group/group-session-builder.d.ts +14 -0
  9. package/lib/Signal/Group/group-session-builder.js +64 -0
  10. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  11. package/lib/Signal/Group/group_cipher.js +96 -0
  12. package/lib/Signal/Group/index.d.ts +11 -0
  13. package/lib/Signal/Group/index.js +57 -0
  14. package/lib/Signal/Group/keyhelper.d.ts +10 -0
  15. package/lib/Signal/Group/keyhelper.js +55 -0
  16. package/lib/Signal/Group/queue-job.d.ts +1 -0
  17. package/lib/Signal/Group/queue-job.js +57 -0
  18. package/lib/Signal/Group/sender-chain-key.d.ts +13 -0
  19. package/lib/Signal/Group/sender-chain-key.js +34 -0
  20. package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -0
  21. package/lib/Signal/Group/sender-key-distribution-message.js +66 -0
  22. package/lib/Signal/Group/sender-key-message.d.ts +18 -0
  23. package/lib/Signal/Group/sender-key-message.js +69 -0
  24. package/lib/Signal/Group/sender-key-name.d.ts +17 -0
  25. package/lib/Signal/Group/sender-key-name.js +51 -0
  26. package/lib/Signal/Group/sender-key-record.d.ts +30 -0
  27. package/lib/Signal/Group/sender-key-record.js +53 -0
  28. package/lib/Signal/Group/sender-key-state.d.ts +38 -0
  29. package/lib/Signal/Group/sender-key-state.js +99 -0
  30. package/lib/Signal/Group/sender-message-key.d.ts +11 -0
  31. package/{WASignalGroup/sender_message_key.js → lib/Signal/Group/sender-message-key.js} +6 -16
  32. package/lib/Signal/libsignal.js +51 -29
  33. package/lib/Socket/business.d.ts +43 -42
  34. package/lib/Socket/chats.d.ts +222 -36
  35. package/lib/Socket/chats.js +173 -153
  36. package/lib/Socket/dugong.d.ts +254 -0
  37. package/lib/Socket/dugong.js +484 -0
  38. package/lib/Socket/groups.d.ts +7 -7
  39. package/lib/Socket/groups.js +37 -35
  40. package/lib/Socket/index.d.ts +52 -51
  41. package/lib/Socket/index.js +1 -0
  42. package/lib/Socket/messages-recv.d.ts +37 -34
  43. package/lib/Socket/messages-recv.js +175 -37
  44. package/lib/Socket/messages-send.d.ts +12 -18
  45. package/lib/Socket/messages-send.js +396 -574
  46. package/lib/Socket/newsletter.d.ts +28 -26
  47. package/lib/Socket/newsletter.js +123 -25
  48. package/lib/Socket/registration.d.ts +52 -49
  49. package/lib/Socket/registration.js +7 -7
  50. package/lib/Socket/socket.d.ts +0 -1
  51. package/lib/Socket/socket.js +49 -27
  52. package/lib/Socket/usync.d.ts +10 -11
  53. package/lib/Store/make-cache-manager-store.d.ts +1 -2
  54. package/lib/Store/make-in-memory-store.d.ts +2 -2
  55. package/lib/Store/make-in-memory-store.js +1 -5
  56. package/lib/Store/make-ordered-dictionary.js +2 -2
  57. package/lib/Types/Auth.d.ts +1 -0
  58. package/lib/Types/Call.d.ts +1 -1
  59. package/lib/Types/Chat.d.ts +7 -12
  60. package/lib/Types/Events.d.ts +2 -17
  61. package/lib/Types/GroupMetadata.d.ts +2 -3
  62. package/lib/Types/Label.d.ts +0 -11
  63. package/lib/Types/Label.js +1 -1
  64. package/lib/Types/LabelAssociation.js +1 -1
  65. package/lib/Types/Message.d.ts +10 -170
  66. package/lib/Types/Newsletter.d.ts +97 -86
  67. package/lib/Types/Newsletter.js +38 -32
  68. package/lib/Types/Socket.d.ts +2 -7
  69. package/lib/Types/index.d.ts +0 -9
  70. package/lib/Types/index.js +1 -1
  71. package/lib/Utils/auth-utils.js +14 -35
  72. package/lib/Utils/business.d.ts +1 -1
  73. package/lib/Utils/business.js +2 -2
  74. package/lib/Utils/chat-utils.d.ts +12 -11
  75. package/lib/Utils/chat-utils.js +36 -52
  76. package/lib/Utils/crypto.d.ts +16 -15
  77. package/lib/Utils/crypto.js +26 -74
  78. package/lib/Utils/decode-wa-message.d.ts +0 -17
  79. package/lib/Utils/decode-wa-message.js +17 -53
  80. package/lib/Utils/event-buffer.js +7 -10
  81. package/lib/Utils/generics.d.ts +17 -13
  82. package/lib/Utils/generics.js +79 -58
  83. package/lib/Utils/history.d.ts +2 -6
  84. package/lib/Utils/history.js +6 -4
  85. package/lib/Utils/logger.d.ts +3 -1
  86. package/lib/Utils/lt-hash.js +12 -12
  87. package/lib/Utils/make-mutex.d.ts +2 -2
  88. package/lib/Utils/messages-media.d.ts +28 -25
  89. package/lib/Utils/messages-media.js +733 -557
  90. package/lib/Utils/messages.js +68 -473
  91. package/lib/Utils/noise-handler.d.ts +5 -4
  92. package/lib/Utils/noise-handler.js +14 -19
  93. package/lib/Utils/process-message.d.ts +5 -5
  94. package/lib/Utils/process-message.js +23 -75
  95. package/lib/Utils/signal.d.ts +1 -2
  96. package/lib/Utils/signal.js +26 -32
  97. package/lib/Utils/use-multi-file-auth-state.d.ts +1 -0
  98. package/lib/Utils/use-multi-file-auth-state.js +66 -242
  99. package/lib/Utils/validate-connection.d.ts +1 -1
  100. package/lib/Utils/validate-connection.js +88 -64
  101. package/lib/WABinary/constants.d.ts +27 -24
  102. package/lib/WABinary/decode.d.ts +2 -1
  103. package/lib/WABinary/decode.js +11 -23
  104. package/lib/WABinary/encode.d.ts +2 -1
  105. package/lib/WABinary/encode.js +147 -134
  106. package/lib/WABinary/generic-utils.d.ts +5 -2
  107. package/lib/WABinary/generic-utils.js +125 -37
  108. package/lib/WABinary/jid-utils.d.ts +1 -1
  109. package/lib/WAM/BinaryInfo.d.ts +11 -2
  110. package/lib/WAM/encode.d.ts +2 -1
  111. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +3 -3
  112. package/lib/WAUSync/USyncUser.d.ts +2 -0
  113. package/lib/index.d.ts +12 -0
  114. package/lib/index.js +64 -1
  115. package/package.json +113 -51
  116. package/WAProto/GenerateStatics.sh +0 -4
  117. package/WAProto/WAProto.proto +0 -4357
  118. package/WAProto/index.d.ts +0 -50383
  119. package/WASignalGroup/GroupProtocol.js +0 -1697
  120. package/WASignalGroup/ciphertext_message.js +0 -16
  121. package/WASignalGroup/generate-proto.sh +0 -1
  122. package/WASignalGroup/group.proto +0 -42
  123. package/WASignalGroup/group_cipher.js +0 -120
  124. package/WASignalGroup/group_session_builder.js +0 -46
  125. package/WASignalGroup/index.js +0 -5
  126. package/WASignalGroup/keyhelper.js +0 -21
  127. package/WASignalGroup/protobufs.js +0 -3
  128. package/WASignalGroup/queue_job.js +0 -69
  129. package/WASignalGroup/sender_chain_key.js +0 -50
  130. package/WASignalGroup/sender_key_distribution_message.js +0 -78
  131. package/WASignalGroup/sender_key_message.js +0 -92
  132. package/WASignalGroup/sender_key_name.js +0 -70
  133. package/WASignalGroup/sender_key_record.js +0 -56
  134. package/WASignalGroup/sender_key_state.js +0 -129
  135. package/lib/Utils/use-single-file-auth-state.d.ts +0 -12
  136. package/lib/Utils/use-single-file-auth-state.js +0 -75
  137. package/src/Defaults/baileys-version.json +0 -3
  138. package/src/Defaults/index.ts +0 -133
  139. package/src/Signal/Group/ciphertext-message.ts +0 -9
  140. package/src/Signal/Group/group-session-builder.ts +0 -56
  141. package/src/Signal/Group/group_cipher.ts +0 -117
  142. package/src/Signal/Group/index.ts +0 -11
  143. package/src/Signal/Group/keyhelper.ts +0 -28
  144. package/src/Signal/Group/sender-chain-key.ts +0 -34
  145. package/src/Signal/Group/sender-key-distribution-message.ts +0 -95
  146. package/src/Signal/Group/sender-key-message.ts +0 -96
  147. package/src/Signal/Group/sender-key-name.ts +0 -66
  148. package/src/Signal/Group/sender-key-record.ts +0 -69
  149. package/src/Signal/Group/sender-key-state.ts +0 -134
  150. package/src/Signal/Group/sender-message-key.ts +0 -36
  151. package/src/Signal/libsignal.ts +0 -447
  152. package/src/Signal/lid-mapping.ts +0 -209
  153. package/src/Socket/Client/index.ts +0 -2
  154. package/src/Socket/Client/types.ts +0 -22
  155. package/src/Socket/Client/websocket.ts +0 -56
  156. package/src/Socket/business.ts +0 -421
  157. package/src/Socket/chats.ts +0 -1223
  158. package/src/Socket/communities.ts +0 -477
  159. package/src/Socket/groups.ts +0 -361
  160. package/src/Socket/index.ts +0 -22
  161. package/src/Socket/messages-recv.ts +0 -1563
  162. package/src/Socket/messages-send.ts +0 -1210
  163. package/src/Socket/mex.ts +0 -58
  164. package/src/Socket/newsletter.ts +0 -229
  165. package/src/Socket/socket.ts +0 -1072
  166. package/src/Types/Auth.ts +0 -115
  167. package/src/Types/Bussines.ts +0 -20
  168. package/src/Types/Call.ts +0 -14
  169. package/src/Types/Chat.ts +0 -138
  170. package/src/Types/Contact.ts +0 -24
  171. package/src/Types/Events.ts +0 -132
  172. package/src/Types/GroupMetadata.ts +0 -70
  173. package/src/Types/Label.ts +0 -48
  174. package/src/Types/LabelAssociation.ts +0 -35
  175. package/src/Types/Message.ts +0 -424
  176. package/src/Types/Newsletter.ts +0 -98
  177. package/src/Types/Product.ts +0 -85
  178. package/src/Types/Signal.ts +0 -76
  179. package/src/Types/Socket.ts +0 -150
  180. package/src/Types/State.ts +0 -43
  181. package/src/Types/USync.ts +0 -27
  182. package/src/Types/globals.d.ts +0 -8
  183. package/src/Types/index.ts +0 -67
  184. package/src/Utils/auth-utils.ts +0 -331
  185. package/src/Utils/browser-utils.ts +0 -31
  186. package/src/Utils/business.ts +0 -286
  187. package/src/Utils/chat-utils.ts +0 -933
  188. package/src/Utils/crypto.ts +0 -184
  189. package/src/Utils/decode-wa-message.ts +0 -355
  190. package/src/Utils/event-buffer.ts +0 -662
  191. package/src/Utils/generics.ts +0 -470
  192. package/src/Utils/history.ts +0 -114
  193. package/src/Utils/index.ts +0 -18
  194. package/src/Utils/link-preview.ts +0 -111
  195. package/src/Utils/logger.ts +0 -13
  196. package/src/Utils/lt-hash.ts +0 -65
  197. package/src/Utils/make-mutex.ts +0 -45
  198. package/src/Utils/message-retry-manager.ts +0 -229
  199. package/src/Utils/messages-media.ts +0 -820
  200. package/src/Utils/messages.ts +0 -1137
  201. package/src/Utils/noise-handler.ts +0 -192
  202. package/src/Utils/pre-key-manager.ts +0 -126
  203. package/src/Utils/process-message.ts +0 -622
  204. package/src/Utils/signal.ts +0 -214
  205. package/src/Utils/use-multi-file-auth-state.ts +0 -136
  206. package/src/Utils/validate-connection.ts +0 -253
  207. package/src/WABinary/constants.ts +0 -1305
  208. package/src/WABinary/decode.ts +0 -281
  209. package/src/WABinary/encode.ts +0 -253
  210. package/src/WABinary/generic-utils.ts +0 -127
  211. package/src/WABinary/index.ts +0 -5
  212. package/src/WABinary/jid-utils.ts +0 -128
  213. package/src/WABinary/types.ts +0 -17
  214. package/src/WAM/BinaryInfo.ts +0 -12
  215. package/src/WAM/constants.ts +0 -22889
  216. package/src/WAM/encode.ts +0 -169
  217. package/src/WAM/index.ts +0 -3
  218. package/src/WAUSync/Protocols/USyncContactProtocol.ts +0 -32
  219. package/src/WAUSync/Protocols/USyncDeviceProtocol.ts +0 -78
  220. package/src/WAUSync/Protocols/USyncDisappearingModeProtocol.ts +0 -35
  221. package/src/WAUSync/Protocols/USyncStatusProtocol.ts +0 -44
  222. package/src/WAUSync/Protocols/UsyncBotProfileProtocol.ts +0 -76
  223. package/src/WAUSync/Protocols/UsyncLIDProtocol.ts +0 -33
  224. package/src/WAUSync/Protocols/index.ts +0 -4
  225. package/src/WAUSync/USyncQuery.ts +0 -133
  226. package/src/WAUSync/USyncUser.ts +0 -32
  227. package/src/WAUSync/index.ts +0 -3
  228. package/src/index.ts +0 -13
package/src/Socket/mex.ts DELETED
@@ -1,58 +0,0 @@
1
- import { Boom } from '@hapi/boom'
2
- import type { BinaryNode } from '../WABinary'
3
- import { getBinaryNodeChild, S_WHATSAPP_NET } from '../WABinary'
4
-
5
- const wMexQuery = (
6
- variables: Record<string, unknown>,
7
- queryId: string,
8
- query: (node: BinaryNode) => Promise<BinaryNode>,
9
- generateMessageTag: () => string
10
- ) => {
11
- return query({
12
- tag: 'iq',
13
- attrs: {
14
- id: generateMessageTag(),
15
- type: 'get',
16
- to: S_WHATSAPP_NET,
17
- xmlns: 'w:mex'
18
- },
19
- content: [
20
- {
21
- tag: 'query',
22
- attrs: { query_id: queryId },
23
- content: Buffer.from(JSON.stringify({ variables }), 'utf-8')
24
- }
25
- ]
26
- })
27
- }
28
-
29
- export const executeWMexQuery = async <T>(
30
- variables: Record<string, unknown>,
31
- queryId: string,
32
- dataPath: string,
33
- query: (node: BinaryNode) => Promise<BinaryNode>,
34
- generateMessageTag: () => string
35
- ): Promise<T> => {
36
- const result = await wMexQuery(variables, queryId, query, generateMessageTag)
37
- const child = getBinaryNodeChild(result, 'result')
38
- if (child?.content) {
39
- const data = JSON.parse(child.content.toString())
40
-
41
- if (data.errors && data.errors.length > 0) {
42
- const errorMessages = data.errors.map((err: Error) => err.message || 'Unknown error').join(', ')
43
- const firstError = data.errors[0]
44
- const errorCode = firstError.extensions?.error_code || 400
45
- throw new Boom(`GraphQL server error: ${errorMessages}`, { statusCode: errorCode, data: firstError })
46
- }
47
-
48
- const response = dataPath ? data?.data?.[dataPath] : data?.data
49
- if (typeof response !== 'undefined') {
50
- return response as T
51
- }
52
- }
53
-
54
- const action = (dataPath || '').startsWith('xwa2_')
55
- ? dataPath.substring(5).replace(/_/g, ' ')
56
- : dataPath?.replace(/_/g, ' ')
57
- throw new Boom(`Failed to ${action}, unexpected response structure.`, { statusCode: 400, data: result })
58
- }
@@ -1,229 +0,0 @@
1
- import type { NewsletterCreateResponse, SocketConfig, WAMediaUpload } from '../Types'
2
- import type { NewsletterMetadata, NewsletterUpdate } from '../Types'
3
- import { QueryIds, XWAPaths } from '../Types'
4
- import { generateProfilePicture } from '../Utils/messages-media'
5
- import { getBinaryNodeChild } from '../WABinary'
6
- import { makeGroupsSocket } from './groups'
7
- import { executeWMexQuery as genericExecuteWMexQuery } from './mex'
8
-
9
- const parseNewsletterCreateResponse = (response: NewsletterCreateResponse): NewsletterMetadata => {
10
- const { id, thread_metadata: thread, viewer_metadata: viewer } = response
11
- return {
12
- id: id,
13
- owner: undefined,
14
- name: thread.name.text,
15
- creation_time: parseInt(thread.creation_time, 10),
16
- description: thread.description.text,
17
- invite: thread.invite,
18
- subscribers: parseInt(thread.subscribers_count, 10),
19
- verification: thread.verification,
20
- picture: {
21
- id: thread.picture.id,
22
- directPath: thread.picture.direct_path
23
- },
24
- mute_state: viewer.mute
25
- }
26
- }
27
-
28
- const parseNewsletterMetadata = (result: unknown): NewsletterMetadata | null => {
29
- if (typeof result !== 'object' || result === null) {
30
- return null
31
- }
32
-
33
- if ('id' in result && typeof result.id === 'string') {
34
- return result as NewsletterMetadata
35
- }
36
-
37
- if ('result' in result && typeof result.result === 'object' && result.result !== null && 'id' in result.result) {
38
- return result.result as NewsletterMetadata
39
- }
40
-
41
- return null
42
- }
43
-
44
- export const makeNewsletterSocket = (config: SocketConfig) => {
45
- const sock = makeGroupsSocket(config)
46
- const { query, generateMessageTag } = sock
47
-
48
- const executeWMexQuery = <T>(variables: Record<string, unknown>, queryId: string, dataPath: string): Promise<T> => {
49
- return genericExecuteWMexQuery<T>(variables, queryId, dataPath, query, generateMessageTag)
50
- }
51
-
52
- const newsletterUpdate = async (jid: string, updates: NewsletterUpdate) => {
53
- const variables = {
54
- newsletter_id: jid,
55
- updates: {
56
- ...updates,
57
- settings: null
58
- }
59
- }
60
- return executeWMexQuery(variables, QueryIds.UPDATE_METADATA, 'xwa2_newsletter_update')
61
- }
62
-
63
- return {
64
- ...sock,
65
- newsletterCreate: async (name: string, description?: string): Promise<NewsletterMetadata> => {
66
- const variables = {
67
- input: {
68
- name,
69
- description: description ?? null
70
- }
71
- }
72
- const rawResponse = await executeWMexQuery<NewsletterCreateResponse>(
73
- variables,
74
- QueryIds.CREATE,
75
- XWAPaths.xwa2_newsletter_create
76
- )
77
- return parseNewsletterCreateResponse(rawResponse)
78
- },
79
-
80
- newsletterUpdate,
81
-
82
- newsletterSubscribers: async (jid: string) => {
83
- return executeWMexQuery<{ subscribers: number }>(
84
- { newsletter_id: jid },
85
- QueryIds.SUBSCRIBERS,
86
- XWAPaths.xwa2_newsletter_subscribers
87
- )
88
- },
89
-
90
- newsletterMetadata: async (type: 'invite' | 'jid', key: string) => {
91
- const variables = {
92
- fetch_creation_time: true,
93
- fetch_full_image: true,
94
- fetch_viewer_metadata: true,
95
- input: {
96
- key,
97
- type: type.toUpperCase()
98
- }
99
- }
100
- const result = await executeWMexQuery<unknown>(variables, QueryIds.METADATA, XWAPaths.xwa2_newsletter_metadata)
101
- return parseNewsletterMetadata(result)
102
- },
103
-
104
- newsletterFollow: (jid: string) => {
105
- return executeWMexQuery({ newsletter_id: jid }, QueryIds.FOLLOW, XWAPaths.xwa2_newsletter_follow)
106
- },
107
-
108
- newsletterUnfollow: (jid: string) => {
109
- return executeWMexQuery({ newsletter_id: jid }, QueryIds.UNFOLLOW, XWAPaths.xwa2_newsletter_unfollow)
110
- },
111
-
112
- newsletterMute: (jid: string) => {
113
- return executeWMexQuery({ newsletter_id: jid }, QueryIds.MUTE, XWAPaths.xwa2_newsletter_mute_v2)
114
- },
115
-
116
- newsletterUnmute: (jid: string) => {
117
- return executeWMexQuery({ newsletter_id: jid }, QueryIds.UNMUTE, XWAPaths.xwa2_newsletter_unmute_v2)
118
- },
119
-
120
- newsletterUpdateName: async (jid: string, name: string) => {
121
- return await newsletterUpdate(jid, { name })
122
- },
123
-
124
- newsletterUpdateDescription: async (jid: string, description: string) => {
125
- return await newsletterUpdate(jid, { description })
126
- },
127
-
128
- newsletterUpdatePicture: async (jid: string, content: WAMediaUpload) => {
129
- const { img } = await generateProfilePicture(content)
130
- return await newsletterUpdate(jid, { picture: img.toString('base64') })
131
- },
132
-
133
- newsletterRemovePicture: async (jid: string) => {
134
- return await newsletterUpdate(jid, { picture: '' })
135
- },
136
-
137
- newsletterReactMessage: async (jid: string, serverId: string, reaction?: string) => {
138
- await query({
139
- tag: 'message',
140
- attrs: {
141
- to: jid,
142
- ...(reaction ? {} : { edit: '7' }),
143
- type: 'reaction',
144
- server_id: serverId,
145
- id: generateMessageTag()
146
- },
147
- content: [
148
- {
149
- tag: 'reaction',
150
- attrs: reaction ? { code: reaction } : {}
151
- }
152
- ]
153
- })
154
- },
155
-
156
- newsletterFetchMessages: async (jid: string, count: number, since: number, after: number) => {
157
- const messageUpdateAttrs: { count: string; since?: string; after?: string } = {
158
- count: count.toString()
159
- }
160
- if (typeof since === 'number') {
161
- messageUpdateAttrs.since = since.toString()
162
- }
163
-
164
- if (after) {
165
- messageUpdateAttrs.after = after.toString()
166
- }
167
-
168
- const result = await query({
169
- tag: 'iq',
170
- attrs: {
171
- id: generateMessageTag(),
172
- type: 'get',
173
- xmlns: 'newsletter',
174
- to: jid
175
- },
176
- content: [
177
- {
178
- tag: 'message_updates',
179
- attrs: messageUpdateAttrs
180
- }
181
- ]
182
- })
183
- return result
184
- },
185
-
186
- subscribeNewsletterUpdates: async (jid: string): Promise<{ duration: string } | null> => {
187
- const result = await query({
188
- tag: 'iq',
189
- attrs: {
190
- id: generateMessageTag(),
191
- type: 'set',
192
- xmlns: 'newsletter',
193
- to: jid
194
- },
195
- content: [{ tag: 'live_updates', attrs: {}, content: [] }]
196
- })
197
- const liveUpdatesNode = getBinaryNodeChild(result, 'live_updates')
198
- const duration = liveUpdatesNode?.attrs?.duration
199
- return duration ? { duration: duration } : null
200
- },
201
-
202
- newsletterAdminCount: async (jid: string): Promise<number> => {
203
- const response = await executeWMexQuery<{ admin_count: number }>(
204
- { newsletter_id: jid },
205
- QueryIds.ADMIN_COUNT,
206
- XWAPaths.xwa2_newsletter_admin_count
207
- )
208
- return response.admin_count
209
- },
210
-
211
- newsletterChangeOwner: async (jid: string, newOwnerJid: string) => {
212
- await executeWMexQuery(
213
- { newsletter_id: jid, user_id: newOwnerJid },
214
- QueryIds.CHANGE_OWNER,
215
- XWAPaths.xwa2_newsletter_change_owner
216
- )
217
- },
218
-
219
- newsletterDemote: async (jid: string, userJid: string) => {
220
- await executeWMexQuery({ newsletter_id: jid, user_id: userJid }, QueryIds.DEMOTE, XWAPaths.xwa2_newsletter_demote)
221
- },
222
-
223
- newsletterDelete: async (jid: string) => {
224
- await executeWMexQuery({ newsletter_id: jid }, QueryIds.DELETE, XWAPaths.xwa2_newsletter_delete_v2)
225
- }
226
- }
227
- }
228
-
229
- export type NewsletterSocket = ReturnType<typeof makeNewsletterSocket>