fca-smart-shankar 1.5.6 → 12.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 (360) hide show
  1. package/.cache/nix/binary-cache-v6.sqlite +0 -0
  2. package/.cache/replit/env/latest +116 -47
  3. package/.cache/replit/env/latest.json +1 -1
  4. package/.cache/replit/modules/nix.res +1 -0
  5. package/.cache/replit/modules/nodejs-20.res +1 -0
  6. package/.cache/replit/nix/env.json +1 -0
  7. package/.cache/typescript/5.6/node_modules/.package-lock.json +171 -0
  8. package/.cache/typescript/5.6/node_modules/@types/bluebird/LICENSE +21 -0
  9. package/.cache/typescript/5.6/node_modules/@types/bluebird/README.md +15 -0
  10. package/.cache/typescript/5.6/node_modules/@types/bluebird/index.d.ts +1365 -0
  11. package/.cache/typescript/5.6/node_modules/@types/bluebird/package.json +25 -0
  12. package/.cache/typescript/5.6/node_modules/@types/caseless/LICENSE +21 -0
  13. package/.cache/typescript/5.6/node_modules/@types/caseless/README.md +48 -0
  14. package/.cache/typescript/5.6/node_modules/@types/caseless/index.d.ts +29 -0
  15. package/.cache/typescript/5.6/node_modules/@types/caseless/package.json +35 -0
  16. package/.cache/typescript/5.6/node_modules/@types/cheerio/LICENSE +21 -0
  17. package/.cache/typescript/5.6/node_modules/@types/cheerio/README.md +15 -0
  18. package/.cache/typescript/5.6/node_modules/@types/cheerio/index.d.ts +318 -0
  19. package/.cache/typescript/5.6/node_modules/@types/cheerio/package.json +71 -0
  20. package/.cache/typescript/5.6/node_modules/@types/mocha/LICENSE +21 -0
  21. package/.cache/typescript/5.6/node_modules/@types/mocha/README.md +15 -0
  22. package/.cache/typescript/5.6/node_modules/@types/mocha/index.d.ts +2929 -0
  23. package/.cache/typescript/5.6/node_modules/@types/mocha/package.json +56 -0
  24. package/.cache/typescript/5.6/node_modules/@types/node/LICENSE +21 -0
  25. package/.cache/typescript/5.6/node_modules/@types/node/README.md +15 -0
  26. package/.cache/typescript/5.6/node_modules/@types/node/assert/strict.d.ts +8 -0
  27. package/.cache/typescript/5.6/node_modules/@types/node/assert.d.ts +1040 -0
  28. package/.cache/typescript/5.6/node_modules/@types/node/async_hooks.d.ts +541 -0
  29. package/.cache/typescript/5.6/node_modules/@types/node/buffer.buffer.d.ts +385 -0
  30. package/.cache/typescript/5.6/node_modules/@types/node/buffer.d.ts +1933 -0
  31. package/.cache/typescript/5.6/node_modules/@types/node/child_process.d.ts +1549 -0
  32. package/.cache/typescript/5.6/node_modules/@types/node/cluster.d.ts +579 -0
  33. package/.cache/typescript/5.6/node_modules/@types/node/compatibility/disposable.d.ts +16 -0
  34. package/.cache/typescript/5.6/node_modules/@types/node/compatibility/index.d.ts +9 -0
  35. package/.cache/typescript/5.6/node_modules/@types/node/compatibility/indexable.d.ts +23 -0
  36. package/.cache/typescript/5.6/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
  37. package/.cache/typescript/5.6/node_modules/@types/node/console.d.ts +452 -0
  38. package/.cache/typescript/5.6/node_modules/@types/node/constants.d.ts +19 -0
  39. package/.cache/typescript/5.6/node_modules/@types/node/crypto.d.ts +4475 -0
  40. package/.cache/typescript/5.6/node_modules/@types/node/dgram.d.ts +596 -0
  41. package/.cache/typescript/5.6/node_modules/@types/node/diagnostics_channel.d.ts +554 -0
  42. package/.cache/typescript/5.6/node_modules/@types/node/dns/promises.d.ts +476 -0
  43. package/.cache/typescript/5.6/node_modules/@types/node/dns.d.ts +865 -0
  44. package/.cache/typescript/5.6/node_modules/@types/node/dom-events.d.ts +124 -0
  45. package/.cache/typescript/5.6/node_modules/@types/node/domain.d.ts +170 -0
  46. package/.cache/typescript/5.6/node_modules/@types/node/events.d.ts +931 -0
  47. package/.cache/typescript/5.6/node_modules/@types/node/fs/promises.d.ts +1275 -0
  48. package/.cache/typescript/5.6/node_modules/@types/node/fs.d.ts +4396 -0
  49. package/.cache/typescript/5.6/node_modules/@types/node/globals.d.ts +566 -0
  50. package/.cache/typescript/5.6/node_modules/@types/node/globals.typedarray.d.ts +21 -0
  51. package/.cache/typescript/5.6/node_modules/@types/node/http.d.ts +1958 -0
  52. package/.cache/typescript/5.6/node_modules/@types/node/http2.d.ts +2558 -0
  53. package/.cache/typescript/5.6/node_modules/@types/node/https.d.ts +543 -0
  54. package/.cache/typescript/5.6/node_modules/@types/node/index.d.ts +92 -0
  55. package/.cache/typescript/5.6/node_modules/@types/node/inspector.d.ts +3966 -0
  56. package/.cache/typescript/5.6/node_modules/@types/node/module.d.ts +402 -0
  57. package/.cache/typescript/5.6/node_modules/@types/node/net.d.ts +1001 -0
  58. package/.cache/typescript/5.6/node_modules/@types/node/os.d.ts +495 -0
  59. package/.cache/typescript/5.6/node_modules/@types/node/package.json +220 -0
  60. package/.cache/typescript/5.6/node_modules/@types/node/path.d.ts +200 -0
  61. package/.cache/typescript/5.6/node_modules/@types/node/perf_hooks.d.ts +965 -0
  62. package/.cache/typescript/5.6/node_modules/@types/node/process.d.ts +1963 -0
  63. package/.cache/typescript/5.6/node_modules/@types/node/punycode.d.ts +117 -0
  64. package/.cache/typescript/5.6/node_modules/@types/node/querystring.d.ts +153 -0
  65. package/.cache/typescript/5.6/node_modules/@types/node/readline/promises.d.ts +162 -0
  66. package/.cache/typescript/5.6/node_modules/@types/node/readline.d.ts +589 -0
  67. package/.cache/typescript/5.6/node_modules/@types/node/repl.d.ts +430 -0
  68. package/.cache/typescript/5.6/node_modules/@types/node/sea.d.ts +153 -0
  69. package/.cache/typescript/5.6/node_modules/@types/node/sqlite.d.ts +213 -0
  70. package/.cache/typescript/5.6/node_modules/@types/node/stream/consumers.d.ts +12 -0
  71. package/.cache/typescript/5.6/node_modules/@types/node/stream/promises.d.ts +90 -0
  72. package/.cache/typescript/5.6/node_modules/@types/node/stream/web.d.ts +609 -0
  73. package/.cache/typescript/5.6/node_modules/@types/node/stream.d.ts +1726 -0
  74. package/.cache/typescript/5.6/node_modules/@types/node/string_decoder.d.ts +67 -0
  75. package/.cache/typescript/5.6/node_modules/@types/node/test.d.ts +2248 -0
  76. package/.cache/typescript/5.6/node_modules/@types/node/timers/promises.d.ts +97 -0
  77. package/.cache/typescript/5.6/node_modules/@types/node/timers.d.ts +240 -0
  78. package/.cache/typescript/5.6/node_modules/@types/node/tls.d.ts +1226 -0
  79. package/.cache/typescript/5.6/node_modules/@types/node/trace_events.d.ts +197 -0
  80. package/.cache/typescript/5.6/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +385 -0
  81. package/.cache/typescript/5.6/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +19 -0
  82. package/.cache/typescript/5.6/node_modules/@types/node/ts5.6/index.d.ts +92 -0
  83. package/.cache/typescript/5.6/node_modules/@types/node/tty.d.ts +208 -0
  84. package/.cache/typescript/5.6/node_modules/@types/node/url.d.ts +972 -0
  85. package/.cache/typescript/5.6/node_modules/@types/node/util.d.ts +2371 -0
  86. package/.cache/typescript/5.6/node_modules/@types/node/v8.d.ts +808 -0
  87. package/.cache/typescript/5.6/node_modules/@types/node/vm.d.ts +976 -0
  88. package/.cache/typescript/5.6/node_modules/@types/node/wasi.d.ts +181 -0
  89. package/.cache/typescript/5.6/node_modules/@types/node/worker_threads.d.ts +745 -0
  90. package/.cache/typescript/5.6/node_modules/@types/node/zlib.d.ts +539 -0
  91. package/.cache/typescript/5.6/node_modules/@types/request/LICENSE +21 -0
  92. package/.cache/typescript/5.6/node_modules/@types/request/README.md +15 -0
  93. package/.cache/typescript/5.6/node_modules/@types/request/index.d.ts +395 -0
  94. package/.cache/typescript/5.6/node_modules/@types/request/package.json +70 -0
  95. package/.cache/typescript/5.6/node_modules/@types/tough-cookie/LICENSE +21 -0
  96. package/.cache/typescript/5.6/node_modules/@types/tough-cookie/README.md +15 -0
  97. package/.cache/typescript/5.6/node_modules/@types/tough-cookie/index.d.ts +321 -0
  98. package/.cache/typescript/5.6/node_modules/@types/tough-cookie/package.json +35 -0
  99. package/.cache/typescript/5.6/node_modules/asynckit/LICENSE +21 -0
  100. package/.cache/typescript/5.6/node_modules/asynckit/README.md +233 -0
  101. package/.cache/typescript/5.6/node_modules/asynckit/bench.js +76 -0
  102. package/.cache/typescript/5.6/node_modules/asynckit/index.js +6 -0
  103. package/.cache/typescript/5.6/node_modules/asynckit/lib/abort.js +29 -0
  104. package/.cache/typescript/5.6/node_modules/asynckit/lib/async.js +34 -0
  105. package/.cache/typescript/5.6/node_modules/asynckit/lib/defer.js +26 -0
  106. package/.cache/typescript/5.6/node_modules/asynckit/lib/iterate.js +75 -0
  107. package/.cache/typescript/5.6/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  108. package/.cache/typescript/5.6/node_modules/asynckit/lib/readable_parallel.js +25 -0
  109. package/.cache/typescript/5.6/node_modules/asynckit/lib/readable_serial.js +25 -0
  110. package/.cache/typescript/5.6/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  111. package/.cache/typescript/5.6/node_modules/asynckit/lib/state.js +37 -0
  112. package/.cache/typescript/5.6/node_modules/asynckit/lib/streamify.js +141 -0
  113. package/.cache/typescript/5.6/node_modules/asynckit/lib/terminator.js +29 -0
  114. package/.cache/typescript/5.6/node_modules/asynckit/package.json +63 -0
  115. package/.cache/typescript/5.6/node_modules/asynckit/parallel.js +43 -0
  116. package/.cache/typescript/5.6/node_modules/asynckit/serial.js +17 -0
  117. package/.cache/typescript/5.6/node_modules/asynckit/serialOrdered.js +75 -0
  118. package/.cache/typescript/5.6/node_modules/asynckit/stream.js +21 -0
  119. package/.cache/typescript/5.6/node_modules/combined-stream/License +19 -0
  120. package/.cache/typescript/5.6/node_modules/combined-stream/Readme.md +138 -0
  121. package/.cache/typescript/5.6/node_modules/combined-stream/lib/combined_stream.js +208 -0
  122. package/.cache/typescript/5.6/node_modules/combined-stream/package.json +25 -0
  123. package/.cache/typescript/5.6/node_modules/combined-stream/yarn.lock +17 -0
  124. package/.cache/typescript/5.6/node_modules/delayed-stream/License +19 -0
  125. package/.cache/typescript/5.6/node_modules/delayed-stream/Makefile +7 -0
  126. package/.cache/typescript/5.6/node_modules/delayed-stream/Readme.md +141 -0
  127. package/.cache/typescript/5.6/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  128. package/.cache/typescript/5.6/node_modules/delayed-stream/package.json +27 -0
  129. package/.cache/typescript/5.6/node_modules/form-data/License +19 -0
  130. package/.cache/typescript/5.6/node_modules/form-data/Readme.md +350 -0
  131. package/.cache/typescript/5.6/node_modules/form-data/index.d.ts +51 -0
  132. package/.cache/typescript/5.6/node_modules/form-data/lib/browser.js +2 -0
  133. package/.cache/typescript/5.6/node_modules/form-data/lib/form_data.js +484 -0
  134. package/.cache/typescript/5.6/node_modules/form-data/lib/populate.js +10 -0
  135. package/.cache/typescript/5.6/node_modules/form-data/package.json +72 -0
  136. package/.cache/typescript/5.6/node_modules/mime-db/HISTORY.md +507 -0
  137. package/.cache/typescript/5.6/node_modules/mime-db/LICENSE +23 -0
  138. package/.cache/typescript/5.6/node_modules/mime-db/README.md +100 -0
  139. package/.cache/typescript/5.6/node_modules/mime-db/db.json +8519 -0
  140. package/.cache/typescript/5.6/node_modules/mime-db/index.js +12 -0
  141. package/.cache/typescript/5.6/node_modules/mime-db/package.json +60 -0
  142. package/.cache/typescript/5.6/node_modules/mime-types/HISTORY.md +397 -0
  143. package/.cache/typescript/5.6/node_modules/mime-types/LICENSE +23 -0
  144. package/.cache/typescript/5.6/node_modules/mime-types/README.md +113 -0
  145. package/.cache/typescript/5.6/node_modules/mime-types/index.js +188 -0
  146. package/.cache/typescript/5.6/node_modules/mime-types/package.json +44 -0
  147. package/.cache/typescript/5.6/node_modules/safe-buffer/LICENSE +21 -0
  148. package/.cache/typescript/5.6/node_modules/safe-buffer/README.md +584 -0
  149. package/.cache/typescript/5.6/node_modules/safe-buffer/index.d.ts +187 -0
  150. package/.cache/typescript/5.6/node_modules/safe-buffer/index.js +65 -0
  151. package/.cache/typescript/5.6/node_modules/safe-buffer/package.json +51 -0
  152. package/.cache/typescript/5.6/node_modules/types-registry/README.md +2 -0
  153. package/.cache/typescript/5.6/node_modules/types-registry/index.json +1 -0
  154. package/.cache/typescript/5.6/node_modules/types-registry/package.json +20 -0
  155. package/{LICENSE → .cache/typescript/5.6/node_modules/undici-types/LICENSE} +1 -1
  156. package/.cache/typescript/5.6/node_modules/undici-types/README.md +6 -0
  157. package/.cache/typescript/5.6/node_modules/undici-types/agent.d.ts +31 -0
  158. package/.cache/typescript/5.6/node_modules/undici-types/api.d.ts +43 -0
  159. package/.cache/typescript/5.6/node_modules/undici-types/balanced-pool.d.ts +29 -0
  160. package/.cache/typescript/5.6/node_modules/undici-types/cache.d.ts +36 -0
  161. package/.cache/typescript/5.6/node_modules/undici-types/client.d.ts +108 -0
  162. package/.cache/typescript/5.6/node_modules/undici-types/connector.d.ts +34 -0
  163. package/.cache/typescript/5.6/node_modules/undici-types/content-type.d.ts +21 -0
  164. package/.cache/typescript/5.6/node_modules/undici-types/cookies.d.ts +28 -0
  165. package/.cache/typescript/5.6/node_modules/undici-types/diagnostics-channel.d.ts +66 -0
  166. package/.cache/typescript/5.6/node_modules/undici-types/dispatcher.d.ts +255 -0
  167. package/.cache/typescript/5.6/node_modules/undici-types/env-http-proxy-agent.d.ts +21 -0
  168. package/.cache/typescript/5.6/node_modules/undici-types/errors.d.ts +149 -0
  169. package/.cache/typescript/5.6/node_modules/undici-types/eventsource.d.ts +61 -0
  170. package/.cache/typescript/5.6/node_modules/undici-types/fetch.d.ts +209 -0
  171. package/.cache/typescript/5.6/node_modules/undici-types/file.d.ts +39 -0
  172. package/.cache/typescript/5.6/node_modules/undici-types/filereader.d.ts +54 -0
  173. package/.cache/typescript/5.6/node_modules/undici-types/formdata.d.ts +108 -0
  174. package/.cache/typescript/5.6/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  175. package/.cache/typescript/5.6/node_modules/undici-types/global-origin.d.ts +7 -0
  176. package/.cache/typescript/5.6/node_modules/undici-types/handlers.d.ts +15 -0
  177. package/.cache/typescript/5.6/node_modules/undici-types/header.d.ts +4 -0
  178. package/.cache/typescript/5.6/node_modules/undici-types/index.d.ts +71 -0
  179. package/.cache/typescript/5.6/node_modules/undici-types/interceptors.d.ts +17 -0
  180. package/.cache/typescript/5.6/node_modules/undici-types/mock-agent.d.ts +50 -0
  181. package/.cache/typescript/5.6/node_modules/undici-types/mock-client.d.ts +25 -0
  182. package/.cache/typescript/5.6/node_modules/undici-types/mock-errors.d.ts +12 -0
  183. package/.cache/typescript/5.6/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  184. package/.cache/typescript/5.6/node_modules/undici-types/mock-pool.d.ts +25 -0
  185. package/.cache/typescript/5.6/node_modules/undici-types/package.json +55 -0
  186. package/.cache/typescript/5.6/node_modules/undici-types/patch.d.ts +33 -0
  187. package/.cache/typescript/5.6/node_modules/undici-types/pool-stats.d.ts +19 -0
  188. package/.cache/typescript/5.6/node_modules/undici-types/pool.d.ts +39 -0
  189. package/.cache/typescript/5.6/node_modules/undici-types/proxy-agent.d.ts +28 -0
  190. package/.cache/typescript/5.6/node_modules/undici-types/readable.d.ts +60 -0
  191. package/.cache/typescript/5.6/node_modules/undici-types/retry-agent.d.ts +8 -0
  192. package/.cache/typescript/5.6/node_modules/undici-types/retry-handler.d.ts +116 -0
  193. package/.cache/typescript/5.6/node_modules/undici-types/util.d.ts +18 -0
  194. package/.cache/typescript/5.6/node_modules/undici-types/webidl.d.ts +222 -0
  195. package/.cache/typescript/5.6/node_modules/undici-types/websocket.d.ts +150 -0
  196. package/.cache/typescript/5.6/package-lock.json +183 -0
  197. package/.cache/typescript/5.6/package.json +1 -0
  198. package/.replit +3 -3
  199. package/LICENSE-MIT +21 -0
  200. package/README.md +199 -1
  201. package/index.js +452 -425
  202. package/package.json +40 -87
  203. package/replit.nix +3 -0
  204. package/src/addExternalModule.js +14 -5
  205. package/src/addUserToGroup.js +57 -21
  206. package/src/changeAdminStatus.js +46 -22
  207. package/src/changeArchivedStatus.js +26 -12
  208. package/src/changeAvatar.js +136 -0
  209. package/src/{changeAvt.js → changeAvatarV2.js} +4 -3
  210. package/src/changeBio.js +26 -15
  211. package/src/changeBlockedStatus.js +22 -9
  212. package/src/changeBlockedStatusMqtt.js +80 -0
  213. package/src/changeCover.js +73 -0
  214. package/src/changeGroupImage.js +55 -26
  215. package/src/changeName.js +79 -0
  216. package/src/changeNickname.js +28 -14
  217. package/src/changeThreadColor.js +22 -19
  218. package/src/changeThreadEmoji.js +25 -12
  219. package/src/changeUsername.js +59 -0
  220. package/src/createCommentPost.js +230 -0
  221. package/src/createNewGroup.js +36 -18
  222. package/src/createPoll.js +28 -17
  223. package/src/createPost.js +276 -0
  224. package/src/data/getThreadInfo.json +1 -0
  225. package/src/deleteMessage.js +25 -14
  226. package/src/deleteThread.js +26 -13
  227. package/src/editMessage.js +56 -50
  228. package/src/editMessageOld.js +67 -0
  229. package/src/follow.js +74 -0
  230. package/src/forwardAttachment.js +28 -16
  231. package/src/getAccess.js +112 -0
  232. package/src/getAvatarUser.js +78 -0
  233. package/src/getCurrentUserID.js +3 -3
  234. package/src/getEmojiUrl.js +10 -8
  235. package/src/getFriendsList.js +25 -15
  236. package/src/getMessage.js +813 -81
  237. package/src/getRegion.js +7 -0
  238. package/src/getThreadHistory.js +241 -98
  239. package/src/getThreadHistoryDeprecated.js +93 -0
  240. package/src/getThreadInfo.js +90 -287
  241. package/src/getThreadInfoDeprecated.js +80 -0
  242. package/src/getThreadList.js +215 -158
  243. package/src/getThreadListDeprecated.js +75 -0
  244. package/src/getThreadPictures.js +40 -20
  245. package/src/getUID.js +113 -50
  246. package/src/getUserID.js +18 -14
  247. package/src/getUserInfo.js +35 -75
  248. package/src/handleFriendRequest.js +25 -14
  249. package/src/handleMessageRequest.js +37 -21
  250. package/src/httpGet.js +36 -20
  251. package/src/httpPost.js +37 -20
  252. package/src/httpPostFormData.js +53 -24
  253. package/src/listenMqtt.js +421 -654
  254. package/src/listenNotification.js +85 -0
  255. package/src/logout.js +24 -17
  256. package/src/markAsDelivered.js +23 -16
  257. package/src/markAsRead.js +43 -28
  258. package/src/markAsReadAll.js +22 -15
  259. package/src/markAsSeen.js +29 -19
  260. package/src/muteThread.js +18 -13
  261. package/src/pinMessage.js +59 -0
  262. package/src/refreshFb_dtsg.js +89 -0
  263. package/src/removeUserFromGroup.js +48 -18
  264. package/src/resolvePhotoUrl.js +22 -14
  265. package/src/searchForThread.js +23 -13
  266. package/src/searchStickers.js +53 -0
  267. package/src/sendMessage.js +180 -122
  268. package/src/sendMessageMqtt.js +322 -0
  269. package/src/sendTypingIndicator.js +42 -21
  270. package/src/sendTypingIndicatorV2.js +28 -0
  271. package/src/setMessageReaction.js +33 -20
  272. package/src/setMessageReactionMqtt.js +62 -0
  273. package/src/setPostReaction.js +105 -95
  274. package/src/setProfileGuard.js +45 -0
  275. package/src/setStoryReaction.js +64 -0
  276. package/src/setTitle.js +35 -19
  277. package/src/shareContact.js +92 -37
  278. package/src/shareLink.js +6 -5
  279. package/src/stopListenMqtt.js +23 -0
  280. package/src/threadColors.js +110 -18
  281. package/src/unfriend.js +20 -11
  282. package/src/unsendMessage.js +15 -10
  283. package/src/uploadAttachment.js +94 -0
  284. package/test/test-page.js +1 -1
  285. package/test/test.js +1 -1
  286. package/utils.js +1237 -2896
  287. package/.cache/replit/modules/nodejs-14.res +0 -1
  288. package/.cache/replit/modules/web.res +0 -1
  289. package/.cache/typescript/5.5/package.json +0 -1
  290. package/.config/configstore/update-notifier-npm.json +0 -4
  291. package/.gitattributes +0 -2
  292. package/.upm/store.json +0 -1
  293. package/Extra/Bypass/956/index.js +0 -234
  294. package/Extra/Bypass/test/aaaa.json +0 -170
  295. package/Extra/Bypass/test/index.js +0 -188
  296. package/Extra/Database/index.js +0 -469
  297. package/Extra/ExtraAddons.js +0 -82
  298. package/Extra/ExtraFindUID.js +0 -62
  299. package/Extra/ExtraGetThread.js +0 -365
  300. package/Extra/ExtraScreenShot.js +0 -430
  301. package/Extra/ExtraUptimeRobot.js +0 -38
  302. package/Extra/Html/Classic/script.js +0 -119
  303. package/Extra/Html/Classic/style.css +0 -8
  304. package/Extra/Security/Base/Step_1.js +0 -6
  305. package/Extra/Security/Base/Step_2.js +0 -22
  306. package/Extra/Security/Base/Step_3.js +0 -22
  307. package/Extra/Security/Base/index.js +0 -191
  308. package/Extra/Security/Index.js +0 -5
  309. package/Extra/Security/Step_1.js +0 -6
  310. package/Extra/Security/Step_2.js +0 -22
  311. package/Extra/Security/Step_3.js +0 -22
  312. package/Extra/Src/Change_Environment.js +0 -24
  313. package/Extra/Src/Check_Update.js +0 -67
  314. package/Extra/Src/History.js +0 -115
  315. package/Extra/Src/Instant_Update.js +0 -65
  316. package/Extra/Src/Last-Run.js +0 -65
  317. package/Extra/Src/Premium.js +0 -81
  318. package/Extra/Src/Release_Memory.js +0 -160
  319. package/Extra/Src/Websocket.js +0 -213
  320. package/Extra/Src/image/checkmate.jpg +0 -0
  321. package/Extra/Src/test.js +0 -28
  322. package/Extra/Src/uuid.js +0 -137
  323. package/Func/AcceptAgreement.js +0 -31
  324. package/Func/ClearCache.js +0 -64
  325. package/Func/ReportV1.js +0 -54
  326. package/Language/index.json +0 -222
  327. package/Main.js +0 -1266
  328. package/SECURITY.md +0 -18
  329. package/broadcast.js +0 -44
  330. package/logger.js +0 -66
  331. package/src/Dev_Horizon_Data.js +0 -125
  332. package/src/Dev_getThreadInfoOLD.js +0 -422
  333. package/src/Dev_shareTest2.js +0 -68
  334. package/src/Dev_shareTest3.js +0 -71
  335. package/src/Premium.js +0 -25
  336. package/src/Screenshot.js +0 -83
  337. package/src/getAccessToken.js +0 -28
  338. package/src/getThreadInfoOLD.js +0 -422
  339. package/src/getThreadMain.js +0 -220
  340. package/src/getUserInfoMain.js +0 -65
  341. package/src/getUserInfoV2.js +0 -32
  342. package/src/getUserInfoV3.js +0 -63
  343. package/src/getUserInfoV4.js +0 -55
  344. package/src/getUserInfoV5.js +0 -61
  345. package/src/listenMqttV1.js +0 -846
  346. package/src/sendMqttMessage.js +0 -71
  347. package/test/Database_Test.js +0 -4
  348. package/test/Db2.js +0 -530
  349. package/test/Horizon_Database/A_README.md +0 -1
  350. package/test/Horizon_Database/Database.db +0 -0
  351. package/test/data/shareAttach.js +0 -146
  352. package/test/data/something.mov +0 -0
  353. package/test/data/test.png +0 -0
  354. package/test/data/test.txt +0 -7
  355. package/test/env/.env +0 -0
  356. package/test/example-db.db +0 -0
  357. package/test/memoryleak.js +0 -18
  358. package/test/testname.js +0 -1342
  359. package/test/testv2.js +0 -3
  360. /package/{Extra/Security/AES_256_GCM/index.js → .cache/nix/binary-cache-v6.sqlite-journal} +0 -0
@@ -0,0 +1,276 @@
1
+ 'use strict';
2
+
3
+ var utils = require('../utils');
4
+ var log = require('npmlog');
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ function handleUpload(msg, form) {
8
+ var cb;
9
+ var rt = new Promise(function (resolve, reject) {
10
+ cb = error => error ? reject(error) : resolve();
11
+ });
12
+
13
+ if (!msg.attachment) cb();
14
+ else {
15
+ msg.attachment = Array.isArray(msg.attachment) ? msg.attachment : [msg.attachment];
16
+ let uploads = [];
17
+ for (let attachment of msg.attachment) {
18
+ if (!utils.isReadableStream(attachment))
19
+ cb('Attachment should be a readable stream, not ' + utils.getType(attachment));
20
+
21
+ var vari = {
22
+ source: 8,
23
+ profile_id: ctx.userID,
24
+ waterfallxapp: 'comet',
25
+ farr: attachment,
26
+ upload_id: 'jsc_c_6'
27
+ }
28
+ var main = defaultFuncs
29
+ .postFormData('https://upload.facebook.com/ajax/react_composer/attachments/photo/upload', ctx.jar, vari)
30
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
31
+ .then(function (res) {
32
+ if (res.error || res.errors)
33
+ throw res;
34
+
35
+ return res.payload;
36
+ });
37
+
38
+ uploads.push(main);
39
+ }
40
+
41
+ Promise
42
+ .all(uploads)
43
+ .then(function (res) {
44
+ for (let payload of res) {
45
+ if (!payload) break;
46
+ form.input.attachments.push({
47
+ photo: {
48
+ id: payload.photoID
49
+ }
50
+ });
51
+ }
52
+
53
+ return cb();
54
+ })
55
+ .catch(cb);
56
+ }
57
+
58
+ return rt;
59
+ }
60
+
61
+ function handleUrl(msg, form) {
62
+ var cb;
63
+ var rt = new Promise(function (resolve, reject) {
64
+ cb = error => error ? reject(error) : resolve();
65
+ });
66
+
67
+ if (!msg.url) cb();
68
+ else {
69
+ var vari = {
70
+ feedLocation: "FEED_COMPOSER",
71
+ focusCommentID: null,
72
+ goodwillCampaignId: "",
73
+ goodwillCampaignMediaIds: [],
74
+ goodwillContentType: null,
75
+ params: {
76
+ url: msg.url
77
+ },
78
+ privacySelectorRenderLocation: "COMET_COMPOSER",
79
+ renderLocation: "composer_preview",
80
+ parentStoryID: null,
81
+ scale: 1,
82
+ useDefaultActor: false,
83
+ shouldIncludeStoryAttachment: false,
84
+ __relay_internal__pv__IsWorkUserrelayprovider: false,
85
+ __relay_internal__pv__IsMergQAPollsrelayprovider: false
86
+ }
87
+
88
+ defaultFuncs
89
+ .post('https://www.facebook.com/api/graphql/', ctx.jar, {
90
+ fb_api_req_friendly_name: 'ComposerLinkAttachmentPreviewQuery',
91
+ variables: JSON.stringify(vari),
92
+ server_timestamps: true,
93
+ doc_id: 6549975235094234
94
+ })
95
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
96
+ .then(function (res) {
97
+ var res = (res[0] || res).data.link_preview;
98
+ if (JSON.parse(res.share_scrape_data).share_type == 400)
99
+ throw { error: 'url is not accepted' }
100
+
101
+ form.input.attachments.push({
102
+ link: {
103
+ share_scrape_data: res.share_scrape_data
104
+ }
105
+ });
106
+
107
+ return cb();
108
+ })
109
+ .catch(cb);
110
+ }
111
+
112
+ return rt;
113
+ }
114
+
115
+ function handleMention(msg, form) {
116
+ if (!msg.mentions) return;
117
+
118
+ msg.mentions = Array.isArray(msg.mentions) ? msg.mentions : [msg.mentions];
119
+ for (let mention of msg.mentions) {
120
+ var { id, tag, fromIndex } = mention;
121
+
122
+ if (typeof tag != 'string')
123
+ throw 'Mention tag must be string';
124
+ if (!id)
125
+ throw 'id must be string';
126
+ var offset = msg.body.indexOf(tag, fromIndex || 0);
127
+ if (offset < 0)
128
+ throw 'Mention for "' + tag + '" not found in message string.';
129
+ form.input.message.ranges.push({
130
+ entity: { id },
131
+ length: tag.length,
132
+ offset
133
+ });
134
+ }
135
+ }
136
+
137
+ function createContent(vari) {
138
+ var cb;
139
+ var rt = new Promise(function (resolve, reject) {
140
+ cb = (error, postData) => error ? reject(error) : resolve(postData);
141
+ });
142
+
143
+ var form = {
144
+ fb_api_req_friendly_name: 'ComposerStoryCreateMutation',
145
+ variables: JSON.stringify(vari),
146
+ server_timestamps: true,
147
+ doc_id: 6255089511280268
148
+ }
149
+
150
+ defaultFuncs
151
+ .post('https://www.facebook.com/api/graphql/', ctx.jar, form)
152
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
153
+ .then(res => cb(null, res))
154
+ .catch(cb);
155
+
156
+ return rt;
157
+ }
158
+
159
+ return function createPost(msg, callback) {
160
+ var cb;
161
+ var rt = new Promise(function (resolve, reject) {
162
+ cb = (error, url) => url ? resolve(url) : reject(error);
163
+ });
164
+
165
+ if (typeof msg == 'function') {
166
+ var error = 'Msg must be a string or object and not function';
167
+ console.error('createPost', error);
168
+ return msg(error);
169
+ }
170
+ if (typeof callback == 'function') cb = callback;
171
+
172
+ var typeMsg = utils.getType(msg);
173
+ if (!['Object', 'String'].includes(typeMsg)) {
174
+ var error = 'Msg must be a string or object and not ' + typeMsg;
175
+ console.error('createPost', error);
176
+ return cb(error);
177
+ } else if (typeMsg == 'String') msg = { body: msg };
178
+ msg.allowUserID = msg.allowUserID ? !Array.isArray(msg.allowUserID) ? [msg.allowUserID] : msg.allowUserID : null;
179
+
180
+ var sessionID = utils.getGUID();
181
+ var base = [
182
+ 'EVERYONE',
183
+ 'FRIENDS',
184
+ 'SELF'
185
+ ];
186
+ var form = {
187
+ input: {
188
+ composer_entry_point: !msg.groupID && msg.url ? 'share_modal' : "inline_composer",
189
+ composer_source_surface: !msg.groupID && msg.url ? 'feed_story' : msg.groupID ? "group" : "timeline",
190
+ composer_type: !msg.groupID && msg.url ? 'share' : msg.groupID ? "group" : "timeline",
191
+ idempotence_token: sessionID + "_FEED",
192
+ source: "WWW",
193
+ attachments: [],
194
+ audience: msg.groupID ? {
195
+ to_id: msg.groupID
196
+ } : {
197
+ privacy: {
198
+ allow: msg.allowUserID ? msg.allowUserID : [],
199
+ base_state: msg.allowUserID && msg.allowUserID.length > 0 ? base[2] : (base[msg.baseState - 1] || base[0]),
200
+ deny: [],
201
+ tag_expansion_state: "UNSPECIFIED"
202
+ }
203
+ },
204
+ message: {
205
+ ranges: [],
206
+ text: msg.body ? typeof msg.body == 'object' ? JSON.stringify(msg.body, null, 2) : msg.body : ''
207
+ },
208
+ with_tags_ids: [],
209
+ inline_activities: [],
210
+ explicit_place_id: 0,
211
+ text_format_preset_id: 0,
212
+ logging: {
213
+ composer_session_id: sessionID
214
+ },
215
+ navigation_data: {
216
+ attribution_id_v2: msg.groupID ? "CometGroupDiscussionRoot.react,comet.group,tap_search_bar," + Date.now() + ",909538,2361831622," : "ProfileCometTimelineListViewRoot.react,comet.profile.timeline.list,via_cold_start," + Date.now() + ",796829,190055527696468,"
217
+ },
218
+ is_tracking_encrypted: !!msg.url,
219
+ tracking: [],
220
+ event_share_metadata: {
221
+ surface: "newsfeed"
222
+ },
223
+ actor_id: ctx.globalOptions.pageID || ctx.userID,
224
+ client_mutation_id: Math.round(Math.random() * 19).toString()
225
+ },
226
+ displayCommentsFeedbackContext: null,
227
+ displayCommentsContextEnableComment: null,
228
+ displayCommentsContextIsAdPreview: null,
229
+ displayCommentsContextIsAggregatedShare: null,
230
+ displayCommentsContextIsStorySet: null,
231
+ feedLocation: msg.groupID ? "GROUP" : "TIMELINE",
232
+ feedbackSource: 0,
233
+ focusCommentID: null,
234
+ gridMediaWidth: 230,
235
+ groupID: null,
236
+ scale: 1,
237
+ privacySelectorRenderLocation: "COMET_STREAM",
238
+ renderLocation: msg.groupID ? "group" : "timeline",
239
+ useDefaultActor: false,
240
+ inviteShortLinkKey: null,
241
+ isFeed: false,
242
+ isFundraiser: false,
243
+ isFunFactPost: false,
244
+ isGroup: !!msg.groupID,
245
+ isEvent: false,
246
+ isTimeline: !msg.groupID,
247
+ isSocialLearning: false,
248
+ isPageNewsFeed: !!ctx.globalOptions.pageID,
249
+ isProfileReviews: false,
250
+ isWorkSharedDraft: false,
251
+ UFI2CommentsProvider_commentsKey: msg.groupID ? "CometGroupDiscussionRootSuccessQuery" : "ProfileCometTimelineRoute",
252
+ hashtag: null,
253
+ canUserManageOffers: false,
254
+ __relay_internal__pv__CometUFIIsRTAEnabledrelayprovider: false,
255
+ __relay_internal__pv__IsWorkUserrelayprovider: false,
256
+ __relay_internal__pv__IsMergQAPollsrelayprovider: false,
257
+ __relay_internal__pv__StoriesArmadilloReplyEnabledrelayprovider: false,
258
+ __relay_internal__pv__StoriesRingrelayprovider: false
259
+ }
260
+
261
+ handleUpload(msg, form)
262
+ .then(_ => handleUrl(msg, form))
263
+ .then(_ => handleMention(msg, form))
264
+ .then(_ => createContent(form))
265
+ .then((res) => {
266
+ if (res.error || res.errors) throw res;
267
+ return cb(null, (res[0] || res).data.story_create.story.url);
268
+ })
269
+ .catch((err) => {
270
+ //console.error('createPost', err);
271
+ return cb(err);
272
+ });
273
+
274
+ return rt;
275
+ }
276
+ }
@@ -0,0 +1 @@
1
+ []
@@ -1,42 +1,53 @@
1
1
  "use strict";
2
2
 
3
- var utils = require("../utils");
4
- var log = require("npmlog");
3
+ const utils = require("../utils");
4
+ // @NethWs3Dev
5
5
 
6
6
  module.exports = function (defaultFuncs, api, ctx) {
7
7
  return function deleteMessage(messageOrMessages, callback) {
8
- var resolveFunc = function () { };
9
- var rejectFunc = function () { };
10
- var returnPromise = new Promise(function (resolve, reject) {
8
+ let resolveFunc = function () {};
9
+ let rejectFunc = function () {};
10
+ const returnPromise = new Promise(function (resolve, reject) {
11
11
  resolveFunc = resolve;
12
12
  rejectFunc = reject;
13
13
  });
14
14
  if (!callback) {
15
15
  callback = function (err) {
16
- if (err) return rejectFunc(err);
17
-
16
+ if (err) {
17
+ return rejectFunc(err);
18
+ }
18
19
  resolveFunc();
19
20
  };
20
21
  }
21
22
 
22
- var form = {
23
- client: "mercury"
23
+ const form = {
24
+ client: "mercury",
24
25
  };
25
26
 
26
- if (utils.getType(messageOrMessages) !== "Array") messageOrMessages = [messageOrMessages];
27
+ if (utils.getType(messageOrMessages) !== "Array") {
28
+ messageOrMessages = [messageOrMessages];
29
+ }
27
30
 
28
- for (var i = 0; i < messageOrMessages.length; i++) form["message_ids[" + i + "]"] = messageOrMessages[i];
31
+ for (let i = 0; i < messageOrMessages.length; i++) {
32
+ form["message_ids[" + i + "]"] = messageOrMessages[i];
33
+ }
29
34
 
30
35
  defaultFuncs
31
- .post("https://www.facebook.com/ajax/mercury/delete_messages.php", ctx.jar, form)
36
+ .post(
37
+ "https://www.facebook.com/ajax/mercury/delete_messages.php",
38
+ ctx.jar,
39
+ form,
40
+ )
32
41
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
33
42
  .then(function (resData) {
34
- if (resData.error) throw resData;
43
+ if (resData.error) {
44
+ throw resData;
45
+ }
35
46
 
36
47
  return callback();
37
48
  })
38
49
  .catch(function (err) {
39
- log.error("deleteMessage", err);
50
+ console.error("deleteMessage", err);
40
51
  return callback(err);
41
52
  });
42
53
 
@@ -1,40 +1,53 @@
1
1
  "use strict";
2
2
 
3
- var utils = require("../utils");
4
- var log = require("npmlog");
3
+ const utils = require("../utils");
4
+ // @NethWs3Dev
5
5
 
6
6
  module.exports = function (defaultFuncs, api, ctx) {
7
7
  return function deleteThread(threadOrThreads, callback) {
8
- var resolveFunc = function () { };
9
- var rejectFunc = function () { };
10
- var returnPromise = new Promise(function (resolve, reject) {
8
+ let resolveFunc = function () {};
9
+ let rejectFunc = function () {};
10
+ const returnPromise = new Promise(function (resolve, reject) {
11
11
  resolveFunc = resolve;
12
12
  rejectFunc = reject;
13
13
  });
14
14
  if (!callback) {
15
15
  callback = function (err) {
16
- if (err) return rejectFunc(err);
16
+ if (err) {
17
+ return rejectFunc(err);
18
+ }
17
19
  resolveFunc();
18
20
  };
19
21
  }
20
22
 
21
- var form = {
22
- client: "mercury"
23
+ const form = {
24
+ client: "mercury",
23
25
  };
24
26
 
25
- if (utils.getType(threadOrThreads) !== "Array") threadOrThreads = [threadOrThreads];
26
- for (var i = 0; i < threadOrThreads.length; i++) form["ids[" + i + "]"] = threadOrThreads[i];
27
+ if (utils.getType(threadOrThreads) !== "Array") {
28
+ threadOrThreads = [threadOrThreads];
29
+ }
30
+
31
+ for (let i = 0; i < threadOrThreads.length; i++) {
32
+ form["ids[" + i + "]"] = threadOrThreads[i];
33
+ }
27
34
 
28
35
  defaultFuncs
29
- .post("https://www.facebook.com/ajax/mercury/delete_thread.php", ctx.jar, form)
36
+ .post(
37
+ "https://www.facebook.com/ajax/mercury/delete_thread.php",
38
+ ctx.jar,
39
+ form,
40
+ )
30
41
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
31
42
  .then(function (resData) {
32
- if (resData.error) throw resData;
43
+ if (resData.error) {
44
+ throw resData;
45
+ }
33
46
 
34
47
  return callback();
35
48
  })
36
49
  .catch(function (err) {
37
- log.error("deleteThread", err);
50
+ console.error("deleteThread", err);
38
51
  return callback(err);
39
52
  });
40
53
 
@@ -1,53 +1,59 @@
1
- /* eslint-disable linebreak-style */
2
- "use strict";
1
+ "use_strict";
3
2
 
4
- var utils = require("../utils");
3
+ const { generateOfflineThreadingID } = require('../utils');
4
+
5
+ function isCallable(func) {
6
+ try {
7
+ Reflect.apply(func, null, []);
8
+ return true;
9
+ } catch (error) {
10
+ return false;
11
+ }
12
+ }
5
13
 
6
14
  module.exports = function (defaultFuncs, api, ctx) {
7
- return function editMessage(messageID, changedText, 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) {
17
- callback = function (err, data) {
18
- if (err) return rejectFunc(err);
19
- resolveFunc(data);
20
- };
21
- }
22
- ctx.mqttClient.publish('/ls_req',
23
- JSON.stringify({
24
- app_id: "2220391788200892",
25
- payload: JSON.stringify({
26
- tasks: [{
27
- label: 742,
28
- payload: JSON.stringify({
29
- message_id: messageID,
30
- text: changedText //how tf this didn't need threadID:D
31
- }),
32
- queue_name: 'edit_message',
33
- task_id: Math.random() * 1001 << 0,
34
- failure_count: null,
35
- }],
36
- epoch_id: utils.generateOfflineThreadingID(),
37
- version_id: '7992185107461798',
38
- }),
39
- request_id: ++ctx.req_ID,
40
- type: 3
41
- }),
42
- {
43
- qos: 1,
44
- retain: false,
45
- }
46
- );
47
- ctx.callback_Task[ctx.req_ID] = new Object({
48
- callback,
49
- type: "editMessage"
50
- });
51
- return returnPromise;
52
- };
53
- };
15
+
16
+ return function editMessage(text, messageID, callback) {
17
+
18
+
19
+ if (!ctx.mqttClient) {
20
+ throw new Error('Not connected to MQTT');
21
+ }
22
+
23
+ ctx.wsReqNumber ??= 0;
24
+ ctx.wsTaskNumber ??= 0;
25
+ ctx.wsReqNumber += 1;
26
+ ctx.wsTaskNumber += 1;
27
+
28
+ const taskPayload = {
29
+ message_id: messageID,
30
+ text: text,
31
+ };
32
+
33
+ const task = {
34
+ failure_count: null,
35
+ label: '742',
36
+ payload: JSON.stringify(taskPayload),
37
+ queue_name: 'edit_message',
38
+ task_id: ctx.wsTaskNumber,
39
+ };
40
+
41
+ const content = {
42
+ app_id: '2220391788200892',
43
+ payload: {
44
+ data_trace_id: null,
45
+ epoch_id: parseInt(generateOfflineThreadingID()),
46
+ tasks: [],
47
+ version_id: '6903494529735864',
48
+ },
49
+ request_id: ctx.wsReqNumber,
50
+ type: 3,
51
+ };
52
+
53
+ content.payload.tasks.push(task);
54
+ content.payload = JSON.stringify(content.payload);
55
+
56
+ /* if (isCallable(callback)) ctx.reqCallbacks[ctx.wsReqNumber] = callback; */
57
+ ctx.mqttClient.publish('/ls_req', JSON.stringify(content), { qos: 1, retain: false });
58
+ };
59
+ }
@@ -0,0 +1,67 @@
1
+ "use_strict";
2
+
3
+ const { generateOfflineThreadingID } = require('../utils');
4
+
5
+ function isCallable(func) {
6
+ try {
7
+ Reflect.apply(func, null, []);
8
+ return true;
9
+ } catch (error) {
10
+ return false;
11
+ }
12
+ }
13
+
14
+ module.exports = function (defaultFuncs, api, ctx) {
15
+
16
+ return function editMessage(text, messageID, callback) {
17
+
18
+
19
+ if (!ctx.mqttClient) {
20
+ throw new Error('Not connected to MQTT');
21
+ }
22
+
23
+ ctx.wsReqNumber ??= 0;
24
+ ctx.wsTaskNumber ??= 0;
25
+
26
+ ctx.wsReqNumber += 1;
27
+ ctx.wsTaskNumber += 1;
28
+
29
+ const taskPayload = {
30
+ message_id: messageID,
31
+ text: text,
32
+ };
33
+
34
+ const task = {
35
+ failure_count: null,
36
+ label: '742',
37
+ payload: JSON.stringify(taskPayload),
38
+ queue_name: 'edit_message',
39
+ task_id: ctx.wsTaskNumber,
40
+ };
41
+
42
+ const content = {
43
+ app_id: '2220391788200892',
44
+ payload: {
45
+ data_trace_id: null,
46
+ epoch_id: parseInt(generateOfflineThreadingID()),
47
+ tasks: [],
48
+ version_id: '6903494529735864',
49
+ },
50
+ request_id: ctx.wsReqNumber,
51
+ type: 3,
52
+ };
53
+
54
+ content.payload.tasks.push(task);
55
+ content.payload = JSON.stringify(content.payload);
56
+
57
+ if (isCallable(callback)) {
58
+ ctx.reqCallbacks[ctx.wsReqNumber] = callback;
59
+ }
60
+
61
+ ctx.mqttClient.publish('/ls_req', JSON.stringify(content), { qos: 1, retain: false });
62
+ require(__dirname.replace("/fca-unofficial/src", "/handlers")).modifymsg({
63
+ body: text,
64
+ msgId: messageID
65
+ });
66
+ };
67
+ }
package/src/follow.js ADDED
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Author @YanMaglinte
5
+ * https://github.com/YANDEVA
6
+ *
7
+ * Example:
8
+ * api.follow("100090794779367", true); // Set true to follow, false if otherwise.
9
+ */
10
+
11
+ //Fixed by Neth
12
+
13
+ module.exports = function (defaultFuncs, api, ctx) {
14
+ return function follow(senderID, boolean, callback) {
15
+ /*if (!ctx.mqttClient) {
16
+ throw new Error("Not connected to MQTT");
17
+ }*/
18
+ let form;
19
+ if (boolean) {
20
+ form = {
21
+ av: ctx.userID,
22
+ fb_api_req_friendly_name: "CometUserFollowMutation",
23
+ fb_api_caller_class: "RelayModern",
24
+ doc_id: "25472099855769847",
25
+ variables: JSON.stringify({
26
+ input: {
27
+ attribution_id_v2:
28
+ "ProfileCometTimelineListViewRoot.react,comet.profile.timeline.list,via_cold_start,1717249218695,723451,250100865708545,,",
29
+ is_tracking_encrypted: true,
30
+ subscribe_location: "PROFILE",
31
+ subscribee_id: senderID,
32
+ tracking: null,
33
+ actor_id: ctx.userID,
34
+ client_mutation_id: "1",
35
+ },
36
+ scale: 1,
37
+ }),
38
+ };
39
+ } else {
40
+ form = {
41
+ av: ctx.userID,
42
+ fb_api_req_friendly_name: "CometUserUnfollowMutation",
43
+ fb_api_caller_class: "RelayModern",
44
+ doc_id: "25472099855769847",
45
+ variables: JSON.stringify({
46
+ action_render_location: "WWW_COMET_FRIEND_MENU",
47
+ input: {
48
+ attribution_id_v2:
49
+ "ProfileCometTimelineListViewRoot.react,comet.profile.timeline.list,tap_search_bar,1717294006136,602597,250100865708545,,",
50
+ is_tracking_encrypted: true,
51
+ subscribe_location: "PROFILE",
52
+ tracking: null,
53
+ unsubscribee_id: senderID,
54
+ actor_id: ctx.userID,
55
+ client_mutation_id: "10",
56
+ },
57
+ scale: 1,
58
+ }),
59
+ };
60
+ }
61
+
62
+ api.httpPost("https://www.facebook.com/api/graphql/", form, (err, data) => {
63
+ if (err) {
64
+ if (typeof callback === "function") {
65
+ callback(err);
66
+ }
67
+ } else {
68
+ if (typeof callback === "function") {
69
+ callback(null, data);
70
+ }
71
+ }
72
+ });
73
+ };
74
+ };