fca-priyansh 19.0.1 → 20.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 (135) hide show
  1. package/.gitlab-ci.yml +22 -0
  2. package/CountTime.json +1 -0
  3. package/Extra/Balancer.js +49 -49
  4. package/Extra/BroadcastSystem.js +1 -0
  5. package/Extra/Bypass/956/index.js +233 -233
  6. package/Extra/Bypass/test/aaaa.json +169 -169
  7. package/Extra/Bypass/test/index.js +187 -187
  8. package/Extra/Database/index.js +468 -468
  9. package/Extra/ExtraAddons.js +82 -82
  10. package/Extra/ExtraFindUID.js +61 -61
  11. package/Extra/ExtraGetThread.js +365 -365
  12. package/Extra/ExtraScreenShot.js +430 -430
  13. package/Extra/ExtraUptimeRobot.js +142 -38
  14. package/Extra/Html/Classic/script.js +118 -118
  15. package/Extra/Html/Classic/style.css +7 -7
  16. package/Extra/Security/Base/Step_1.js +5 -5
  17. package/Extra/Security/Base/Step_2.js +22 -22
  18. package/Extra/Security/Base/Step_3.js +22 -22
  19. package/Extra/Security/Base/index.js +190 -190
  20. package/Extra/Security/Index.js +4 -4
  21. package/Extra/Security/Step_1.js +5 -5
  22. package/Extra/Security/Step_2.js +22 -22
  23. package/Extra/Security/Step_3.js +22 -22
  24. package/Extra/Src/Change_Environment.js +24 -24
  25. package/Extra/Src/Check_Update.js +66 -66
  26. package/Extra/Src/History.js +114 -114
  27. package/Extra/Src/Instant_Update.js +64 -64
  28. package/Extra/Src/Last-Run.js +64 -64
  29. package/Extra/Src/Premium.js +81 -81
  30. package/Extra/Src/Websocket.js +212 -212
  31. package/Extra/Src/uuid.js +137 -137
  32. package/Func/AcceptAgreement.js +31 -31
  33. package/Func/ClearCache.js +64 -64
  34. package/Func/ReportV1.js +54 -54
  35. package/LICENSE +21 -21
  36. package/Language/index.json +228 -228
  37. package/Main.js +1 -1290
  38. package/README.md +198 -198
  39. package/broadcast.js +1 -44
  40. package/errorHandler.js +151 -0
  41. package/index.js +1 -448
  42. package/logger.js +69 -66
  43. package/package.json +99 -98
  44. package/src/Dev_Horizon_Data.js +124 -124
  45. package/src/Dev_getThreadInfoOLD.js +421 -421
  46. package/src/Dev_shareTest2.js +68 -68
  47. package/src/Dev_shareTest3.js +71 -71
  48. package/src/Premium.js +24 -24
  49. package/src/Screenshot.js +82 -82
  50. package/src/addExternalModule.js +16 -16
  51. package/src/addUserToGroup.js +79 -79
  52. package/src/changeAdminStatus.js +79 -79
  53. package/src/changeArchivedStatus.js +41 -41
  54. package/src/changeAvt.js +84 -84
  55. package/src/changeBio.js +65 -65
  56. package/src/changeBlockedStatus.js +36 -36
  57. package/src/changeGroupImage.js +106 -106
  58. package/src/changeNickname.js +45 -45
  59. package/src/changeThreadColor.js +62 -62
  60. package/src/changeThreadEmoji.js +42 -42
  61. package/src/changeThreadTheme.js +263 -0
  62. package/src/comment.js +244 -0
  63. package/src/createNewGroup.js +70 -70
  64. package/src/createPoll.js +60 -60
  65. package/src/deleteMessage.js +45 -45
  66. package/src/deleteThread.js +43 -43
  67. package/src/editMessage.js +71 -71
  68. package/src/follow.js +119 -0
  69. package/src/forwardAttachment.js +48 -48
  70. package/src/friend.js +383 -0
  71. package/src/getAccessToken.js +27 -27
  72. package/src/getCurrentUserID.js +7 -7
  73. package/src/getEmojiUrl.js +27 -27
  74. package/src/getFriendsList.js +73 -73
  75. package/src/getMessage.js +102 -102
  76. package/src/getPendingFriendRequests.js +45 -0
  77. package/src/getThreadHistory.js +537 -537
  78. package/src/getThreadInfo.js +424 -423
  79. package/src/getThreadInfoOLD.js +421 -421
  80. package/src/getThreadList.js +213 -213
  81. package/src/getThreadMain.js +219 -219
  82. package/src/getThreadPictures.js +59 -59
  83. package/src/getUID.js +58 -58
  84. package/src/getUserID.js +62 -62
  85. package/src/getUserInfo.js +112 -112
  86. package/src/getUserInfoMain.js +64 -64
  87. package/src/getUserInfoV2.js +31 -31
  88. package/src/getUserInfoV3.js +62 -62
  89. package/src/getUserInfoV4.js +54 -54
  90. package/src/getUserInfoV5.js +60 -60
  91. package/src/handleFriendRequest.js +46 -46
  92. package/src/handleMessageRequest.js +49 -49
  93. package/src/httpGet.js +49 -49
  94. package/src/httpPost.js +48 -48
  95. package/src/httpPostFormData.js +40 -40
  96. package/src/listenMqtt.js +1 -956
  97. package/src/listenMqttV1.js +832 -846
  98. package/src/logout.js +68 -68
  99. package/src/markAsDelivered.js +48 -48
  100. package/src/markAsRead.js +70 -70
  101. package/src/markAsReadAll.js +42 -42
  102. package/src/markAsSeen.js +51 -51
  103. package/src/muteThread.js +47 -47
  104. package/src/notes.js +279 -0
  105. package/src/removeUserFromGroup.js +49 -49
  106. package/src/resolvePhotoUrl.js +37 -37
  107. package/src/searchForThread.js +43 -43
  108. package/src/sendMention.js +325 -0
  109. package/src/sendMessage.js +1 -386
  110. package/src/sendMqttMessage.js +70 -70
  111. package/src/sendTypingIndicator.js +79 -80
  112. package/src/setMessageReaction.js +109 -109
  113. package/src/setPostReaction.js +101 -101
  114. package/src/setTitle.js +74 -74
  115. package/src/share.js +98 -0
  116. package/src/shareContact.js +55 -55
  117. package/src/shareLink.js +58 -58
  118. package/src/stickers.js +525 -0
  119. package/src/story.js +267 -0
  120. package/src/threadColors.js +38 -38
  121. package/src/unfriend.js +43 -43
  122. package/src/unsendMessage.js +47 -47
  123. package/src/unsendMqttMessage.js +65 -65
  124. package/test/data/shareAttach.js +146 -146
  125. package/test/data/test.txt +7 -7
  126. package/test/example-config.json +18 -18
  127. package/test/test-page.js +140 -140
  128. package/test/test.js +385 -385
  129. package/test/testv2.js +2 -2
  130. package/userAgentManager.js +129 -0
  131. package/utils.js +1 -3077
  132. package/.github/workflows/publish.yml +0 -20
  133. package/Extra/Src/Release_Memory.js +0 -160
  134. package/Extra/Src/test.js +0 -28
  135. package/SECURITY.md +0 -17
@@ -1,71 +1,71 @@
1
- /* eslint-disable linebreak-style */
2
- "use strict";
3
-
4
- var utils = require("../utils");
5
-
6
- module.exports = function (defaultFuncs, api, ctx) {
7
- return function(text, threadID, messageID ,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 (!callback && utils.getType(messageID) === "AsyncFunction" || !callback && utils.getType(messageID) === "Function") messageID = callback;
17
-
18
- if (!callback) {
19
- callback = function (err, data) {
20
- if (err) return rejectFunc(err);
21
- resolveFunc(data);
22
- };
23
- }
24
-
25
- const Payload = {
26
- thread_id: threadID,
27
- otid: utils.generateOfflineThreadingID(),
28
- source: 524289,
29
- send_type: 1,
30
- sync_group: 1,
31
- mark_thread_read: 0,
32
- text: text || "test",
33
- initiating_source: 0
34
- };
35
-
36
- if (messageID != undefined || messageID != null) Payload.reply_metadata = {
37
- reply_source_id: messageID,
38
- reply_source_type: 1,
39
- reply_type: 0
40
- };
41
-
42
- const Form = JSON.stringify({
43
- app_id: "2220391788200892",
44
- payload: JSON.stringify({
45
- tasks: [{
46
- label: 46,
47
- payload: JSON.stringify(Payload),
48
- queue_name: threadID,
49
- task_id: Math.random() * 1001 << 0,
50
- failure_count: null,
51
- }],
52
- epoch_id: utils.generateOfflineThreadingID(),
53
- version_id: '7553237234719461',
54
-
55
- }),
56
- request_id: ++ctx.req_ID,
57
- type: 3
58
- });
59
-
60
- ctx.mqttClient.publish('/ls_req', Form,{
61
- qos: 1,
62
- retain: false,
63
- });
64
- ctx.callback_Task[ctx.req_ID] = new Object({
65
- callback,
66
- type: "sendMqttMessage"
67
- });
68
-
69
- return returnPromise;
70
- };
1
+ /* eslint-disable linebreak-style */
2
+ "use strict";
3
+
4
+ var utils = require("../utils");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function(text, threadID, messageID ,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 (!callback && utils.getType(messageID) === "AsyncFunction" || !callback && utils.getType(messageID) === "Function") messageID = callback;
17
+
18
+ if (!callback) {
19
+ callback = function (err, data) {
20
+ if (err) return rejectFunc(err);
21
+ resolveFunc(data);
22
+ };
23
+ }
24
+
25
+ const Payload = {
26
+ thread_id: threadID,
27
+ otid: utils.generateOfflineThreadingID(),
28
+ source: 524289,
29
+ send_type: 1,
30
+ sync_group: 1,
31
+ mark_thread_read: 0,
32
+ text: text || "test",
33
+ initiating_source: 0
34
+ };
35
+
36
+ if (messageID != undefined || messageID != null) Payload.reply_metadata = {
37
+ reply_source_id: messageID,
38
+ reply_source_type: 1,
39
+ reply_type: 0
40
+ };
41
+
42
+ const Form = JSON.stringify({
43
+ app_id: "2220391788200892",
44
+ payload: JSON.stringify({
45
+ tasks: [{
46
+ label: 46,
47
+ payload: JSON.stringify(Payload),
48
+ queue_name: threadID,
49
+ task_id: Math.random() * 1001 << 0,
50
+ failure_count: null,
51
+ }],
52
+ epoch_id: utils.generateOfflineThreadingID(),
53
+ version_id: '7553237234719461',
54
+
55
+ }),
56
+ request_id: ++ctx.req_ID,
57
+ type: 3
58
+ });
59
+
60
+ ctx.mqttClient.publish('/ls_req', Form,{
61
+ qos: 1,
62
+ retain: false,
63
+ });
64
+ ctx.callback_Task[ctx.req_ID] = new Object({
65
+ callback,
66
+ type: "sendMqttMessage"
67
+ });
68
+
69
+ return returnPromise;
70
+ };
71
71
  };
@@ -1,80 +1,79 @@
1
- "use strict";
2
-
3
- var utils = require("../utils");
4
- var log = require("npmlog");
5
-
6
- module.exports = function (defaultFuncs, api, ctx) {
7
- function makeTypingIndicator(typ, threadID, callback, isGroup) {
8
- var form = {
9
- typ: +typ,
10
- to: "",
11
- source: "mercury-chat",
12
- thread: threadID
13
- };
14
-
15
- // Check if thread is a single person chat or a group chat
16
- // More info on this is in api.sendMessage
17
- if (utils.getType(isGroup) == "Boolean") {
18
- if (!isGroup) {
19
- form.to = threadID;
20
- }
21
- defaultFuncs
22
- .post("https://www.facebook.com/ajax/messaging/typ.php", ctx.jar, form)
23
- .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
24
- .then(function (resData) {
25
- if (resData.error) throw resData;
26
- return callback();
27
- })
28
- .catch(function (err) {
29
- log.error("sendTypingIndicator", err);
30
- if (utils.getType(err) == "Object" && err.error === "Not logged in") {
31
- ctx.loggedIn = false;
32
- }
33
- return callback(err);
34
- });
35
- }
36
- else {
37
- api.getUserInfo(threadID, function (err, res) {
38
- if (err) return callback(err);
39
- // If id is single person chat
40
- if (Object.keys(res).length > 0) form.to = threadID;
41
- defaultFuncs
42
- .post("https://www.facebook.com/ajax/messaging/typ.php", ctx.jar, form)
43
- .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
44
- .then(function (resData) {
45
- if (resData.error) throw resData;
46
- return callback();
47
- })
48
- .catch(function (err) {
49
- log.error("sendTypingIndicator", err);
50
- if (utils.getType(err) == "Object" && err.error === "Not logged in.") ctx.loggedIn = false;
51
- return callback(err);
52
- });
53
- });
54
- }
55
- }
56
-
57
- return function sendTypingIndicator(threadID, callback, isGroup) {
58
- if (
59
- utils.getType(callback) !== "Function" &&
60
- utils.getType(callback) !== "AsyncFunction"
61
- ) {
62
- if (callback) log.warn("sendTypingIndicator", "callback is not a function - ignoring.");
63
- callback = () => { };
64
- }
65
-
66
- makeTypingIndicator(true, threadID, callback, isGroup);
67
-
68
- return function end(cb) {
69
- if (
70
- utils.getType(cb) !== "Function" &&
71
- utils.getType(cb) !== "AsyncFunction"
72
- ) {
73
- if (cb) log.warn("sendTypingIndicator", "callback is not a function - ignoring.");
74
- cb = () => { };
75
- }
76
-
77
- makeTypingIndicator(false, threadID, cb, isGroup);
78
- };
79
- };
80
- };
1
+
2
+ "use strict";
3
+
4
+ // const utils = require('../../../utils');
5
+
6
+ /**
7
+ * @param {Object} defaultFuncs
8
+ * @param {Object} api
9
+ * @param {Object} ctx
10
+ */
11
+ module.exports = function (defaultFuncs, api, ctx) {
12
+ /**
13
+ * Sends a typing indicator to a specific thread.
14
+ * @param {boolean|string} sendTyping - True to show typing indicator, false to hide, or threadID if only one parameter.
15
+ * @param {string} [threadID] - The ID of the thread to send the typing indicator to.
16
+ * @param {Function} [callback] - An optional callback function.
17
+ * @returns {Promise<void>}
18
+ */
19
+ return async function sendTypingIndicatorV2(sendTyping, threadID, callback) {
20
+ // Handle flexible parameter calling:
21
+ // api.sendTypingIndicator(threadID) -> show typing
22
+ // api.sendTypingIndicator(true/false, threadID) -> control typing
23
+ let actualThreadID;
24
+ let actualSendTyping;
25
+
26
+ if (typeof sendTyping === 'string' || typeof sendTyping === 'number') {
27
+ // Called with just threadID: sendTypingIndicator(threadID)
28
+ actualThreadID = sendTyping;
29
+ actualSendTyping = true; // Default to showing typing
30
+ // threadID parameter becomes callback
31
+ if (typeof threadID === 'function') {
32
+ callback = threadID;
33
+ }
34
+ } else {
35
+ // Called with both parameters: sendTypingIndicator(boolean, threadID)
36
+ actualSendTyping = sendTyping;
37
+ actualThreadID = threadID;
38
+ }
39
+
40
+ // Validate threadID
41
+ if (!actualThreadID) {
42
+ const error = new Error('sendTypingIndicator: threadID is required');
43
+ if (callback) {
44
+ return callback(error);
45
+ }
46
+ throw error;
47
+ }
48
+
49
+ let count_req = 0;
50
+ const wsContent = {
51
+ app_id: 2220391788200892,
52
+ payload: JSON.stringify({
53
+ label: 3,
54
+ payload: JSON.stringify({
55
+ thread_key: actualThreadID.toString(),
56
+ is_group_thread: +(actualThreadID.toString().length >= 16),
57
+ is_typing: +actualSendTyping,
58
+ attribution: 0
59
+ }),
60
+ version: 5849951561777440
61
+ }),
62
+ request_id: ++count_req,
63
+ type: 4
64
+ };
65
+
66
+ try {
67
+ await new Promise((resolve, reject) => ctx.mqttClient.publish('/ls_req', JSON.stringify(wsContent), {}, (err, _packet) => err ? reject(err) : resolve()));
68
+ if (callback) {
69
+ callback();
70
+ }
71
+ } catch (error) {
72
+ if (callback) {
73
+ callback(error);
74
+ } else {
75
+ throw error;
76
+ }
77
+ }
78
+ };
79
+ };
@@ -1,109 +1,109 @@
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 setMessageReaction(reaction, messageID, callback, forceCustomReaction) {
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, data) {
17
- if (err) return rejectFunc(err);
18
- resolveFunc(data);
19
- };
20
- }
21
-
22
- switch (reaction) {
23
- case "\uD83D\uDE0D": //:heart_eyes:
24
- case "\uD83D\uDE06": //:laughing:
25
- case "\uD83D\uDE2E": //:open_mouth:
26
- case "\uD83D\uDE22": //:cry:
27
- case "\uD83D\uDE20": //:angry:
28
- case "\uD83D\uDC4D": //:thumbsup:
29
- case "\uD83D\uDC4E": //:thumbsdown:
30
- case "\u2764": //:heart:
31
- case "\uD83D\uDC97": //:glowingheart:
32
- case "":
33
- //valid
34
- break;
35
- case ":heart_eyes:":
36
- case ":love:":
37
- reaction = "\uD83D\uDE0D";
38
- break;
39
- case ":laughing:":
40
- case ":haha:":
41
- reaction = "\uD83D\uDE06";
42
- break;
43
- case ":open_mouth:":
44
- case ":wow:":
45
- reaction = "\uD83D\uDE2E";
46
- break;
47
- case ":cry:":
48
- case ":sad:":
49
- reaction = "\uD83D\uDE22";
50
- break;
51
- case ":angry:":
52
- reaction = "\uD83D\uDE20";
53
- break;
54
- case ":thumbsup:":
55
- case ":like:":
56
- reaction = "\uD83D\uDC4D";
57
- break;
58
- case ":thumbsdown:":
59
- case ":dislike:":
60
- reaction = "\uD83D\uDC4E";
61
- break;
62
- case ":heart:":
63
- reaction = "\u2764";
64
- break;
65
- case ":glowingheart:":
66
- reaction = "\uD83D\uDC97";
67
- break;
68
- default:
69
- if (forceCustomReaction) break;
70
- return callback({ error: "Reaction is not a valid emoji." });
71
- }
72
-
73
- var variables = {
74
- data: {
75
- client_mutation_id: ctx.clientMutationId++,
76
- actor_id: ctx.userID,
77
- action: reaction == "" ? "REMOVE_REACTION" : "ADD_REACTION",
78
- message_id: messageID,
79
- reaction: reaction
80
- }
81
- };
82
-
83
- var qs = {
84
- doc_id: "1491398900900362",
85
- variables: JSON.stringify(variables),
86
- dpr: 1
87
- };
88
-
89
- defaultFuncs
90
- .postFormData(
91
- "https://www.facebook.com/webgraphql/mutation/",
92
- ctx.jar,
93
- {},
94
- qs
95
- )
96
- .then(utils.parseAndCheckLogin(ctx.jar, defaultFuncs))
97
- .then(function (resData) {
98
- if (!resData) throw { error: "setReaction returned empty object." };
99
- if (resData.error) throw resData;
100
- callback(null);
101
- })
102
- .catch(function (err) {
103
- log.error("setReaction", err);
104
- return callback(err);
105
- });
106
-
107
- return returnPromise;
108
- };
109
- };
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 setMessageReaction(reaction, messageID, callback, forceCustomReaction) {
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, data) {
17
+ if (err) return rejectFunc(err);
18
+ resolveFunc(data);
19
+ };
20
+ }
21
+
22
+ switch (reaction) {
23
+ case "\uD83D\uDE0D": //:heart_eyes:
24
+ case "\uD83D\uDE06": //:laughing:
25
+ case "\uD83D\uDE2E": //:open_mouth:
26
+ case "\uD83D\uDE22": //:cry:
27
+ case "\uD83D\uDE20": //:angry:
28
+ case "\uD83D\uDC4D": //:thumbsup:
29
+ case "\uD83D\uDC4E": //:thumbsdown:
30
+ case "\u2764": //:heart:
31
+ case "\uD83D\uDC97": //:glowingheart:
32
+ case "":
33
+ //valid
34
+ break;
35
+ case ":heart_eyes:":
36
+ case ":love:":
37
+ reaction = "\uD83D\uDE0D";
38
+ break;
39
+ case ":laughing:":
40
+ case ":haha:":
41
+ reaction = "\uD83D\uDE06";
42
+ break;
43
+ case ":open_mouth:":
44
+ case ":wow:":
45
+ reaction = "\uD83D\uDE2E";
46
+ break;
47
+ case ":cry:":
48
+ case ":sad:":
49
+ reaction = "\uD83D\uDE22";
50
+ break;
51
+ case ":angry:":
52
+ reaction = "\uD83D\uDE20";
53
+ break;
54
+ case ":thumbsup:":
55
+ case ":like:":
56
+ reaction = "\uD83D\uDC4D";
57
+ break;
58
+ case ":thumbsdown:":
59
+ case ":dislike:":
60
+ reaction = "\uD83D\uDC4E";
61
+ break;
62
+ case ":heart:":
63
+ reaction = "\u2764";
64
+ break;
65
+ case ":glowingheart:":
66
+ reaction = "\uD83D\uDC97";
67
+ break;
68
+ default:
69
+ if (forceCustomReaction) break;
70
+ return callback({ error: "Reaction is not a valid emoji." });
71
+ }
72
+
73
+ var variables = {
74
+ data: {
75
+ client_mutation_id: ctx.clientMutationId++,
76
+ actor_id: ctx.userID,
77
+ action: reaction == "" ? "REMOVE_REACTION" : "ADD_REACTION",
78
+ message_id: messageID,
79
+ reaction: reaction
80
+ }
81
+ };
82
+
83
+ var qs = {
84
+ doc_id: "1491398900900362",
85
+ variables: JSON.stringify(variables),
86
+ dpr: 1
87
+ };
88
+
89
+ defaultFuncs
90
+ .postFormData(
91
+ "https://www.facebook.com/webgraphql/mutation/",
92
+ ctx.jar,
93
+ {},
94
+ qs
95
+ )
96
+ .then(utils.parseAndCheckLogin(ctx.jar, defaultFuncs))
97
+ .then(function (resData) {
98
+ if (!resData) throw { error: "setReaction returned empty object." };
99
+ if (resData.error) throw resData;
100
+ callback(null);
101
+ })
102
+ .catch(function (err) {
103
+ log.error("setReaction", err);
104
+ return callback(err);
105
+ });
106
+
107
+ return returnPromise;
108
+ };
109
+ };