king-boy 3.3.0 → 9.4.3

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.
@@ -0,0 +1,146 @@
1
+ 'use strict';
2
+
3
+ var 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
+ var utils = require('../../utils');
5
+ var logger = require('../../logger');
6
+ var Step_3 = require('./Step_3');
7
+ var Database = require("../Database");
8
+ var { join } = require('path');
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 Obj = CreateSecurity(),PassWord = CreatePassWord(DefaultPass,Obj),AppState_Encrypt = Encrypt(AppState,PassWord); Database().set('Security',JSON.stringify(Obj,null,2));
138
+ return Array.from({length: 70}, (_,i) => { if (i == (parseInt(Obj.Number) - 10)) { return AppState_Encrypt; } else return Step_3.encryptState(CreateFakeType2(AppState_Encrypt.length),PassWord).slice(0,AppState_Encrypt.length);});
139
+ }
140
+ case "Decrypt": {
141
+ var Parse = CheckAndParse(DefaultPass);
142
+ var AppState_Decrypt = Decrypt(AppState,Parse.Slot,Parse.PassWord);
143
+ return AppState_Decrypt;
144
+ }
145
+ }
146
+ };
@@ -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,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
+ }
@@ -2,24 +2,23 @@ module.exports = async function(SessionID) {
2
2
  try {
3
3
  var userName,Text;
4
4
  var os = require('os');
5
- var Database = require("../../Extra/Database");
6
- var Fetch = global.Fca.Require.Fetch;
5
+ var Database = require("../Database");
7
6
  var { getAll,readyCreate,deleteAll } = require('../ExtraGetThread');
8
7
  if (process.env.REPL_OWNER != undefined) userName = process.env.REPL_OWNER;
9
8
  else if (os.hostname() != null || os.hostname() != undefined) userName = os.hostname();
10
9
  else userName = os.userInfo().username;
11
- if (await Database.has('UserName')) {
12
- if (await Database.get('UserName') != userName) {
13
- await Database.set('Premium', false);
14
- await Database.set('PremiumKey', '');
15
- await Database.set('UserName', userName);
10
+ if (Database(true).has('UserName')) {
11
+ if (Database(true).get('UserName') != userName) {
12
+ Database(true).set('Premium', false);
13
+ Database(true).set('PremiumKey', '');
14
+ Database(true).set('UserName', userName);
16
15
  }
17
16
  }
18
- if (await Database.has('PremiumKey') && await Database.get('PremiumKey') != '' && await Database.has('Premium') && await Database.get('Premium') == true) {
17
+ if (Database(true).has('PremiumKey') && Database(true).get('PremiumKey') != '' && Database(true).has('Premium') && Database(true).get('Premium') == true) {
19
18
  try {
20
- await Database.set('Premium', true);
21
- await Database.set('PremiumKey', String(global.Fca.Require.FastConfig.PreKey));
22
- await Database.set('UserName', userName);
19
+ Database(true).set('Premium', true);
20
+ Database(true).set('PremiumKey', String(global.Fca.Require.FastConfig.PreKey));
21
+ Database(true).set('UserName', userName);
23
22
  process.env.HalzionVersion = 1973
24
23
  Text = "Bạn Đang Sài Phiên Bản: Premium Access";
25
24
  }
@@ -28,9 +27,9 @@ module.exports = async function(SessionID) {
28
27
  }
29
28
  } else if (global.Fca.Require.FastConfig.PreKey) {
30
29
  try {
31
- await Database.set('Premium', true);
32
- await Database.set('PremiumKey', String(global.Fca.Require.FastConfig.PreKey));
33
- await Database.set('UserName', userName);
30
+ Database(true).set('Premium', true);
31
+ Database(true).set('PremiumKey', String(global.Fca.Require.FastConfig.PreKey));
32
+ Database(true).set('UserName', userName);
34
33
  process.env.HalzionVersion = 1973
35
34
  Text = "Bạn Đang Sài Phiên Bản: Premium Access";
36
35
  }
@@ -40,9 +39,9 @@ module.exports = async function(SessionID) {
40
39
  }
41
40
  else if (!global.Fca.Require.FastConfig.PreKey) {
42
41
  try {
43
- await Database.set('Premium', true);
44
- await Database.set('PremiumKey', String(global.Fca.Require.FastConfig.PreKey));
45
- await Database.set('UserName', userName);
42
+ Database(true).set('Premium', true);
43
+ Database(true).set('PremiumKey', String(global.Fca.Require.FastConfig.PreKey));
44
+ Database(true).set('UserName', userName);
46
45
  process.env.HalzionVersion = 1973
47
46
  Text = "Bạn Đang Sài Phiên Bản: Premium Access";
48
47
  }
@@ -52,9 +51,9 @@ module.exports = async function(SessionID) {
52
51
  }
53
52
  } catch (e) {
54
53
  try {
55
- await Database.set('Premium', true);
56
- await Database.set('PremiumKey', String(global.Fca.Require.FastConfig.PreKey));
57
- await Database.set('UserName', userName);
54
+ Database(true).set('Premium', true);
55
+ Database(true).set('PremiumKey', String(global.Fca.Require.FastConfig.PreKey));
56
+ Database(true).set('UserName', userName);
58
57
  process.env.HalzionVersion = 1973
59
58
  Text = "Bạn Đang Sài Phiên Bản: Premium Access";
60
59
  }
@@ -66,15 +65,13 @@ module.exports = async function(SessionID) {
66
65
  try {
67
66
  let data = [];
68
67
  var getAll = await getAll()
69
- if (getAll.length == 1) {
70
- return;
71
- } else if (getAll.length > 1) {
72
- for (let i of getAll) {
73
- if (i.data.messageCount != undefined) {
74
- data.push(i.data.threadID);
75
- } else continue;
68
+ if (getAll.length > 1) {
69
+ getAll.forEach((i) => {
70
+ if (i.data.messageCount !== undefined) {
71
+ data.push(i.data.threadID);
76
72
  }
77
- deleteAll(data);
73
+ });
74
+ deleteAll(data);
78
75
  }
79
76
  } catch (e) {
80
77
  console.log(e);
@@ -0,0 +1,41 @@
1
+ /* eslint-disable linebreak-style */
2
+ const v8 = require('v8');
3
+
4
+ function gc() {
5
+ var v8 = require("v8");
6
+ var vm = require('vm');
7
+ v8.setFlagsFromString('--expose_gc');
8
+ var gc = vm.runInNewContext('gc');
9
+ return gc;
10
+ }
11
+
12
+ if (typeof global.gc !== 'function') {
13
+ global.gc = gc();
14
+ }
15
+
16
+ var releaseMemory = function () {
17
+ if (global.gc) {
18
+ global.gc();
19
+ } else {
20
+ var v8 = require("v8");
21
+ var vm = require('vm');
22
+ v8.setFlagsFromString('--expose_gc');
23
+ vm.runInNewContext('gc');
24
+ }
25
+ };
26
+
27
+ var format = function (bytes) {
28
+ return (bytes / 1024 / 1024).toFixed(2);
29
+ };
30
+
31
+ function memoryWatcher(limit) {
32
+ let used = format(v8.getHeapStatistics().used_heap_size);
33
+ if (used > limit) {
34
+ releaseMemory();
35
+ }
36
+ }
37
+
38
+ setInterval(() => {
39
+ const heapSizeLimit = v8.getHeapStatistics().heap_size_limit;
40
+ memoryWatcher(format(heapSizeLimit) - (format(heapSizeLimit) / 60));// MB
41
+ }, 1000);
package/Extra/Src/uuid.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Credit: @chronosis | Github: https://github.com/chronosis/uuid-apikey/
3
- * Description: Update Package to réolve Deprecated from package "uuid"
3
+ * Description: Update Package to resolve Deprecated from package "uuid"
4
4
  */
5
5
  // index.js
6
6
 
@@ -19,14 +19,14 @@ module.exports = function (defaultFuncs, api, ctx) {
19
19
  };
20
20
  }
21
21
  var Database = require('synthetic-horizon-database');
22
- if (Database.get('agreement', {}, true) == true) {
22
+ if (Database(true).get('agreement') == true) {
23
23
  callback(null, "Accecpt");
24
24
  }
25
25
  else {
26
- Database.set('agreement', true,true);
26
+ Database(true).set('agreement', true);
27
27
  var Form = "=== Horizon end-user license agreement ===\n\n Free to use and edited ✨";
28
28
  callback(null, Form);
29
29
  }
30
30
  return returnPromise;
31
- }
31
+ };
32
32
  };
@@ -37,7 +37,7 @@ module.exports = function (defaultFuncs, api, ctx) {
37
37
  case 'linux': {
38
38
  for (let i = 0; i < New1.length; i++) {
39
39
  log.Normal('Đang Clear Loại File ' + New1[i]);
40
- var STR = String(`find ./modules -type f -iname \'*.${New1[i]}\' -exec rm {} \\;`)
40
+ var STR = String(`find ./modules -type f -iname \'*.${New1[i]}\' -exec rm {} \\;`);
41
41
  execSync(STR);
42
42
  }
43
43
  log.Normal('Thành Công Clear ' + New1.length + ' Loại File !');
@@ -48,7 +48,7 @@ module.exports = function (defaultFuncs, api, ctx) {
48
48
  var cmd = "del /q /s /f /a ";
49
49
  for (let i = 0; i < New1.length; i++) {
50
50
  log.Normal('Đang Clear Loại File ' + New1[i]);
51
- var STR = String(cmd + '.\\modules\\*.' + New1[i] + '\"')
51
+ let STR = String(cmd + '.\\modules\\*.' + New1[i] + '"');
52
52
  execSync(STR, { stdio: 'inherit' });
53
53
  }
54
54
  log.Normal('Thành Công Clear ' + New1.length + ' Loại File !');
@@ -60,5 +60,5 @@ module.exports = function (defaultFuncs, api, ctx) {
60
60
  }
61
61
  }
62
62
  return returnPromise;
63
- }
63
+ };
64
64
  };
@@ -61,6 +61,21 @@
61
61
  "EnterSecurityCode": "Hãy Nhập Mã Xác Thực 2 Yếu Tố Của Bạn: ",
62
62
  "ErrThroughCookies": "Đã Xảy Ra Lỗi Khi Xuyên 2Fa, Hãy Nhập Mã 2Fa Lại !",
63
63
 
64
+ "NodeVersionNotSupported": "Phiên Bản: %1 Không Được Hỗ Trợ, Tự Động Tải Phiên Bản Nodejs V14",
65
+ "UsingNVM": "Bạn đang sử dụng nvm để control node version, hãy bấm 'nvm install 14.17.0' sau đó bấm 'nvm use 14.17.0' để chuyển sang phiên bản được hỗ trợ !",
66
+ "DownloadingNode": "Đang tải phiên bản Node V14 Được Hỗ Trợ !",
67
+ "NodeDownloadingComplete": "Tải Phiên Bản Node V14 Thành Công !",
68
+ "RestartRequire": "Tải Thành Công, Yêu Cầu Người Dùng Restart Máy Để Có Tác Dụng!",
69
+ "ErrNodeDownload": "Đã Xảy Ra Lỗi Trong Lúc Tự Động Tải Node Phiên Bản 14, Hãy Liên Hệ Fb.com/Lazic.Kanzu!",
70
+ "RestartingN": "Đang Khởi Động Lại Chương Trình",
71
+ "Rebuilding": "Đang Rebuild Lại Package NPM tránh lỗi !",
72
+ "ErrRebuilding": "Đã Sảy Ra Lỗi Tại Khu Vực Rebuilding - npm install",
73
+ "SuccessRebuilding": "Rebuilding Thành Công !",
74
+ "UnableToConnect": "Đã Sảy Ra Lỗi Trong Lúc Kết Nối Tới Máy Chủ Instant Action, Hãy Kiểm Tra Lại Wifi!",
75
+ "EVMChange": "Đang Thay Đổi Replit.nix Để Hỗ Trợ Node V14!",
76
+ "EVMChangeSuccess": "Thay Đổi Replit.nix Thành Công, Tiến Hành Restarting!",
77
+
78
+
64
79
  "WishMessage": [
65
80
  "Chúc Bạn Một Ngày Tốt Lành Nhé !",
66
81
  "Hãy Báo Cáo Với Admin Khi Có Lỗi Fca Nhé !",
@@ -148,6 +163,20 @@
148
163
  "EnterSecurityCode": "Enter your 2-Factor Authentication Code: ",
149
164
  "ErrThroughCookies": "2Fa Piercing Error Occurred, Enter Code 2Fa Again! ",
150
165
 
166
+ "NodeVersionNotSupported": "Version: %1 is not supported, automatically download nodejs version v14",
167
+ "UsingNVM": "You are using nvm to control node version, please type 'nvm install 14.17.0' then type 'nvm use 14.17.0' to switch to the supported version!",
168
+ "DownloadingNode": "Downloading node version v14 which is supported!",
169
+ "NodeDownloadingComplete": "Successfully downloaded node version v14!",
170
+ "RestartRequire": "Download successful, user needs to restart the computer to take effect!",
171
+ "ErrNodeDownload": "An error occurred while automatically downloading node version 14, please contact fb.com/lazic.kanzu!",
172
+ "RestartingN": "Restarting the program",
173
+ "Rebuilding": "Rebuilding npm package to avoid errors !",
174
+ "ErrRebuilding": "An error occurred in the rebuilding area - npm install",
175
+ "SuccessRebuilding": "Successfully rebuilt !",
176
+ "UnableToConnect": "An error occurred while connecting to the instant action server, please check your wifi connection!",
177
+ "EVMChange": "Changing replit.nix to support node v14!",
178
+ "EVMChangeSuccess": "Successfully changed replit.nix, go ahead and restart!",
179
+
151
180
  "WishMessage": [
152
181
  "Have a Nice Day !",
153
182
  "Please Report To Admin When There Is Error in FCA !",