gifted-baileys 1.5.5 → 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 (251) hide show
  1. package/README.md +6 -1642
  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/Signal/libsignal.js +0 -180
  136. package/src/Signal/libsignal.ts +0 -141
  137. package/src/Socket/Client/abstract-socket-client.ts +0 -19
  138. package/src/Socket/Client/index.ts +0 -3
  139. package/src/Socket/Client/mobile-socket-client.js +0 -78
  140. package/src/Socket/Client/mobile-socket-client.ts +0 -66
  141. package/src/Socket/Client/web-socket-client.js +0 -75
  142. package/src/Socket/Client/web-socket-client.ts +0 -57
  143. package/src/Socket/business.ts +0 -281
  144. package/src/Socket/chats.ts +0 -1030
  145. package/src/Socket/groups.ts +0 -356
  146. package/src/Socket/index.ts +0 -13
  147. package/src/Socket/messages-recv.ts +0 -985
  148. package/src/Socket/messages-send.ts +0 -871
  149. package/src/Socket/newsletter.ts +0 -282
  150. package/src/Socket/registration.ts +0 -250
  151. package/src/Socket/socket.ts +0 -777
  152. package/src/Store/index.ts +0 -3
  153. package/src/Store/make-cache-manager-store.ts +0 -100
  154. package/src/Store/make-in-memory-store.ts +0 -475
  155. package/src/Store/make-ordered-dictionary.ts +0 -86
  156. package/src/Store/object-repository.ts +0 -32
  157. package/src/Tests/test.app-state-sync.js +0 -204
  158. package/src/Tests/test.app-state-sync.ts +0 -207
  159. package/src/Tests/test.event-buffer.js +0 -270
  160. package/src/Tests/test.event-buffer.ts +0 -319
  161. package/src/Tests/test.key-store.js +0 -76
  162. package/src/Tests/test.key-store.ts +0 -92
  163. package/src/Tests/test.libsignal.js +0 -141
  164. package/src/Tests/test.libsignal.ts +0 -186
  165. package/src/Tests/test.media-download.js +0 -93
  166. package/src/Tests/test.media-download.ts +0 -76
  167. package/src/Tests/test.messages.js +0 -33
  168. package/src/Tests/test.messages.ts +0 -37
  169. package/src/Tests/utils.js +0 -34
  170. package/src/Tests/utils.ts +0 -36
  171. package/src/Types/Auth.ts +0 -113
  172. package/src/Types/Call.ts +0 -15
  173. package/src/Types/Chat.ts +0 -106
  174. package/src/Types/Events.ts +0 -93
  175. package/src/Types/GroupMetadata.ts +0 -53
  176. package/src/Types/Label.ts +0 -36
  177. package/src/Types/Message.ts +0 -288
  178. package/src/Types/Newsletter.ts +0 -98
  179. package/src/Types/Product.ts +0 -85
  180. package/src/Types/Signal.ts +0 -68
  181. package/src/Types/State.ts +0 -29
  182. package/src/Types/index.ts +0 -59
  183. package/src/Utils/auth-utils.ts +0 -222
  184. package/src/Utils/baileys-event-stream.js +0 -92
  185. package/src/Utils/baileys-event-stream.ts +0 -66
  186. package/src/Utils/business.ts +0 -275
  187. package/src/Utils/chat-utils.ts +0 -860
  188. package/src/Utils/crypto.ts +0 -131
  189. package/src/Utils/decode-wa-message.js +0 -211
  190. package/src/Utils/decode-wa-message.ts +0 -228
  191. package/src/Utils/event-buffer.ts +0 -613
  192. package/src/Utils/generics.ts +0 -434
  193. package/src/Utils/history.ts +0 -112
  194. package/src/Utils/index.ts +0 -17
  195. package/src/Utils/link-preview.ts +0 -122
  196. package/src/Utils/logger.ts +0 -3
  197. package/src/Utils/lt-hash.ts +0 -61
  198. package/src/Utils/make-mutex.ts +0 -44
  199. package/src/Utils/messages-media.ts +0 -847
  200. package/src/Utils/messages.ts +0 -956
  201. package/src/Utils/noise-handler.ts +0 -197
  202. package/src/Utils/process-message.ts +0 -414
  203. package/src/Utils/signal.ts +0 -177
  204. package/src/Utils/use-multi-file-auth-state.ts +0 -90
  205. package/src/Utils/validate-connection.ts +0 -238
  206. package/src/WABinary/constants.ts +0 -42
  207. package/src/WABinary/decode.ts +0 -265
  208. package/src/WABinary/encode.ts +0 -236
  209. package/src/WABinary/generic-utils.ts +0 -121
  210. package/src/WABinary/index.ts +0 -5
  211. package/src/WABinary/jid-utils.ts +0 -68
  212. package/src/WABinary/types.ts +0 -17
  213. package/src/WAM/BinaryInfo.ts +0 -12
  214. package/src/WAM/constants.ts +0 -15382
  215. package/src/WAM/encode.ts +0 -174
  216. package/src/WAM/index.ts +0 -3
  217. package/src/gifted +0 -1
  218. package/src/index.ts +0 -13
  219. /package/{src → lib}/Defaults/phonenumber-mcc.json +0 -0
  220. /package/{src → lib}/Socket/Client/abstract-socket-client.js +0 -0
  221. /package/{src → lib}/Store/index.js +0 -0
  222. /package/{src → lib}/Store/make-ordered-dictionary.js +0 -0
  223. /package/{src → lib}/Types/Auth.js +0 -0
  224. /package/{src → lib}/Types/Call.js +0 -0
  225. /package/{src → lib}/Types/Chat.js +0 -0
  226. /package/{src → lib}/Types/Contact.js +0 -0
  227. /package/{src → lib}/Types/Events.js +0 -0
  228. /package/{src → lib}/Types/GroupMetadata.js +0 -0
  229. /package/{src → lib}/Types/Label.js +0 -0
  230. /package/{src → lib}/Types/LabelAssociation.js +0 -0
  231. /package/{src → lib}/Types/Message.js +0 -0
  232. /package/{src → lib}/Types/Newsletter.js +0 -0
  233. /package/{src → lib}/Types/Product.js +0 -0
  234. /package/{src → lib}/Types/Signal.js +0 -0
  235. /package/{src → lib}/Types/Socket.js +0 -0
  236. /package/{src → lib}/Types/State.js +0 -0
  237. /package/{src/WABinary/types.js → lib/Types/USync.js} +0 -0
  238. /package/{src → lib}/Types/index.js +0 -0
  239. /package/{src → lib}/Utils/index.js +0 -0
  240. /package/{src → lib}/Utils/logger.js +0 -0
  241. /package/{src → lib}/Utils/lt-hash.js +0 -0
  242. /package/{src → lib}/Utils/noise-handler.js +0 -0
  243. /package/{src → lib}/WABinary/constants.js +0 -0
  244. /package/{src → lib}/WABinary/decode.js +0 -0
  245. /package/{src → lib}/WABinary/generic-utils.js +0 -0
  246. /package/{src → lib}/WABinary/index.js +0 -0
  247. /package/{src → lib}/WABinary/jid-utils.js +0 -0
  248. /package/{src → lib}/WAM/BinaryInfo.js +0 -0
  249. /package/{src → lib}/WAM/constants.js +0 -0
  250. /package/{src → lib}/WAM/encode.js +0 -0
  251. /package/{src → lib}/WAM/index.js +0 -0
@@ -1,204 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const Utils_1 = require("../Utils");
7
- const chat_utils_1 = require("../Utils/chat-utils");
8
- const logger_1 = __importDefault(require("../Utils/logger"));
9
- describe('App State Sync Tests', () => {
10
- const me = { id: randomJid() };
11
- // case when initial sync is off
12
- it('should return archive=false event', () => {
13
- var _a;
14
- const jid = randomJid();
15
- const index = ['archive', jid];
16
- const CASES = [
17
- [
18
- {
19
- index,
20
- syncAction: {
21
- value: {
22
- archiveChatAction: {
23
- archived: false,
24
- messageRange: {
25
- lastMessageTimestamp: (0, Utils_1.unixTimestampSeconds)()
26
- }
27
- }
28
- }
29
- }
30
- }
31
- ],
32
- [
33
- {
34
- index,
35
- syncAction: {
36
- value: {
37
- archiveChatAction: {
38
- archived: true,
39
- messageRange: {
40
- lastMessageTimestamp: (0, Utils_1.unixTimestampSeconds)()
41
- }
42
- }
43
- }
44
- }
45
- },
46
- {
47
- index,
48
- syncAction: {
49
- value: {
50
- archiveChatAction: {
51
- archived: false,
52
- messageRange: {
53
- lastMessageTimestamp: (0, Utils_1.unixTimestampSeconds)()
54
- }
55
- }
56
- }
57
- }
58
- }
59
- ]
60
- ];
61
- for (const mutations of CASES) {
62
- const events = (0, chat_utils_1.processSyncAction)(mutations, me, undefined, logger_1.default);
63
- expect(events['chats.update']).toHaveLength(1);
64
- const event = (_a = events['chats.update']) === null || _a === void 0 ? void 0 : _a[0];
65
- expect(event.archive).toEqual(false);
66
- }
67
- });
68
- // case when initial sync is on
69
- // and unarchiveChats = true
70
- it('should not fire any archive event', () => {
71
- var _a;
72
- const jid = randomJid();
73
- const index = ['archive', jid];
74
- const now = (0, Utils_1.unixTimestampSeconds)();
75
- const CASES = [
76
- [
77
- {
78
- index,
79
- syncAction: {
80
- value: {
81
- archiveChatAction: {
82
- archived: true,
83
- messageRange: {
84
- lastMessageTimestamp: now - 1
85
- }
86
- }
87
- }
88
- }
89
- }
90
- ],
91
- [
92
- {
93
- index,
94
- syncAction: {
95
- value: {
96
- archiveChatAction: {
97
- archived: false,
98
- messageRange: {
99
- lastMessageTimestamp: now + 10
100
- }
101
- }
102
- }
103
- }
104
- }
105
- ],
106
- [
107
- {
108
- index,
109
- syncAction: {
110
- value: {
111
- archiveChatAction: {
112
- archived: true,
113
- messageRange: {
114
- lastMessageTimestamp: now + 10
115
- }
116
- }
117
- }
118
- }
119
- },
120
- {
121
- index,
122
- syncAction: {
123
- value: {
124
- archiveChatAction: {
125
- archived: false,
126
- messageRange: {
127
- lastMessageTimestamp: now + 11
128
- }
129
- }
130
- }
131
- }
132
- }
133
- ],
134
- ];
135
- const ctx = {
136
- recvChats: {
137
- [jid]: { lastMsgRecvTimestamp: now }
138
- },
139
- accountSettings: { unarchiveChats: true }
140
- };
141
- for (const mutations of CASES) {
142
- const events = processSyncActions(mutations, me, ctx, logger_1.default);
143
- expect((_a = events['chats.update']) === null || _a === void 0 ? void 0 : _a.length).toBeFalsy();
144
- }
145
- });
146
- // case when initial sync is on
147
- // with unarchiveChats = true & unarchiveChats = false
148
- it('should fire archive=true events', () => {
149
- var _a;
150
- const jid = randomJid();
151
- const index = ['archive', jid];
152
- const now = (0, Utils_1.unixTimestampSeconds)();
153
- const CASES = [
154
- {
155
- settings: { unarchiveChats: true },
156
- mutations: [
157
- {
158
- index,
159
- syncAction: {
160
- value: {
161
- archiveChatAction: {
162
- archived: true,
163
- messageRange: {
164
- lastMessageTimestamp: now
165
- }
166
- }
167
- }
168
- }
169
- }
170
- ],
171
- },
172
- {
173
- settings: { unarchiveChats: false },
174
- mutations: [
175
- {
176
- index,
177
- syncAction: {
178
- value: {
179
- archiveChatAction: {
180
- archived: true,
181
- messageRange: {
182
- lastMessageTimestamp: now - 10
183
- }
184
- }
185
- }
186
- }
187
- }
188
- ],
189
- }
190
- ];
191
- for (const { mutations, settings } of CASES) {
192
- const ctx = {
193
- recvChats: {
194
- [jid]: { lastMsgRecvTimestamp: now }
195
- },
196
- accountSettings: settings
197
- };
198
- const events = processSyncActions(mutations, me, ctx, logger_1.default);
199
- expect(events['chats.update']).toHaveLength(1);
200
- const event = (_a = events['chats.update']) === null || _a === void 0 ? void 0 : _a[0];
201
- expect(event.archive).toEqual(true);
202
- }
203
- });
204
- });
@@ -1,207 +0,0 @@
1
- import { AccountSettings, ChatMutation, Contact, InitialAppStateSyncOptions } from '../Types'
2
- import { unixTimestampSeconds } from '../Utils'
3
- import { processSyncAction } from '../Utils/chat-utils'
4
- import logger from '../Utils/logger'
5
-
6
- describe('App State Sync Tests', () => {
7
-
8
- const me: Contact = { id: randomJid() }
9
- // case when initial sync is off
10
- it('should return archive=false event', () => {
11
- const jid = randomJid()
12
- const index = ['archive', jid]
13
-
14
- const CASES: ChatMutation[][] = [
15
- [
16
- {
17
- index,
18
- syncAction: {
19
- value: {
20
- archiveChatAction: {
21
- archived: false,
22
- messageRange: {
23
- lastMessageTimestamp: unixTimestampSeconds()
24
- }
25
- }
26
- }
27
- }
28
- }
29
- ],
30
- [
31
- {
32
- index,
33
- syncAction: {
34
- value: {
35
- archiveChatAction: {
36
- archived: true,
37
- messageRange: {
38
- lastMessageTimestamp: unixTimestampSeconds()
39
- }
40
- }
41
- }
42
- }
43
- },
44
- {
45
- index,
46
- syncAction: {
47
- value: {
48
- archiveChatAction: {
49
- archived: false,
50
- messageRange: {
51
- lastMessageTimestamp: unixTimestampSeconds()
52
- }
53
- }
54
- }
55
- }
56
- }
57
- ]
58
- ]
59
-
60
- for(const mutations of CASES) {
61
- const events = processSyncAction(mutations, me, undefined, logger)
62
- expect(events['chats.update']).toHaveLength(1)
63
- const event = events['chats.update']?.[0]
64
- expect(event.archive).toEqual(false)
65
- }
66
- })
67
- // case when initial sync is on
68
- // and unarchiveChats = true
69
- it('should not fire any archive event', () => {
70
- const jid = randomJid()
71
- const index = ['archive', jid]
72
- const now = unixTimestampSeconds()
73
-
74
- const CASES: ChatMutation[][] = [
75
- [
76
- {
77
- index,
78
- syncAction: {
79
- value: {
80
- archiveChatAction: {
81
- archived: true,
82
- messageRange: {
83
- lastMessageTimestamp: now - 1
84
- }
85
- }
86
- }
87
- }
88
- }
89
- ],
90
- [
91
- {
92
- index,
93
- syncAction: {
94
- value: {
95
- archiveChatAction: {
96
- archived: false,
97
- messageRange: {
98
- lastMessageTimestamp: now + 10
99
- }
100
- }
101
- }
102
- }
103
- }
104
- ],
105
- [
106
- {
107
- index,
108
- syncAction: {
109
- value: {
110
- archiveChatAction: {
111
- archived: true,
112
- messageRange: {
113
- lastMessageTimestamp: now + 10
114
- }
115
- }
116
- }
117
- }
118
- },
119
- {
120
- index,
121
- syncAction: {
122
- value: {
123
- archiveChatAction: {
124
- archived: false,
125
- messageRange: {
126
- lastMessageTimestamp: now + 11
127
- }
128
- }
129
- }
130
- }
131
- }
132
- ],
133
- ]
134
-
135
- const ctx: InitialAppStateSyncOptions = {
136
- recvChats: {
137
- [jid]: { lastMsgRecvTimestamp: now }
138
- },
139
- accountSettings: { unarchiveChats: true }
140
- }
141
-
142
- for(const mutations of CASES) {
143
- const events = processSyncActions(mutations, me, ctx, logger)
144
- expect(events['chats.update']?.length).toBeFalsy()
145
- }
146
- })
147
-
148
- // case when initial sync is on
149
- // with unarchiveChats = true & unarchiveChats = false
150
- it('should fire archive=true events', () => {
151
- const jid = randomJid()
152
- const index = ['archive', jid]
153
- const now = unixTimestampSeconds()
154
-
155
- const CASES: { settings: AccountSettings, mutations: ChatMutation[] }[] = [
156
- {
157
- settings: { unarchiveChats: true },
158
- mutations: [
159
- {
160
- index,
161
- syncAction: {
162
- value: {
163
- archiveChatAction: {
164
- archived: true,
165
- messageRange: {
166
- lastMessageTimestamp: now
167
- }
168
- }
169
- }
170
- }
171
- }
172
- ],
173
- },
174
- {
175
- settings: { unarchiveChats: false },
176
- mutations: [
177
- {
178
- index,
179
- syncAction: {
180
- value: {
181
- archiveChatAction: {
182
- archived: true,
183
- messageRange: {
184
- lastMessageTimestamp: now - 10
185
- }
186
- }
187
- }
188
- }
189
- }
190
- ],
191
- }
192
- ]
193
-
194
- for(const { mutations, settings } of CASES) {
195
- const ctx: InitialAppStateSyncOptions = {
196
- recvChats: {
197
- [jid]: { lastMsgRecvTimestamp: now }
198
- },
199
- accountSettings: settings
200
- }
201
- const events = processSyncActions(mutations, me, ctx, logger)
202
- expect(events['chats.update']).toHaveLength(1)
203
- const event = events['chats.update']?.[0]
204
- expect(event.archive).toEqual(true)
205
- }
206
- })
207
- })
@@ -1,270 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const WAProto_1 = require("../../WAProto");
16
- const Types_1 = require("../Types");
17
- const Utils_1 = require("../Utils");
18
- const logger_1 = __importDefault(require("../Utils/logger"));
19
- const utils_1 = require("./utils");
20
- describe('Event Buffer Tests', () => {
21
- let ev;
22
- beforeEach(() => {
23
- const _logger = logger_1.default.child({});
24
- _logger.level = 'trace';
25
- ev = (0, Utils_1.makeEventBuffer)(_logger);
26
- });
27
- it('should buffer a chat upsert & update event', () => __awaiter(void 0, void 0, void 0, function* () {
28
- const chatId = (0, utils_1.randomJid)();
29
- const chats = [];
30
- ev.on('chats.upsert', c => chats.push(...c));
31
- ev.on('chats.update', () => fail('should not emit update event'));
32
- ev.buffer();
33
- yield Promise.all([
34
- (() => __awaiter(void 0, void 0, void 0, function* () {
35
- ev.buffer();
36
- yield (0, Utils_1.delay)(100);
37
- ev.emit('chats.upsert', [{ id: chatId, conversationTimestamp: 123, unreadCount: 1 }]);
38
- const flushed = ev.flush();
39
- expect(flushed).toBeFalsy();
40
- }))(),
41
- (() => __awaiter(void 0, void 0, void 0, function* () {
42
- ev.buffer();
43
- yield (0, Utils_1.delay)(200);
44
- ev.emit('chats.update', [{ id: chatId, conversationTimestamp: 124, unreadCount: 1 }]);
45
- const flushed = ev.flush();
46
- expect(flushed).toBeFalsy();
47
- }))()
48
- ]);
49
- const flushed = ev.flush();
50
- expect(flushed).toBeTruthy();
51
- expect(chats).toHaveLength(1);
52
- expect(chats[0].conversationTimestamp).toEqual(124);
53
- expect(chats[0].unreadCount).toEqual(2);
54
- }));
55
- it('should overwrite a chats.delete event', () => __awaiter(void 0, void 0, void 0, function* () {
56
- const chatId = (0, utils_1.randomJid)();
57
- const chats = [];
58
- ev.on('chats.update', c => chats.push(...c));
59
- ev.on('chats.delete', () => fail('not should have emitted'));
60
- ev.buffer();
61
- ev.emit('chats.update', [{ id: chatId, conversationTimestamp: 123, unreadCount: 1 }]);
62
- ev.emit('chats.delete', [chatId]);
63
- ev.emit('chats.update', [{ id: chatId, conversationTimestamp: 124, unreadCount: 1 }]);
64
- ev.flush();
65
- expect(chats).toHaveLength(1);
66
- }));
67
- it('should overwrite a chats.update event', () => __awaiter(void 0, void 0, void 0, function* () {
68
- const chatId = (0, utils_1.randomJid)();
69
- const chatsDeleted = [];
70
- ev.on('chats.delete', c => chatsDeleted.push(...c));
71
- ev.on('chats.update', () => fail('not should have emitted'));
72
- ev.buffer();
73
- ev.emit('chats.update', [{ id: chatId, conversationTimestamp: 123, unreadCount: 1 }]);
74
- ev.emit('chats.delete', [chatId]);
75
- ev.flush();
76
- expect(chatsDeleted).toHaveLength(1);
77
- }));
78
- it('should release a conditional update at the right time', () => __awaiter(void 0, void 0, void 0, function* () {
79
- const chatId = (0, utils_1.randomJid)();
80
- const chatId2 = (0, utils_1.randomJid)();
81
- const chatsUpserted = [];
82
- const chatsSynced = [];
83
- ev.on('chats.upsert', c => chatsUpserted.push(...c));
84
- ev.on('messaging-history.set', c => chatsSynced.push(...c.chats));
85
- ev.on('chats.update', () => fail('not should have emitted'));
86
- ev.buffer();
87
- ev.emit('chats.update', [{
88
- id: chatId,
89
- archived: true,
90
- conditional(buff) {
91
- if (buff.chatUpserts[chatId]) {
92
- return true;
93
- }
94
- }
95
- }]);
96
- ev.emit('chats.update', [{
97
- id: chatId2,
98
- archived: true,
99
- conditional(buff) {
100
- if (buff.historySets.chats[chatId2]) {
101
- return true;
102
- }
103
- }
104
- }]);
105
- ev.flush();
106
- ev.buffer();
107
- ev.emit('chats.upsert', [{
108
- id: chatId,
109
- conversationTimestamp: 123,
110
- unreadCount: 1,
111
- muteEndTime: 123
112
- }]);
113
- ev.emit('messaging-history.set', {
114
- chats: [{
115
- id: chatId2,
116
- conversationTimestamp: 123,
117
- unreadCount: 1,
118
- muteEndTime: 123
119
- }],
120
- contacts: [],
121
- messages: [],
122
- isLatest: false
123
- });
124
- ev.flush();
125
- expect(chatsUpserted).toHaveLength(1);
126
- expect(chatsUpserted[0].id).toEqual(chatId);
127
- expect(chatsUpserted[0].archived).toEqual(true);
128
- expect(chatsUpserted[0].muteEndTime).toEqual(123);
129
- expect(chatsSynced).toHaveLength(1);
130
- expect(chatsSynced[0].id).toEqual(chatId2);
131
- expect(chatsSynced[0].archived).toEqual(true);
132
- }));
133
- it('should discard a conditional update', () => __awaiter(void 0, void 0, void 0, function* () {
134
- const chatId = (0, utils_1.randomJid)();
135
- const chatsUpserted = [];
136
- ev.on('chats.upsert', c => chatsUpserted.push(...c));
137
- ev.on('chats.update', () => fail('not should have emitted'));
138
- ev.buffer();
139
- ev.emit('chats.update', [{
140
- id: chatId,
141
- archived: true,
142
- conditional(buff) {
143
- if (buff.chatUpserts[chatId]) {
144
- return false;
145
- }
146
- }
147
- }]);
148
- ev.emit('chats.upsert', [{
149
- id: chatId,
150
- conversationTimestamp: 123,
151
- unreadCount: 1,
152
- muteEndTime: 123
153
- }]);
154
- ev.flush();
155
- expect(chatsUpserted).toHaveLength(1);
156
- expect(chatsUpserted[0].archived).toBeUndefined();
157
- }));
158
- it('should overwrite a chats.update event with a history event', () => __awaiter(void 0, void 0, void 0, function* () {
159
- const chatId = (0, utils_1.randomJid)();
160
- let chatRecv;
161
- ev.on('messaging-history.set', ({ chats }) => {
162
- chatRecv = chats[0];
163
- });
164
- ev.on('chats.update', () => fail('not should have emitted'));
165
- ev.buffer();
166
- ev.emit('messaging-history.set', {
167
- chats: [{ id: chatId, conversationTimestamp: 123, unreadCount: 1 }],
168
- messages: [],
169
- contacts: [],
170
- isLatest: true
171
- });
172
- ev.emit('chats.update', [{ id: chatId, archived: true }]);
173
- ev.flush();
174
- expect(chatRecv).toBeDefined();
175
- expect(chatRecv === null || chatRecv === void 0 ? void 0 : chatRecv.archived).toBeTruthy();
176
- }));
177
- it('should buffer message upsert events', () => __awaiter(void 0, void 0, void 0, function* () {
178
- const messageTimestamp = (0, Utils_1.unixTimestampSeconds)();
179
- const msg = {
180
- key: {
181
- remoteJid: (0, utils_1.randomJid)(),
182
- id: (0, Utils_1.generateMessageID)(),
183
- fromMe: false
184
- },
185
- messageStubType: Types_1.WAMessageStubType.CIPHERTEXT,
186
- messageTimestamp
187
- };
188
- const msgs = [];
189
- ev.on('messages.upsert', c => {
190
- msgs.push(...c.messages);
191
- expect(c.type).toEqual('notify');
192
- });
193
- ev.buffer();
194
- ev.emit('messages.upsert', { messages: [WAProto_1.proto.WebMessageInfo.fromObject(msg)], type: 'notify' });
195
- msg.messageTimestamp = (0, Utils_1.unixTimestampSeconds)() + 1;
196
- msg.messageStubType = undefined;
197
- msg.message = { conversation: 'Test' };
198
- ev.emit('messages.upsert', { messages: [WAProto_1.proto.WebMessageInfo.fromObject(msg)], type: 'notify' });
199
- ev.emit('messages.update', [{ key: msg.key, update: { status: Types_1.WAMessageStatus.READ } }]);
200
- ev.flush();
201
- expect(msgs).toHaveLength(1);
202
- expect(msgs[0].message).toBeTruthy();
203
- expect((0, Utils_1.toNumber)(msgs[0].messageTimestamp)).toEqual(messageTimestamp);
204
- expect(msgs[0].status).toEqual(Types_1.WAMessageStatus.READ);
205
- }));
206
- it('should buffer a message receipt update', () => __awaiter(void 0, void 0, void 0, function* () {
207
- const msg = {
208
- key: {
209
- remoteJid: (0, utils_1.randomJid)(),
210
- id: (0, Utils_1.generateMessageID)(),
211
- fromMe: false
212
- },
213
- messageStubType: Types_1.WAMessageStubType.CIPHERTEXT,
214
- messageTimestamp: (0, Utils_1.unixTimestampSeconds)()
215
- };
216
- const msgs = [];
217
- ev.on('messages.upsert', c => msgs.push(...c.messages));
218
- ev.on('message-receipt.update', () => fail('should not emit'));
219
- ev.buffer();
220
- ev.emit('messages.upsert', { messages: [WAProto_1.proto.WebMessageInfo.fromObject(msg)], type: 'notify' });
221
- ev.emit('message-receipt.update', [
222
- {
223
- key: msg.key,
224
- receipt: {
225
- userJid: (0, utils_1.randomJid)(),
226
- readTimestamp: (0, Utils_1.unixTimestampSeconds)()
227
- }
228
- }
229
- ]);
230
- ev.flush();
231
- expect(msgs).toHaveLength(1);
232
- expect(msgs[0].userReceipt).toHaveLength(1);
233
- }));
234
- it('should buffer multiple status updates', () => __awaiter(void 0, void 0, void 0, function* () {
235
- const key = {
236
- remoteJid: (0, utils_1.randomJid)(),
237
- id: (0, Utils_1.generateMessageID)(),
238
- fromMe: false
239
- };
240
- const msgs = [];
241
- ev.on('messages.update', c => msgs.push(...c));
242
- ev.buffer();
243
- ev.emit('messages.update', [{ key, update: { status: Types_1.WAMessageStatus.DELIVERY_ACK } }]);
244
- ev.emit('messages.update', [{ key, update: { status: Types_1.WAMessageStatus.READ } }]);
245
- ev.flush();
246
- expect(msgs).toHaveLength(1);
247
- expect(msgs[0].update.status).toEqual(Types_1.WAMessageStatus.READ);
248
- }));
249
- it('should remove chat unread counter', () => __awaiter(void 0, void 0, void 0, function* () {
250
- const msg = {
251
- key: {
252
- remoteJid: '12345@s.whatsapp.net',
253
- id: (0, Utils_1.generateMessageID)(),
254
- fromMe: false
255
- },
256
- message: {
257
- conversation: 'abcd'
258
- },
259
- messageTimestamp: (0, Utils_1.unixTimestampSeconds)()
260
- };
261
- const chats = [];
262
- ev.on('chats.update', c => chats.push(...c));
263
- ev.buffer();
264
- ev.emit('messages.upsert', { messages: [WAProto_1.proto.WebMessageInfo.fromObject(msg)], type: 'notify' });
265
- ev.emit('chats.update', [{ id: msg.key.remoteJid, unreadCount: 1, conversationTimestamp: msg.messageTimestamp }]);
266
- ev.emit('messages.update', [{ key: msg.key, update: { status: Types_1.WAMessageStatus.READ } }]);
267
- ev.flush();
268
- expect(chats[0].unreadCount).toBeUndefined();
269
- }));
270
- });