alicezetion 1.0.3 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. package/.cache/replit/__replit_disk_meta.json +1 -1
  2. package/.cache/replit/modules.stamp +1 -0
  3. package/.cache/replit/nix/env.json +1 -1
  4. package/index.js +536 -604
  5. package/package.json +78 -75
  6. package/replit.nix +6 -0
  7. package/src/addExternalModule.js +15 -0
  8. package/{alice → src}/addUserToGroup.js +77 -113
  9. package/src/changeAdminStatus.js +47 -0
  10. package/src/changeArchivedStatus.js +41 -0
  11. package/{alice → src}/changeBio.js +64 -77
  12. package/{alice → src}/changeBlockedStatus.js +36 -47
  13. package/{alice → src}/changeGroupImage.js +105 -129
  14. package/src/changeNickname.js +43 -0
  15. package/{alice → src}/changeThreadColor.js +61 -71
  16. package/src/changeThreadEmoji.js +41 -0
  17. package/src/chat.js +315 -0
  18. package/{alice → src}/createNewGroup.js +70 -86
  19. package/{alice → src}/createPoll.js +59 -71
  20. package/src/deleteMessage.js +44 -0
  21. package/src/deleteThread.js +42 -0
  22. package/src/forwardAttachment.js +47 -0
  23. package/src/forwardMessage.js +0 -0
  24. package/{alice → src}/getCurrentUserID.js +7 -7
  25. package/{alice → src}/getEmojiUrl.js +27 -29
  26. package/{alice → src}/getFriendsList.js +73 -84
  27. package/{alice → src}/getThreadHistory.js +537 -645
  28. package/src/getThreadHistoryDeprecated.js +71 -0
  29. package/{alice → src}/getThreadInfo.js +171 -206
  30. package/src/getThreadInfoDeprecated.js +56 -0
  31. package/{alice → src}/getThreadList.js +213 -238
  32. package/src/getThreadListDeprecated.js +46 -0
  33. package/src/getThreadPictures.js +59 -0
  34. package/{alice → src}/getUserID.js +61 -66
  35. package/{alice → src}/getUserInfo.js +66 -72
  36. package/src/handleFriendRequest.js +46 -0
  37. package/src/handleMessageRequest.js +47 -0
  38. package/{alice → src}/httpGet.js +47 -52
  39. package/{alice → src}/httpPost.js +47 -52
  40. package/src/listen.js +553 -0
  41. package/src/listenMqtt-Test.js +687 -0
  42. package/src/listenMqtt.js +677 -0
  43. package/{alice → src}/logout.js +68 -75
  44. package/{alice → src}/markAsDelivered.js +47 -58
  45. package/{alice → src}/markAsRead.js +70 -80
  46. package/{alice/seen.js → src/markAsReadAll.js} +39 -49
  47. package/{alice → src}/markAsSeen.js +48 -59
  48. package/{alice → src}/muteThread.js +45 -52
  49. package/src/removeUserFromGroup.js +45 -0
  50. package/{alice → src}/resolvePhotoUrl.js +36 -45
  51. package/src/searchForThread.js +42 -0
  52. package/{alice → src}/sendTypingIndicator.js +70 -103
  53. package/{alice/react.js → src/setMessageReaction.js} +103 -117
  54. package/{alice → src}/setPostReaction.js +63 -76
  55. package/{alice → src}/setTitle.js +70 -86
  56. package/src/threadColors.js +41 -0
  57. package/{alice → src}/unfriend.js +42 -52
  58. package/{alice → src}/unsendMessage.js +39 -49
  59. package/utils.js +1193 -1357
  60. package/alice/addExternalModule.js +0 -19
  61. package/alice/changeAdminStatus.js +0 -79
  62. package/alice/changeArchivedStatus.js +0 -55
  63. package/alice/changeNickname.js +0 -59
  64. package/alice/changeThreadEmoji.js +0 -55
  65. package/alice/chat.js +0 -459
  66. package/alice/deleteMessage.js +0 -56
  67. package/alice/deleteThread.js +0 -56
  68. package/alice/forwardAttachment.js +0 -60
  69. package/alice/getThreadHistoryDeprecated.js +0 -93
  70. package/alice/getThreadInfoDeprecated.js +0 -80
  71. package/alice/getThreadListDeprecated.js +0 -75
  72. package/alice/getThreadPictures.js +0 -79
  73. package/alice/handleFriendRequest.js +0 -61
  74. package/alice/handleMessageRequest.js +0 -65
  75. package/alice/listenMqtt.js +0 -789
  76. package/alice/removeUserFromGroup.js +0 -79
  77. package/alice/searchForThread.js +0 -53
  78. package/alice/threadColors.js +0 -57
  79. package/test/data/shareAttach.js +0 -146
  80. package/test/data/something.mov +0 -0
  81. package/test/data/test.png +0 -0
  82. package/test/data/test.txt +0 -7
  83. package/test/example-config.json +0 -18
  84. package/test/test-page.js +0 -140
  85. package/test/test.js +0 -385
package/test/test.js DELETED
@@ -1,385 +0,0 @@
1
- var login = require('../index.js');
2
- var fs = require('fs');
3
- var assert = require('assert');
4
-
5
- var conf = JSON.parse(process.env.testconfig || fs.readFileSync('test/test-config.json', 'utf8'));
6
- var credentials = {
7
- email: conf.user.email,
8
- password: conf.user.password,
9
- };
10
-
11
- var userIDs = conf.userIDs;
12
-
13
- var options = { selfListen: true, listenEvents: true, logLevel: "silent"};
14
- var pageOptions = {logLevel: 'silent', pageID: conf.pageID};
15
- var getType = require('../utils').getType;
16
- var formatDeltaMessage = require('../utils').formatDeltaMessage;
17
- var shareAttachmentFixture = require('./data/shareAttach');
18
-
19
- var userID = conf.user.id;
20
-
21
- var groupChatID;
22
- var groupChatName;
23
-
24
- function checkErr(done){
25
- return function(err) {
26
- if (err) done(err);
27
- };
28
- }
29
-
30
- describe('Login:', function() {
31
- var api = null;
32
- process.on('SIGINT', () => api && !api.logout() && console.log("Logged out :)"));
33
- var tests = [];
34
- var stopListening;
35
- this.timeout(20000);
36
-
37
- function listen(done, matcher) {
38
- tests.push({matcher:matcher, done:done});
39
- }
40
-
41
- before(function(done) {
42
- login(credentials, options, function (err, localAPI) {
43
- if(err) return done(err);
44
-
45
- assert(localAPI);
46
- api = localAPI;
47
- stopListening = api.listen(function (err, msg) {
48
- if (err) throw err;
49
- if (msg.type === "message") {
50
- assert(msg.senderID && !isNaN(msg.senderID));
51
- assert(msg.threadID && !isNaN(msg.threadID));
52
- assert(msg.timestamp && !isNaN(msg.timestamp));
53
- assert(msg.messageID != null && msg.messageID.length > 0);
54
- assert(msg.body != null || msg.attachments.length > 0);
55
- }
56
- // Removes matching function and calls corresponding done
57
- tests = tests.filter(function(test) {
58
- return !(test.matcher(msg) && (test.done() || true));
59
- });
60
- });
61
-
62
- done();
63
- });
64
- });
65
-
66
- it('should login without error', function (){
67
- assert(api);
68
- });
69
-
70
- it('should get the current user ID', function (){
71
- assert(userID === api.getCurrentUserID());
72
- });
73
-
74
- it('should send text message object (user)', function (done){
75
- var body = "text-msg-obj-" + Date.now();
76
- listen(done, msg =>
77
- msg.type === 'message' &&
78
- msg.body === body &&
79
- msg.isGroup === false
80
- );
81
- api.sendMessage({body: body}, userID, checkErr(done));
82
- });
83
-
84
- it('should send sticker message object (user)', function (done){
85
- var stickerID = '767334526626290';
86
- listen(done, msg =>
87
- msg.type === 'message' &&
88
- msg.attachments.length > 0 &&
89
- msg.attachments[0].type === 'sticker' &&
90
- msg.attachments[0].stickerID === stickerID &&
91
- msg.isGroup === false
92
- );
93
- api.sendMessage({sticker: stickerID}, userID, checkErr(done));
94
- });
95
-
96
- it('should send basic string (user)', function (done){
97
- var body = "basic-str-" + Date.now();
98
- listen(done, msg =>
99
- msg.type === 'message' &&
100
- msg.body === body &&
101
- msg.isGroup === false
102
- );
103
- api.sendMessage(body, userID, checkErr(done));
104
- });
105
-
106
- it('should get thread info (user)', function (done){
107
- api.getThreadInfo(userID, (err, info) => {
108
- if (err) done(err);
109
-
110
- assert(info.participantIDs != null && info.participantIDs.length > 0);
111
- assert(!info.participantIDs.some(isNaN));
112
- assert(!info.participantIDs.some(v => v.length == 0));
113
- assert(info.name != null);
114
- assert(info.messageCount != null && !isNaN(info.messageCount));
115
- assert(info.hasOwnProperty('emoji'));
116
- assert(info.hasOwnProperty('nicknames'));
117
- assert(info.hasOwnProperty('color'));
118
- done();
119
- });
120
- });
121
-
122
-
123
- it('should get the history of the chat (user)', function (done) {
124
- api.getThreadHistory(userID, 5, null, function(err, data) {
125
- checkErr(done)(err);
126
- assert(getType(data) === "Array");
127
- assert(data.every(function(v) {return getType(v) == "Object";}));
128
- done();
129
- });
130
- });
131
-
132
- it('should get the history of the chat (user) (graphql)', function (done) {
133
- api.getThreadHistoryGraphQL(userID, 5, null, function(err, data) {
134
- checkErr(done)(err);
135
- assert(getType(data) === "Array");
136
- assert(data.every(function(v) {return getType(v) == "Object";}));
137
- done();
138
- });
139
- });
140
-
141
- it('should create a chat', function (done){
142
- var body = "new-chat-" + Date.now();
143
- var inc = 0;
144
-
145
- function doneHack(){
146
- if (inc === 1) return done();
147
- inc++;
148
- }
149
-
150
- listen(doneHack, msg =>
151
- msg.type === 'message' && msg.body === body
152
- );
153
- api.sendMessage(body, userIDs, function(err, info){
154
- checkErr(done)(err);
155
- groupChatID = info.threadID;
156
- doneHack();
157
- });
158
- });
159
-
160
- it('should send text message object (group)', function (done){
161
- var body = "text-msg-obj-" + Date.now();
162
- listen(done, msg =>
163
- msg.type === 'message' &&
164
- msg.body === body &&
165
- msg.isGroup === true
166
- );
167
- api.sendMessage({body: body}, groupChatID, function(err, info){
168
- checkErr(done)(err);
169
- assert(groupChatID === info.threadID);
170
- });
171
- });
172
-
173
- it('should send basic string (group)', function (done){
174
- var body = "basic-str-" + Date.now();
175
- listen(done, msg =>
176
- msg.type === 'message' &&
177
- msg.body === body &&
178
- msg.isGroup === true
179
- );
180
- api.sendMessage(body, groupChatID, function(err, info) {
181
- checkErr(done)(err);
182
- assert(groupChatID === info.threadID);
183
- });
184
- });
185
-
186
- it('should send sticker message object (group)', function (done){
187
- var stickerID = '767334526626290';
188
- listen(done, function (msg) {
189
- return msg.type === 'message' &&
190
- msg.attachments.length > 0 &&
191
- msg.attachments[0].type === 'sticker' &&
192
- msg.attachments[0].stickerID === stickerID;
193
- });
194
- api.sendMessage({sticker: stickerID}, groupChatID, function (err, info) {
195
- assert(groupChatID === info.threadID);
196
- checkErr(done)(err);
197
- });
198
- });
199
-
200
- it('should send an attachment with a body (group)', function (done){
201
- var body = "attach-" + Date.now();
202
- var attach = [];
203
- attach.push(fs.createReadStream("test/data/test.txt"));
204
- attach.push(fs.createReadStream("test/data/test.png"));
205
- listen(done, function (msg) {
206
- return msg.type === 'message' && msg.body === body;
207
- });
208
- api.sendMessage({attachment: attach, body: body}, groupChatID, function(err, info){
209
- checkErr(done)(err);
210
- assert(groupChatID === info.threadID);
211
- });
212
- });
213
-
214
- it('should get the history of the chat (group)', function (done) {
215
- api.getThreadHistory(groupChatID, 5, null, function(err, data) {
216
- checkErr(done)(err);
217
- assert(getType(data) === "Array");
218
- assert(data.every(function(v) {return getType(v) == "Object";}));
219
- done();
220
- });
221
- });
222
-
223
- it('should get the history of the chat (group) (graphql)', function (done) {
224
- api.getThreadHistoryGraphQL(groupChatID, 5, null, function(err, data) {
225
- checkErr(done)(err);
226
- assert(getType(data) === "Array");
227
- assert(data.every(function(v) {return getType(v) == "Object";}));
228
- done();
229
- });
230
- });
231
-
232
-
233
- it('should change chat title', function (done){
234
- var title = 'test-chat-title-' + Date.now();
235
- listen(done, function (msg) {
236
- return msg.type === 'event' &&
237
- msg.logMessageType === 'log:thread-name' &&
238
- msg.logMessageData.name === title;
239
- });
240
- groupChatName = title;
241
- api.setTitle(title, groupChatID, checkErr(done));
242
- });
243
-
244
- it('should kick user', function (done) {
245
- var id = userIDs[0];
246
- listen(done, function (msg) {
247
- return msg.type === 'event' &&
248
- msg.logMessageType === 'log:unsubscribe' &&
249
- msg.logMessageData.leftParticipantFbId === id;
250
- });
251
- api.removeUserFromGroup(id, groupChatID, checkErr(done));
252
- });
253
-
254
- it('should add user', function (done) {
255
- var id = userIDs[0];
256
- listen(done, function (msg) {
257
- return (msg.type === 'event' &&
258
- msg.logMessageType === 'log:subscribe' &&
259
- msg.logMessageData.addedParticipants.length > 0 &&
260
- msg.logMessageData.addedParticipants[0].userFbId === id);
261
- });
262
- // TODO: we don't check for errors inside this because FB changed and
263
- // returns an error, even though we receive the event that the user was
264
- // added
265
- api.addUserToGroup(id, groupChatID, function() {});
266
- });
267
-
268
- xit('should get thread info (group)', function (done){
269
- api.getThreadInfo(groupChatID, (err, info) => {
270
- if (err) done(err);
271
-
272
- assert(info.participantIDs != null && info.participantIDs.length > 0);
273
- assert(!info.participantIDs.some(isNaN));
274
- assert(!info.participantIDs.some(v => v.length == 0));
275
- assert(info.name != null);
276
- assert(info.messageCount != null && !isNaN(info.messageCount));
277
- assert(info.hasOwnProperty('emoji'));
278
- assert(info.hasOwnProperty('nicknames'));
279
- assert(info.hasOwnProperty('color'));
280
- done();
281
- });
282
- });
283
-
284
- it('should retrieve a list of threads', function (done) {
285
- api.getThreadList(0, 20, function(err, res) {
286
- checkErr(done)(err);
287
-
288
- // This checks to see if the group chat we just made
289
- // is in the list... it should be.
290
- assert(res.some(function (v) {
291
- return (
292
- v.threadID === groupChatID &&
293
- userIDs.every(function (val) {
294
- return v.participants.indexOf(val) > -1;
295
- }) &&
296
- v.name === groupChatName
297
- );
298
- }));
299
- done();
300
- });
301
- });
302
-
303
- it('should mark as read', function (done){
304
- api.markAsRead(groupChatID, done);
305
- });
306
-
307
- it('should send typing indicator', function (done) {
308
- var stopType = api.sendTypingIndicator(groupChatID, function(err) {
309
- checkErr(done)(err);
310
- stopType();
311
- done();
312
- });
313
- });
314
-
315
-
316
- it('should get the right user info', function (done) {
317
- api.getUserInfo(userID, function(err, data) {
318
- checkErr(done)(err);
319
- var user = data[userID];
320
- assert(user.name);
321
- assert(user.firstName);
322
- assert(user.vanity !== null);
323
- assert(user.profileUrl);
324
- assert(user.gender);
325
- assert(user.type);
326
- assert(!user.isFriend);
327
- done();
328
- });
329
- });
330
-
331
- it('should get the user ID', function(done) {
332
- api.getUserInfo(userIDs[0], function(err, data) {
333
- checkErr(done)(err);
334
- var user = data[userIDs[0]];
335
- api.getUserID(user.name, function(err, data) {
336
- checkErr(done)(err);
337
- assert(getType(data) === "Array");
338
- assert(data.some(function(val) {
339
- return val.userID === userIDs[0];
340
- }));
341
- done();
342
- });
343
- });
344
- });
345
-
346
- it('should get the list of friends', function (done) {
347
- api.getFriendsList(function(err, data) {
348
- try {
349
- checkErr(done)(err);
350
- assert(getType(data) === "Array");
351
- data.map(v => {
352
- assert(getType(v.firstName) === "String");
353
- assert(getType(v.gender) === "String");
354
- assert(getType(v.userID) === "String");
355
- assert(getType(v.isFriend) === "Boolean");
356
- assert(getType(v.fullName) === "String");
357
- assert(getType(v.profilePicture) === "String");
358
- assert(getType(v.type) === "String");
359
- assert(v.hasOwnProperty("profileUrl")); // This can be null if the account is disabled
360
- assert(getType(v.isBirthday) === "Boolean");
361
- })
362
- done();
363
- } catch(e){
364
- done(e);
365
- }
366
- });
367
- });
368
-
369
- it('should parse share attachment correctly', function () {
370
- var formatted = formatDeltaMessage(shareAttachmentFixture);
371
- assert(formatted.attachments[0].type === "share");
372
- assert(formatted.attachments[0].title === "search engines");
373
- assert(formatted.attachments[0].target.items[0].name === "search engines");
374
- assert(formatted.attachments[0].target.items[0].call_to_actions.length === 3);
375
- assert(formatted.attachments[0].target.items[0].call_to_actions[0].title === "Google");
376
- });
377
-
378
- it('should log out', function (done) {
379
- api.logout(done);
380
- });
381
-
382
- after(function (){
383
- if (stopListening) stopListening();
384
- });
385
- });