gifted-baileys 1.5.6 → 1.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/README.md +9 -0
  2. package/WAProto/WAProto.proto +969 -88
  3. package/WAProto/index.d.ts +13199 -1260
  4. package/WAProto/index.js +124901 -74525
  5. package/lib/Defaults/baileys-version.json +3 -0
  6. package/lib/Defaults/index.d.ts +284 -0
  7. package/{src → lib}/Defaults/index.js +7 -14
  8. package/lib/Signal/libsignal.d.ts +3 -0
  9. package/lib/Signal/libsignal.js +161 -0
  10. package/lib/Socket/Client/abstract-socket-client.d.ts +15 -0
  11. package/lib/Socket/Client/index.d.ts +2 -0
  12. package/{src → lib}/Socket/Client/index.js +2 -3
  13. package/lib/Socket/Client/mobile-socket-client.d.ts +12 -0
  14. package/lib/Socket/Client/mobile-socket-client.js +65 -0
  15. package/lib/Socket/Client/types.d.ts +17 -0
  16. package/lib/Socket/Client/types.js +13 -0
  17. package/lib/Socket/Client/websocket.d.ts +12 -0
  18. package/lib/Socket/Client/websocket.js +62 -0
  19. package/lib/Socket/business.d.ts +170 -0
  20. package/{src → lib}/Socket/business.js +28 -33
  21. package/lib/Socket/chats.d.ts +81 -0
  22. package/{src → lib}/Socket/chats.js +174 -176
  23. package/lib/Socket/groups.d.ts +115 -0
  24. package/{src → lib}/Socket/groups.js +80 -68
  25. package/lib/Socket/index.d.ts +172 -0
  26. package/{src → lib}/Socket/index.js +4 -1
  27. package/lib/Socket/messages-recv.d.ts +158 -0
  28. package/{src → lib}/Socket/messages-recv.js +378 -211
  29. package/lib/Socket/messages-send.d.ts +155 -0
  30. package/{src → lib}/Socket/messages-send.js +452 -177
  31. package/lib/Socket/newsletter.d.ts +132 -0
  32. package/{src → lib}/Socket/newsletter.js +107 -98
  33. package/lib/Socket/registration.d.ts +264 -0
  34. package/{src → lib}/Socket/registration.js +56 -48
  35. package/lib/Socket/socket.d.ts +44 -0
  36. package/{src → lib}/Socket/socket.js +77 -77
  37. package/lib/Socket/usync.d.ts +37 -0
  38. package/lib/Socket/usync.js +70 -0
  39. package/lib/Store/index.d.ts +3 -0
  40. package/lib/Store/make-cache-manager-store.d.ts +14 -0
  41. package/{src → lib}/Store/make-cache-manager-store.js +25 -34
  42. package/lib/Store/make-in-memory-store.d.ts +118 -0
  43. package/{src → lib}/Store/make-in-memory-store.js +36 -32
  44. package/lib/Store/make-ordered-dictionary.d.ts +13 -0
  45. package/lib/Store/object-repository.d.ts +10 -0
  46. package/{src → lib}/Store/object-repository.js +1 -1
  47. package/lib/Types/Auth.d.ts +109 -0
  48. package/lib/Types/Call.d.ts +13 -0
  49. package/lib/Types/Chat.d.ts +107 -0
  50. package/{src/Types/Contact.ts → lib/Types/Contact.d.ts} +8 -9
  51. package/lib/Types/Events.d.ts +172 -0
  52. package/lib/Types/GroupMetadata.d.ts +56 -0
  53. package/lib/Types/Label.d.ts +46 -0
  54. package/{src/Types/LabelAssociation.ts → lib/Types/LabelAssociation.d.ts} +16 -22
  55. package/lib/Types/Message.d.ts +433 -0
  56. package/lib/Types/Newsletter.d.ts +92 -0
  57. package/lib/Types/Product.d.ts +78 -0
  58. package/lib/Types/Signal.d.ts +57 -0
  59. package/{src/Types/Socket.ts → lib/Types/Socket.d.ts} +61 -68
  60. package/lib/Types/State.d.ts +27 -0
  61. package/lib/Types/USync.d.ts +25 -0
  62. package/lib/Types/index.d.ts +66 -0
  63. package/lib/Utils/auth-utils.d.ts +18 -0
  64. package/{src → lib}/Utils/auth-utils.js +73 -90
  65. package/lib/Utils/baileys-event-stream.d.ts +16 -0
  66. package/lib/Utils/baileys-event-stream.js +63 -0
  67. package/lib/Utils/business.d.ts +22 -0
  68. package/{src → lib}/Utils/business.js +15 -43
  69. package/lib/Utils/chat-utils.d.ts +70 -0
  70. package/{src → lib}/Utils/chat-utils.js +87 -94
  71. package/lib/Utils/crypto.d.ts +40 -0
  72. package/{src → lib}/Utils/crypto.js +4 -2
  73. package/lib/Utils/decode-wa-message.d.ts +36 -0
  74. package/lib/Utils/decode-wa-message.js +226 -0
  75. package/lib/Utils/event-buffer.d.ts +35 -0
  76. package/{src → lib}/Utils/event-buffer.js +4 -13
  77. package/lib/Utils/generics.d.ts +88 -0
  78. package/{src → lib}/Utils/generics.js +67 -86
  79. package/lib/Utils/history.d.ts +19 -0
  80. package/{src → lib}/Utils/history.js +13 -39
  81. package/lib/Utils/index.d.ts +17 -0
  82. package/lib/Utils/link-preview.d.ts +21 -0
  83. package/{src → lib}/Utils/link-preview.js +17 -54
  84. package/lib/Utils/logger.d.ts +2 -0
  85. package/lib/Utils/lt-hash.d.ts +12 -0
  86. package/lib/Utils/make-mutex.d.ts +7 -0
  87. package/{src → lib}/Utils/make-mutex.js +4 -13
  88. package/lib/Utils/messages-media.d.ts +113 -0
  89. package/{src → lib}/Utils/messages-media.js +193 -255
  90. package/lib/Utils/messages.d.ts +77 -0
  91. package/{src → lib}/Utils/messages.js +588 -118
  92. package/lib/Utils/noise-handler.d.ts +20 -0
  93. package/lib/Utils/process-message.d.ts +41 -0
  94. package/{src → lib}/Utils/process-message.js +27 -30
  95. package/lib/Utils/signal.d.ts +33 -0
  96. package/{src → lib}/Utils/signal.js +25 -42
  97. package/lib/Utils/use-multi-file-auth-state.d.ts +12 -0
  98. package/{src → lib}/Utils/use-multi-file-auth-state.js +27 -28
  99. package/lib/Utils/validate-connection.d.ts +11 -0
  100. package/{src → lib}/Utils/validate-connection.js +40 -9
  101. package/lib/WABinary/constants.d.ts +27 -0
  102. package/lib/WABinary/decode.d.ts +6 -0
  103. package/lib/WABinary/encode.d.ts +2 -0
  104. package/{src → lib}/WABinary/encode.js +16 -10
  105. package/lib/WABinary/generic-utils.d.ts +14 -0
  106. package/lib/WABinary/index.d.ts +5 -0
  107. package/lib/WABinary/jid-utils.d.ts +31 -0
  108. package/lib/WABinary/types.d.ts +18 -0
  109. package/lib/WABinary/types.js +2 -0
  110. package/lib/WAM/BinaryInfo.d.ts +8 -0
  111. package/lib/WAM/constants.d.ts +38 -0
  112. package/lib/WAM/encode.d.ts +2 -0
  113. package/lib/WAM/index.d.ts +3 -0
  114. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -0
  115. package/lib/WAUSync/Protocols/USyncContactProtocol.js +32 -0
  116. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -0
  117. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +57 -0
  118. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -0
  119. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +30 -0
  120. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -0
  121. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +42 -0
  122. package/lib/WAUSync/Protocols/index.d.ts +4 -0
  123. package/lib/WAUSync/Protocols/index.js +20 -0
  124. package/lib/WAUSync/USyncQuery.d.ts +26 -0
  125. package/lib/WAUSync/USyncQuery.js +79 -0
  126. package/lib/WAUSync/USyncUser.d.ts +10 -0
  127. package/lib/WAUSync/USyncUser.js +22 -0
  128. package/lib/WAUSync/index.d.ts +3 -0
  129. package/lib/WAUSync/index.js +19 -0
  130. package/{src → lib}/index.js +1 -0
  131. package/package.json +26 -8
  132. package/LICENSE +0 -21
  133. package/src/Defaults/baileys-version.json +0 -3
  134. package/src/Defaults/index.ts +0 -131
  135. package/src/README.md +0 -1
  136. package/src/Signal/libsignal.js +0 -180
  137. package/src/Signal/libsignal.ts +0 -141
  138. package/src/Socket/Client/abstract-socket-client.ts +0 -19
  139. package/src/Socket/Client/index.ts +0 -3
  140. package/src/Socket/Client/mobile-socket-client.js +0 -78
  141. package/src/Socket/Client/mobile-socket-client.ts +0 -66
  142. package/src/Socket/Client/web-socket-client.js +0 -75
  143. package/src/Socket/Client/web-socket-client.ts +0 -57
  144. package/src/Socket/business.ts +0 -281
  145. package/src/Socket/chats.ts +0 -1030
  146. package/src/Socket/groups.ts +0 -356
  147. package/src/Socket/index.ts +0 -13
  148. package/src/Socket/messages-recv.ts +0 -985
  149. package/src/Socket/messages-send.ts +0 -871
  150. package/src/Socket/newsletter.ts +0 -282
  151. package/src/Socket/registration.ts +0 -250
  152. package/src/Socket/socket.ts +0 -777
  153. package/src/Store/index.ts +0 -3
  154. package/src/Store/make-cache-manager-store.ts +0 -100
  155. package/src/Store/make-in-memory-store.ts +0 -475
  156. package/src/Store/make-ordered-dictionary.ts +0 -86
  157. package/src/Store/object-repository.ts +0 -32
  158. package/src/Tests/test.app-state-sync.js +0 -204
  159. package/src/Tests/test.app-state-sync.ts +0 -207
  160. package/src/Tests/test.event-buffer.js +0 -270
  161. package/src/Tests/test.event-buffer.ts +0 -319
  162. package/src/Tests/test.key-store.js +0 -76
  163. package/src/Tests/test.key-store.ts +0 -92
  164. package/src/Tests/test.libsignal.js +0 -141
  165. package/src/Tests/test.libsignal.ts +0 -186
  166. package/src/Tests/test.media-download.js +0 -93
  167. package/src/Tests/test.media-download.ts +0 -76
  168. package/src/Tests/test.messages.js +0 -33
  169. package/src/Tests/test.messages.ts +0 -37
  170. package/src/Tests/utils.js +0 -34
  171. package/src/Tests/utils.ts +0 -36
  172. package/src/Types/Auth.ts +0 -113
  173. package/src/Types/Call.ts +0 -15
  174. package/src/Types/Chat.ts +0 -106
  175. package/src/Types/Events.ts +0 -93
  176. package/src/Types/GroupMetadata.ts +0 -53
  177. package/src/Types/Label.ts +0 -36
  178. package/src/Types/Message.ts +0 -288
  179. package/src/Types/Newsletter.ts +0 -98
  180. package/src/Types/Product.ts +0 -85
  181. package/src/Types/Signal.ts +0 -68
  182. package/src/Types/State.ts +0 -29
  183. package/src/Types/index.ts +0 -59
  184. package/src/Utils/auth-utils.ts +0 -222
  185. package/src/Utils/baileys-event-stream.js +0 -92
  186. package/src/Utils/baileys-event-stream.ts +0 -66
  187. package/src/Utils/business.ts +0 -275
  188. package/src/Utils/chat-utils.ts +0 -860
  189. package/src/Utils/crypto.ts +0 -131
  190. package/src/Utils/decode-wa-message.js +0 -211
  191. package/src/Utils/decode-wa-message.ts +0 -228
  192. package/src/Utils/event-buffer.ts +0 -613
  193. package/src/Utils/generics.ts +0 -434
  194. package/src/Utils/history.ts +0 -112
  195. package/src/Utils/index.ts +0 -17
  196. package/src/Utils/link-preview.ts +0 -122
  197. package/src/Utils/logger.ts +0 -3
  198. package/src/Utils/lt-hash.ts +0 -61
  199. package/src/Utils/make-mutex.ts +0 -44
  200. package/src/Utils/messages-media.ts +0 -847
  201. package/src/Utils/messages.ts +0 -956
  202. package/src/Utils/noise-handler.ts +0 -197
  203. package/src/Utils/process-message.ts +0 -414
  204. package/src/Utils/signal.ts +0 -177
  205. package/src/Utils/use-multi-file-auth-state.ts +0 -90
  206. package/src/Utils/validate-connection.ts +0 -238
  207. package/src/WABinary/constants.ts +0 -42
  208. package/src/WABinary/decode.ts +0 -265
  209. package/src/WABinary/encode.ts +0 -236
  210. package/src/WABinary/generic-utils.ts +0 -121
  211. package/src/WABinary/index.ts +0 -5
  212. package/src/WABinary/jid-utils.ts +0 -68
  213. package/src/WABinary/types.ts +0 -17
  214. package/src/WAM/BinaryInfo.ts +0 -12
  215. package/src/WAM/constants.ts +0 -15382
  216. package/src/WAM/encode.ts +0 -174
  217. package/src/WAM/index.ts +0 -3
  218. package/src/gifted +0 -1
  219. package/src/index.ts +0 -13
  220. /package/{src → lib}/Defaults/phonenumber-mcc.json +0 -0
  221. /package/{src → lib}/Socket/Client/abstract-socket-client.js +0 -0
  222. /package/{src → lib}/Store/index.js +0 -0
  223. /package/{src → lib}/Store/make-ordered-dictionary.js +0 -0
  224. /package/{src → lib}/Types/Auth.js +0 -0
  225. /package/{src → lib}/Types/Call.js +0 -0
  226. /package/{src → lib}/Types/Chat.js +0 -0
  227. /package/{src → lib}/Types/Contact.js +0 -0
  228. /package/{src → lib}/Types/Events.js +0 -0
  229. /package/{src → lib}/Types/GroupMetadata.js +0 -0
  230. /package/{src → lib}/Types/Label.js +0 -0
  231. /package/{src → lib}/Types/LabelAssociation.js +0 -0
  232. /package/{src → lib}/Types/Message.js +0 -0
  233. /package/{src → lib}/Types/Newsletter.js +0 -0
  234. /package/{src → lib}/Types/Product.js +0 -0
  235. /package/{src → lib}/Types/Signal.js +0 -0
  236. /package/{src → lib}/Types/Socket.js +0 -0
  237. /package/{src → lib}/Types/State.js +0 -0
  238. /package/{src/WABinary/types.js → lib/Types/USync.js} +0 -0
  239. /package/{src → lib}/Types/index.js +0 -0
  240. /package/{src → lib}/Utils/index.js +0 -0
  241. /package/{src → lib}/Utils/logger.js +0 -0
  242. /package/{src → lib}/Utils/lt-hash.js +0 -0
  243. /package/{src → lib}/Utils/noise-handler.js +0 -0
  244. /package/{src → lib}/WABinary/constants.js +0 -0
  245. /package/{src → lib}/WABinary/decode.js +0 -0
  246. /package/{src → lib}/WABinary/generic-utils.js +0 -0
  247. /package/{src → lib}/WABinary/index.js +0 -0
  248. /package/{src → lib}/WABinary/jid-utils.js +0 -0
  249. /package/{src → lib}/WAM/BinaryInfo.js +0 -0
  250. /package/{src → lib}/WAM/constants.js +0 -0
  251. /package/{src → lib}/WAM/encode.js +0 -0
  252. /package/{src → lib}/WAM/index.js +0 -0
@@ -1,356 +0,0 @@
1
- import { proto } from '../../WAProto'
2
- import { GroupMetadata, GroupParticipant, ParticipantAction, SocketConfig, WAMessageKey, WAMessageStubType } from '../Types'
3
- import { generateMessageID, unixTimestampSeconds } from '../Utils'
4
- import { BinaryNode, getBinaryNodeChild, getBinaryNodeChildren, getBinaryNodeChildString, jidEncode, jidNormalizedUser } from '../WABinary'
5
- import { makeChatsSocket } from './chats'
6
-
7
- export const makeGroupsSocket = (config: SocketConfig) => {
8
- const sock = makeChatsSocket(config)
9
- const { authState, ev, query, upsertMessage } = sock
10
-
11
- const groupQuery = async(jid: string, type: 'get' | 'set', content: BinaryNode[]) => (
12
- query({
13
- tag: 'iq',
14
- attrs: {
15
- type,
16
- xmlns: 'w:g2',
17
- to: jid,
18
- },
19
- content
20
- })
21
- )
22
-
23
- const groupMetadata = async(jid: string) => {
24
- const result = await groupQuery(
25
- jid,
26
- 'get',
27
- [ { tag: 'query', attrs: { request: 'interactive' } } ]
28
- )
29
- return extractGroupMetadata(result)
30
- }
31
-
32
-
33
- const groupFetchAllParticipating = async() => {
34
- const result = await query({
35
- tag: 'iq',
36
- attrs: {
37
- to: '@g.us',
38
- xmlns: 'w:g2',
39
- type: 'get',
40
- },
41
- content: [
42
- {
43
- tag: 'participating',
44
- attrs: { },
45
- content: [
46
- { tag: 'participants', attrs: { } },
47
- { tag: 'description', attrs: { } }
48
- ]
49
- }
50
- ]
51
- })
52
- const data: { [_: string]: GroupMetadata } = { }
53
- const groupsChild = getBinaryNodeChild(result, 'groups')
54
- if(groupsChild) {
55
- const groups = getBinaryNodeChildren(groupsChild, 'group')
56
- for(const groupNode of groups) {
57
- const meta = extractGroupMetadata({
58
- tag: 'result',
59
- attrs: { },
60
- content: [groupNode]
61
- })
62
- data[meta.id] = meta
63
- }
64
- }
65
-
66
- sock.ev.emit('groups.update', Object.values(data))
67
-
68
- return data
69
- }
70
-
71
- sock.ws.on('CB:ib,,dirty', async(node: BinaryNode) => {
72
- const { attrs } = getBinaryNodeChild(node, 'dirty')!
73
- if(attrs.type !== 'groups') {
74
- return
75
- }
76
-
77
- await groupFetchAllParticipating()
78
- await sock.cleanDirtyBits('groups')
79
- })
80
-
81
- return {
82
- ...sock,
83
- groupMetadata,
84
- groupCreate: async(subject: string, participants: string[]) => {
85
- const key = generateMessageID()
86
- const result = await groupQuery(
87
- '@g.us',
88
- 'set',
89
- [
90
- {
91
- tag: 'create',
92
- attrs: {
93
- subject,
94
- key
95
- },
96
- content: participants.map(jid => ({
97
- tag: 'participant',
98
- attrs: { jid }
99
- }))
100
- }
101
- ]
102
- )
103
- return extractGroupMetadata(result)
104
- },
105
- groupLeave: async(id: string) => {
106
- await groupQuery(
107
- '@g.us',
108
- 'set',
109
- [
110
- {
111
- tag: 'leave',
112
- attrs: { },
113
- content: [
114
- { tag: 'group', attrs: { id } }
115
- ]
116
- }
117
- ]
118
- )
119
- },
120
- groupUpdateSubject: async(jid: string, subject: string) => {
121
- await groupQuery(
122
- jid,
123
- 'set',
124
- [
125
- {
126
- tag: 'subject',
127
- attrs: { },
128
- content: Buffer.from(subject, 'utf-8')
129
- }
130
- ]
131
- )
132
- },
133
- groupRequestParticipantsList: async(jid: string) => {
134
- const result = await groupQuery(
135
- jid,
136
- 'get',
137
- [
138
- {
139
- tag: 'membership_approval_requests',
140
- attrs: {}
141
- }
142
- ]
143
- )
144
- const node = getBinaryNodeChild(result, 'membership_approval_requests')
145
- const participants = getBinaryNodeChildren(node, 'membership_approval_request')
146
- return participants.map(v => v.attrs)
147
- },
148
- groupRequestParticipantsUpdate: async(jid: string, participants: string[], action: 'approve' | 'reject') => {
149
- const result = await groupQuery(
150
- jid,
151
- 'set',
152
- [{
153
- tag: 'membership_requests_action',
154
- attrs: {},
155
- content: [
156
- {
157
- tag: action,
158
- attrs: { },
159
- content: participants.map(jid => ({
160
- tag: 'participant',
161
- attrs: { jid }
162
- }))
163
- }
164
- ]
165
- }]
166
- )
167
- const node = getBinaryNodeChild(result, 'membership_requests_action')
168
- const nodeAction = getBinaryNodeChild(node, action)
169
- const participantsAffected = getBinaryNodeChildren(nodeAction, 'participant')
170
- return participantsAffected.map(p => {
171
- return { status: p.attrs.error || '200', jid: p.attrs.jid }
172
- })
173
- },
174
- groupParticipantsUpdate: async(
175
- jid: string,
176
- participants: string[],
177
- action: ParticipantAction
178
- ) => {
179
- const result = await groupQuery(
180
- jid,
181
- 'set',
182
- [
183
- {
184
- tag: action,
185
- attrs: { },
186
- content: participants.map(jid => ({
187
- tag: 'participant',
188
- attrs: { jid }
189
- }))
190
- }
191
- ]
192
- )
193
- const node = getBinaryNodeChild(result, action)
194
- const participantsAffected = getBinaryNodeChildren(node!, 'participant')
195
- return participantsAffected.map(p => {
196
- return { status: p.attrs.error || '200', jid: p.attrs.jid, content: p }
197
- })
198
- },
199
- groupUpdateDescription: async(jid: string, description?: string) => {
200
- const metadata = await groupMetadata(jid)
201
- const prev = metadata.descId ?? null
202
-
203
- await groupQuery(
204
- jid,
205
- 'set',
206
- [
207
- {
208
- tag: 'description',
209
- attrs: {
210
- ...(description ? { id: generateMessageID() } : { delete: 'true' }),
211
- ...(prev ? { prev } : {})
212
- },
213
- content: description ? [
214
- { tag: 'body', attrs: {}, content: Buffer.from(description, 'utf-8') }
215
- ] : undefined
216
- }
217
- ]
218
- )
219
- },
220
- groupInviteCode: async(jid: string) => {
221
- const result = await groupQuery(jid, 'get', [{ tag: 'invite', attrs: {} }])
222
- const inviteNode = getBinaryNodeChild(result, 'invite')
223
- return inviteNode?.attrs.code
224
- },
225
- groupRevokeInvite: async(jid: string) => {
226
- const result = await groupQuery(jid, 'set', [{ tag: 'invite', attrs: {} }])
227
- const inviteNode = getBinaryNodeChild(result, 'invite')
228
- return inviteNode?.attrs.code
229
- },
230
- groupAcceptInvite: async(code: string) => {
231
- const results = await groupQuery('@g.us', 'set', [{ tag: 'invite', attrs: { code } }])
232
- const result = getBinaryNodeChild(results, 'group')
233
- return result?.attrs.jid
234
- },
235
- /**
236
- * accept a GroupInviteMessage
237
- * @param key the key of the invite message, or optionally only provide the jid of the person who sent the invite
238
- * @param inviteMessage the message to accept
239
- */
240
- groupAcceptInviteV4: ev.createBufferedFunction(async(key: string | WAMessageKey, inviteMessage: proto.Message.IGroupInviteMessage) => {
241
- key = typeof key === 'string' ? { remoteJid: key } : key
242
- const results = await groupQuery(inviteMessage.groupJid!, 'set', [{
243
- tag: 'accept',
244
- attrs: {
245
- code: inviteMessage.inviteCode!,
246
- expiration: inviteMessage.inviteExpiration!.toString(),
247
- admin: key.remoteJid!
248
- }
249
- }])
250
-
251
- // if we have the full message key
252
- // update the invite message to be expired
253
- if(key.id) {
254
- // create new invite message that is expired
255
- inviteMessage = proto.Message.GroupInviteMessage.fromObject(inviteMessage)
256
- inviteMessage.inviteExpiration = 0
257
- inviteMessage.inviteCode = ''
258
- ev.emit('messages.update', [
259
- {
260
- key,
261
- update: {
262
- message: {
263
- groupInviteMessage: inviteMessage
264
- }
265
- }
266
- }
267
- ])
268
- }
269
-
270
- // generate the group add message
271
- await upsertMessage(
272
- {
273
- key: {
274
- remoteJid: inviteMessage.groupJid,
275
- id: generateMessageID(),
276
- fromMe: false,
277
- participant: key.remoteJid,
278
- },
279
- messageStubType: WAMessageStubType.GROUP_PARTICIPANT_ADD,
280
- messageStubParameters: [
281
- authState.creds.me!.id
282
- ],
283
- participant: key.remoteJid,
284
- messageTimestamp: unixTimestampSeconds()
285
- },
286
- 'notify'
287
- )
288
-
289
- return results.attrs.from
290
- }),
291
- groupGetInviteInfo: async(code: string) => {
292
- const results = await groupQuery('@g.us', 'get', [{ tag: 'invite', attrs: { code } }])
293
- return extractGroupMetadata(results)
294
- },
295
- groupToggleEphemeral: async(jid: string, ephemeralExpiration: number) => {
296
- const content: BinaryNode = ephemeralExpiration ?
297
- { tag: 'ephemeral', attrs: { expiration: ephemeralExpiration.toString() } } :
298
- { tag: 'not_ephemeral', attrs: { } }
299
- await groupQuery(jid, 'set', [content])
300
- },
301
- groupSettingUpdate: async(jid: string, setting: 'announcement' | 'not_announcement' | 'locked' | 'unlocked') => {
302
- await groupQuery(jid, 'set', [ { tag: setting, attrs: { } } ])
303
- },
304
- groupMemberAddMode: async(jid: string, mode: 'admin_add' | 'all_member_add') => {
305
- await groupQuery(jid, 'set', [ { tag: 'member_add_mode', attrs: { }, content: mode } ])
306
- },
307
- groupJoinApprovalMode: async(jid: string, mode: 'on' | 'off') => {
308
- await groupQuery(jid, 'set', [ { tag: 'membership_approval_mode', attrs: { }, content: [ { tag: 'group_join', attrs: { state: mode } } ] } ])
309
- },
310
- groupFetchAllParticipating
311
- }
312
- }
313
-
314
-
315
- export const extractGroupMetadata = (result: BinaryNode) => {
316
- const group = getBinaryNodeChild(result, 'group')!
317
- const descChild = getBinaryNodeChild(group, 'description')
318
- let desc: string | undefined
319
- let descId: string | undefined
320
- if(descChild) {
321
- desc = getBinaryNodeChildString(descChild, 'body')
322
- descId = descChild.attrs.id
323
- }
324
-
325
- const groupId = group.attrs.id.includes('@') ? group.attrs.id : jidEncode(group.attrs.id, 'g.us')
326
- const eph = getBinaryNodeChild(group, 'ephemeral')?.attrs.expiration
327
- const memberAddMode = getBinaryNodeChildString(group, 'member_add_mode') === 'all_member_add'
328
- const metadata: GroupMetadata = {
329
- id: groupId,
330
- subject: group.attrs.subject,
331
- subjectOwner: group.attrs.s_o,
332
- subjectTime: +group.attrs.s_t,
333
- size: getBinaryNodeChildren(group, 'participant').length,
334
- creation: +group.attrs.creation,
335
- owner: group.attrs.creator ? jidNormalizedUser(group.attrs.creator) : undefined,
336
- desc,
337
- descId,
338
- linkedParent: getBinaryNodeChild(group, 'linked_parent')?.attrs.jid || undefined,
339
- restrict: !!getBinaryNodeChild(group, 'locked'),
340
- announce: !!getBinaryNodeChild(group, 'announcement'),
341
- isCommunity: !!getBinaryNodeChild(group, 'parent'),
342
- isCommunityAnnounce: !!getBinaryNodeChild(group, 'default_sub_group'),
343
- joinApprovalMode: !!getBinaryNodeChild(group, 'membership_approval_mode'),
344
- memberAddMode,
345
- participants: getBinaryNodeChildren(group, 'participant').map(
346
- ({ attrs }) => {
347
- return {
348
- id: attrs.jid,
349
- admin: (attrs.type || null) as GroupParticipant['admin'],
350
- }
351
- }
352
- ),
353
- ephemeralDuration: eph ? +eph : undefined
354
- }
355
- return metadata
356
- }
@@ -1,13 +0,0 @@
1
- import { DEFAULT_CONNECTION_CONFIG } from '../Defaults'
2
- import { UserFacingSocketConfig } from '../Types'
3
- import { makeRegistrationSocket as _makeSocket } from './registration'
4
-
5
- // export the last socket layer
6
- const makeWASocket = (config: UserFacingSocketConfig) => (
7
- _makeSocket({
8
- ...DEFAULT_CONNECTION_CONFIG,
9
- ...config
10
- })
11
- )
12
-
13
- export default makeWASocket