@ivncotacte/fca-ivan 1.5.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of @ivncotacte/fca-ivan might be problematic. Click here for more details.

Files changed (116) hide show
  1. package/.gitattributes +2 -0
  2. package/Extra/Database/index.js +469 -0
  3. package/Extra/ExtraAddons.js +82 -0
  4. package/Extra/ExtraFindUID.js +62 -0
  5. package/Extra/ExtraGetThread.js +340 -0
  6. package/Extra/ExtraScreenShot.js +430 -0
  7. package/Extra/ExtraUptimeRobot.js +38 -0
  8. package/Extra/Html/Classic/script.js +119 -0
  9. package/Extra/Html/Classic/style.css +8 -0
  10. package/Extra/Security/AES_256_GCM/index.js +0 -0
  11. package/Extra/Security/Base/Step_1.js +6 -0
  12. package/Extra/Security/Base/Step_2.js +22 -0
  13. package/Extra/Security/Base/Step_3.js +22 -0
  14. package/Extra/Security/Base/index.js +173 -0
  15. package/Extra/Security/Index.js +5 -0
  16. package/Extra/Security/Step_1.js +6 -0
  17. package/Extra/Security/Step_2.js +22 -0
  18. package/Extra/Security/Step_3.js +22 -0
  19. package/Extra/Src/Change_Environment.js +24 -0
  20. package/Extra/Src/Check_Update.js +67 -0
  21. package/Extra/Src/History.js +115 -0
  22. package/Extra/Src/Instant_Update.js +65 -0
  23. package/Extra/Src/Last-Run.js +65 -0
  24. package/Extra/Src/Premium.js +81 -0
  25. package/Extra/Src/Release_Memory.js +41 -0
  26. package/Extra/Src/Websocket.js +213 -0
  27. package/Extra/Src/image/checkmate.jpg +0 -0
  28. package/Extra/Src/uuid.js +137 -0
  29. package/Func/AcceptAgreement.js +31 -0
  30. package/Func/ClearCache.js +64 -0
  31. package/Func/ReportV1.js +54 -0
  32. package/LICENSE +21 -0
  33. package/Language/index.json +435 -0
  34. package/Main.js +1211 -0
  35. package/README.md +129 -0
  36. package/SECURITY.md +18 -0
  37. package/broadcast.js +40 -0
  38. package/index.js +386 -0
  39. package/logger.js +66 -0
  40. package/package.json +87 -0
  41. package/src/Dev_Horizon_Data.js +125 -0
  42. package/src/Premium.js +25 -0
  43. package/src/Screenshot.js +83 -0
  44. package/src/addExternalModule.js +16 -0
  45. package/src/addUserToGroup.js +79 -0
  46. package/src/changeAdminStatus.js +79 -0
  47. package/src/changeArchivedStatus.js +41 -0
  48. package/src/changeAvt.js +85 -0
  49. package/src/changeBio.js +65 -0
  50. package/src/changeBlockedStatus.js +36 -0
  51. package/src/changeGroupImage.js +106 -0
  52. package/src/changeNickname.js +45 -0
  53. package/src/changeThreadColor.js +62 -0
  54. package/src/changeThreadEmoji.js +42 -0
  55. package/src/createNewGroup.js +70 -0
  56. package/src/createPoll.js +60 -0
  57. package/src/deleteMessage.js +45 -0
  58. package/src/deleteThread.js +43 -0
  59. package/src/forwardAttachment.js +48 -0
  60. package/src/getAccessToken.js +28 -0
  61. package/src/getCurrentUserID.js +7 -0
  62. package/src/getEmojiUrl.js +27 -0
  63. package/src/getFriendsList.js +73 -0
  64. package/src/getMessage.js +80 -0
  65. package/src/getThreadHistory.js +537 -0
  66. package/src/getThreadInfo.js +425 -0
  67. package/src/getThreadList.js +213 -0
  68. package/src/getThreadMain.js +220 -0
  69. package/src/getThreadPictures.js +59 -0
  70. package/src/getUID.js +59 -0
  71. package/src/getUserID.js +62 -0
  72. package/src/getUserInfo.js +113 -0
  73. package/src/getUserInfoMain.js +65 -0
  74. package/src/getUserInfoV2.js +32 -0
  75. package/src/getUserInfoV3.js +63 -0
  76. package/src/getUserInfoV4.js +55 -0
  77. package/src/getUserInfoV5.js +61 -0
  78. package/src/handleFriendRequest.js +46 -0
  79. package/src/handleMessageRequest.js +49 -0
  80. package/src/httpGet.js +49 -0
  81. package/src/httpPost.js +48 -0
  82. package/src/httpPostFormData.js +41 -0
  83. package/src/listenMqtt.js +787 -0
  84. package/src/logout.js +68 -0
  85. package/src/markAsDelivered.js +48 -0
  86. package/src/markAsRead.js +70 -0
  87. package/src/markAsReadAll.js +43 -0
  88. package/src/markAsSeen.js +51 -0
  89. package/src/muteThread.js +47 -0
  90. package/src/removeUserFromGroup.js +49 -0
  91. package/src/resolvePhotoUrl.js +37 -0
  92. package/src/searchForThread.js +43 -0
  93. package/src/sendMessage.js +379 -0
  94. package/src/sendTypingIndicator.js +80 -0
  95. package/src/setMessageReaction.js +109 -0
  96. package/src/setPostReaction.js +102 -0
  97. package/src/setTitle.js +74 -0
  98. package/src/threadColors.js +39 -0
  99. package/src/unfriend.js +43 -0
  100. package/src/unsendMessage.js +40 -0
  101. package/test/Database_Test.js +4 -0
  102. package/test/Db2.js +530 -0
  103. package/test/Horizon_Database/A_README.md +1 -0
  104. package/test/Horizon_Database/Database.db +0 -0
  105. package/test/data/shareAttach.js +146 -0
  106. package/test/data/something.mov +0 -0
  107. package/test/data/test.png +0 -0
  108. package/test/data/test.txt +7 -0
  109. package/test/env/.env +0 -0
  110. package/test/example-config.json +18 -0
  111. package/test/example-db.db +0 -0
  112. package/test/memoryleak.js +18 -0
  113. package/test/test-page.js +140 -0
  114. package/test/test.js +385 -0
  115. package/test/testv2.js +18 -0
  116. package/utils.js +1683 -0
@@ -0,0 +1,173 @@
1
+ 'use strict';
2
+
3
+ const ArrPassWord = ["CFGIZMHQGX", "URHQBLBLDR", "UBBWNJHLQS", "VOTNXBXQII", "HNGMQVUAHX", "IAFYAYRZDY", "WDJLNZSHGO", "SPMYPNPIDK", "BHDWKZCQJW", "YKHYNQHGSP", "XJWRXNOVIO", "SBPIBKTTYZ", "WOIJIPGAJH", "ZMBZURDFLW", "MVLVQWADDO", "CYJTGTGZON", "PRYZDDAWFO", "DUEOZNSCFJ", "KJPYPBSKMG", "EWFJVYCMMX", "CEDXZXJOGL", "KHPGXTFVOK", "PLQXZDLWJB", "SNWGNETCDG", "LILQXIGAZA", "GYGBDGBBYM", "DCRQKCOQLI", "RQJRRHVVKP", "JPCXRJGGNF", "JIEVLOVWIV", "PDGOFRVGEB", "QIIDHSRVKV", "ZECHPLBKFS", "EXQWXMACRP", "ZCCGCBWORF", "GJFOBWWMOS", "QCFNCFNIKZ", "ZAZZRZPAVC", "FQTFSFTNAP", "MVSSFKTHFA", "JFQGSMBYYQ", "JQINYGVFYJ", "ZBSPCBAQHC", "NQOTZDJARE", "CPWSWUEYQQ", "JVPWHYBXIB", "CXNXMSBIGT", "IFAFLNVDJK", "JOSSVDYERS", "YLWCRIRTUV", "CCKFYYGPAK", "YPELTOONQB", "FRMSZGHOEE", "BHRUUWMTDV", "OXKRPPNJHM", "FTPZCTSIFX", "NEDXDNHXOT", "VWREYWTQAD", "WIJFGFHOXG", "DOYYUZDOAA", "PMATAFECMX", "DKCIKASCUI", "GUESGUXXIM", "ZKHVCWXFYH", "BSTNRFIIQU", "TYIUNFDOYP", "NOUONMIJZM", "ECQTMQOJZI", "JVZQUABCGO", "DQQOTHHRZR", "HXDYLEMAGD", "RLALZZNBWU", "EEEEDUEGMW", "ZARNWMSQKV", "UDHXZOHBVX", "ACDYVCOSTK", "FVMTMIILWE", "FEBSFBHHWH", "WNSMQUVOLT", "BNROOXMJLS", "UMXDBEEPIA", "QTGHEEUVAD", "DDQPCWXGHB", "ZHGCFOXPRK", "XKDGASBGLL", "SCUYYMILRF", "PNYLDRGPVZ", "VCCGJDBHON", "SNLOVMETFA", "CTVECWZBQI", "GLFNSKCHNN", "XKQBVYVLEE", "MFAOPFLZCS", "MJWAMMAXJD", "RPILJBDWUS", "AOLFBKLGCU", "GGYJYVCCYA", "ZTPGNAVPNS", "COXANROIUY", "AFKUQIMSSG", "TKXEGTRCIC", "WNGJRYTLAP", "LQNJTKVLCY", "HYRAUPHHNZ", "RKIETHATFD", "OMZYVCOSGI", "MJYYMQTBSA", "WPUUEKECLN", "MVAULGIOUA", "PXRNLSXAUN", "LDGFRIHHWZ", "OEXMJWIXMJ", "AVXSOMKYOR", "RKZMSDOKSX", "JNSYBTWQLB", "BKUFMDRUFW", "MHVZBXUELL", "SKGDCUSQWS", "PQCFWLJVBM", "RKVVDZQBRA", "MUPJVJTVEQ", "SJMHPLXAFC", "KNOQKDQXIL", "AMFAXAEIPT", "ZFCUWAAZFP", "ZIQMCMMWIF", "XLHWNOVDOK", "VLFQKLQGZE", "TEINUSDMEL", "BCDTYHSISA", "UNRXBBXAAS", "XJUWFZJKRJ", "GCUONLWFOT", "QNSUCRTVNW", "KRJBLIAGUX", "DBJVXYWCGS", "SNNMDWCXJY", "YNVFGDMLSU", "UVMVELXUSN", "WXICKSVIFP", "PNTSKIKVWB", "VXSQZPCPIJ", "UFARZLYMPL", "HDJAXAMDTW", "XSKZWCCSFF", "FZTUBNATNF", "RGFQORXORS", "WXWANTTYAM", "YZJTBIABCL", "DIAZHANKRV", "NBZXQAFXPU", "FILEDTBMGX", "DSOOFDJJDN", "OSKCMCGYDU", "HIRQXIVRHV", "WWGQUGQBQA", "EEKZGVIFMM", "QNIFPPCNOO", "UWOUKFLUZN", "CACEOOAKBW", "JTFMLVAOYO", "NNEJZKEGXU", "UQJBLOADPQ", "MYDGDBVGMX", "WXJYRHIURP", "PIFXBMHDJZ", "RXFSKNCESP", "RAVEGGVBTN", "BUFPMINULH", "UGTTELFBTP", "HPQBJIKPFA", "XQRHQBZXOO", "JGNKEIVSWA", "OLGSAOTGKH", "XGIGZTVSOX", "LDFXHBBGDH", "VLGKMITXPI", "VJTWAUDYSI", "HUXKHXIUWI", "VBPAXHYKQU", "PUYJGLTPWQ", "TVCRNZTMCC", "MAVXHNPQEQ", "CNNITMACFT", "VGUXXTVPFL", "HLKJGIGBUB", "SGODCXPKWB", "DXPBEWXXGB", "YJDMSEAKIJ", "WGNQKSMBZT", "TLOGVVISEH", "CFJSCEXSOS", "QEXVFGMFVE", "YHINIHPYYV", "WMDDMIPBIK", "VVJCBZQKCP", "ROIWFCRYCA", "FJBKKTFJCT", "FUOGHKOBIO", "EPXSSSKBRA", "SWRAJXSRMS", "ZBRVIPMZVU", "FKLGPWILUC", "OXXWLYBYMP", "JNQMRVSQCZ", "CMSKEJPHHC", "XYXFXCEOTJ", "QOPMOPQEZT", "ASEYNVFGEN", "NJHGSVOVBM", "XZFCIPROKT", "MKVSDUFTGN", "IQLCNTVOVG", "VKJAMVYVYN", "CYEBFNRYFU", "OMTRBWKKVL", "QMSICNUIAF", "OJHCEFVWIV", "JGWPIMKBYX", "WFOOBZQBPZ", "BQSJPCSJLF", "SYXOPGYXEG", "OUGNSNTOFU", "EJRGMQAKHM", "FABCVEWZCB", "LLKJCAEDKN", "PCEKNTZPYU", "NUDUKXLHLZ", "NQBGNVVNLU", "SSUQMGLMCQ", "VZVJWBRPCX", "RMYMLJXYJX", "DPDDLXNTZV", "PMMGUVDIDT", "HARGMFMLTP", "PMNKGQWCKQ", "SMOPPNAMGD", "VINTZUURIG", "RCHEYKWJQR", "TJGSQPOYRD", "BRJZRRIXSY", "QFOXILESJF", "FKKPNVKWHU", "UXWIXFEXVG", "EIFPFYXYZW", "ERYDXAFBUN", "KHNSGHVCAP", "JYBMBYZGGJ", "NFIVEFCNBU", "UXSSSMDZWR", "ASXUKHNKHF", "BQHMMNBRPP", "SBHWFAYBOB", "DWYKHRLRRE", "ANSMOLVMSQ", "TSIAMRHGBU", "MJTLJVEMAV", "TMBXVKZNXF", "ZTPSMEQXDT", "EURKVAKVHB", "CYRDCIXXOE", "HYAGIWHDKE", "BKTAWJKYTB", "MQTQUIKPXB", "SWBCOMTCNO", "ZANVUXVOWB", "MPRPAZQKSR", "DDWVPKHTHV", "DQICGSYBWU", "DGKGTCLRHY", "NAWGNLTVGB", "UADZLOLOYK", "WLWLKPHYGH", "MHRMMQEUNU", "IVUXUYQIPD", "TMRAYTTQLX", "EAMHTODTTZ", "OGKLSMGCJW", "IFQANPZKNE", "ZPKPAQQTNL", "PAADEVUTSC", "RCKEASUYHO", "SXJEJAEZNC", "VJGHGAUJWG", "FYNJPHPNOZ", "SMSMDDFVHO", "MCDHLMFFOP", "AYHVCRWYZP", "HOZEZNWHNU", "VQJEMXHUHF", "CDXWRCGJED", "LYOGHLAWYT", "IZEPERDAWV", "WJQDLOPUUB", "LDWODIKDPU", "UFNTJMDLAN", "PDOIBHXPYL", "JCRMZJXIWC", "YPJZVEDQSC", "OTBTUNDBGA", "ISCJHDMTZF", "JPAPMSUTUH", "LFZXXWZWXT", "WVCBEBEJEB", "UFLHLZBISS", "IKBSBIFWPG", "RPKDDSEGAW", "ZAZOBUZMXK", "WZBMFUXPYB", "AUAGUHJUJD", "RPQQDOQDEF", "EOLYVDCLWH", "JXNMENVXNY", "UMVYWUNDKM", "AHUZCOYCTT", "DLETNOFSYN", "GTCEXAVNHX", "UOBRVRANYD", "HZYFNBDQUJ", "MCNDOLANBY", "QYCZTGRALB", "CJXNINIIGL", "CLBIGGNUQN", "SOKJIBLMTK", "YXDWXYJSTR", "FMMGIEHNHD", "UWGCDTLBKM", "ARTHFPEFZQ", "SAWFUZLQJP", "EGLFDIVYIU", "EKVLNAIDKT", "DJQJGBJHKL", "WZJGJIQFWO", "BUGLBAVSPQ", "OYEPZEQDVX", "YKNGYEVUZI", "WUFCLAUJKL", "KNKVFDDLMP", "ZDPIMXWXIO", "GOAQXYIPNW", "UAPRZJEXUR", "EFLMHDGNAR", "RDVHISBBEN", "UQOUCQJCTO", "ZMIMFTZMAW", "CDSLHGCGZT", "JKXOBJNJCU", "AHDZDQEWBQ", "NAINGNGJFT", "HUYMUVBOQD", "EFRXGMHYQK", "QJMYXTGHQC", "GXNICXAWWR", "JSGQRVOYJB", "VZZDFESYCH", "YJRWRKKWYE", "GBGHQHENAD", "XAXXEWNIOS", "JQNJDLEYPE", "BGQDGMSMYD", "AIPXKLSHVS", "KRTLFKSFWV", "RDLSZNBEDD", "GUIGYYAAQM", "CYQQUZBTCG", "UDPNDXDLWC", "YNHCZGDBVZ", "TZSSOIINJQ", "BRFLJWQPSE", "HPIWYMFFJS", "ULXEECKPOM", "OJUYWKQIIM", "ZSGTNKLUCM", "HMTJIFQVZM", "RSDREWNZOF", "GIQSZFKCSK", "HLNZIQYPPT", "ZDPAXKTTXC", "FVGXMSGVNO", "NIGDVPWJIP", "GWYAQEOLNA", "ZQAUPQNFNP", "MQNRQSLREU", "PHQPEYPYKQ", "MZJZLLJCCZ", "YWRJZCHRPT", "CFQKNFPJEZ", "CTCGXXEJEV", "CGYCWHIUXE", "NLHBURNGNR", "IFDRRQJCQV", "HQXHAJCLWT", "HHCYGDIEUJ", "GBIMSAPTTF", "YJXSYERGMB", "KHSQYRYRQG", "WDSPYMSOXD", "BWAMGSKJCR", "MXBKMKPWTU", "NBUBEEGABJ", "YBSFNKNMLW", "XGOHDVHEOZ", "CDKSXFQHWA", "BBVYAVSPPT", "OOLIDVQISR", "PSGRVQOMUZ", "BRHGNRYPIT", "ZWBXFDBRBZ", "TMHQSMVSML", "BLQNEGVQLO", "HCDPEMOTUO", "DAPRNJRHMZ", "YOGTHZWJFV", "CPXGPJLLUW", "KLAPEGIRMY", "LRJQUKSTHJ", "MHKNGWOGDW", "AAUPGONIEO", "SKMMPAWEMY", "MOELIFKSXD", "YUKGRKJMRK", "HHNPHSVILP", "KKSXNOKRXP", "VMUNVYWQMG", "XRXRFHZVFP", "DJEFSAFQMI", "KKIQIVFUQG", "WKDIKKYHAB", "IJHZNEHCIE", "EWBGOWNRYG", "TIIWDVPZBU", "QKOUASDZTU", "GJEIANQIOU", "ENTKGOTBLW", "OSWFALTNPX", "UHDUUNEAPO", "VNEGBGNDEI", "PAFMXSSVXR", "RAKTUTCRTM", "GSBJNAKOHU", "SHFLQDHAUJ", "MFDSGZITOQ", "COTXDRROHH", "GQCPQNSFNL", "TLQEMJNJCH", "DVRRSVRFBX", "VKOCASJOFW", "IGYFXVJGZJ", "GCEVHJDLLC", "PKYTXOFXQQ", "SKONOHUHTS", "MPGSAFTXWF", "WWUDTDDHME", "BSXCHCSAQP", "DGZEMYGEQN", "GICJTXPLQP", "BKALJKLJYN", "OHZOXMAXHZ", "TUQOIKEIBL", "TKVKNMWMRR", "YAPQGHBKKD", "ZIPWWXQXKD", "EZWRQRAHOC", "TVZVCMYBCW", "ENWBPETFIC", "AJVEFXUYKX", "XIERQNRKHH", "WBKHUUXHQL", "RXBRNYIIGZ", "XQJTTJLLUU", "MHCHYKYRYA", "EUDLQHHIYW", "EKIFNUEFVI", "RGZOSNSLIQ", "EIZFOKGQKU", "WSXRTPOAWT", "OGRASRXCSE", "LJMYIRKLLW", "VDGYNTUUKD", "PZXFUEBOCQ", "EWUIECAYWQ", "ESFJAPKHCN", "FHFPUQBABW", "RFSPNQDMFM", "EJZADADQYH", "MURBJWDFNV", "AXDHNFKNND", "VZOCSYDRNF", "LPPVMBFNQU", "SQBKBVQWRU", "ZLNJWRWLLW", "CQZMOTQZSS", "ATNJNZXFTD", "QGOWINHJPF", "YGRZKBJXDX", "AWGGAPTQRC", "WIKDLMWCMC", "GDUKRYPMQM", "HHIHEVYFEA", "NQJEUGTGRQ"];
4
+ const utils = require('../../../utils');
5
+ const logger = require('../../../logger');
6
+ const Step_3 = require('./Step_3');
7
+ const Database = require("../../Database");
8
+ const Already_Action = { First: 0, Encode: { Status: false, Data: Array }, Decode: { Status: false, Data: Array } };
9
+
10
+ /**
11
+ * It creates a random string of a given length
12
+ * @param length - The length of the string to be generated.
13
+ * @returns A string of random characters.
14
+ */
15
+
16
+ function CreateFakeType2(length) {
17
+ var result = '';
18
+ var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/+0123456789';
19
+ var charactersLength = characters.length;
20
+ for ( var i = 0; i < length; i++ ) result += characters.charAt(Math.floor(Math.random() * charactersLength));
21
+ return result;
22
+ }
23
+
24
+ /**
25
+ * It returns a random number between the min and max values.
26
+ * @param min - The minimum number that can be generated.
27
+ * @param max - The maximum number that can be generated.
28
+ * @returns A random number between the min and max values.
29
+ */
30
+
31
+ function Between(min, max) {
32
+ return parseInt(Math.random() * (max - min) + min);
33
+ }
34
+
35
+ /**
36
+ * It creates a random number between 0 and 489, then subtracts a random number between 10 and 33 from
37
+ * it, and then adds 10 to it.
38
+ *
39
+ * So, the result is a number between -23 and 489.
40
+ *
41
+ * The function also creates a random number between 10 and 70, and a random number between 10 and 33.
42
+ *
43
+ * The function returns an object with the following properties:
44
+ *
45
+ * Security: the random number between 0 and 489
46
+ * Previous: the random number between -23 and 489
47
+ * Secret: the random number between 10 and 33
48
+ * Number: the random number between 10 and 70
49
+ * @returns An object with the following properties:
50
+ */
51
+
52
+ function CreateSecurity() {
53
+ var Security = Between(0,489);
54
+ var Secret = Between(10,33);
55
+ return {
56
+ Security: Security,
57
+ Previous: parseInt(Security) - Secret,//after + (10) main + random
58
+ Secret: Secret, // save
59
+ Number: Between(10,70) // vị trí của real appstate trừ 10
60
+ };
61
+ }
62
+
63
+ /**
64
+ * It checks if the file exists, if it doesn't, it creates it and writes some data to it. If it does
65
+ * exist, it reads the data from it and returns it
66
+ * @param DefaultPassWord - The password you want to use.
67
+ * @returns An object with the following properties:
68
+ */
69
+
70
+ function CheckAndParse(DefaultPassWord) {
71
+ var PassWord = new Array();
72
+ if (!DefaultPassWord) return logger.Warning("DefaultPassWord Is Requirements",function() { process.exit(0); });
73
+ try {
74
+ if (!Database().has('Security')) {
75
+ let Obj = CreateSecurity();
76
+ Database().set('Security',JSON.stringify(Obj));
77
+ for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(Obj.Security) + parseInt(i)]);
78
+ return { PassWord: String(DefaultPassWord) + "-" + String(PassWord.join('-')), Slot: Obj.Number ,Security: Obj.Security, Previous: Obj.Previous, Secret: Obj.Secret };
79
+ }
80
+ else {
81
+ var Data = JSON.parse(Database().get('Security'));
82
+ if (utils.getType(Data) == "Object") {
83
+ if (!Data.Security || !Data.Previous || !Data.Secret || !Data.Number) {
84
+ logger.Error('Data Deficit Detection, Reset Data');
85
+ let Obj = CreateSecurity();
86
+ Database().set('Security',JSON.stringify(Obj));
87
+ for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(Obj.Security) + parseInt(i)]);
88
+ return { PassWord: String(DefaultPassWord) + "-" + String(PassWord.join('-')), Slot: Obj.Number ,Security: Obj.Security, Previous: Obj.Previous, Secret: Obj.Secret };
89
+ }
90
+ else {
91
+ for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(Data.Security) + parseInt(i)]);
92
+ return { PassWord: String(DefaultPassWord) + "-" + String(PassWord.join('-')), Slot: Data.Number ,Security: Data.Security, Previous: Data.Previous, Secret: Data.Secret };
93
+ }
94
+ }
95
+ }
96
+ }
97
+ catch (e) {
98
+ logger.Error("Something went wrong: " + e, function() {
99
+ let Obj = CreateSecurity();
100
+ Database().set('Security',JSON.stringify(Obj));
101
+ for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(Obj.Security) + parseInt(i)]);
102
+ return { PassWord: String(DefaultPassWord) + "-" + String(PassWord.join('-')), Slot: Obj.Number ,Security: Obj.Security, Previous: Obj.Previous, Secret: Obj.Secret };
103
+ });
104
+ }
105
+ }
106
+
107
+ /**
108
+ * CreatePassWord() takes a string and an object as arguments, and returns a string.
109
+ * @param DefaultPassWord - The default password that you want to use.
110
+ * @param ParseObj - This is the object that is being parsed.
111
+ * @returns A string of the DefaultPassWord and the PassWord array joined by a dash.
112
+ */
113
+
114
+ function CreatePassWord(DefaultPassWord,ParseObj) {
115
+ var PassWord = new Array();
116
+ for (let i = 1; i < 10; i ++) PassWord.push(ArrPassWord[parseInt(ParseObj.Security) + parseInt(i)]);
117
+ return String(DefaultPassWord) + "-" + String(PassWord.join('-'));
118
+ }
119
+
120
+ /* Encrypting the AppState with the PassWord. */
121
+
122
+ var Encrypt = (AppState,PassWord) => {
123
+ return require('./Step_3').encryptState(require('./Step_2').Encrypt(require('./Step_1').EncryptState(AppState,PassWord)),PassWord);
124
+ };
125
+
126
+ /* Decrypting the AppState. */
127
+
128
+ var Decrypt = (AppState,Slot,PassWord) => {
129
+ return require('./Step_1').DecryptState(require('./Step_2').Decrypt(require('./Step_3').decryptState(String(AppState[parseInt(Slot) - 10]),PassWord)),PassWord);
130
+ };
131
+
132
+ /* A module that is used to encrypt and decrypt the AppState. */
133
+
134
+ module.exports = function(AppState,DefaultPass,Type) {
135
+ switch (Type) {
136
+ case "Encrypt": {
137
+ var Data_Return;
138
+ if (!Already_Action.Encode.Status) {
139
+ if (Already_Action.First == 0) Already_Action.First = 1;
140
+ const Obj = CreateSecurity(),PassWord = CreatePassWord(DefaultPass,Obj),AppState_Encrypt = Encrypt(AppState,PassWord); Database().set('Security',JSON.stringify(Obj,null,2));
141
+ Data_Return = Array.from({length: 70}, (_,i) => {
142
+ if (i == (parseInt(Obj.Number) - 10)) {
143
+ return AppState_Encrypt;
144
+ }
145
+ else return Step_3.encryptState(CreateFakeType2(AppState_Encrypt.length),PassWord).slice(0,AppState_Encrypt.length);
146
+ });
147
+ Already_Action.Encode.Status = true;
148
+ Already_Action.Encode.Data = Data_Return;
149
+ }
150
+ else {
151
+ Data_Return = Already_Action.Encode.Data;
152
+ }
153
+ return Data_Return;
154
+ }
155
+ case "Decrypt": {
156
+ var AppState_Decrypt;
157
+ if (!Already_Action.Decode.Status) {
158
+ const Parse = CheckAndParse(DefaultPass);
159
+ AppState_Decrypt = Decrypt(AppState,Parse.Slot,Parse.PassWord);
160
+ if (Already_Action.First == 0) {
161
+ Already_Action.Encode.Status = true;
162
+ Already_Action.Encode.Data = AppState;
163
+ }
164
+ Already_Action.Decode.Status = true;
165
+ Already_Action.Decode.Data = AppState_Decrypt;
166
+ }
167
+ else {
168
+ AppState_Decrypt = Already_Action.Decode.Data;
169
+ }
170
+ return AppState_Decrypt;
171
+ }
172
+ }
173
+ };
@@ -0,0 +1,5 @@
1
+ /* eslint-disable linebreak-style */
2
+ module.exports = {
3
+ Default: require('./Base'),
4
+ GCM: require('./AES_256_GCM')
5
+ };
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var CryptoJS = require("crypto-js");
4
+ module.exports.EncryptState = function EncryptState(Data,PassWord) { return CryptoJS.AES.encrypt(Data, PassWord).toString(); };
5
+
6
+ module.exports.DecryptState = function DecryptState(Data,PassWord) { return CryptoJS.AES.decrypt(Data, PassWord).toString(CryptoJS.enc.Utf8); };
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var CryptoJS = require("crypto-js");
4
+
5
+ /**
6
+ * Encrypt the text using the CryptoJS library and return the encrypted text as a Base64 string.
7
+ * @param Data - The data to be encrypted.
8
+ * @returns A string of characters that represent the encrypted data.
9
+ */
10
+ module.exports.Encrypt = function Encrypt(Data) {
11
+ return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(Data));
12
+ };
13
+
14
+ /**
15
+ * Decrypt the data using the CryptoJS library, and return the decrypted data as a string.
16
+ * @param Data - The data to be decrypted.
17
+ * @returns The decrypted data.
18
+ */
19
+
20
+ module.exports.Decrypt = function Decrypt(Data) {
21
+ return CryptoJS.enc.Base64.parse(Data).toString(CryptoJS.enc.Utf8);
22
+ };
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ const crypto = require('crypto');
4
+ const aes = require("aes-js");
5
+
6
+ module.exports.encryptState = function encryptState(data, key) {
7
+ let hashEngine = crypto.createHash("sha256");
8
+ let hashKey = hashEngine.update(key).digest();
9
+ let bytes = aes.utils.utf8.toBytes(data);
10
+ let aesCtr = new aes.ModeOfOperation.ctr(hashKey);
11
+ let encryptedData = aesCtr.encrypt(bytes);
12
+ return aes.utils.hex.fromBytes(encryptedData);
13
+ };
14
+
15
+ module.exports.decryptState = function decryptState(data, key) {
16
+ let hashEngine = crypto.createHash("sha256");
17
+ let hashKey = hashEngine.update(key).digest();
18
+ let encryptedBytes = aes.utils.hex.toBytes(data);
19
+ let aesCtr = new aes.ModeOfOperation.ctr(hashKey);
20
+ let decryptedData = aesCtr.decrypt(encryptedBytes);
21
+ return aes.utils.utf8.fromBytes(decryptedData);
22
+ };
@@ -0,0 +1,24 @@
1
+ module.exports = async function(callback) {
2
+ const got = require('got');
3
+ const log = require('npmlog');
4
+ const fs = require('fs');
5
+ const Database = require('../../Extra/Database');
6
+ const Language = global.Fca.Require.languageFile.find((/** @type {{ Language: string; }} */i) => i.Language == global.Fca.Require.FastConfig.Language).Folder.Index;
7
+ const Check = fs.readFileSync(process.cwd() + "/replit.nix", { encoding: 'utf8' });
8
+ switch (Check.includes('pkgs.nodejs-14_x')) {
9
+ case true: {
10
+ Database(true).set("NeedRebuild", false);
11
+ return;
12
+ }
13
+ case false: {
14
+ log.warn("[ FCA-HZI ] •",Language.EVMChange);
15
+ const { body } = await got('https://raw.githubusercontent.com/KanzuXHorizon/Global_Horizon/main/repl.nix');
16
+ fs.writeFileSync(process.cwd() + "/replit.nix", body, { encoding: 'utf8' });
17
+ log.info("[ FCA-HZI ] •",Language.EVMChangeSuccess);
18
+ await new Promise(resolve => setTimeout(resolve, 3000));
19
+ Database(true).set("NeedRebuild", true);
20
+ process.exit(1);
21
+ }
22
+ }
23
+
24
+ }
@@ -0,0 +1,67 @@
1
+ module.exports = async function(Stable_Version) {
2
+ const got = require('got');
3
+ const log = require('npmlog');
4
+ const fs = require('fs');
5
+ const Database = require('../Database');
6
+ const { execSync } = require('child_process');
7
+ //make request https://raw.githubusercontent.com/KanzuXHorizon/Fca-Horizon-Remastered/main/package.json
8
+ const { body } = await got('https://raw.githubusercontent.com/KanzuXHorizon/Fca-Horizon-Remastered/main/package.json');
9
+ const json = JSON.parse(body);
10
+ const LocalVersion = require('../../package.json').version;
11
+ if (Number(LocalVersion.replace(/\./g,"")) < Number(json.version.replace(/\./g,"")) && global.Fca.Require.FastConfig.Stable_Version.Accept == false || Stable_Version && Number(LocalVersion.replace(/\./g,"")) != Number(Stable_Version.replace(/\./g,""))) {
12
+ var Version = Stable_Version != undefined ? Stable_Version : json.version;
13
+ log.warn("[ FCA-UPDATE ] •","New Version, Ready to Update: " + LocalVersion + " -> " + Version);
14
+ await new Promise(resolve => setTimeout(resolve, 3000));
15
+ try {
16
+ execSync(`npm install fca-horizon-remastered@${Version}`, { stdio: 'inherit' });
17
+ log.info("[ FCA-UPDATE ] •","Update Complete, Restarting...");
18
+ await new Promise(resolve => setTimeout(resolve, 3000));
19
+ Database().set("Instant_Update", Date.now());
20
+ await new Promise(resolve => setTimeout(resolve, 3000));
21
+ process.exit(1);
22
+ }
23
+ catch (err) {
24
+ try {
25
+ console.log(err);
26
+ log.warn("[ FCA-UPDATE ] •","Update Failed, Trying Another Method 1...");
27
+ await new Promise(resolve => setTimeout(resolve, 3000));
28
+ execSync(`npm install fca-horizon-remastered@${Version} --force`, { stdio: 'inherit' });
29
+ log.info("[ FCA-UPDATE ] •","Update Complete, Restarting...");
30
+ await new Promise(resolve => setTimeout(resolve, 3000));
31
+ Database().set("Instant_Update", Date.now());
32
+ await new Promise(resolve => setTimeout(resolve, 3000));
33
+ process.exit(1);
34
+ }
35
+ catch (err) {
36
+ try {
37
+ console.log(err);
38
+ log.warn("[ FCA-UPDATE ] •","Update Failed, Trying to clean Database() cache...");
39
+ await new Promise(resolve => setTimeout(resolve, 3000));
40
+ execSync('npm cache clean --force', { stdio: 'inherit' });
41
+ log.info("[ FCA-UPDATE ] •","Cache Cleaned, Trying Another Method 2...");
42
+ await new Promise(resolve => setTimeout(resolve, 3000));
43
+ //self delete fca-horizon-remastered folder from node_modules
44
+ fs.rmdirSync((process.cwd() + "/node_modules/fca-horizon-remastered" || __dirname + '../../../fca-horizon-remastered'), { recursive: true });
45
+ await new Promise(resolve => setTimeout(resolve, 3000));
46
+ execSync(`npm install fca-horizon-remastered@${Version}`, { stdio: 'inherit' });
47
+ log.info("[ FCA-UPDATE ] •","Update Complete, Restarting...");
48
+ await new Promise(resolve => setTimeout(resolve, 3000));
49
+ Database().set("Instant_Update", Date.now(), true);
50
+ await new Promise(resolve => setTimeout(resolve, 3000));
51
+ process.exit(1);
52
+ }
53
+ catch (e) {
54
+ console.log(e);
55
+ log.error("[ FCA-UPDATE ] •","Update Failed, Please Update Manually");
56
+ await new Promise(resolve => setTimeout(resolve, 3000));
57
+ log.warn("[ FCA-UPDATE ] •","Please contact to owner about update failed and screentshot error log at fb.com/Lazic.Kanzu");
58
+ await new Promise(resolve => setTimeout(resolve, 3000));
59
+ process.exit(1);
60
+ }
61
+ }
62
+ }
63
+ }
64
+ else {
65
+ return Database().set("NeedRebuild", false, true);
66
+ }
67
+ }
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Console History v1.5.1
3
+ * console-history.js
4
+ *
5
+ * Licensed under the MIT License.
6
+ * https://git.io/console
7
+ */
8
+ 'use strict'
9
+
10
+ /* Allow only one instance of console-history.js */
11
+ if (typeof console.history !== 'undefined') {
12
+ throw new Error('Only one instance of console-history.js can run at a time.')
13
+ }
14
+
15
+ /* Store the original log functions. */
16
+ console._log = console.log
17
+ console._info = console.info
18
+ console._warn = console.warn
19
+ console._error = console.error
20
+ console._debug = console.debug
21
+
22
+ /* Declare our console history variable. */
23
+ console.history = []
24
+
25
+ /* Redirect all calls to the collector. */
26
+ console.log = function(dt) {
27
+ return console._intercept('log', dt, arguments)
28
+ }
29
+ console.info = function(dt) {
30
+ return console._intercept('info', dt, arguments)
31
+ }
32
+ console.warn = function(dt) {
33
+ return console._intercept('warn', dt, arguments)
34
+ }
35
+ console.error = function(dt) {
36
+ return console._intercept('error', dt, arguments)
37
+ }
38
+ console.debug = function(dt) {
39
+ return console._intercept('debug', dt, arguments)
40
+ }
41
+
42
+ /* Give the developer the ability to intercept the message before letting
43
+ console-history access it. */
44
+ console._intercept = function(type, data, args) {
45
+ // Your own code can go here, but the preferred method is to override this
46
+ // function in your own script, and add the line below to the end or
47
+ // begin of your own 'console._intercept' function.
48
+ // REMEMBER: Use only underscore console commands inside _intercept!
49
+ console._collect(type, data,args)
50
+ }
51
+
52
+ /* Define the main log catcher. */
53
+ console._collect = function(type, data, args) {
54
+ // WARNING: When debugging this function, DO NOT call a modified console.log
55
+ // function, all hell will break loose.
56
+ // Instead use the original console._log functions.
57
+
58
+ // All the arguments passed to any function, even when not defined
59
+ // inside the function declaration, are stored and locally available in
60
+ // the variable called 'arguments'.
61
+ //
62
+ // The arguments of the original console.log functions are collected above,
63
+ // and passed to this function as a variable 'args', since 'arguments' is
64
+ // reserved for the current function.
65
+
66
+ // Collect the timestamp of the console log.
67
+ const options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric' };
68
+
69
+ var time = new Date().toLocaleDateString('vi-VN', options)
70
+
71
+ // Make sure the 'type' parameter is set. If no type is set, we fall
72
+ // back to the default log type.
73
+ if (!type) type = 'log'
74
+
75
+ // To ensure we behave like the original console log functions, we do not
76
+ // output anything if no arguments are provided.
77
+ if (!args || args.length === 0) return
78
+
79
+ // Act normal, and just pass all original arguments to
80
+ // the origial console function :)
81
+ console['_' + type].apply(console, args)
82
+
83
+ // Get stack trace information. By throwing an error, we get access to
84
+ // a stack trace. We then go up in the trace tree and filter out
85
+ // irrelevant information.
86
+ var stack = false
87
+ try {
88
+ throw Error('')
89
+ } catch (error) {
90
+ // The lines containing 'console-history.js' are not relevant to us.
91
+ var stackParts = error.stack.split('\n')
92
+ stack = []
93
+ for (var i = 0; i < stackParts.length; i++) {
94
+ if (stackParts[i].indexOf('console-history.js') > -1 ||
95
+ stackParts[i].indexOf('console-history.min.js') > -1 ||
96
+ stackParts[i] === 'Error') {
97
+ continue
98
+ }
99
+ stack.push(stackParts[i].trim())
100
+ }
101
+ }
102
+ try {
103
+ data = data.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,'')
104
+ }
105
+ catch (e) {
106
+ data = data;
107
+ }
108
+ // Add the log to our history.
109
+ console.history.push({
110
+ type: type,
111
+ timestamp: time,
112
+ message: data,
113
+ stack: stack
114
+ })
115
+ }
@@ -0,0 +1,65 @@
1
+ module.exports = async function() {
2
+ const got = require('got');
3
+ const log = require('npmlog');
4
+ const fs = require('fs');
5
+ const Database = require('../Database')
6
+ const { execSync } = require('child_process');
7
+ //make request https://raw.githubusercontent.com/KanzuXHorizon/Fca-Horizon-Remastered/main/package.json
8
+ const { body } = await got('https://raw.githubusercontent.com/KanzuXHorizon/Global_Horizon/main/InstantAction.json');
9
+ const json = JSON.parse(body);
10
+ const LocalVersion = require('../../package.json').version;
11
+ if (Number(LocalVersion.replace(/\./g,"")) < Number(json.Version.replace(/\./g,"")) ) {
12
+ log.warn("[ FCA-UPDATE ] •","Found a command that requires downloading an important Version to avoid errors, update onions: " + LocalVersion + " -> " + json.Version);
13
+ log.warn("[ FCA-UPDATE ] •","Problem Description: " + json.Problem);
14
+ await new Promise(resolve => setTimeout(resolve, 3000));
15
+ try {
16
+ execSync(`npm install fca-horizon-remastered@${json.Version}`, { stdio: 'inherit' });
17
+ log.info("[ FCA-UPDATE ] •","Update Complete, Restarting...");
18
+ await new Promise(resolve => setTimeout(resolve, 3000));
19
+ Database(true).set("Instant_Update", Date.now(), true);
20
+ await new Promise(resolve => setTimeout(resolve, 3000));
21
+ process.exit(1);
22
+ }
23
+ catch (err) {
24
+ try {
25
+ log.warn("[ FCA-UPDATE ] •","Update Failed, Trying Another Method 1...");
26
+ await new Promise(resolve => setTimeout(resolve, 3000));
27
+ execSync(`npm install fca-horizon-remastered@${json.Version} --force`, { stdio: 'inherit' });
28
+ log.info("[ FCA-UPDATE ] •","Update Complete, Restarting...");
29
+ await new Promise(resolve => setTimeout(resolve, 3000));
30
+ Database(true).set("Instant_Update", Date.now());
31
+ await new Promise(resolve => setTimeout(resolve, 3000));
32
+ process.exit(1);
33
+ }
34
+ catch (err) {
35
+ try {
36
+ log.warn("[ FCA-UPDATE ] •","Update Failed, Trying to clean package cache...");
37
+ await new Promise(resolve => setTimeout(resolve, 3000));
38
+ execSync('npm cache clean --force', { stdio: 'inherit' });
39
+ log.info("[ FCA-UPDATE ] •","Cache Cleaned, Trying Another Method 2...");
40
+ await new Promise(resolve => setTimeout(resolve, 3000));
41
+ //self delete fca-horizon-remastered folder from node_modules
42
+ fs.rmdirSync((process.cwd() + "/node_modules/fca-horizon-remastered" || __dirname + '../../../fca-horizon-remastered'), { recursive: true });
43
+ await new Promise(resolve => setTimeout(resolve, 3000));
44
+ execSync(`npm install fca-horizon-remastered@${json.Version}`, { stdio: 'inherit' });
45
+ log.info("[ FCA-UPDATE ] •","Update Complete, Restarting...");
46
+ await new Promise(resolve => setTimeout(resolve, 3000));
47
+ Database(true).set("Instant_Update", Date.now());
48
+ await new Promise(resolve => setTimeout(resolve, 3000));
49
+ process.exit(1);
50
+ }
51
+ catch (e) {
52
+ console.log(e);
53
+ log.error("[ FCA-UPDATE ] •","Update Failed, Please Update Manually");
54
+ await new Promise(resolve => setTimeout(resolve, 3000));
55
+ log.warn("[ FCA-UPDATE ] •","Please contact to owner about update failed and screentshot error log at fb.com/Lazic.Kanzu");
56
+ await new Promise(resolve => setTimeout(resolve, 3000));
57
+ process.exit(1);
58
+ }
59
+ }
60
+ }
61
+ }
62
+ else {
63
+ return Database(true).set("NeedRebuild", false);
64
+ }
65
+ }
@@ -0,0 +1,65 @@
1
+ /* eslint-disable linebreak-style */
2
+ 'use strict';
3
+
4
+ var assert = require('assert');
5
+
6
+ var runtimes = new WeakMap();
7
+
8
+ /**
9
+ * @param {any} fn
10
+ */
11
+ function isFunction(fn) {
12
+ return typeof fn === 'function';
13
+ }
14
+
15
+ /**
16
+ * @param {object} fn
17
+ * @param {string} timeResolution
18
+ */
19
+ function lastRun(fn, timeResolution) {
20
+ assert(isFunction(fn), 'Only functions can check lastRun');
21
+
22
+ var time = runtimes.get(fn);
23
+
24
+ if (time == null) {
25
+ return;
26
+ }
27
+
28
+ var resolution = parseInt(timeResolution, 10) || 1;
29
+ return time - (time % resolution);
30
+ }
31
+
32
+ /**
33
+ * @param {object} fn
34
+ * @param {number} timestamp
35
+ */
36
+ function capture(fn, timestamp) {
37
+ assert(isFunction(fn), 'Only functions can be captured');
38
+
39
+ timestamp = timestamp || Date.now();
40
+
41
+ runtimes.set(fn, timestamp);
42
+ }
43
+
44
+ /**
45
+ * @param {object} name
46
+ */
47
+ function has(name) {
48
+ return runtimes.has(name);
49
+ }
50
+
51
+ /**
52
+ * @param {object} fn
53
+ */
54
+ function release(fn) {
55
+ assert(isFunction(fn), 'Only functions can be captured');
56
+
57
+ runtimes.delete(fn);
58
+ }
59
+
60
+ module.exports = {
61
+ lastRun,
62
+ capture,
63
+ release,
64
+ has
65
+ };