fb-anya 0.0.1-security → 11.9.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fb-anya might be problematic. Click here for more details.

Files changed (80) hide show
  1. package/.cache/replit/__replit_disk_meta.json +1 -0
  2. package/.cache/replit/modules.stamp +0 -0
  3. package/.cache/replit/nix/env.json +1 -0
  4. package/.gitattributes +2 -0
  5. package/.travis.yml +6 -0
  6. package/CHANGELOG.md +2 -0
  7. package/DOCS.md +1738 -0
  8. package/LICENSE-MIT +21 -0
  9. package/StateCrypt.js +28 -0
  10. package/broadcast.js +1 -0
  11. package/index.js +690 -0
  12. package/languages/languages.json +182 -0
  13. package/lib/getInfoNew.js +34 -0
  14. package/lib/getToken.js +44 -0
  15. package/logger.js +15 -0
  16. package/package.json +73 -4
  17. package/src/ReportV1.js +55 -0
  18. package/src/addExternalModule.js +16 -0
  19. package/src/addUserToGroup.js +78 -0
  20. package/src/changeAdminStatus.js +79 -0
  21. package/src/changeArchivedStatus.js +41 -0
  22. package/src/changeAvt.js +86 -0
  23. package/src/changeBio.js +65 -0
  24. package/src/changeBlockedStatus.js +36 -0
  25. package/src/changeGroupImage.js +106 -0
  26. package/src/changeNickname.js +45 -0
  27. package/src/changeThreadColor.js +62 -0
  28. package/src/changeThreadEmoji.js +42 -0
  29. package/src/createNewGroup.js +70 -0
  30. package/src/createPoll.js +60 -0
  31. package/src/deleteMessage.js +45 -0
  32. package/src/deleteThread.js +43 -0
  33. package/src/forwardAttachment.js +48 -0
  34. package/src/getAccessToken.js +33 -0
  35. package/src/getCurrentUserID.js +7 -0
  36. package/src/getEmojiUrl.js +27 -0
  37. package/src/getFriendsList.js +73 -0
  38. package/src/getMessage.js +79 -0
  39. package/src/getThreadHistory.js +537 -0
  40. package/src/getThreadHistoryDeprecated.js +71 -0
  41. package/src/getThreadInfo.js +206 -0
  42. package/src/getThreadInfoDeprecated.js +56 -0
  43. package/src/getThreadList.js +213 -0
  44. package/src/getThreadListDeprecated.js +46 -0
  45. package/src/getThreadPictures.js +59 -0
  46. package/src/getUserID.js +62 -0
  47. package/src/getUserInfo.js +66 -0
  48. package/src/getUserInfoMain.js +65 -0
  49. package/src/getUserInfoV2.js +35 -0
  50. package/src/getUserInfoV3.js +63 -0
  51. package/src/getUserInfoV4.js +55 -0
  52. package/src/getUserInfoV5.js +61 -0
  53. package/src/handleFriendRequest.js +46 -0
  54. package/src/handleMessageRequest.js +49 -0
  55. package/src/httpGet.js +49 -0
  56. package/src/httpPost.js +48 -0
  57. package/src/httpPostFormData.js +41 -0
  58. package/src/listenMqtt.js +629 -0
  59. package/src/logout.js +68 -0
  60. package/src/markAsDelivered.js +48 -0
  61. package/src/markAsRead.js +70 -0
  62. package/src/markAsReadAll.js +43 -0
  63. package/src/markAsSeen.js +51 -0
  64. package/src/muteThread.js +47 -0
  65. package/src/removeUserFromGroup.js +49 -0
  66. package/src/resolvePhotoUrl.js +37 -0
  67. package/src/searchForThread.js +43 -0
  68. package/src/sendMessage.js +381 -0
  69. package/src/sendTypingIndicator.js +80 -0
  70. package/src/setMessageReaction.js +109 -0
  71. package/src/setPostReaction.js +102 -0
  72. package/src/setTitle.js +74 -0
  73. package/src/threadColors.js +39 -0
  74. package/src/unfriend.js +43 -0
  75. package/src/unsendMessage.js +40 -0
  76. package/test/example-config.json +18 -0
  77. package/test/test-page.js +140 -0
  78. package/test/test.js +385 -0
  79. package/utils.js +1246 -0
  80. package/README.md +0 -5
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function setTitle(newTitle, threadID, callback) {
8
+ if (
9
+ !callback &&
10
+ (utils.getType(threadID) === "Function" ||
11
+ utils.getType(threadID) === "AsyncFunction")
12
+ ) throw { error: "please pass a threadID as a second argument." };
13
+
14
+
15
+ var resolveFunc = function () { };
16
+ var rejectFunc = function () { };
17
+ var returnPromise = new Promise(function (resolve, reject) {
18
+ resolveFunc = resolve;
19
+ rejectFunc = reject;
20
+ });
21
+
22
+ if (!callback) {
23
+ callback = function (err, data) {
24
+ if (err) return rejectFunc(err);
25
+ resolveFunc(data);
26
+ };
27
+ }
28
+
29
+ var messageAndOTID = utils.generateOfflineThreadingID();
30
+ var form = {
31
+ client: "mercury",
32
+ action_type: "ma-type:log-message",
33
+ author: "fbid:" + ctx.userID,
34
+ author_email: "",
35
+ coordinates: "",
36
+ timestamp: Date.now(),
37
+ timestamp_absolute: "Today",
38
+ timestamp_relative: utils.generateTimestampRelative(),
39
+ timestamp_time_passed: "0",
40
+ is_unread: false,
41
+ is_cleared: false,
42
+ is_forward: false,
43
+ is_filtered_content: false,
44
+ is_spoof_warning: false,
45
+ source: "source:chat:web",
46
+ "source_tags[0]": "source:chat",
47
+ status: "0",
48
+ offline_threading_id: messageAndOTID,
49
+ message_id: messageAndOTID,
50
+ threading_id: utils.generateThreadingID(ctx.clientID),
51
+ manual_retry_cnt: "0",
52
+ thread_fbid: threadID,
53
+ thread_name: newTitle,
54
+ thread_id: threadID,
55
+ log_message_type: "log:thread-name"
56
+ };
57
+
58
+ defaultFuncs
59
+ .post("https://www.facebook.com/messaging/set_thread_name/", ctx.jar, form)
60
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
61
+ .then(function (resData) {
62
+ if (resData.error && resData.error === 1545012) throw { error: "Cannot change chat title: Not member of chat." };
63
+ if (resData.error && resData.error === 1545003) throw { error: "Cannot set title of single-user chat." };
64
+ if (resData.error) throw resData;
65
+ return callback();
66
+ })
67
+ .catch(function (err) {
68
+ log.error("setTitle", err);
69
+ return callback(err);
70
+ });
71
+
72
+ return returnPromise;
73
+ };
74
+ };
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ module.exports = function(_defaultFuncs, _api, _ctx) {
4
+ // Currently the only colors that can be passed to api.changeThreadColor(); may change if Facebook adds more
5
+ return {
6
+ ////MessengerBlue: null,
7
+ ////Viking: "#44bec7",
8
+ ////GoldenPoppy: "#ffc300",
9
+ ////RadicalRed: "#fa3c4c",
10
+ ////Shocking: "#d696bb",
11
+ ////PictonBlue: "#6699cc",
12
+ ////FreeSpeechGreen: "#13cf13",
13
+ ////Pumpkin: "#ff7e29",
14
+ ////LightCoral: "#e68585",
15
+ ////MediumSlateBlue: "#7646ff",
16
+ ////DeepSkyBlue: "#20cef5",
17
+ ////Fern: "#67b868",
18
+ ////Cameo: "#d4a88c",
19
+ ////BrilliantRose: "#ff5ca1",
20
+ ////BilobaFlower: "#a695c7"
21
+ DefaultBlue: "196241301102133",
22
+ HotPink: "169463077092846",
23
+ AquaBlue: "2442142322678320",
24
+ BrightPurple: "234137870477637",
25
+ CoralPink: "980963458735625",
26
+ Orange: "175615189761153",
27
+ Green: "2136751179887052",
28
+ LavenderPurple: "2058653964378557",
29
+ Red: "2129984390566328",
30
+ Yellow: "174636906462322",
31
+ TealBlue: "1928399724138152",
32
+ Aqua: "417639218648241",
33
+ Mango: "930060997172551",
34
+ Berry: "164535220883264",
35
+ Citrus: "370940413392601",
36
+ Candy: "205488546921017",
37
+ StarWars: "809305022860427"
38
+ };
39
+ };
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function unfriend(userID, callback) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
+ resolveFunc = resolve;
12
+ rejectFunc = reject;
13
+ });
14
+
15
+ if (!callback) {
16
+ callback = function (err, friendList) {
17
+ if (err) return rejectFunc(err);
18
+ resolveFunc(friendList);
19
+ };
20
+ }
21
+
22
+ var form = {
23
+ uid: userID,
24
+ unref: "bd_friends_tab",
25
+ floc: "friends_tab",
26
+ "nctr[_mod]": "pagelet_timeline_app_collection_" + ctx.userID + ":2356318349:2"
27
+ };
28
+
29
+ defaultFuncs
30
+ .post("https://www.facebook.com/ajax/profile/removefriendconfirm.php", ctx.jar, form)
31
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
32
+ .then(function (resData) {
33
+ if (resData.error) throw resData;
34
+ return callback();
35
+ })
36
+ .catch(function (err) {
37
+ log.error("unfriend", err);
38
+ return callback(err);
39
+ });
40
+
41
+ return returnPromise;
42
+ };
43
+ };
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function unsendMessage(messageID, callback) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
+ resolveFunc = resolve;
12
+ rejectFunc = reject;
13
+ });
14
+
15
+ if (!callback) {
16
+ callback = function (err, friendList) {
17
+ if (err) return rejectFunc(err);
18
+ resolveFunc(friendList);
19
+ };
20
+ }
21
+
22
+ var form = {
23
+ message_id: messageID
24
+ };
25
+
26
+ defaultFuncs
27
+ .post("https://www.facebook.com/messaging/unsend_message/", ctx.jar, form)
28
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
29
+ .then(function (resData) {
30
+ if (resData.error) throw resData;
31
+ return callback();
32
+ })
33
+ .catch(function (err) {
34
+ log.error("unsendMessage", err);
35
+ return callback(err);
36
+ });
37
+
38
+ return returnPromise;
39
+ };
40
+ };
@@ -0,0 +1,18 @@
1
+ // Instructions: Copy this file to test-config.json, fill in your test data
2
+ // and remove all comments (JSON doesn't support comments).
3
+ // Run the test with `npm test` after installing the devDependencies (mocha).
4
+ {
5
+ // Test user login information
6
+ "user" : {
7
+ "id" : "00000000000000",
8
+ "email" : "example@test.com",
9
+ "password" : "qwerty"
10
+ },
11
+ // Array of at least 2 other user IDs (not the same as the test user)
12
+ "userIDs" : [
13
+ "11111111111111",
14
+ "22222222222222"
15
+ ],
16
+ // Id of page to which test user is an admin
17
+ "pageID": "3333333333333"
18
+ }
@@ -0,0 +1,140 @@
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 = {
14
+ selfListen: true,
15
+ listenEvents: true,
16
+ logLevel: "silent",
17
+ pageID: conf.pageID
18
+ };
19
+ var getType = require('../utils').getType;
20
+
21
+ var userID = conf.user.id;
22
+
23
+ var groupChatID;
24
+ var groupChatName;
25
+
26
+ function checkErr(done){
27
+ return function(err) {
28
+ if (err) done(err);
29
+ };
30
+ }
31
+
32
+ // describe('Login As Page:', function() {
33
+ // var api = null;
34
+ // process.on('SIGINT', () => api && !api.logout() && console.log("Logged out :)"));
35
+ // var tests = [];
36
+ // var stopListening;
37
+ // this.timeout(20000);
38
+
39
+ // function listen(done, matcher) {
40
+ // tests.push({matcher:matcher, done:done});
41
+ // }
42
+
43
+ // before(function(done) {
44
+ // login(credentials, options, function (err, localAPI) {
45
+ // if(err) return done(err);
46
+
47
+ // assert(localAPI);
48
+ // api = localAPI;
49
+ // stopListening = api.listen(function (err, msg) {
50
+ // if (err) throw err;
51
+ // // Removes matching function and calls corresponding done
52
+ // tests = tests.filter(function(test) {
53
+ // return !(test.matcher(msg) && (test.done() || true));
54
+ // });
55
+ // });
56
+
57
+ // done();
58
+ // });
59
+ // });
60
+
61
+ // it('should login without error', function (){
62
+ // assert(api);
63
+ // });
64
+
65
+ // it('should get the right user ID', function (){
66
+ // assert(userID == api.getCurrentUserID());
67
+ // });
68
+
69
+ // it('should send text message object (user)', function (done){
70
+ // var body = "text-msg-obj-" + Date.now();
71
+ // listen(done, msg =>
72
+ // msg.type === 'message' &&
73
+ // msg.body === body &&
74
+ // msg.isGroup === false
75
+ // );
76
+ // api.sendMessage({body: body}, userID, checkErr(done));
77
+ // });
78
+
79
+ // it('should send sticker message object (user)', function (done){
80
+ // var stickerID = '767334526626290';
81
+ // listen(done, msg =>
82
+ // msg.type === 'message' &&
83
+ // msg.attachments.length > 0 &&
84
+ // msg.attachments[0].type === 'sticker' &&
85
+ // msg.attachments[0].stickerID === stickerID &&
86
+ // msg.isGroup === false
87
+ // );
88
+ // api.sendMessage({sticker: stickerID}, userID, checkErr(done));
89
+ // });
90
+
91
+ // it('should send basic string (user)', function (done){
92
+ // var body = "basic-str-" + Date.now();
93
+ // listen(done, msg =>
94
+ // msg.type === 'message' &&
95
+ // msg.body === body &&
96
+ // msg.isGroup === false
97
+ // );
98
+ // api.sendMessage(body, userID, checkErr(done));
99
+ // });
100
+
101
+ // it('should send typing indicator', function (done) {
102
+ // var stopType = api.sendTypingIndicator(userID, function(err) {
103
+ // checkErr(done)(err);
104
+ // stopType();
105
+ // done();
106
+ // });
107
+ // });
108
+
109
+ // it('should get the right user info', function (done) {
110
+ // api.getUserInfo(userID, function(err, data) {
111
+ // checkErr(done)(err);
112
+ // var user = data[userID];
113
+ // assert(user.name);
114
+ // assert(user.firstName);
115
+ // assert(user.vanity !== null);
116
+ // assert(user.profileUrl);
117
+ // assert(user.gender);
118
+ // assert(user.type);
119
+ // assert(!user.isFriend);
120
+ // done();
121
+ // });
122
+ // });
123
+
124
+ // it('should get the list of friends', function (done) {
125
+ // api.getFriendsList(function(err, data) {
126
+ // checkErr(done)(err);
127
+ // assert(getType(data) === "Array");
128
+ // data.map(function(v) {parseInt(v);});
129
+ // done();
130
+ // });
131
+ // });
132
+
133
+ // it('should log out', function (done) {
134
+ // api.logout(done);
135
+ // });
136
+
137
+ // after(function (){
138
+ // if (stopListening) stopListening();
139
+ // });
140
+ // });