shadowx-fca 8.0.0

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 (174) hide show
  1. package/README.md +1066 -0
  2. package/build/messagix.dll +0 -0
  3. package/build/messagix.so +0 -0
  4. package/checkUpdate.js +393 -0
  5. package/config.json +17 -0
  6. package/e2ee.js +563 -0
  7. package/e2eetest.js +356 -0
  8. package/index.js +611 -0
  9. package/lib/index.mjs +1412 -0
  10. package/logger.js +500 -0
  11. package/package.json +65 -0
  12. package/src/GetBotInfo.js +66 -0
  13. package/src/OldMessage.js +182 -0
  14. package/src/Screenshot.js +83 -0
  15. package/src/addExternalModule.js +13 -0
  16. package/src/addUserToGroup.js +33 -0
  17. package/src/approveGroupJoinRequests.js +18 -0
  18. package/src/changeAdminStatus.js +16 -0
  19. package/src/changeArchivedStatus.js +17 -0
  20. package/src/changeAvatar.js +136 -0
  21. package/src/changeAvatarV2.js +86 -0
  22. package/src/changeAvt.js +85 -0
  23. package/src/changeBio.js +76 -0
  24. package/src/changeBlockedStatus.js +20 -0
  25. package/src/changeBlockedStatusMqtt.js +80 -0
  26. package/src/changeCover.js +72 -0
  27. package/src/changeGroupImage.js +16 -0
  28. package/src/changeName.js +79 -0
  29. package/src/changeNickname.js +16 -0
  30. package/src/changeThreadColor.js +15 -0
  31. package/src/changeThreadEmoji.js +15 -0
  32. package/src/changeThreadMemberNickname.js +6 -0
  33. package/src/changeUsername.js +59 -0
  34. package/src/createCommentPost.js +230 -0
  35. package/src/createNewGroup.js +38 -0
  36. package/src/createNote.js +35 -0
  37. package/src/createPoll.js +27 -0
  38. package/src/createPost.js +276 -0
  39. package/src/createThemeAI.js +129 -0
  40. package/src/data/cache/system/data.json +4 -0
  41. package/src/data/cache/system/datahandle.js +21 -0
  42. package/src/data/getThreadInfo.json +1 -0
  43. package/src/deleteComment.js +23 -0
  44. package/src/deleteMessage.js +15 -0
  45. package/src/deleteThread.js +15 -0
  46. package/src/denyGroupJoinRequests.js +18 -0
  47. package/src/e2ee/crypto.js +173 -0
  48. package/src/e2ee/index.js +144 -0
  49. package/src/e2ee/proto/ArmadilloApplication.proto +281 -0
  50. package/src/e2ee/proto/ArmadilloICDC.proto +14 -0
  51. package/src/e2ee/proto/ConsumerApplication.proto +232 -0
  52. package/src/e2ee/proto/MessageApplication.proto +82 -0
  53. package/src/e2ee/proto/MessageTransport.proto +77 -0
  54. package/src/e2ee/proto/WACommon.proto +66 -0
  55. package/src/e2ee/proto/WAMediaTransport.proto +176 -0
  56. package/src/e2ee/proto/proto-writer.ts +76 -0
  57. package/src/e2ee/protocol.js +196 -0
  58. package/src/e2ee/ratchet.js +219 -0
  59. package/src/e2ee/store.js +182 -0
  60. package/src/e2ee.js +8 -0
  61. package/src/editMessage.js +56 -0
  62. package/src/editMessageOld.js +67 -0
  63. package/src/enableReactions.js +24 -0
  64. package/src/follow.js +74 -0
  65. package/src/followUser.js +23 -0
  66. package/src/forwardAttachment.js +16 -0
  67. package/src/friendList.js +98 -0
  68. package/src/getAccess.js +112 -0
  69. package/src/getAppState.js +13 -0
  70. package/src/getAvatarUser.js +11 -0
  71. package/src/getBio.js +24 -0
  72. package/src/getBotInitialData.js +42 -0
  73. package/src/getCtx.js +5 -0
  74. package/src/getCurrentUserID.js +6 -0
  75. package/src/getEmojiUrl.js +29 -0
  76. package/src/getFriendsList.js +36 -0
  77. package/src/getMessage.js +37 -0
  78. package/src/getNotes.js +17 -0
  79. package/src/getOptions.js +5 -0
  80. package/src/getPinnedMessages.js +33 -0
  81. package/src/getPostInfo.js +17 -0
  82. package/src/getProfileInfo.js +17 -0
  83. package/src/getPublicData.js +25 -0
  84. package/src/getRegion.js +7 -0
  85. package/src/getRepInfo.js +17 -0
  86. package/src/getStickerPacks.js +25 -0
  87. package/src/getStickers.js +39 -0
  88. package/src/getStoryReactions.js +18 -0
  89. package/src/getThreadHistory.js +45 -0
  90. package/src/getThreadHistoryDeprecated.js +71 -0
  91. package/src/getThreadInfo.js +73 -0
  92. package/src/getThreadInfoDeprecated.js +56 -0
  93. package/src/getThreadList.js +76 -0
  94. package/src/getThreadListDeprecated.js +46 -0
  95. package/src/getThreadPictures.js +59 -0
  96. package/src/getThreadTheme.js +77 -0
  97. package/src/getUID.js +17 -0
  98. package/src/getUserID.js +17 -0
  99. package/src/getUserInfo.js +28 -0
  100. package/src/handleFriendRequest.js +21 -0
  101. package/src/handleMessageRequest.js +15 -0
  102. package/src/httpGet.js +13 -0
  103. package/src/httpPost.js +12 -0
  104. package/src/httpPostFormData.js +12 -0
  105. package/src/listenE2EE.js +75 -0
  106. package/src/listenMqtt.js +802 -0
  107. package/src/listenNotification.js +85 -0
  108. package/src/logout.js +22 -0
  109. package/src/markAsDelivered.js +17 -0
  110. package/src/markAsRead.js +14 -0
  111. package/src/markAsReadAll.js +15 -0
  112. package/src/markAsSeen.js +15 -0
  113. package/src/metaTheme.js +185 -0
  114. package/src/muteThread.js +52 -0
  115. package/src/note.js +228 -0
  116. package/src/pin.js +53 -0
  117. package/src/pinMessage.js +6 -0
  118. package/src/postComment.js +29 -0
  119. package/src/postFormData.js +46 -0
  120. package/src/reactToComment.js +31 -0
  121. package/src/reactToPost.js +32 -0
  122. package/src/refreshFb_dtsg.js +31 -0
  123. package/src/removeSuspiciousAccount.js +74 -0
  124. package/src/removeUserFromGroup.js +15 -0
  125. package/src/reply.js +442 -0
  126. package/src/resolvePhotoUrl.js +15 -0
  127. package/src/searchForThread.js +20 -0
  128. package/src/searchFriends.js +28 -0
  129. package/src/searchStickers.js +53 -0
  130. package/src/send.js +46 -0
  131. package/src/sendAudio.js +8 -0
  132. package/src/sendBroadcast.js +93 -0
  133. package/src/sendButtons.js +161 -0
  134. package/src/sendComment.js +159 -0
  135. package/src/sendEmoji.js +10 -0
  136. package/src/sendFile.js +9 -0
  137. package/src/sendFriendRequest.js +33 -0
  138. package/src/sendGif.js +24 -0
  139. package/src/sendImage.js +9 -0
  140. package/src/sendLocation.js +9 -0
  141. package/src/sendMessage.js +487 -0
  142. package/src/sendMessage1.js +309 -0
  143. package/src/sendMessageMqtt.js +68 -0
  144. package/src/sendSticker.js +8 -0
  145. package/src/sendTypingIndicator.js +36 -0
  146. package/src/sendTypingIndicatorV2.js +28 -0
  147. package/src/sendVideo.js +9 -0
  148. package/src/sessionGuard.js +130 -0
  149. package/src/setActiveStatus.js +16 -0
  150. package/src/setMessageReaction.js +61 -0
  151. package/src/setMessageReactionMqtt.js +62 -0
  152. package/src/setOptions.js +22 -0
  153. package/src/setPollVote.js +17 -0
  154. package/src/setPostReaction.js +112 -0
  155. package/src/setProfileGuard.js +44 -0
  156. package/src/setProfileLock.js +93 -0
  157. package/src/setStoryReaction.js +129 -0
  158. package/src/setStorySeen.js +99 -0
  159. package/src/setThreadTheme.js +17 -0
  160. package/src/setTitle.js +15 -0
  161. package/src/shareContact.js +33 -0
  162. package/src/shareLink.js +8 -0
  163. package/src/sharePost.js +31 -0
  164. package/src/stopListenMqtt.js +23 -0
  165. package/src/storyManager.js +353 -0
  166. package/src/suggestFriend.js +128 -0
  167. package/src/threadColors.js +131 -0
  168. package/src/unfollowUser.js +23 -0
  169. package/src/unfriend.js +15 -0
  170. package/src/unpinMessage.js +6 -0
  171. package/src/unsendMessage.js +14 -0
  172. package/src/uploadAttachment.js +58 -0
  173. package/src/uploadImageToImgbb.js +29 -0
  174. package/utils.js +2945 -0
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ module.exports = function (defaultFuncs, api, ctx) {
3
+ return function pinMessage(messageID, threadID, callback) {
4
+ return api.pin("pin", threadID, messageID, callback);
5
+ };
6
+ };
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var utils = require("../utils");
3
+ module.exports = function (defaultFuncs, api, ctx) {
4
+ return function postComment(postID, message, callback) {
5
+ var { promise, callback: cb } = utils.wrapCallback(callback);
6
+ defaultFuncs.post("https://www.facebook.com/api/graphql/", ctx.jar, {
7
+ fb_api_req_friendly_name: "CometUFICreateCommentMutation",
8
+ fb_api_caller_class: "RelayModern",
9
+ doc_id: "4889424714424451",
10
+ variables: JSON.stringify({
11
+ input: {
12
+ client_mutation_id: String(ctx.clientMutationId++),
13
+ actor_id: ctx.userID,
14
+ feedback_id: Buffer.from("feedback:" + postID).toString("base64"),
15
+ message: { text: message },
16
+ attribution_id_v2: "CometNewsFeed.react,comet.news.feed,unexpected,1,1,0,0"
17
+ }
18
+ })
19
+ })
20
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
21
+ .then(resData => {
22
+ if (resData.error) throw resData;
23
+ var edge = resData.data && resData.data.comment_create && resData.data.comment_create.feedback && resData.data.comment_create.feedback.comment && resData.data.comment_create.feedback.comment;
24
+ cb(null, edge || resData);
25
+ })
26
+ .catch(err => cb(err));
27
+ return promise;
28
+ };
29
+ };
@@ -0,0 +1,46 @@
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 postFormData(url, form, callback) {
8
+ var resolveFunc = function () {};
9
+ var rejectFunc = function () {};
10
+
11
+ var returnPromise = new Promise(function (resolve, reject) {
12
+ resolveFunc = resolve;
13
+ rejectFunc = reject;
14
+ });
15
+
16
+ if (
17
+ !callback &&
18
+ (utils.getType(form) == "Function" ||
19
+ utils.getType(form) == "AsyncFunction")
20
+ ) {
21
+ callback = form;
22
+ form = {};
23
+ }
24
+
25
+ form = form || {};
26
+
27
+ callback =
28
+ callback ||
29
+ function (err, data) {
30
+ if (err) return rejectFunc(err);
31
+ resolveFunc(data);
32
+ };
33
+
34
+ defaultFuncs
35
+ .postFormData(url, ctx.jar, form, {})
36
+ .then(function (resData) {
37
+ callback(null, resData.body.toString());
38
+ })
39
+ .catch(function (err) {
40
+ log.error("postFormData", err);
41
+ return callback(err);
42
+ });
43
+
44
+ return returnPromise;
45
+ };
46
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var utils = require("../utils");
3
+ var REACTIONS = { like: "LIKE", love: "LOVE", haha: "HAHA", wow: "WOW", sad: "SAD", angry: "ANGRY", care: "SUPPORT", none: "NONE" };
4
+ module.exports = function (defaultFuncs, api, ctx) {
5
+ return function reactToComment(commentID, reaction, callback) {
6
+ var { promise, callback: cb } = utils.wrapCallback(callback);
7
+ var reactionStr = REACTIONS[reaction && reaction.toLowerCase()] || reaction || "LIKE";
8
+ var feedbackID = Buffer.from("comment:" + commentID).toString("base64");
9
+ defaultFuncs.post("https://www.facebook.com/api/graphql/", ctx.jar, {
10
+ fb_api_req_friendly_name: "CometUFIFeedbackReactMutation",
11
+ fb_api_caller_class: "RelayModern",
12
+ doc_id: "3526409987420860",
13
+ variables: JSON.stringify({
14
+ input: {
15
+ client_mutation_id: String(ctx.clientMutationId++),
16
+ actor_id: ctx.userID,
17
+ feedback_id: feedbackID,
18
+ feedback_reaction_id: reactionStr,
19
+ feedback_source: "COMMENT",
20
+ is_tracking_encrypted: true,
21
+ tracking: [],
22
+ session_id: utils.getGUID()
23
+ }
24
+ })
25
+ })
26
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
27
+ .then(resData => { if (resData.error) throw resData; cb(null, resData); })
28
+ .catch(err => cb(err));
29
+ return promise;
30
+ };
31
+ };
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var utils = require("../utils");
3
+ var REACTIONS = { like: "LIKE", love: "LOVE", haha: "HAHA", wow: "WOW", sad: "SAD", angry: "ANGRY", care: "SUPPORT", none: "NONE" };
4
+ module.exports = function (defaultFuncs, api, ctx) {
5
+ return function reactToPost(postID, reaction, callback) {
6
+ var { promise, callback: cb } = utils.wrapCallback(callback);
7
+ var reactionStr = REACTIONS[reaction && reaction.toLowerCase()] || reaction || "LIKE";
8
+ var feedbackID = Buffer.from("feedback:" + postID).toString("base64");
9
+ defaultFuncs.post("https://www.facebook.com/api/graphql/", ctx.jar, {
10
+ fb_api_req_friendly_name: "CometUFIFeedbackReactMutation",
11
+ fb_api_caller_class: "RelayModern",
12
+ doc_id: "3526409987420860",
13
+ variables: JSON.stringify({
14
+ input: {
15
+ client_mutation_id: String(ctx.clientMutationId++),
16
+ actor_id: ctx.userID,
17
+ feedback_id: feedbackID,
18
+ feedback_reaction_id: reactionStr === "NONE" ? null : reactionStr,
19
+ feedback_source: "NEWS_FEED",
20
+ is_tracking_encrypted: true,
21
+ tracking: [],
22
+ actor_id_for_tti: ctx.userID,
23
+ session_id: utils.getGUID()
24
+ }
25
+ })
26
+ })
27
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
28
+ .then(resData => { if (resData.error) throw resData; cb(null, resData); })
29
+ .catch(err => cb(err));
30
+ return promise;
31
+ };
32
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var utils = require("../utils");
3
+ var cheerio = require("cheerio");
4
+ module.exports = function (defaultFuncs, api, ctx) {
5
+ return async function getFreshDtsg() {
6
+ try {
7
+ const res = await utils.get("https://www.facebook.com/", ctx.jar, null, ctx.globalOptions);
8
+ const $ = cheerio.load(res.body);
9
+ const patterns = [
10
+ /\["DTSGInitialData",\[\],{"token":"([^"]+)"}]/,
11
+ /\["DTSGInitData",\[\],{"token":"([^"]+)"/,
12
+ /"token":"([^"]+)"/,
13
+ /name="fb_dtsg" value="([^"]+)"/
14
+ ];
15
+ let newDtsg = null;
16
+ $('script').each((i, script) => {
17
+ if (newDtsg) return;
18
+ const text = $(script).html() || '';
19
+ for (const pat of patterns) {
20
+ const m = text.match(pat);
21
+ if (m && m[1]) { newDtsg = m[1]; break; }
22
+ }
23
+ });
24
+ if (!newDtsg) newDtsg = $('input[name="fb_dtsg"]').val();
25
+ if (newDtsg) ctx.fb_dtsg = newDtsg;
26
+ return newDtsg;
27
+ } catch (e) {
28
+ return null;
29
+ }
30
+ };
31
+ };
@@ -0,0 +1,74 @@
1
+ /**
2
+ * ===========================================================
3
+ * 🔰 Owner & Developer
4
+ * -----------------------------------------------------------
5
+ * 🕊️ Respect the creator & give proper credits if reused.
6
+ * ===========================================================
7
+ */
8
+ "use strict";
9
+
10
+ const utils = require("../utils");
11
+ const log = require("npmlog");
12
+
13
+ module.exports = function (defaultFuncs, api, ctx) {
14
+ return function removeSuspiciousAccount(callback) {
15
+ let resolveFunc = function () {};
16
+ let rejectFunc = function () {};
17
+ const 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
+ const form = {
30
+ av: ctx.userID,
31
+ __user: ctx.userID,
32
+ __a: "1",
33
+ __req: utils.getGUID(),
34
+ __hs: utils.getEventTime(),
35
+ dpr: "1",
36
+ __ccg: "EXCELLENT",
37
+ __rev: "1029700657",
38
+ __s: utils.getSessionID(),
39
+ __hsi: utils.getEventTime(),
40
+ __dyn: ctx.__dyn || "",
41
+ __csr: ctx.__csr || "",
42
+ __comet_req: "15",
43
+ fb_dtsg: ctx.fb_dtsg || "",
44
+ jazoest: utils.getJazoest(ctx.fb_dtsg),
45
+ lsd: utils.getFormData(ctx.jar, "https://www.facebook.com")?.lsd || "J4SCzL5WXd7KIzVF0tdxFm",
46
+ __spin_r: "1029700657",
47
+ __spin_b: "trunk",
48
+ __spin_t: utils.getEventTime(),
49
+ fb_api_caller_class: "RelayModern",
50
+ fb_api_req_friendly_name: "FBScrapingWarningMutation",
51
+ server_timestamps: "true",
52
+ variables: "{}",
53
+ doc_id: "24406519995698862"
54
+ };
55
+
56
+ defaultFuncs
57
+ .post("https://www.facebook.com/api/graphql/", ctx.jar, form)
58
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
59
+ .then(function (resData) {
60
+ if (resData.error) {
61
+ throw resData;
62
+ }
63
+
64
+ log.info("removeSuspiciousAccount", "Successfully removed suspicious account warning");
65
+ callback(null, { success: true, message: "Suspicious account warning removed" });
66
+ })
67
+ .catch(function (err) {
68
+ log.error("removeSuspiciousAccount", err);
69
+ return callback(err);
70
+ });
71
+
72
+ return returnPromise;
73
+ };
74
+ };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var utils = require("../utils");
3
+ module.exports = function (defaultFuncs, api, ctx) {
4
+ return function removeUserFromGroup(userID, threadID, callback) {
5
+ var { promise, callback: cb } = utils.wrapCallback(callback);
6
+ defaultFuncs.post("https://www.facebook.com/chat/remove_participants/", ctx.jar, {
7
+ uid: userID,
8
+ tid: threadID
9
+ })
10
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
11
+ .then(resData => { if (resData.error) throw resData; cb(null, true); })
12
+ .catch(err => cb(err));
13
+ return promise;
14
+ };
15
+ };