@vangbanlanhat/fca-unofficial 1.4.2

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 (115) hide show
  1. package/.gitattributes +2 -0
  2. package/.github/workflows/nodejs.yml +26 -0
  3. package/.github/workflows/npmpublish.yml +30 -0
  4. package/.travis.yml +6 -0
  5. package/CHANGELOG.md +2 -0
  6. package/DOCS.md +1932 -0
  7. package/LICENSE-MIT +21 -0
  8. package/README.md +198 -0
  9. package/jest.config.js +10 -0
  10. package/package.json +86 -0
  11. package/pnpm-workspace.yaml +3 -0
  12. package/src/actions/addExternalModule.js +34 -0
  13. package/src/actions/addUserToGroup.js +113 -0
  14. package/src/actions/changeAdminStatus.js +79 -0
  15. package/src/actions/changeArchivedStatus.js +55 -0
  16. package/src/actions/changeBio.js +77 -0
  17. package/src/actions/changeBlockedStatus.js +47 -0
  18. package/src/actions/changeGroupImage.js +129 -0
  19. package/src/actions/changeNickname.js +59 -0
  20. package/src/actions/changeThreadColor.js +71 -0
  21. package/src/actions/changeThreadEmoji.js +55 -0
  22. package/src/actions/createNewGroup.js +86 -0
  23. package/src/actions/createPoll.js +71 -0
  24. package/src/actions/deleteMessage.js +56 -0
  25. package/src/actions/deleteThread.js +56 -0
  26. package/src/actions/editMessage.js +81 -0
  27. package/src/actions/forwardAttachment.js +60 -0
  28. package/src/actions/getAvatarUser.js +77 -0
  29. package/src/actions/getCurrentUserID.js +11 -0
  30. package/src/actions/getEmojiUrl.js +37 -0
  31. package/src/actions/getFriendsList.js +84 -0
  32. package/src/actions/getMessage.js +833 -0
  33. package/src/actions/getRegion.js +11 -0
  34. package/src/actions/getThreadHistory.js +702 -0
  35. package/src/actions/getThreadHistoryDeprecated.js +93 -0
  36. package/src/actions/getThreadInfo.js +265 -0
  37. package/src/actions/getThreadInfoDeprecated.js +80 -0
  38. package/src/actions/getThreadList.js +274 -0
  39. package/src/actions/getThreadListDeprecated.js +91 -0
  40. package/src/actions/getThreadPictures.js +79 -0
  41. package/src/actions/getUserID.js +66 -0
  42. package/src/actions/getUserInfo.js +92 -0
  43. package/src/actions/handleFriendRequest.js +61 -0
  44. package/src/actions/handleMessageRequest.js +65 -0
  45. package/src/actions/httpGet.js +70 -0
  46. package/src/actions/httpPost.js +70 -0
  47. package/src/actions/index.js +69 -0
  48. package/src/actions/listenMqtt.js +818 -0
  49. package/src/actions/logout.js +136 -0
  50. package/src/actions/markAsDelivered.js +58 -0
  51. package/src/actions/markAsRead.js +92 -0
  52. package/src/actions/markAsReadAll.js +50 -0
  53. package/src/actions/markAsSeen.js +59 -0
  54. package/src/actions/muteThread.js +52 -0
  55. package/src/actions/pinMessage.js +86 -0
  56. package/src/actions/refreshFb_dtsg.js +89 -0
  57. package/src/actions/removeUserFromGroup.js +79 -0
  58. package/src/actions/resolvePhotoUrl.js +45 -0
  59. package/src/actions/searchForThread.js +53 -0
  60. package/src/actions/searchStickers.js +53 -0
  61. package/src/actions/sendMessage.js +490 -0
  62. package/src/actions/sendMessageMqtt.js +235 -0
  63. package/src/actions/sendTypingIndicator.js +59 -0
  64. package/src/actions/setMessageReaction.js +140 -0
  65. package/src/actions/setMessageReactionMqtt.js +72 -0
  66. package/src/actions/setPostReaction.js +76 -0
  67. package/src/actions/setTitle.js +86 -0
  68. package/src/actions/stopListenMqtt.js +63 -0
  69. package/src/actions/threadColors.js +57 -0
  70. package/src/actions/unfriend.js +52 -0
  71. package/src/actions/unsendMessage.js +61 -0
  72. package/src/index.js +659 -0
  73. package/src/service/uploadAttachment.js +318 -0
  74. package/src/utils/base-parts/auth.js +286 -0
  75. package/src/utils/base-parts/formatters.js +751 -0
  76. package/src/utils/base-parts/identity.js +169 -0
  77. package/src/utils/base-parts/network.js +159 -0
  78. package/src/utils/base-parts/parsing.js +53 -0
  79. package/src/utils/base-parts/type.js +9 -0
  80. package/src/utils/base.js +18 -0
  81. package/src/utils/defaults.js +10 -0
  82. package/src/utils/format-attachments.js +7 -0
  83. package/src/utils/format-core.js +8 -0
  84. package/src/utils/format-events.js +11 -0
  85. package/src/utils/format-messages.js +10 -0
  86. package/src/utils/format-presence.js +9 -0
  87. package/src/utils/format-threads.js +8 -0
  88. package/src/utils/formatters.js +18 -0
  89. package/src/utils/identity.js +12 -0
  90. package/src/utils/index.js +15 -0
  91. package/src/utils/network.js +12 -0
  92. package/src/utils/parsing.js +11 -0
  93. package/src/utils.js +3 -0
  94. package/test/config.env.example +30 -0
  95. package/test/data/shareAttach.js +146 -0
  96. package/test/data/something.mov +0 -0
  97. package/test/data/test.png +0 -0
  98. package/test/data/test.txt +7 -0
  99. package/test/example-appstate.txt +11 -0
  100. package/test/integration/actions.appstate.integration.test.js +233 -0
  101. package/test/integration/api.integration.test.js +387 -0
  102. package/test/integration/env-test-config.js +46 -0
  103. package/test/integration/login.appstate.integration.test.js +47 -0
  104. package/test/integration/page.integration.test.js +139 -0
  105. package/test/jest.setup.js +54 -0
  106. package/test/unit/actions/actions.basic.test.js +116 -0
  107. package/test/unit/actions/actions.registry.test.js +36 -0
  108. package/test/unit/index/index.test.js +109 -0
  109. package/test/unit/utils/base-parts/auth.test.js +92 -0
  110. package/test/unit/utils/base-parts/formatters.test.js +53 -0
  111. package/test/unit/utils/base-parts/identity.test.js +43 -0
  112. package/test/unit/utils/base-parts/parsing.test.js +38 -0
  113. package/test/unit/utils/base-parts/type.test.js +23 -0
  114. package/test/unit/utils/base.test.js +35 -0
  115. package/vangbanlanhat-fca-unofficial-1.4.2.tgz +0 -0
@@ -0,0 +1,65 @@
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 handleMessageRequest(threadID, accept, callback) {
8
+ if (utils.getType(accept) !== "Boolean") {
9
+ throw {
10
+ error: "Please pass a boolean as a second argument."
11
+ };
12
+ }
13
+
14
+ var resolveFunc = function(){};
15
+ var rejectFunc = function(){};
16
+ var returnPromise = new Promise(function (resolve, reject) {
17
+ resolveFunc = resolve;
18
+ rejectFunc = reject;
19
+ });
20
+
21
+ if (!callback) {
22
+ callback = function (err, friendList) {
23
+ if (err) {
24
+ return rejectFunc(err);
25
+ }
26
+ resolveFunc(friendList);
27
+ };
28
+ }
29
+
30
+ var form = {
31
+ client: "mercury"
32
+ };
33
+
34
+ if (utils.getType(threadID) !== "Array") {
35
+ threadID = [threadID];
36
+ }
37
+
38
+ var messageBox = accept ? "inbox" : "other";
39
+
40
+ for (var i = 0; i < threadID.length; i++) {
41
+ form[messageBox + "[" + i + "]"] = threadID[i];
42
+ }
43
+
44
+ defaultFuncs
45
+ .post(
46
+ "https://www.facebook.com/ajax/mercury/move_thread.php",
47
+ ctx.jar,
48
+ form
49
+ )
50
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
51
+ .then(function(resData) {
52
+ if (resData.error) {
53
+ throw resData;
54
+ }
55
+
56
+ return callback();
57
+ })
58
+ .catch(function(err) {
59
+ log.error("handleMessageRequest", err);
60
+ return callback(err);
61
+ });
62
+
63
+ return returnPromise;
64
+ };
65
+ };
@@ -0,0 +1,70 @@
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 httpGet(url, form, customHeader, callback, notAPI) {
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 (utils.getType(form) == "Function" || utils.getType(form) == "AsyncFunction") {
17
+ callback = form;
18
+ form = {};
19
+ customHeader = {};
20
+ }
21
+
22
+ if (utils.getType(customHeader) == "Function" || utils.getType(customHeader) == "AsyncFunction") {
23
+ callback = customHeader;
24
+ customHeader = {};
25
+ }
26
+
27
+ if (utils.getType(customHeader) == "Boolean" && typeof callback === "undefined") {
28
+ notAPI = customHeader;
29
+ customHeader = {};
30
+ }
31
+
32
+ if (utils.getType(callback) == "Boolean" && typeof notAPI === "undefined") {
33
+ notAPI = callback;
34
+ callback = undefined;
35
+ }
36
+
37
+ form = form || {};
38
+ customHeader = customHeader || {};
39
+ notAPI = Boolean(notAPI);
40
+
41
+ callback = callback || function(err, data) {
42
+ if (err) return rejectFunc(err);
43
+ resolveFunc(data);
44
+ };
45
+
46
+ if (notAPI) {
47
+ utils
48
+ .get(url, ctx.jar, form, ctx.globalOptions, ctx, customHeader)
49
+ .then(function(resData) {
50
+ callback(null, resData.body.toString());
51
+ })
52
+ .catch(function(err) {
53
+ log.error("httpGet", err);
54
+ return callback(err);
55
+ });
56
+ } else {
57
+ defaultFuncs
58
+ .get(url, ctx.jar, form, null, customHeader)
59
+ .then(function(resData) {
60
+ callback(null, resData.body.toString());
61
+ })
62
+ .catch(function(err) {
63
+ log.error("httpGet", err);
64
+ return callback(err);
65
+ });
66
+ }
67
+
68
+ return returnPromise;
69
+ };
70
+ };
@@ -0,0 +1,70 @@
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 httpPost(url, form, customHeader, callback, notAPI) {
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 (utils.getType(form) == "Function" || utils.getType(form) == "AsyncFunction") {
17
+ callback = form;
18
+ form = {};
19
+ customHeader = {};
20
+ }
21
+
22
+ if (utils.getType(customHeader) == "Function" || utils.getType(customHeader) == "AsyncFunction") {
23
+ callback = customHeader;
24
+ customHeader = {};
25
+ }
26
+
27
+ if (utils.getType(customHeader) == "Boolean" && typeof callback === "undefined") {
28
+ notAPI = customHeader;
29
+ customHeader = {};
30
+ }
31
+
32
+ if (utils.getType(callback) == "Boolean" && typeof notAPI === "undefined") {
33
+ notAPI = callback;
34
+ callback = undefined;
35
+ }
36
+
37
+ form = form || {};
38
+ customHeader = customHeader || {};
39
+ notAPI = Boolean(notAPI);
40
+
41
+ callback = callback || function(err, data) {
42
+ if (err) return rejectFunc(err);
43
+ resolveFunc(data);
44
+ };
45
+
46
+ if (notAPI) {
47
+ utils
48
+ .post(url, ctx.jar, form, ctx.globalOptions, ctx, customHeader)
49
+ .then(function(resData) {
50
+ callback(null, resData.body.toString());
51
+ })
52
+ .catch(function(err) {
53
+ log.error("httpPost", err);
54
+ return callback(err);
55
+ });
56
+ } else {
57
+ defaultFuncs
58
+ .post(url, ctx.jar, form, null, customHeader)
59
+ .then(function(resData) {
60
+ callback(null, resData.body.toString());
61
+ })
62
+ .catch(function(err) {
63
+ log.error("httpPost", err);
64
+ return callback(err);
65
+ });
66
+ }
67
+
68
+ return returnPromise;
69
+ };
70
+ };
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var actionNames = [
4
+ "addExternalModule",
5
+ "addUserToGroup",
6
+ "changeAdminStatus",
7
+ "changeArchivedStatus",
8
+ "changeBio",
9
+ "changeBlockedStatus",
10
+ "changeGroupImage",
11
+ "changeNickname",
12
+ "changeThreadColor",
13
+ "changeThreadEmoji",
14
+
15
+ "createNewGroup",
16
+ "createPoll",
17
+ "deleteMessage",
18
+ "deleteThread",
19
+ "editMessage",
20
+ "forwardAttachment",
21
+ "getAvatarUser",
22
+ "getCurrentUserID",
23
+
24
+ "getEmojiUrl",
25
+ "getFriendsList",
26
+ "getMessage",
27
+ "getRegion",
28
+ "getThreadHistory",
29
+ "getThreadInfo",
30
+ "getThreadList",
31
+ "getThreadPictures",
32
+ "getUserID",
33
+ "getUserInfo",
34
+ "handleMessageRequest",
35
+ "listenMqtt",
36
+ "logout",
37
+ "markAsDelivered",
38
+ "markAsRead",
39
+ "markAsReadAll",
40
+ "markAsSeen",
41
+ "muteThread",
42
+ "pinMessage",
43
+ "refreshFb_dtsg",
44
+ "removeUserFromGroup",
45
+ "resolvePhotoUrl",
46
+ "searchForThread",
47
+ "searchStickers",
48
+ "sendMessage",
49
+ "sendMessageMqtt",
50
+ "sendTypingIndicator",
51
+ // "sendTypingIndicatorMqtt",
52
+ "setMessageReaction",
53
+ "setMessageReactionMqtt",
54
+ "setTitle",
55
+ "stopListenMqtt",
56
+ "threadColors",
57
+
58
+ "unsendMessage",
59
+ "httpGet",
60
+ "httpPost",
61
+ "getThreadListDeprecated",
62
+ "getThreadHistoryDeprecated",
63
+ "getThreadInfoDeprecated"
64
+ ];
65
+
66
+ module.exports = actionNames.reduce(function (acc, name) {
67
+ acc[name] = require("./" + name + ".js");
68
+ return acc;
69
+ }, {});