fca-neokex-fix 1.0.1

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 (114) hide show
  1. package/CHANGELOG.md +220 -0
  2. package/LICENSE +26 -0
  3. package/README.md +346 -0
  4. package/THEME_FEATURES.md +137 -0
  5. package/examples/README.md +131 -0
  6. package/examples/apply-ai-theme.js +127 -0
  7. package/examples/check-current-theme.js +74 -0
  8. package/examples/simple-bot.js +114 -0
  9. package/examples/test-bot.js +752 -0
  10. package/examples/test-logging.js +85 -0
  11. package/examples/theme-usage-example.js +53 -0
  12. package/index.js +2 -0
  13. package/package.json +105 -0
  14. package/src/apis/addExternalModule.js +24 -0
  15. package/src/apis/addUserToGroup.js +108 -0
  16. package/src/apis/changeAdminStatus.js +148 -0
  17. package/src/apis/changeArchivedStatus.js +61 -0
  18. package/src/apis/changeAvatar.js +103 -0
  19. package/src/apis/changeBio.js +69 -0
  20. package/src/apis/changeBlockedStatus.js +54 -0
  21. package/src/apis/changeGroupImage.js +136 -0
  22. package/src/apis/changeThreadColor.js +116 -0
  23. package/src/apis/comment.js +207 -0
  24. package/src/apis/createAITheme.js +129 -0
  25. package/src/apis/createNewGroup.js +79 -0
  26. package/src/apis/createPoll.js +73 -0
  27. package/src/apis/deleteMessage.js +44 -0
  28. package/src/apis/deleteThread.js +52 -0
  29. package/src/apis/editMessage.js +70 -0
  30. package/src/apis/emoji.js +124 -0
  31. package/src/apis/fetchThemeData.js +65 -0
  32. package/src/apis/follow.js +81 -0
  33. package/src/apis/forwardMessage.js +52 -0
  34. package/src/apis/friend.js +243 -0
  35. package/src/apis/gcmember.js +122 -0
  36. package/src/apis/gcname.js +123 -0
  37. package/src/apis/gcrule.js +119 -0
  38. package/src/apis/getAccess.js +111 -0
  39. package/src/apis/getBotInfo.js +88 -0
  40. package/src/apis/getBotInitialData.js +43 -0
  41. package/src/apis/getFriendsList.js +79 -0
  42. package/src/apis/getMessage.js +423 -0
  43. package/src/apis/getTheme.js +104 -0
  44. package/src/apis/getThemeInfo.js +96 -0
  45. package/src/apis/getThreadHistory.js +239 -0
  46. package/src/apis/getThreadInfo.js +257 -0
  47. package/src/apis/getThreadList.js +222 -0
  48. package/src/apis/getThreadPictures.js +58 -0
  49. package/src/apis/getUserID.js +83 -0
  50. package/src/apis/getUserInfo.js +495 -0
  51. package/src/apis/getUserInfoV2.js +146 -0
  52. package/src/apis/handleMessageRequest.js +50 -0
  53. package/src/apis/httpGet.js +63 -0
  54. package/src/apis/httpPost.js +89 -0
  55. package/src/apis/httpPostFormData.js +69 -0
  56. package/src/apis/listenMqtt.js +796 -0
  57. package/src/apis/listenSpeed.js +170 -0
  58. package/src/apis/logout.js +63 -0
  59. package/src/apis/markAsDelivered.js +47 -0
  60. package/src/apis/markAsRead.js +95 -0
  61. package/src/apis/markAsReadAll.js +41 -0
  62. package/src/apis/markAsSeen.js +70 -0
  63. package/src/apis/mqttDeltaValue.js +330 -0
  64. package/src/apis/muteThread.js +45 -0
  65. package/src/apis/nickname.js +132 -0
  66. package/src/apis/notes.js +163 -0
  67. package/src/apis/pinMessage.js +141 -0
  68. package/src/apis/produceMetaTheme.js +180 -0
  69. package/src/apis/realtime.js +161 -0
  70. package/src/apis/removeUserFromGroup.js +117 -0
  71. package/src/apis/resolvePhotoUrl.js +58 -0
  72. package/src/apis/searchForThread.js +154 -0
  73. package/src/apis/sendMessage.js +281 -0
  74. package/src/apis/sendMessageMqtt.js +188 -0
  75. package/src/apis/sendTypingIndicator.js +41 -0
  76. package/src/apis/setMessageReaction.js +27 -0
  77. package/src/apis/setMessageReactionMqtt.js +61 -0
  78. package/src/apis/setThreadTheme.js +260 -0
  79. package/src/apis/setThreadThemeMqtt.js +94 -0
  80. package/src/apis/share.js +107 -0
  81. package/src/apis/shareContact.js +66 -0
  82. package/src/apis/stickers.js +257 -0
  83. package/src/apis/story.js +181 -0
  84. package/src/apis/theme.js +233 -0
  85. package/src/apis/unfriend.js +47 -0
  86. package/src/apis/unsendMessage.js +17 -0
  87. package/src/database/appStateBackup.js +189 -0
  88. package/src/database/models/index.js +56 -0
  89. package/src/database/models/thread.js +31 -0
  90. package/src/database/models/user.js +32 -0
  91. package/src/database/threadData.js +101 -0
  92. package/src/database/userData.js +90 -0
  93. package/src/engine/client.js +91 -0
  94. package/src/engine/models/buildAPI.js +109 -0
  95. package/src/engine/models/loginHelper.js +326 -0
  96. package/src/engine/models/setOptions.js +53 -0
  97. package/src/utils/auth-helpers.js +149 -0
  98. package/src/utils/autoReLogin.js +169 -0
  99. package/src/utils/axios.js +290 -0
  100. package/src/utils/clients.js +270 -0
  101. package/src/utils/constants.js +396 -0
  102. package/src/utils/formatters/data/formatAttachment.js +370 -0
  103. package/src/utils/formatters/data/formatDelta.js +153 -0
  104. package/src/utils/formatters/index.js +159 -0
  105. package/src/utils/formatters/value/formatCookie.js +91 -0
  106. package/src/utils/formatters/value/formatDate.js +36 -0
  107. package/src/utils/formatters/value/formatID.js +16 -0
  108. package/src/utils/formatters.js +1067 -0
  109. package/src/utils/headers.js +199 -0
  110. package/src/utils/index.js +151 -0
  111. package/src/utils/monitoring.js +358 -0
  112. package/src/utils/rateLimiter.js +380 -0
  113. package/src/utils/tokenRefresh.js +311 -0
  114. package/src/utils/user-agents.js +238 -0
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Formats a cookie array into a string for use in a cookie jar.
5
+ * @param {Array<string>} arr - An array containing cookie parts.
6
+ * @param {string} url - The base URL for the cookie domain.
7
+ * @returns {string} The formatted cookie string.
8
+ */
9
+ function formatCookie(arr, url) {
10
+ return (
11
+ arr[0] + "=" + arr[1] + "; Path=" + arr[3] + "; Domain=" + url + ".com"
12
+ );
13
+ }
14
+
15
+ /**
16
+ * Normalizes cookie header strings by removing malformed inputs and cleaning up the format.
17
+ * Handles various cookie formats including headers with "Cookie:" prefix and multiline inputs.
18
+ * @param {string} cookieString - The raw cookie string to normalize.
19
+ * @returns {Array<string>} An array of normalized cookie key-value pairs.
20
+ */
21
+ function normalizeCookieHeaderString(cookieString) {
22
+ let str = String(cookieString || "").trim();
23
+ if (!str) return [];
24
+
25
+ if (/^cookie\s*:/i.test(str)) {
26
+ str = str.replace(/^cookie\s*:/i, "").trim();
27
+ }
28
+
29
+ str = str.replace(/\r?\n/g, " ").replace(/\s*;\s*/g, ";");
30
+
31
+ const parts = str.split(";").map(v => v.trim()).filter(Boolean);
32
+ const output = [];
33
+
34
+ for (const part of parts) {
35
+ const eqIndex = part.indexOf("=");
36
+ if (eqIndex <= 0) continue;
37
+
38
+ const key = part.slice(0, eqIndex).trim();
39
+ const value = part.slice(eqIndex + 1).trim().replace(/^"(.*)"$/, "$1");
40
+
41
+ if (!key) continue;
42
+ output.push(`${key}=${value}`);
43
+ }
44
+
45
+ return output;
46
+ }
47
+
48
+ /**
49
+ * Sets cookies in a jar from an array of key-value pairs with domain-aware logic.
50
+ * Ensures cookies are properly set across .facebook.com and .messenger.com domains.
51
+ * @param {object} jar - The cookie jar instance.
52
+ * @param {Array<string>} cookiePairs - Array of cookie strings in "key=value" format.
53
+ * @param {string} domain - The domain to set cookies for (defaults to ".facebook.com").
54
+ * @returns {void}
55
+ */
56
+ function setJarFromPairs(jar, cookiePairs, domain = ".facebook.com") {
57
+ const expires = new Date(Date.now() + 31536000000).toUTCString();
58
+ const domains = [".facebook.com", ".messenger.com"];
59
+
60
+ for (const cookiePair of cookiePairs) {
61
+ for (const cookieDomain of domains) {
62
+ const cookieStr = `${cookiePair}; expires=${expires}; domain=${cookieDomain}; path=/;`;
63
+ try {
64
+ if (typeof jar.setCookieSync === 'function') {
65
+ jar.setCookieSync(cookieStr, `https://${cookieDomain}`);
66
+ } else if (typeof jar.setCookie === 'function') {
67
+ jar.setCookie(cookieStr, `https://${cookieDomain}`);
68
+ }
69
+ } catch (err) {
70
+ }
71
+ }
72
+ }
73
+ }
74
+
75
+ /**
76
+ * Enhanced cookie formatter with multi-domain support.
77
+ * @param {Array<string>} arr - An array containing cookie parts [name, value, ...].
78
+ * @param {string} service - The service name ('facebook' or 'messenger').
79
+ * @returns {string} The formatted cookie string with proper domain.
80
+ */
81
+ function formatCookieWithDomain(arr, service = 'facebook') {
82
+ const name = String(arr?.[0] || "");
83
+ const value = String(arr?.[1] || "");
84
+ return `${name}=${value}; Domain=.${service}.com; Path=/; Secure`;
85
+ }
86
+
87
+ module.exports = formatCookie;
88
+ module.exports.formatCookie = formatCookie;
89
+ module.exports.normalizeCookieHeaderString = normalizeCookieHeaderString;
90
+ module.exports.setJarFromPairs = setJarFromPairs;
91
+ module.exports.formatCookieWithDomain = formatCookieWithDomain;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ const { NUM_TO_MONTH, NUM_TO_DAY } = require("../../constants");
4
+
5
+ /**
6
+ * Formats a Date object into a GMT string.
7
+ * @param {Date} date The date to format.
8
+ */
9
+ function formatDate(date) {
10
+ let d = date.getUTCDate();
11
+ d = d >= 10 ? d : "0" + d;
12
+ let h = date.getUTCHours();
13
+ h = h >= 10 ? h : "0" + h;
14
+ let m = date.getUTCMinutes();
15
+ m = m >= 10 ? m : "0" + m;
16
+ let s = date.getUTCSeconds();
17
+ s = s >= 10 ? s : "0" + s;
18
+ return (
19
+ NUM_TO_DAY[date.getUTCDay()] +
20
+ ", " +
21
+ d +
22
+ " " +
23
+ NUM_TO_MONTH[date.getUTCMonth()] +
24
+ " " +
25
+ date.getUTCFullYear() +
26
+ " " +
27
+ h +
28
+ ":" +
29
+ m +
30
+ ":" +
31
+ s +
32
+ " GMT"
33
+ );
34
+ }
35
+
36
+ module.exports = formatDate;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Strips "fbid:" or "id:" prefixes from a Facebook ID string.
5
+ * @param {string} id The ID to format.
6
+ * @returns {string} The formatted ID.
7
+ */
8
+ function formatID(id) {
9
+ if (id != undefined && id != null) {
10
+ return id.replace(/(fb)?id[:.]/, "");
11
+ } else {
12
+ return id;
13
+ }
14
+ }
15
+
16
+ module.exports = formatID;