├── .github
└── workflows
│ └── codeql.yml
├── .gitignore
├── LICENSE
├── README.md
├── eresbos.js
├── package.json
├── src
├── commands
│ ├── eval.js
│ ├── lidertablosu.js
│ ├── puan.js
│ ├── puansistem.js
│ ├── rank.js
│ ├── reload.js
│ ├── senkron.js
│ ├── stat.js
│ ├── topstat.js
│ ├── yardım.js
│ └── ystat.js
├── configs
│ ├── config.json
│ ├── config.json.example
│ └── settings.json
├── emojis
│ ├── empty.png
│ ├── emptyEnd.png
│ ├── emptyStart.png
│ ├── fill.gif
│ ├── fillEnd.gif
│ └── fillStart.gif
├── events
│ ├── deleteStats.js
│ ├── leaderBoard.js
│ ├── messageCreate.js
│ ├── messageStats.js
│ ├── ready.js
│ └── voiceStats.js
├── handlers
│ ├── commandHandler.js
│ ├── eventHandler.js
│ ├── functionHandler.js
│ └── mongoHandler.js
├── images
│ ├── 1.png
│ ├── 10.png
│ ├── 2.png
│ ├── 3.png
│ ├── 4.png
│ ├── 5.png
│ ├── 6.png
│ ├── 7.png
│ ├── 8.png
│ └── 9.png
└── schemas
│ ├── messageGuild.js
│ ├── messageGuildChannel.js
│ ├── messageUser.js
│ ├── messageUserChannel.js
│ ├── points.js
│ ├── ranks.js
│ ├── voiceGuild.js
│ ├── voiceGuildChannel.js
│ ├── voiceJoinedAt.js
│ ├── voiceUser.js
│ ├── voiceUserChannel.js
│ └── voiceUserParent.js
├── start.bat
└── yarn.lock
/.github/workflows/codeql.yml:
--------------------------------------------------------------------------------
1 | # For most projects, this workflow file will not need changing; you simply need
2 | # to commit it to your repository.
3 | #
4 | # You may wish to alter this file to override the set of languages analyzed,
5 | # or to provide custom queries or build logic.
6 | #
7 | # ******** NOTE ********
8 | # We have attempted to detect the languages in your repository. Please check
9 | # the `language` matrix defined below to confirm you have the correct set of
10 | # supported CodeQL languages.
11 | #
12 | name: "CodeQL"
13 |
14 | on:
15 | push:
16 | branches: [ "main" ]
17 | pull_request:
18 | # The branches below must be a subset of the branches above
19 | branches: [ "main" ]
20 | schedule:
21 | - cron: '28 20 * * 4'
22 |
23 | jobs:
24 | analyze:
25 | name: Analyze
26 | runs-on: ubuntu-latest
27 | permissions:
28 | actions: read
29 | contents: read
30 | security-events: write
31 |
32 | strategy:
33 | fail-fast: false
34 | matrix:
35 | language: [ 'javascript' ]
36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
37 | # Use only 'java' to analyze code written in Java, Kotlin or both
38 | # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
39 | # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
40 |
41 | steps:
42 | - name: Checkout repository
43 | uses: actions/checkout@v3
44 |
45 | # Initializes the CodeQL tools for scanning.
46 | - name: Initialize CodeQL
47 | uses: github/codeql-action/init@v2
48 | with:
49 | languages: ${{ matrix.language }}
50 | # If you wish to specify custom queries, you can do so here or in a config file.
51 | # By default, queries listed here will override any specified in a config file.
52 | # Prefix the list here with "+" to use these queries and those in the config file.
53 |
54 | # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
55 | # queries: security-extended,security-and-quality
56 |
57 |
58 | # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
59 | # If this step fails, then you should remove it and run the build manually (see below)
60 | - name: Autobuild
61 | uses: github/codeql-action/autobuild@v2
62 |
63 | # ℹ️ Command-line programs to run using the OS shell.
64 | # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
65 |
66 | # If the Autobuild fails above, remove it and uncomment the following three lines.
67 | # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
68 |
69 | # - run: |
70 | # echo "Run, Build Application using script"
71 | # ./location_of_script_within_repo/buildscript.sh
72 |
73 | - name: Perform CodeQL Analysis
74 | uses: github/codeql-action/analyze@v2
75 | with:
76 | category: "/language:${{matrix.language}}"
77 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Eresbos
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Discord Advanced Stat Bot
2 |
3 | - [Advanced Stat bot](#discord-advanced-stat-bot)
4 | - [Kurulum](#kurulum)
5 | - [Özellikler](#özellikler)
6 | - [Görseller](#görseller)
7 | - [İletişim](#i̇letişim)
8 |
9 | # Kurulum
10 | * İlk olarak bilgisayarına [Node JS](https://nodejs.org/tr/) indir.
11 | * Daha sonra bir [MongoDB](http://mongodb.com) hesabı oluştur ve connection linki al.
12 | * Bu projeyi zip halinde indir.
13 | * Herhangi bir klasöre zipi çıkart.
14 | * Daha sonra src klasörünün içindeki configs klasörünün içine gir `settings.json` ve `config.json` dosyalarının içindeki bilgileri doldur.
15 | * Sonra klasörün içerisinde bir `powershell` ya da `cmd` penceresi aç.
16 | * ```npm install``` yazarak tüm modülleri kur.
17 | * Kurulum bittikten sonra ```npm start``` yaz ve botu başlat.
18 |
19 | # Not
20 | * `"./src/emojis"` klasörü altında kullanılan ve lazım olacak emojiler verilmiştir. Sunucunuza yükleyip `"./src/configs/config.json.example"` dosyasındaki örneklere göre kullanabilirsiniz.
21 |
22 | # Özellikler
23 | - [x] **İstatistik Sistemi**
24 | - [x] **Rozet Sistemi**
25 | - [x] **Lider Tablosu Sistemi**
26 | - [x] **Puanla Rütbe Atlama Sistemi**
27 | - [x] **Gelişmiş Menü Sistemi**
28 | - [ ] **Görev Sistemi**
29 |
30 | # Görseller:
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | # İletişim
43 | * [Web Sitem](https://eresbos.dev)
44 | * [Discord Sunucum](https://discord.gg/ZS2TKFFadZ)
45 | * [Discord Profilim](https://discord.com/users/350976460313329665)
46 | * Herhangi bir hata bulmanız durumunda ya da yardım isteyeceğiniz zaman buralardan bana ulaşabilirsiniz.
47 |
48 | ### NOT: Botta MIT lisansı bulunmaktadır. Bu botun dosyalarının benden habersiz paylaşılması/satılması durumunda gerekli işlemler yapılacaktır!
49 |
--------------------------------------------------------------------------------
/eresbos.js:
--------------------------------------------------------------------------------
1 | const { Client, Collection, GatewayIntentBits, Partials } = require("discord.js");
2 | const settings = require("./src/configs/settings.json");
3 | const client = (global.client = new Client({
4 | intents: Object.keys(GatewayIntentBits),
5 | partials: Object.keys(Partials),
6 | }));
7 |
8 | client.commands = new Collection();
9 | client.aliases = new Collection();
10 | client.cooldown = new Map();
11 |
12 | require("./src/handlers/commandHandler");
13 | require("./src/handlers/eventHandler");
14 | require("./src/handlers/mongoHandler");
15 | require("./src/handlers/functionHandler")(client);
16 |
17 | client
18 | .login(settings.token)
19 | .then(() => console.log("[BOT] Bot bağlantısı başarıyla kuruldu!"))
20 | .catch(() => console.error("[BOT] Bot bağlantısı kurulurken bir hata oluştu!"));
21 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "advanced-stat-bot",
3 | "version": "2.0",
4 | "description": "",
5 | "main": "eresbos.js",
6 | "scripts": {
7 | "start": "node eresbos.js"
8 | },
9 | "author": "Eresbos",
10 | "license": "MIT",
11 | "repository": {
12 | "url": "https://github.com/ERESB0S/advanced-stat-bot"
13 | },
14 | "bugs": {
15 | "url": "https://discord.gg/eresbos"
16 | },
17 | "devDependencies": {
18 | "eslint": "^7.17.0",
19 | "prettier": "^2.3.0"
20 | },
21 | "dependencies": {
22 | "@discordjs/voice": "^0.14.0",
23 | "discord.js": "^14.13.0",
24 | "moment": "^2.29.4",
25 | "moment-duration-format": "^2.3.2",
26 | "mongoose": "^6.8.1"
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/commands/eval.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | conf: {
3 | aliases: [],
4 | name: "eval",
5 | category: "Owner",
6 | owner: true,
7 | enabled: true
8 | },
9 |
10 | run: async (client, message, args, eresbosEmbed) => {
11 | if (!args[0]) return;
12 | const code = args.join(" ");
13 |
14 | try {
15 | var result = clean(await eval(code));
16 | if (result.includes(client.token)) return message.reply({ content: ":D" });
17 | message.reply({ embeds: [eresbosEmbed.setDescription(`:inbox_tray: **Input**\n\`\`\`\n${code}\n\`\`\`\n:outbox_tray: **Output**\n\`\`\`js\n${result}\n\`\`\`\n**Status**\nSuccess`).setColor(0x43B581) ] });
18 | } catch (err) {
19 | message.reply({ embeds: [eresbosEmbed.setDescription(`:inbox_tray: **Input**\n\`\`\`\n${code}\n\`\`\`\n:outbox_tray: **Output**\n\`\`\`js\n${err}\n\`\`\`\n**Status**\nFailed`).setColor(0xF04747)] });
20 | }
21 | }
22 | };
23 |
24 | function clean(text) {
25 | if (typeof text !== "string") text = require("util").inspect(text, { depth: 0 });
26 | text = text
27 | .replace(/`/g, "`" + String.fromCharCode(8203))
28 | .replace(/@/g, "@" + String.fromCharCode(8203));
29 | return text;
30 | };
31 |
--------------------------------------------------------------------------------
/src/commands/lidertablosu.js:
--------------------------------------------------------------------------------
1 | const { EmbedBuilder } = require("discord.js");
2 |
3 | module.exports = {
4 | conf: {
5 | aliases: ["lt", "lb", "leaderboard"],
6 | name: "lidertablosu",
7 | category: "Owner",
8 | owner: true,
9 | enabled: true
10 | },
11 |
12 | run: async (client, message, args, eresbosEmbed) => {
13 | const channel = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]) || message.channel;
14 | if (channel) await channel.send({ embeds: [new EmbedBuilder().setDescription("Lider tablosu `mesaj` sıralama mesajıdır.")] });
15 | if (channel) await channel.send({ embeds: [new EmbedBuilder().setDescription("Lider tablosu `ses` sıralama mesajıdır.")] });
16 | }
17 | };
18 |
--------------------------------------------------------------------------------
/src/commands/puan.js:
--------------------------------------------------------------------------------
1 | const config = require("../configs/config.json");
2 | const points = require("../schemas/points");
3 | const ranks = require("../schemas/ranks");
4 |
5 | module.exports = {
6 | conf: {
7 | aliases: ["point", "points"],
8 | name: "puan",
9 | help: "puan [ekle-çıkar-gönder] [@Eresbos/ID] [Miktar]",
10 | category: "Yetkili",
11 | enabled: true,
12 | },
13 |
14 | /**
15 | * @param { import("discord.js").Client } client
16 | * @param { import("discord.js").Message } message
17 | * @param { Array } args
18 | * @param { import("discord.js").EmbedBuilder } eresbosEmbed
19 | * @returns
20 | */
21 | run: async (client, message, args, eresbosEmbed) => {
22 | const ranksData = await ranks.findOne({ guildId: message.guild.id });
23 | if (!ranksData.pointSystem) return message.reply({ embeds: [eresbosEmbed.setDescription("Puan sistemi aktif değil!")] }).then((e) => setTimeout(() => e.delete(), 5000) && message.react(config.emojis.red));
24 | if (!args[0]) return message.reply({ content: "Hatalı komut kullanımı! Lütfen yapacağınız işlemi belirtin; `[ekle-çıkar-gönder]`" }).then((e) => setTimeout(() => e.delete(), 7000) && message.react(config.emojis.red));
25 | const member = message.mentions.members.first() || message.guild.members.cache.get(args[1]);
26 | const rankLog = message.guild.channels.cache.get(config.rankLog);
27 | if (args[0] === "ekle" || args[0] === "add") {
28 | if (!message.member.permissions.has("Administrator") && !config.pointStaff.some((e) => message.member.roles.cache.has(e))) return;
29 | if (!member) return message.reply({ content: "Lütfen puan eklemek istediğiniz memberyı belirtin." }).then((e) => setTimeout(() => e.delete(), 7000) && message.react(config.emojis.red));
30 | if (member.user.id === message.author.id) return message.reply({ content: "Üzgünüm dostum fakat kendine puan ekleyemezsin." }).then((e) => setTimeout(() => e.delete(), 7000) && message.react(config.emojis.red));
31 | const puan = Number(args[2]);
32 | if (!puan) return message.reply({ content: "Eklenecek puan miktarını belirtmelisin." }).then((e) => setTimeout(() => e.delete(), 7000) && message.react(config.emojis.red));
33 | if (puan < 1) return message.reply({ content: "Eklenecek puan miktarı 1'den küçük olamaz." }).then((e) => setTimeout(() => e.delete(), 7000) && message.react(config.emojis.red));
34 |
35 | await points.findOneAndUpdate({ guildID: message.guild.id, userID: member.user.id }, { $inc: { points: puan } }, { upsert: true });
36 | const pointData = await points.findOne({ guildID: message.guild.id, userID: member.user.id });
37 | let addedRoles = "";
38 | if (pointData && pointData.ranks.some((e) => pointData.points >= e.points && !member.hasRole(e.rank))) {
39 | const roles = pointData.ranks.filter((e) => pointData.points >= e.points && !member.hasRole(e.rank));
40 | addedRoles = roles;
41 | member.roles.add(roles[roles.length - 1].rank);
42 | if (rankLog) rankLog.send({ embeds: [eresbosEmbed.setDescription(`${member.toString()} kullanıcısına ${message.member.toString()} tarafından \`${puan}\` puan eklendi ve ${roles.filter(e => roles.indexOf(e) === roles.length - 1).map(e => (Array.isArray(e.rank) ? e.rank.listRoles() : `<@&${e.rank}>`)).join("\n")} rolleri verildi!`)] });
43 | }
44 | message.reply({ embeds: [eresbosEmbed.setDescription(`${member.toString()} kullanıcısına \`${puan}\` adet puan eklendi! \n\n${addedRoles.length > 0 ? `Verilen roller: \n${addedRoles.filter(e => addedRoles.indexOf(e) === addedRoles.length - 1).map(e => `<@&${e.rank}>`).join("\n")}` : ""}`)] }).then((e) => setTimeout(() => e.delete(), 10000) && message.react(config.emojis.onay));
45 | } else if (args[0] === "çıkar" || args[0] === "sil" || args[0] === "remove") {
46 | if (!message.member.permissions.has("Administrator") && !config.pointStaff.some((e) => message.member.roles.cache.has(e))) return;
47 | if (!member) return message.reply({ content: "Lütfen puan silmek istediğiniz memberyı belirtin." }).then((e) => setTimeout(() => e.delete(), 7000) && message.react(config.emojis.red));
48 | if (member.user.id === message.author.id) return message.reply({ content: "Üzgünüm dostum fakat kendine puan ekleyemezsin." }).then((e) => setTimeout(() => e.delete(), 7000) && message.react(config.emojis.red));
49 | const puan = Number(args[2]);
50 | if (!puan) return message.reply({ content: "Çıkarmak istediğin puan miktarını belirtmelisin." }).then((e) => setTimeout(() => e.delete(), 7000) && message.react(config.emojis.red));
51 | if (puan < 1) return message.reply({ content: "Çıkarmak istediğin puan miktarı 1'den küçük olamaz." }).then((e) => setTimeout(() => e.delete(), 7000) && message.react(config.emojis.red));
52 | let pointData = await points.findOne({ guildID: message.guild.id, userID: member.user.id });
53 | if (!pointData || pointData && puan > pointData.points) return message.reply({ content: "Çıkarmak istediğiniz sayı, kişinin mevcut puanından büyük olamaz!" }).then((e) => setTimeout(() => e.delete(), 7000) && message.react(config.emojis.red));
54 |
55 | await points.findOneAndUpdate({ guildID: message.guild.id, userID: member.user.id }, { $inc: { points: -puan } }, { upsert: true });
56 | pointData = await points.findOne({ guildID: message.guild.id, userID: member.user.id });
57 | let removedRoles = "";
58 | if (pointData && pointData.ranks.some(e => pointData.points < e.points && member.hasRole(e.rank))) {
59 | const roles = pointData.ranks.filter(e => pointData.points < e.points && member.hasRole(e.rank));
60 | removedRoles = roles;
61 | roles.forEach(e => {
62 | member.roles.remove(e.rank);
63 | });
64 | if (rankLog) rankLog.send({ embeds: [eresbosEmbed.setDescription(`${member.toString()} kullanıcısından ${message.member.toString()} tarafından \`${puan}\` adet puan çıkarıldı ve kişiden <@&${roles.rank}}> rolleri alındı!`)] });
65 | }
66 | message.reply({ embeds: [eresbosEmbed.setDescription(`${member.toString()} kullanıcısından \`${puan}\` adet puan çıkarıldı! \n\n${removedRoles.length > 0 ? `Alınan roller: \n${removedRoles.rank.listRoles()}` : ""}`)] }).then((e) => setTimeout(() => e.delete(), 10000) && message.react(config.emojis.onay));
67 | } else if (args[0] === "gönder" || args[0] === "ver" || args[0] === "yolla") {
68 | if (member.user.id === message.author.id) return message.reply({ content: "Üzgünüm dostum fakat kendi kendine puan gönderemezsin!" });
69 | const puan = Number(args[2]);
70 | if (!puan) return message.reply({ content: "Vermek istediğin puan sayısını belirtmelisin!" }).then((e) => setTimeout(() => e.delete(), 7000) && message.react(config.emojis.red));
71 | if (puan < 1) return message.reply({ content: "Verilecek sayı 1'dan küçük olamaz!" }).them((e) => setTimeout(() => e.delete(), 7000) && message.react(config.emojis.red));
72 | let pointData = await points.findOne({ guildID: message.guild.id, userID: message.author.id });
73 | if (!pointData || pointData && puan > pointData.points) return message.reply({ content: "Göndereceğin puan kendi puanından yüksek olamaz!" }).then((e) => setTimeout(() => e.delete(), 7000) && message.react(config.emojis.red));
74 |
75 | await points.findOneAndUpdate({ guildID: message.guild.id, userID: member.user.id }, { $inc: { points: puan } }, { upsert: true });
76 | await points.findOneAndUpdate({ guildID: message.guild.id, userID: message.author.id }, { $inc: { points: -puan } }, { upsert: true });
77 | pointData = await points.findOne({ guildID: message.guild.id, userID: message.author.id });
78 | if (pointData && pointData.ranks.some(e => pointData.points < e.points && message.member.hasRole(e.rank))) {
79 | const roles = pointData.ranks.filter(e => pointData.points < e.points && message.member.hasRole(e.rank));
80 | roles.forEach(e => {
81 | message.member.roles.remove(e.rank);
82 | });
83 | }
84 | const pointData2 = await points.findOne({ guildID: message.guild.id, userID: member.user.id });
85 | if (pointData2 && pointData.ranks.some(e => pointData2.points >= e.points && !member.hasRole(e.rank))) {
86 | const roles = pointData.ranks.filter(e => pointData2.points >= e.points && !member.hasRole(e.rank));
87 | member.roles.add(roles[roles.length - 1].rank);
88 | }
89 |
90 | message.reply({ embeds: [eresbosEmbed.setDescription(`${member.toString()} kişisine başarıyla \`${puan}\` puan gönderildi!`)] }).then((e) => setTimeout(() => e.delete(), 7000) && message.react(config.emojis.onay));
91 | }
92 | }
93 | };
94 |
--------------------------------------------------------------------------------
/src/commands/puansistem.js:
--------------------------------------------------------------------------------
1 | const config = require("../configs/config.json");
2 | const ranks = require("../schemas/ranks");
3 |
4 | module.exports = {
5 | conf: {
6 | aliases: ["pointsystem"],
7 | name: "puansistem",
8 | help: "puansistem [aç-kapat]",
9 | category: "Yetkili",
10 | enabled: true,
11 | },
12 |
13 | /**
14 | * @param { import("discord.js").Client } client
15 | * @param { import("discord.js").Message } message
16 | * @param { Array } args
17 | * @param { import("discord.js").EmbedBuilder } eresbosEmbed
18 | * @returns
19 | */
20 | run: async (client, message, args, eresbosEmbed) => {
21 | if (!message.member.permissions.has("Administrator") && !config.pointStaff.some((role) => message.member.roles.cache.has(role))) return;
22 | if (!args[0]) return message.reply({ embeds: [eresbosEmbed.setDescription("Lütfen bir argüman belirtin! `aç` veya `kapat`.")] }).then((e) => setTimeout(() => e.delete(), 5000) && message.react(config.emojis.red));
23 | const ranksData = await ranks.findOne({ guildId: message.guild.id });
24 | if (["aç", "open"].includes(args[0])) {
25 | if (ranksData.pointSystem === true) return message.reply({ embeds: [eresbosEmbed.setDescription("Puan sistemi zaten açık!")] }).then((e) => setTimeout(() => e.delete(), 5000) && message.react(config.emojis.red));
26 | message.reply({ embeds: [eresbosEmbed.setDescription("Puan sistemi başarıyla `aktif edildi!`")] }).then((e) => setTimeout(() => e.delete(), 15000) && message.react(config.emojis.onay));
27 | ranksData.pointSystem = true;
28 | await ranksData.save();
29 | } else if (["kapat", "close"].includes(args[0])) {
30 | if (ranksData.pointSystem === false) return message.reply({ embeds: [eresbosEmbed.setDescription("Puan sistemi zaten kapalı!")] }).then((e) => setTimeout(() => e.delete(), 5000) && message.react(config.emojis.red));
31 | message.reply({ embeds: [eresbosEmbed.setDescription("Puan sistemi başarıyla `deaktif edildi!`")] }).then((e) => setTimeout(() => e.delete(), 15000) && message.react(config.emojis.onay));
32 | ranksData.pointSystem = false;
33 | await ranksData.save();
34 | }
35 | }
36 | };
37 |
--------------------------------------------------------------------------------
/src/commands/rank.js:
--------------------------------------------------------------------------------
1 | const config = require("../configs/config.json");
2 | const ranks = require("../schemas/ranks");
3 |
4 | module.exports = {
5 | conf: {
6 | aliases: ["yetki", "rütbe"],
7 | name: "rank",
8 | category: "Owner",
9 | enabled: true,
10 | },
11 |
12 | /**
13 | * @param { import("discord.js").Client } client
14 | * @param { import("discord.js").Message } message
15 | * @param { Array } args
16 | * @param { import("discord.js").EmbedBuilder } eresbosEmbed
17 | */
18 | run: async (client, message, args, eresbosEmbed, prefix) => {
19 | if (!message.member.permissions.has("Administrator")) return;
20 | const ranksData = await ranks.findOne({ guildId: message.guild.id });
21 | if (!ranksData.pointSystem) return message.reply({ embeds: [eresbosEmbed.setDescription("Puan sistemi aktif değil!")] }).then((e) => setTimeout(() => e.delete(), 5000) && message.react(config.emojis.red));
22 | if (!args[0]) return message.reply({ embeds: [eresbosEmbed.setDescription(`Lütfen bir argüman belirtin! \n\`${prefix}rank [ekle-çıkar-liste]\``)] }).then((e) => setTimeout(() => e.delete(), 5000) && message.react(config.emojis.red));
23 | if (["ekle", "add"].includes(args[0])) {
24 | if (!args[1] || isNaN(args[1])) return message.reply({ embeds: [eresbosEmbed.setDescription(`Lütfen bir puan belirtin! \n\`${prefix}rank ekle [puan] [rol] - [yardımcı roller]\``)] }).then((e) => setTimeout(() => e.delete(), 5000) && message.react(config.emojis.red));
25 | if (ranksData.ranks.some((e) => e.points == args[1])) return message.reply({ embeds: [eresbosEmbed.setDescription(`Bu puana sahip bir yetki zaten mevcut!`)] }).then((e) => setTimeout(() => e.delete(), 5000) && message.react(config.emojis.red));
26 | const args2 = args.splice(2).join(" ").split(" - ");
27 | if (!args2) return message.reply({ embeds: [eresbosEmbed.setDescription(`Lütfen bir rol belirtin! \n\`${prefix}rank ekle [puan] [rol] - [yardımcı roller]\``)] }).then((e) => setTimeout(() => e.delete(), 5000) && message.react(config.emojis.red));
28 | const role = args2[0].split(" ").map((e) => e.replace(/<@&/g, "").replace(/>/g, ""));
29 | let hammers;
30 | if (args2[1]) hammers = args2[1].split(" ").map((e) => e.replace(/<@&/g, "").replace(/>/g, ""));
31 | else null;
32 | message.reply({ embeds: [eresbosEmbed.setDescription(`\`${Number(args[1]).toLocaleString()}\` puana ulaşınca verilecek yetki ayarlandı. \n\n**❯ Verilecek Yetki:** \n<@&${role}> ${hammers ? `\n\n**❯ Hammer Rolleri:** \n${hammers.map((e) => `<@&${e}>`).join("\n")}` : ""}`)] }).then((e) => setTimeout(() => e.delete(), 20000) && message.react(config.emojis.onay));
33 | await ranksData.ranks.push({ rank: String(role), hammers: hammers ? hammers : [], points: Number(args[1]) });
34 | await ranksData.save();
35 | } else if (["kaldır", "remove"].includes(args[0])) {
36 | if (!args[1] || isNaN(args[1])) return message.reply({ embeds: [eresbosEmbed.setDescription(`Lütfen bir puan belirtin! \n\`${prefix}rank kaldır [puan]\``)] }).then((e) => setTimeout(() => e.delete(), 5000) && message.react(config.emojis.red));
37 | if (!ranksData.ranks.some((e) => e.points == args[1])) return message.reply({ embeds: [eresbosEmbed.setDescription(`Bu puana sahip bir yetki bulunamadı!`)] }).then((e) => setTimeout(() => e.delete(), 5000) && message.react(config.emojis.red));
38 | message.reply({ embeds: [eresbosEmbed.setDescription(`\`${Number(args[1]).toLocaleString()}\` puana sahip olan yetki kaldırıldı.`)] }).then((e) => setTimeout(() => e.delete(), 20000) && message.react(config.emojis.onay));
39 | await ranksData.ranks.splice(ranksData.ranks.findIndex((e) => e.points == args[1]), 1);
40 | await ranksData.save();
41 | } else if (["liste", "list"].includes(args[0])) {
42 | if (!ranksData.ranks.length) return message.reply({ embeds: [eresbosEmbed.setDescription("Bu sunucuda hiçbir yetki ayarlanmamış!")] }).then((e) => setTimeout(() => e.delete(), 5000) && message.react(config.emojis.red));
43 | message.reply({ embeds: [eresbosEmbed.setDescription(`${ranksData.ranks.length > 0 ? ranksData.ranks.sort((a, b) => a.points - b.points).map((e) => `\`❯\` <@&${e.rank}>${e.hammers.length > 0 ? ` (${e.hammers.map((h) => `<@&${h}>`).join(", ")})` : ""}: \`${Number(e.points).toLocaleString()} puan\``).join("\n") : ""}`)] }).then(message.react(config.emojis.onay));
44 | }
45 | }
46 | };
47 |
--------------------------------------------------------------------------------
/src/commands/reload.js:
--------------------------------------------------------------------------------
1 | const config = require("../configs/config.json");
2 |
3 | module.exports = {
4 | conf: {
5 | aliases: [],
6 | name: "reload",
7 | category: "Owner",
8 | owner: true,
9 | enabled: true
10 | },
11 |
12 | /**
13 | * @param { import("discord.js").Client } client
14 | * @param { import("discord.js").Message } message
15 | * @param { Array } args
16 | * @returns
17 | */
18 | run: async (client, message, args) => {
19 | if (!args[0]) {
20 | await message.reply({ content: "Bot yeniden başlatılıyor!" }).then(() => message.react(config.emojis.onay));
21 | console.log("[BOT] Bot yeniden başlatıldı.");
22 | process.exit(0);
23 | } else {
24 | const command = args[0];
25 | let category = client.commands.get(command);
26 | if (!category) return message.reply({ content: "Geçerli bir kod ismi belirtmelisin!" }).then((e) => message.react(config.emojis.red) && setTimeout(() => e.delete(), 10000));
27 | category = category.conf.category.replace("Yetkili", "yetkili").replace("Genel", "genel");
28 | try {
29 | const msg = await message.reply({ content: `\`${command}\` adlı komut yeniden başlatılıyor!` });
30 | delete require.cache[require.resolve(`./${command}.js`)];
31 | client.commands.delete(command);
32 | client.commands.set(command, require(`./${command}.js`));
33 | console.log(`[COMMAND] ${command} adlı komut yeniden başlatıldı`);
34 | msg.edit({ content: `\`${command}\` adlı komut yeniden başlatıldı!` }).then((e) => message.react(config.emojis.onay) && setTimeout(() => e.delete(), 10000));
35 | } catch (e) {
36 | console.log(e);
37 | return message.reply({ content: `\`${command}\` adlı komut yeniden başlatılamadı!` }).then((e) => setTimeout(() => e.delete(), 10000) && message.react(config.emojis.red));
38 | }
39 | }
40 | }
41 | };
42 |
--------------------------------------------------------------------------------
/src/commands/senkron.js:
--------------------------------------------------------------------------------
1 | const config = require("../configs/config.json");
2 | const points = require("../schemas/points");
3 | const ranks = require("../schemas/ranks");
4 |
5 | module.exports = {
6 | conf: {
7 | aliases: ["senkronize"],
8 | name: "senkron",
9 | help: "senkron [Kullanıcı/Rol] [@Eresbos/@Rol/ID]",
10 | category: "Yetkili",
11 | enabled: true,
12 | },
13 |
14 | /**
15 | * @param { import("discord.js").Client } client
16 | * @param { import("discord.js").Message } message
17 | * @param { Array } args
18 | * @param { import("discord.js").EmbedBuilder } eresbosEmbed
19 | * @returns
20 | */
21 | run: async (client, message, args, eresbosEmbed) => {
22 | const ranksData = await ranks.findOne({ guildId: message.guild.id });
23 | if (!message.member.permissions.has("Administrator")) return;
24 | if (!ranksData.pointSystem) return message.reply({ embeds: [eresbosEmbed.setDescription("Puan sistemi aktif değil!")] }).then((e) => setTimeout(() => e.delete(), 5000) && message.react(config.emojis.red));
25 | if (["member", "kişi", "user", "kullanıcı"].some((e) => args[0] === e)) {
26 | if (!args[1]) return message.reply({ embeds: [eresbosEmbed.setDescription("Üzgünüm dostum fakat geçerli bir kullanıcı belirtmelisin.")] }).then((e) => setTimeout(() => e.delete(), 10000) && message.react(config.emojis.red));
27 | const member = message.mentions.members.first() || message.guild.members.cache.get(args[1]);
28 | if (!member) return message.reply({ embeds: [eresbosEmbed.setDescription("Üzgünüm dostum fakat belirttiğin kullanıcıyı bulamıyorum.")] }).then((e) => setTimeout(() => e.delete(), 10000) && message.react(config.emojis.red));
29 |
30 | if (ranksData.ranks.some((e) => member.hasRole(e.rank))) {
31 | const ranks = ranksData.ranks.filter((e) => member.hasRole(e.rank)).last();
32 | message.reply({ embeds: [eresbosEmbed.setDescription(`${member.toString()} kullanıcısında <@&${ranks.rank}>${ranks.hammers.length > 0 ? ` (${ranks.hammers.map((e) => `<@&${e}>`).join(", ")})` : ""} rolü bulundu ve puanı \`${Number(ranks.points).toLocaleString()}\` olarak değiştirildi.`)] }).then(() => message.react(config.emojis.onay));
33 | await points.findOneAndUpdate({ guildID: message.guild.id, userID: member.user.id }, { $set: { points: ranks.points } }, { upsert: true });
34 | } else return message.reply({ embeds: [eresbosEmbed.setDescription(`${member.toString()} kullanıcısında ayarlı yetkili rolü bulunamadı!`)] }).then((e) => setTimeout(() => e.delete(), 10000) && message.react(config.emojis.red));
35 | } else if (["rol", "role"].some((e) => args[0] === e)) {
36 | if (!args[1]) return message.reply({ embeds: [eresbosEmbed.setDescription("Üzgünüm dostum fakat geçerli bir rol belirtmelisin.")] }).then((e) => setTimeout(() => e.delete(), 10000) && message.react(config.emojis.red));
37 | const rol = message.mentions.roles.first() || message.guild.roles.cache.get(args[1]);
38 | if (!rol) return message.reply({ embeds: [eresbosEmbed.setDescription("Üzgünüm dostum fakat belirttiğin rolü bulamıyorum.")] }).then((e) => setTimeout(() => e.delete(), 10000) && message.react(config.emojis.red));
39 | if (rol.members.length === 0) return message.reply({ embeds: [eresbosEmbed.setDescription("Belirttiğin rolde kullanıcı bulunmadığı için işlem iptal edildi.")] }).then((e) => setTimeout(() => e.delete(), 10000) && message.react(config.emojis.red));
40 |
41 | rol.members.forEach(async (member) => {
42 | if (member.user.bot) return;
43 | if (ranksData.ranks.some((e) => member.hasRole(e.rank))) {
44 | const ranks = ranksData.ranks.filter((e) => member.hasRole(e.rank)).last();
45 | message.channel.send({ embeds: [eresbosEmbed.setDescription(`${member.toString()} kullanıcısında <@&${ranks.rank}>${ranks.hammers.length > 0 ? ` (${ranks.hammers.map((e) => `<@&${e}>`).join(", ")})` : ""} rolü bulundu ve puanı \`${Number(ranks.points).toLocaleString()}\` olarak değiştirildi.`)] }).then(() => message.react(config.emojis.onay));
46 | await points.findOneAndUpdate({ guildID: message.guild.id, userID: member.user.id }, { $set: { points: ranks.points } }, { upsert: true });
47 | } else return message.channel.send({ embeds: [eresbosEmbed.setDescription(`${member.toString()} kullanıcısında ayarlı yetkili rolü bulunamadı!`)] }).then((e) => setTimeout(() => e.delete(), 10000) && message.react(config.emojis.red));
48 | });
49 | } else return message.reply({ embeds: [eresbosEmbed.setDescription("Üzgünüm dostum fakat bir argüman belirtmelisin! `Kullanıcı-Rol`")] }).then((e) => setTimeout(() => e.delete(), 10000) && message.react(config.emojis.red));
50 | }
51 | };
52 |
--------------------------------------------------------------------------------
/src/commands/stat.js:
--------------------------------------------------------------------------------
1 | const { ActionRowBuilder, StringSelectMenuBuilder } = require("discord.js");
2 | const config = require("../configs/config.json");
3 | const messageUser = require("../schemas/messageUser");
4 | const messageUserChannel = require("../schemas/messageUserChannel");
5 | const voiceUser = require("../schemas/voiceUser");
6 | const voiceUserChannel = require("../schemas/voiceUserChannel");
7 | const voiceUserParent = require("../schemas/voiceUserParent");
8 |
9 | module.exports = {
10 | conf: {
11 | aliases: ["me", "stats"],
12 | name: "stat",
13 | help: "stat <@Eresbos/ID>",
14 | category: "Genel",
15 | enabled: true
16 | },
17 |
18 | /**
19 | * @param { import("discord.js").Client } client
20 | * @param { import("discord.js").Message } message
21 | * @param { Array } args
22 | * @param { import("discord.js").EmbedBuilder } eresbosEmbed
23 | * @returns
24 | */
25 | run: async (client, message, args, eresbosEmbed) => {
26 | const kullanıcı = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member;
27 | const messageData = await messageUser.findOne({ guildID: message.guild.id, userID: kullanıcı.id });
28 | const voiceData = await voiceUser.findOne({ guildID: message.guild.id, userID: kullanıcı.id });
29 | const mesajVeriler = await messageUserChannel.find({ guildID: message.guild.id, userID: kullanıcı.id }).sort({ channelData: -1 });
30 | const sesVeriler = await voiceUserChannel.find({ guildID: message.guild.id, userID: kullanıcı.id }).sort({ channelData: -1 });
31 |
32 | const row = new ActionRowBuilder().addComponents(
33 | new StringSelectMenuBuilder()
34 | .setCustomId("statmenu")
35 | .setPlaceholder("İstatistik Menüsü")
36 | .addOptions([
37 | { label: "Kanal İstatistikleri", description: "Toplam kanal istatistiklerini görüntülemek için tıkla.", value: "topChannel", emoji: "1004168367114047629" },
38 | { label: "Toplam İstatistik", description: "Toplam istatistikleri görüntülemek için tıkla.", value: "topStat", emoji: "1004168367114047629" },
39 | { label: "1 Günlük İstatistik", description: "1 günlük istatistikleri görüntülemek için tıkla.", value: "dailyStat", emoji: "1004168367114047629" },
40 | { label: "1 Haftalık İstatistik", description: "1 haftalık istatistikleri görüntülemek için tıkla.", value: "weeklyStat", emoji: "1004168367114047629" },
41 | { label: "Menüyü Kapat", description: "Menüyü kapatmak için tıkla.", value: "statmenuclose", emoji: "969684766716739624" }
42 | ]),
43 | );
44 |
45 | let messageTop;
46 | let voiceTop;
47 | const kanalSayısı = sesVeriler ? sesVeriler.length : 0;
48 | mesajVeriler.length > 0 ? messageTop = mesajVeriler.splice(0, 10).map((e, i) => `\`${i + 1}.\` ${message.guild.channels.cache.get(e.channelID) ? capitalizeIt(message.guild.channels.cache.get(e.channelID).name.replace("#", "").replace("-", " ")) : "Kanal Silinmiş"}: \`${Number(e.channelData).toLocaleString()} mesaj\``).join("\n") : messageTop = "`Veri Bulunamadı!`";
49 | sesVeriler.length > 0 ? voiceTop = sesVeriler.splice(0, 10).map((e, i) => `\`${i + 1}.\` ${message.guild.channels.cache.get(e.channelID) ? message.guild.channels.cache.get(e.channelID).name : "Kanal Silinmiş"}: \`${client.getTime(e.channelData)}\``).join("\n") : voiceTop = "`Veri bulunamadı!`";
50 |
51 | const category = async (parentsArray) => {
52 | const data = await voiceUserParent.find({ guildID: message.guild.id, userID: kullanıcı.id });
53 | const voiceUserParentData = data.filter((e) => parentsArray.includes(e.parentID));
54 | let voiceStat = 0;
55 | for (var i = 0; i <= voiceUserParentData.length; i++) {
56 | voiceStat += voiceUserParentData[i] ? voiceUserParentData[i].parentData : 0;
57 | }
58 | return voiceStat;
59 | };
60 | const channel = async (channelsArray) => {
61 | const data = await voiceUserChannel.find({ guildID: message.guild.id, userID: kullanıcı.id });
62 | const voiceUserChannelData = data.filter((e) => channelsArray.includes(e.channelID));
63 | let voiceStat = 0;
64 | for (var i = 0; i <= voiceUserChannelData.length; i++) {
65 | voiceStat += voiceUserChannelData[i] ? voiceUserChannelData[i].channelData : 0;
66 | }
67 | return voiceStat;
68 | };
69 |
70 | const filteredParents = message.guild.channels.cache.filter((e) =>
71 | e.type === "category" &&
72 | !config.publicParents.includes(e.id) &&
73 | !config.registerParents.includes(e.id) &&
74 | !config.crewParents.includes(e.id) &&
75 | !config.streamParents.includes(e.id) &&
76 | !config.problemParents.includes(e.id) &&
77 | !config.gameParents.includes(e.id) &&
78 | !config.secretParents.includes(e.id) &&
79 | !config.aloneParents.includes(e.id)
80 | );
81 |
82 | let parents = [
83 | { name: "Public Odalar", data: await category(config.publicParents) },
84 | { name: "Kayıt Odaları", data: await category(config.registerParents) },
85 | { name: "Ekip Odaları", data: await category(config.crewParents) },
86 | { name: "Yayın Odaları", data: await category(config.streamParents) },
87 | { name: "Sorun Çözme Odaları", data: await category(config.problemParents) },
88 | { name: "Eğlence Odaları", data: await category(config.gameParents) },
89 | { name: "Secret Odalar", data: await category(config.secretParents) },
90 | { name: "Alone Odalar", data: await category(config.aloneParents) },
91 | { name: "Sleep Room", data: await channel(config.sleepRoom) },
92 | { name: "Diğer", data: await category(filteredParents.map(e => e.id)) },
93 | ];
94 | parents = parents.filter((e) => e.data !== 0).sort((a, b) => b.data - a.data);
95 |
96 | eresbosEmbed.setThumbnail(kullanıcı.user.avatarURL({ dynamic: true })).setDescription(`${kullanıcı.user.toString()} kullanıcısının genel sunucu ses ve mesaj istatistikleri;`);
97 | const mesaj = await message.reply({ components: [row] });
98 | message.react(config.emojis.onay);
99 | const filter = (e) => e.user.id === message.author.id;
100 | const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 });
101 |
102 | collector.on("collect", async (menu) => {
103 | if (menu.customId === "statmenu") {
104 | await menu.deferUpdate();
105 | if (menu.values[0] === "topChannel") {
106 | if (mesaj) mesaj.edit({ embeds: [eresbosEmbed.setFields(
107 | { name: "❯ Kategori Bilgileri:", value: `\`•\` Toplam: \`${voiceData ? client.getTime(voiceData.topStat) : "`Veri bulunamadı!`"}\` \n${parents.length > 0 ? parents.map((e) => `\`•\` ${e.name}: \`${client.getTime(e.data)}\``).join("\n") : ""}` },
108 | { name: `❯ Ses Sıralaması: (Toplam ${kanalSayısı} Kanal)`, value: voiceTop },
109 | { name: `❯ Mesaj Sıralaması: (Toplam: ${messageData ? Number(messageData.topStat).toLocaleString() : 0} Mesaj)`, value: messageTop },
110 | )] });
111 | } else if (menu.values[0] === "topStat") {
112 | if (mesaj) mesaj.edit({ embeds: [eresbosEmbed.setFields(
113 | { name: "❯ Mesaj Bilgileri:", value: `\`•\` Toplam: \`${messageData ? Number(messageData.topStat).toLocaleString() : "`Veri bulunamadı!`"}\``, inline: true },
114 | { name: "❯ Ses Bilgileri:", value: `\`•\` Toplam: \`${voiceData ? client.getTime(voiceData.topStat) : "`Veri bulunamadı!`"}\``, inline: true },
115 | )] });
116 | } else if (menu.values[0] === "dailyStat") {
117 | if (mesaj) mesaj.edit({ embeds: [eresbosEmbed.setFields(
118 | { name: "❯ Mesaj Bilgileri:", value: `\`•\` 1 Günlük: \`${messageData ? Number(messageData.dailyStat).toLocaleString() : "`Veri bulunamadı!`"}\``, inline: true },
119 | { name: "❯ Ses Bilgileri:", value: `\`•\` 1 Günlük: \`${voiceData ? client.getTime(voiceData.dailyStat) : "`Veri bulunamadı!`"}\``, inline: true },
120 | )] });
121 | } else if (menu.values[0] === "weeklyStat") {
122 | if (mesaj) mesaj.edit({ embeds: [eresbosEmbed.setFields(
123 | { name: "❯ Mesaj Bilgileri:", value: `\`•\` 1 Haftalık: \`${messageData ? Number(messageData.weeklyStat).toLocaleString() : "`Veri bulunamadı!`"}\``, inline: true },
124 | { name: "❯ Ses Bilgileri:", value: `\`•\` 1 Haftalık: \`${voiceData ? client.getTime(voiceData.weeklyStat) : "`Veri bulunamadı!`"}\``, inline: true },
125 | )] });
126 | } else if (menu.values[0] === "statmenuclose") {
127 | row.components[0].setDisabled(true);
128 | if (mesaj) mesaj.edit({ embeds: [], components: [row] });
129 | collector.stop();
130 | }
131 | }
132 | });
133 |
134 | collector.on("end", async (_, reason) => {
135 | if (reason === "time") {
136 | row.components[0].setDisabled(true);
137 | if (mesaj) mesaj.edit({ embeds: [], components: [row] });
138 | }
139 | });
140 | }
141 | };
142 |
143 | function capitalizeIt(str) {
144 | if (str && typeof (str) === "string") {
145 | str = str.split(" ");
146 | for (var i = 0, x = str.length; i < x; i++) {
147 | if (str[i]) {
148 | str[i] = str[i][0].toUpperCase() + str[i].substr(1);
149 | }
150 | }
151 | return str.join(" ");
152 | } return str;
153 | };
154 |
--------------------------------------------------------------------------------
/src/commands/topstat.js:
--------------------------------------------------------------------------------
1 | const { ActionRowBuilder, StringSelectMenuBuilder } = require("discord.js");
2 | const config = require("../configs/config.json");
3 | const moment = require("moment");
4 | require("moment-duration-format");
5 | const messageGuild = require("../schemas/messageGuild");
6 | const messageGuildChannel = require("../schemas/messageGuildChannel");
7 | const voiceGuild = require("../schemas/voiceGuild");
8 | const voiceGuildChannel = require("../schemas/voiceGuildChannel");
9 | const messageUser = require("../schemas/messageUser");
10 | const voiceUser = require("../schemas/voiceUser");
11 | const points = require("../schemas/points");
12 | const ranks = require("../schemas/ranks");
13 |
14 | module.exports = {
15 | conf: {
16 | aliases: ["topstats"],
17 | name: "topstat",
18 | help: "topstat <@Rol/ID>",
19 | category: "Genel",
20 | enabled: true
21 | },
22 |
23 | /**
24 | * @param { import("discord.js").Client } client
25 | * @param { import("discord.js").Message } message
26 | * @param { Array } args
27 | * @param { import("discord.js").EmbedBuilder } eresbosEmbed
28 | * @returns
29 | */
30 | run: async (client, message, args, eresbosEmbed, prefix) => {
31 | const messageChannelData = await messageGuildChannel.find({ guildID: message.guild.id }).sort({ channelData: -1 });
32 | const voiceChannelData = await voiceGuildChannel.find({ guildID: message.guild.id }).sort({ channelData: -1 });
33 | const messageUsersData = await messageUser.find({ guildID: message.guild.id }).sort({ topStat: -1 });
34 | const voiceUsersData = await voiceUser.find({ guildID: message.guild.id }).sort({ topStat: -1 });
35 | const messageGuildData = await messageGuild.findOne({ guildID: message.guild.id });
36 | const voiceGuildData = await voiceGuild.findOne({ guildID: message.guild.id });
37 | const pointData = await points.find({ guildID: message.guild.id }).sort({ points: -1 });
38 | const ranksData = await ranks.find({ guildId: message.guild.id });
39 | let pointSum = 0;
40 |
41 | const row = new ActionRowBuilder().addComponents(
42 | new StringSelectMenuBuilder()
43 | .setCustomId("topstatmenu")
44 | .setPlaceholder("Toplam İstatistik Menüsü")
45 | .addOptions(
46 | { label: "Toplam", description: "Toplam istatistikleri görmek için tıklayın.", value: "topstat", emoji: "1004168367114047629" },
47 | { label: "Ses", description: "Ses istatistikleri görmek için tıklayın.", value: "voicestat", emoji: "1004168367114047629" },
48 | { label: "Mesaj", description: "Mesaj istatistikleri görmek için tıklayın.", value: "messagestat", emoji: "1004168367114047629" },
49 | { label: "Puan", description: "Puan istatistikleri görmek için tıklayın.", value: "pointstat", emoji: "1004168367114047629" },
50 | { label: "Menüyü Kapat", description: "Menüyü kapatmak için tıkla.", value: "statmenuclose", emoji: "969684766716739624" }
51 | )
52 | );
53 |
54 | const role = message.mentions.roles.first() || message.guild.roles.cache.get(args[0]);
55 | if (args[0] && !role) return message.reply({ content: "Üzgünüm dostum fakat belirttiğin rolü bulamıyorum. Lütfen geçerli bir rol veya rol id'si belirt." }).then((e) => setTimeout(() => e.delete(), 10000) && message.react(config.emojis.red));
56 | const mesaj = await message.reply({ components: [row] });
57 | message.react(config.emojis.onay);
58 | const filter = (e) => e.user.id === message.author.id;
59 | const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 });
60 |
61 | collector.on("collect", async (menu) => {
62 | if (menu.customId === "topstatmenu") {
63 | await menu.deferUpdate();
64 | if (menu.values[0] === "topstat") {
65 | if (role) {
66 | const voiceData = async (type) => {
67 | let data = await voiceUser.find({ guildID: message.guild.id }).sort({ topStat: -1 });
68 | data = data.filter(e => message.guild.members.cache.has(e.userID) && message.guild.members.cache.get(e.userID).roles.cache.has(role.id));
69 | return data.length > 0 ? data.splice(0, 20).map((e, i) => `\`${i + 1}.\` <@${e.userID}> : \`${client.getTime(e[type])}\``).join("\n") : "`Veri bulunmuyor.`";
70 | };
71 | const messageData = async (type) => {
72 | let data = await messageUser.find({ guildID: message.guild.id }).sort({ topStat: -1 });
73 | data = data.filter(e => message.guild.members.cache.has(e.userID) && message.guild.members.cache.get(e.userID).roles.cache.has(role.id));
74 | return data.length > 0 ? data.splice(0, 20).map((e, i) => `\`${i + 1}.\` <@${e.userID}> : \`${Number(e[type]).toLocaleString()} mesaj\``).join("\n") : "`Veri bulunmuyor.`";
75 | };
76 | const pointData = async () => {
77 | let data = await points.find({ guildID: message.guild.id }).sort({ points: -1 });
78 | data = data.filter(e => message.guild.members.cache.has(e.userID) && message.guild.members.cache.get(e.userID).roles.cache.has(role.id));
79 | return data.length > 0 ? data.splice(0, 20).map((e, i) => `\`${i + 1}.\` <@${e.userID}>: \`${Number(e.points).toLocaleString()} puan\``).join("\n") : "`Veri bulunmuyor.`";
80 | };
81 | if (mesaj) mesaj.edit({ embeds: [eresbosEmbed.setDescription(`${role.toString()} rolüne sahip üyelerin **toplam** istatistik verileri; \n\n**❯ Ses Bilgileri:** \n${await voiceData("topStat")} \n\n**❯ Mesaj Bilgileri:** \n${await messageData("topStat")} \n\n${ranksData.pointSystem && ranksData.ranks.length >= 1 ? `**❯ Puan Bilgileri:** \n${await pointData()}` : ""}`)] });
82 | } else {
83 | const messageChannels = messageChannelData.splice(0, 10).map((e, i) => `\`${i + 1}.\` ${message.guild.channels.cache.get(e.channelID) ? `<#${e.channelID}>` : "Kanal Silinmiş"}: \`${Number(e.channelData).toLocaleString()} mesaj\``).join("\n");
84 | const voiceChannels = voiceChannelData.splice(0, 10).map((e, i) => `\`${i + 1}.\` ${message.guild.channels.cache.get(e.channelID) ? `<#${e.channelID}>` : "Kanal Silinmiş"}: \`${client.getTime(e.channelData)}\``).join("\n");
85 | const messageUsers = messageUsersData.splice(0, 10).map((e, i) => `\`${i + 1}.\` <@${e.userID}>: \`${Number(e.topStat).toLocaleString()} mesaj\``).join("\n");
86 | const voiceUsers = voiceUsersData.splice(0, 10).map((e, i) => `\`${i + 1}.\` <@${e.userID}>: \`${client.getTime(e.topStat)}\``).join("\n");
87 | const pointUsers = pointData.splice(0, 10).map((e, i) => {
88 | pointSum += e.points;
89 | return `\`${i + 1}.\` <@${e.userID}>: \`${Number(e.points).toLocaleString()} puan\``;
90 | }).join("\n");
91 | if (mesaj) mesaj.edit({ embeds: [eresbosEmbed.setDescription(`**${message.guild.name}** adlı sunucunun **toplam** istatistik verileri; \n\n**❯ Ses Bilgileri: (\`Toplam ${moment.duration(voiceGuildData ? voiceGuildData.topStat : 0).format("M [ay], d [gün], H [saat] m [dk], s [sn].")}\`)** \n${voiceUsers.length > 0 ? voiceUsers : "`Veri Bulunmuyor.`"} \n\n**❯ Ses Kanal Bilgileri:** \n${voiceChannels.length > 0 ? voiceChannels : "`Veri Bulunmuyor.`"} \n\n**❯ Mesaj Bilgileri: (\`Toplam ${Number(messageGuildData ? messageGuildData.topStat : 0).toLocaleString()} mesaj\`)** \n${messageUsers.length > 0 ? messageUsers : "`Veri Bulunmuyor.`"} \n\n**❯ Mesaj Kanal Bilgileri:** \n${messageChannels.length > 0 ? messageChannels : "`Veri Bulunmuyor.`"} \n\n${ranksData.pointSystem && ranksData.ranks.length >= 1 ? `**❯ Puan Bilgileri: (\`Toplam ${pointSum.toLocaleString()}\`)** \n${pointUsers.length > 0 ? pointUsers : "`Veri Bulunmuyor.`"}` : ""}`)] });
92 | }
93 | } else if (menu.values[0] === "voicestat") {
94 | if (role) {
95 | const voiceData = async (type) => {
96 | let data = await voiceUser.find({ guildID: message.guild.id }).sort({ topStat: -1 });
97 | data = data.filter((e) => e[type] !== 0 && message.guild.members.cache.has(e.userID) && message.guild.members.cache.get(e.userID).roles.cache.has(role.id));
98 | return data.length > 0 ? data.splice(0, 20).map((e, i) => `\`${i + 1}.\` <@${e.userID}> : \`${client.getTime(e[type])}\``).join("\n") : "`Veri bulunmuyor.`";
99 | };
100 | if (mesaj) mesaj.edit({ embeds: [eresbosEmbed.setDescription(`${role.toString()} rolüne sahip üyelerin **toplam ses** istatistik verileri; \n\n**❯ Toplam Ses Bilgileri:** \n${await voiceData("topStat")} \n\n**❯ Haftalık Ses Bilgileri:** \n${await voiceData("weeklyStat")} \n\n**❯ Günlük Ses Bilgileri:** \n${await voiceData("dailyStat")}`)] });
101 | } else {
102 | const voiceChannels = voiceChannelData.splice(0, 20).map((e, i) => `\`${i + 1}.\` ${message.guild.channels.cache.get(e.channelID) ? `<#${e.channelID}>` : "Kanal Silinmiş"}: \`${client.getTime(e.channelData)}\``).join("\n");
103 | const voiceUsers = voiceUsersData.splice(0, 20).map((e, i) => `\`${i + 1}.\` <@${e.userID}>: \`${client.getTime(e.topStat)}\``).join("\n");
104 | if (mesaj) mesaj.edit({ embeds: [eresbosEmbed.setDescription(`**${message.guild.name}** adlı sunucunun **toplam ses** istatistik verileri; \n\n**❯ Ses Bilgileri: (\`Toplam ${moment.duration(voiceGuildData ? voiceGuildData.topStat : 0).format("M [ay], d [gün], H [saat] m [dk], s [sn].")}\`)** \n${voiceUsers.length > 0 ? voiceUsers : "`Veri Bulunmuyor.`"} \n\n **❯ Ses Kanal Bilgileri:** \n${voiceChannels.length > 0 ? voiceChannels : "`Veri Bulunmuyor.`"}`)] });
105 | }
106 | } else if (menu.values[0] === "messagestat") {
107 | if (role) {
108 | const messageData = async (type) => {
109 | let data = await messageUser.find({ guildID: message.guild.id }).sort({ topStat: -1 });
110 | data = data.filter(e => message.guild.members.cache.has(e.userID) && message.guild.members.cache.get(e.userID).roles.cache.has(role.id));
111 | return data.length > 0 ? data.splice(0, 20).map((e, i) => `\`${i + 1}.\` <@${e.userID}> : \`${Number(e[type]).toLocaleString()} mesaj\``).join("\n") : "`Veri bulunmuyor.`";
112 | };
113 | if (mesaj) mesaj.edit({ embeds: [eresbosEmbed.setDescription(`${role.toString()} rolüne sahip üyelerin **toplam mesaj** istatistik verileri; \n\n**❯ Toplam Mesaj Bilgileri:** \n${await messageData("topStat")} \n\n**❯ Haftalık Mesaj Bilgileri:** \n${await messageData("weeklyStat")} \n\n**❯ Günlük Mesaj Bilgileri:** \n${await messageData("dailyStat")}`)] });
114 | } else {
115 | const messageChannels = messageChannelData.splice(0, 20).map((e, i) => `\`${i + 1}.\` ${message.guild.channels.cache.get(e.channelID) ? `<#${e.channelID}>` : "Kanal Silinmiş"}: \`${Number(e.channelData).toLocaleString()} mesaj\``).join("\n");
116 | const messageUsers = messageUsersData.splice(0, 20).map((e, i) => `\`${i + 1}.\` <@${e.userID}>: \`${Number(e.topStat).toLocaleString()} mesaj\``).join("\n");
117 | if (mesaj) mesaj.edit({ embeds: [eresbosEmbed.setDescription(`**${message.guild.name}** adlı sunucunun **toplam mesaj** istatistik verileri; \n\n**❯ Mesaj Bilgileri: (\`Toplam ${Number(messageGuildData ? messageGuildData.topStat : 0).toLocaleString()} mesaj\`)** \n${messageUsers.length > 0 ? messageUsers : "`Veri Bulunmuyor.`"} \n\n**❯ Mesaj Kanal Bilgileri:** \n${messageChannels.length > 0 ? messageChannels : "`Veri Bulunmuyor.`"}`)] });
118 | }
119 | } else if (menu.values[0] === "pointstat") {
120 | if (!ranksData.pointSystem || ranksData.ranks.length === 0) {
121 | if (mesaj) mesaj.edit({ embeds: [eresbosEmbed.setDescription("Üzgünüm fakat puan sistemi devre dışı olduğu için veya rütbe sistemi ayarlı olmadığı için bu bilgiye ulaşamıyorum.")] });
122 | return;
123 | }
124 | if (role) {
125 | const pointData = async () => {
126 | let data = await points.find({ guildID: message.guild.id }).sort({ points: -1 });
127 | data = data.filter(e => message.guild.members.cache.has(e.userID) && message.guild.members.cache.get(e.userID).roles.cache.has(role.id));
128 | return data.length > 0 ? data.splice(0, 20).map((e, i) => `\`${i + 1}.\` <@${e.userID}>: \`${Number(e.points).toLocaleString()} puan\``).join("\n") : "`Veri bulunmuyor.`";
129 | };
130 | if (mesaj) mesaj.edit({ embeds: [eresbosEmbed.setDescription(`${role.toString()} rolüne sahip üyelerin **toplam puan** istatistik verileri; \n\n**❯ Toplam Puan Bilgileri:** \n${await pointData()}`)] });
131 | } else {
132 | const pointUsers = pointData.splice(0, 20).map((e, i) => {
133 | pointSum += e.points;
134 | return `\`${i + 1}.\` <@${e.userID}>: \`${Number(e.points).toLocaleString()} puan\``;
135 | }).join("\n");
136 | if (mesaj) mesaj.edit({ embeds: [eresbosEmbed.setDescription(`**${message.guild.name}** adlı sunucunun **toplam puan** istatistik verileri; \n\n**❯ Puan Bilgileri: (\`Toplam ${pointSum.toLocaleString()}\`)** \n${pointUsers.length > 0 ? pointUsers : "`Veri Bulunmuyor.`"}`)] });
137 | }
138 | } else if (menu.values[0] === "statmenuclose") {
139 | row.components[0].setDisabled(true);
140 | if (mesaj) mesaj.edit({ embeds: [], components: [row] });
141 | collector.stop();
142 | }
143 | }
144 | });
145 |
146 | collector.on("end", async (_, reason) => {
147 | if (reason === "time") {
148 | row.components[0].setDisabled(true);
149 | if (mesaj) mesaj.edit({ embeds: [], components: [row] });
150 | }
151 | });
152 | }
153 | };
154 |
--------------------------------------------------------------------------------
/src/commands/yardım.js:
--------------------------------------------------------------------------------
1 | const config = require("../configs/config.json");
2 |
3 | module.exports = {
4 | conf: {
5 | aliases: ["help", "y", "h"],
6 | name: "yardım",
7 | enabled: true
8 | },
9 |
10 | /**
11 | * @param { import("discord.js").Client } client
12 | * @param { import("discord.js").Message } message
13 | * @param { Array } args
14 | * @param { import("discord.js").EmbedBuilder } eresbosEmbed
15 | * @param { String } prefix
16 | * @returns
17 | */
18 | run: async (client, message, args, eresbosEmbed, prefix) => {
19 | if (!message.member.permissions.has("Administrator") && !config.staffRoles.some((e) => message.member.roles.cache.has(e))) return;
20 | const yetkili = client.commands.filter((e) => e.conf.help && e.conf.category === "Yetkili").sort((a, b) => b.conf.help - a.conf.help).map((e) => `\`${prefix}${e.conf.help}\``).join("\n");
21 | const genel = client.commands.filter((e) => e.conf.help && e.conf.category === "Genel").sort((a, b) => b.conf.help - a.conf.help).map((e) => `\`${prefix}${e.conf.help}\``).join("\n");
22 |
23 | message.reply({ embeds: [eresbosEmbed.setDescription(`
24 | **Yetkili komutları;**
25 | ${yetkili}
26 |
27 | **Genel komutlar;**
28 | ${genel}
29 | `).setFooter({ text: "[ ] zorunlu | < > isteğe bağlı", iconURL: message.guild.iconURL({ forceStatic: true }) })] }).then(() => message.react(config.emojis.onay));
30 | }
31 | };
32 |
--------------------------------------------------------------------------------
/src/commands/ystat.js:
--------------------------------------------------------------------------------
1 | const config = require("../configs/config.json");
2 | const ms = require("ms");
3 | const voiceUserParent = require("../schemas/voiceUserParent");
4 | const messageUser = require("../schemas/messageUser");
5 | const points = require("../schemas/points");
6 | const ranks = require("../schemas/ranks");
7 |
8 | module.exports = {
9 | conf: {
10 | aliases: ["yme", "ystats"],
11 | name: "ystat",
12 | help: "ystat <@Eresbos/ID>",
13 | category: "Yetkili",
14 | enabled: true
15 | },
16 |
17 | /**
18 | * @param { import("discord.js").Client } client
19 | * @param { import("discord.js").Message } message
20 | * @param { Array } args
21 | * @param { import("discord.js").EmbedBuilder } eresbosEmbed
22 | * @returns
23 | */
24 | run: async (client, message, args, eresbosEmbed) => {
25 | if (!message.member.permissions.has("Administrator") && !config.staffRoles.some((e) => message.member.roles.cache.has(e))) return;
26 | const kullanıcı = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member;
27 | if (!kullanıcı.permissions.has("Administrator") && !config.staffRoles.some((e) => kullanıcı.roles.cache.has(e))) return message.reply("Belirttiğin kullanıcı yetkili değil.").then((e) => setTimeout(() => e.delete(), 10000) && message.react(config.emojis.red));
28 |
29 | const pointData = await points.findOne({ guildID: message.guild.id, userID: kullanıcı.id });
30 | const ranksData = await ranks.findOne({ guildId: message.guild.id });
31 | const pubVeriler = await voiceUserParent.findOne({ guildID: message.guild.id, userID: kullanıcı.id, parentID: config.publicParents });
32 | const messageData = await messageUser.findOne({ guildID: message.guild.id, userID: kullanıcı.id });
33 |
34 | if (parseInt(pubVeriler ? pubVeriler.parentData : 0) < ms(config.targetAmount.vbronze)) {
35 | if ([config.badges.vbronze, config.badges.vsilver, config.badges.vgold, config.badges.vdia, config.badges.vemerl].some((e) => kullanıcı.roles.cache.get(e))) kullanıcı.roles.remove([config.badges.vbronze, config.badges.vsilver, config.badges.vgold, config.badges.vdia, config.badges.vemerl]).catch(() => { });
36 | eresbosEmbed.addFields({ name: "❯ Ses Rozet Durumu:", value: `Üzgünüm dostum fakat bir rozete sahip değilsin. ${message.guild.roles.cache.get(config.badges.vbronze)} rozetini almak için public kanallarda \`${client.getTime(ms(config.targetAmount.vbronze) - (pubVeriler ? pubVeriler.parentData : 0))}\` geçirmen gerekiyor.` });
37 | }
38 | if (parseInt(pubVeriler ? pubVeriler.parentData : 0) > ms(config.targetAmount.vbronze) && parseInt(pubVeriler ? pubVeriler.parentData : 0) < ms(config.targetAmount.vsilver)) {
39 | if (!kullanıcı.roles.cache.has(config.badges.vbronze)) {
40 | await kullanıcı.roles.add(config.badges.vbronze);
41 | kullanıcı.roles.remove([config.badges.vsilver, config.badges.vgold, config.badges.vdia, config.badges.vemerl]);
42 | eresbosEmbed.addFields({ name: "❯ Yeni Ses Rozeti!", value: `Tebrikler dostum! :tada: Public kanallarda \`${client.getTime(ms(config.targetAmount.vbronze))}\` geçirerek **${message.guild.roles.cache.get(config.badges.vbronze)}** rozetini kazandın! Bir sonraki **${message.guild.roles.cache.get(config.badges.vsilver)}** rozetini elde etmek için public kanallarda \`${client.getTime(ms(config.targetAmount.vsilver) - (pubVeriler ? pubVeriler.parentData : 0))}\` geçirmen gerekiyor.` });
43 | } else {
44 | eresbosEmbed.addFields({ name: "❯ Ses Rozet Durumu:", value: `Tebrikler **${message.guild.roles.cache.get(config.badges.vbronze)}** rozetine sahipsin! Bir sonraki **${message.guild.roles.cache.get(config.badges.vsilver)}** rozeti elde etmek için public kanallarda \`${client.getTime(ms(config.targetAmount.vsilver) - (pubVeriler ? pubVeriler.parentData : 0))}\` geçirmen gerekiyor.` });
45 | }
46 | }
47 | if (parseInt(pubVeriler ? pubVeriler.parentData : 0) > ms(config.targetAmount.vsilver) && parseInt(pubVeriler ? pubVeriler.parentData : 0) < ms(config.targetAmount.vgold)) {
48 | if (!kullanıcı.roles.cache.has(config.badges.vsilver)) {
49 | await kullanıcı.roles.add(config.badges.vsilver);
50 | kullanıcı.roles.remove([config.badges.vbronze, config.badges.vgold, config.badges.vdia, config.badges.vemerl]);
51 | eresbosEmbed.addFields({ name: "❯ Yeni Ses Rozeti!", value: `Tebrikler dostum! :tada: Public kanallarda \`${client.getTime(ms(config.targetAmount.vsilver))}\` geçirerek **${message.guild.roles.cache.get(config.badges.vsilver)}** rozetini kazandın! Bir sonraki **${message.guild.roles.cache.get(config.badges.vgold)}** rozetini elde etmek için public kanallarda \`${client.getTime(ms(config.targetAmount.vgold) - (pubVeriler ? pubVeriler.parentData : 0))}\` geçirmen gerekiyor.` });
52 | } else {
53 | eresbosEmbed.addFields({ name: "❯ Ses Rozet Durumu:", value: `Tebrikler **${message.guild.roles.cache.get(config.badges.vsilver)}** rozetine sahipsin! Bir sonraki **${message.guild.roles.cache.get(config.badges.vgold)}** rozeti elde etmek için public kanallarda \`${client.getTime(ms(config.targetAmount.vgold) - (pubVeriler ? pubVeriler.parentData : 0))}\` geçirmen gerekiyor.` });
54 | }
55 | }
56 | if (parseInt(pubVeriler ? pubVeriler.parentData : 0) > ms(config.targetAmount.vgold) && parseInt(pubVeriler ? pubVeriler.parentData : 0) < ms(config.targetAmount.vdia)) {
57 | if (!kullanıcı.roles.cache.has(config.badges.vgold)) {
58 | await kullanıcı.roles.add(config.badges.vgold);
59 | kullanıcı.roles.remove([config.badges.vbronze, config.badges.vsilver, config.badges.vdia, config.badges.vemerl]);
60 | eresbosEmbed.addFields({ name: "❯ Yeni Ses Rozeti!", value: `Tebrikler dostum! :tada: Public kanallarda \`${client.getTime(ms(config.targetAmount.vgold))}\` geçirerek **${message.guild.roles.cache.get(config.badges.vgold)}** rozetini kazandın! Bir sonraki **${message.guild.roles.cache.get(config.badges.vdia)}** rozetini elde etmek için public kanallarda \`${client.getTime(ms(config.targetAmount.vdia) - (pubVeriler ? pubVeriler.parentData : 0))}\` geçirmen gerekiyor.` });
61 | } else {
62 | eresbosEmbed.addFields({ name: "❯ Ses Rozet Durumu:", value: `Tebrikler **${message.guild.roles.cache.get(config.badges.vgold)}** rozetine sahipsin! Bir sonraki **${message.guild.roles.cache.get(config.badges.vdia)}** rozeti elde etmek için public kanallarda \`${client.getTime(ms(config.targetAmount.vdia) - (pubVeriler ? pubVeriler.parentData : 0))}\` geçirmen gerekiyor.` });
63 | }
64 | }
65 | if (parseInt(pubVeriler ? pubVeriler.parentData : 0) > ms(config.targetAmount.vdia) && parseInt(pubVeriler ? pubVeriler.parentData : 0) < ms(config.targetAmount.vemerl)) {
66 | if (!kullanıcı.roles.cache.has(config.badges.vdia)) {
67 | await kullanıcı.roles.add(config.badges.vdia);
68 | kullanıcı.roles.remove([config.badges.vbronze, config.badges.vsilver, config.badges.vgold, config.badges.vemerl]);
69 | eresbosEmbed.addFields({ name: "❯ Yeni Ses Rozeti!", value: `Tebrikler dostum! :tada: Public kanallarda \`${client.getTime(ms(config.targetAmount.vdia))}\` geçirerek **${message.guild.roles.cache.get(config.badges.vdia)}** rozetini kazandın! Bir sonraki **${message.guild.roles.cache.get(config.badges.vemerl)}** rozetini elde etmek için public kanallarda \`${client.getTime(ms(config.targetAmount.vemerl) - (pubVeriler ? pubVeriler.parentData : 0))}\` geçirmen gerekiyor.` });
70 | } else {
71 | eresbosEmbed.addFields({ name: "❯ Ses Rozet Durumu:", value: `Tebrikler **${message.guild.roles.cache.get(config.badges.vdia)}** rozetine sahipsin! Bir sonraki **${message.guild.roles.cache.get(config.badges.vemerl)}** rozeti elde etmek için public kanallarda \`${client.getTime(ms(config.targetAmount.vemerl) - (pubVeriler ? pubVeriler.parentData : 0))}\` geçirmen gerekiyor.` });
72 | }
73 | }
74 | if (parseInt(pubVeriler ? pubVeriler.parentData : 0) > ms(config.targetAmount.vemerl)) {
75 | if (!kullanıcı.roles.cache.has(config.badges.vemerl)) {
76 | await kullanıcı.roles.add(config.badges.vemerl);
77 | kullanıcı.roles.remove([config.badges.vbronze, config.badges.vsilver, config.badges.vgold, config.badges.vdia]);
78 | eresbosEmbed.addFields({ name: "❯ Yeni Ses Rozeti!", value: `Tebrikler dostum! :tada: Public kanallarda \`${client.getTime(ms(config.targetAmount.vemerl))}\` geçirerek **${message.guild.roles.cache.get(config.badges.vemerl)}** rozetini kazandın! Göstermiş olduğun emeklerden dolayı seni tebrik ediyorum! :heart:` });
79 | } else {
80 | eresbosEmbed.addFields({ name: "❯ Ses Rozet Durumu:", value: `Tebrikler dostum **${message.guild.roles.cache.get(config.badges.vemerl)}** rozetine sahipsin! Sen efsane birisin, emeklerin için çok teşekkürler. :heart:` });
81 | }
82 | }
83 | if (parseInt(messageData ? messageData.topStat : 0) < config.targetAmount.cbronze) {
84 | if ([config.badges.cbronze, config.badges.csilver, config.badges.cgold, config.badges.cdia, config.badges.cemerl].some((e) => kullanıcı.roles.cache.get(e))) kullanıcı.roles.remove([config.badges.cbronze, config.badges.csilver, config.badges.cgold, config.badges.cdia, config.badges.cemerl]).catch(() => { });
85 | eresbosEmbed.addFields({ name: "❯ Mesaj Rozet Durumu:", value: `Üzgünüm dostum fakat bir rozete sahip değilsin. ${message.guild.roles.cache.get(config.badges.cbronze)} rozetini almak için sohbet kanallarına \`${config.targetAmount.cbronze - (messageData ? messageData.topStat : 0)}\` mesaj atman gerekiyor.` });
86 | }
87 | if (parseInt(messageData ? messageData.topStat : 0) > config.targetAmount.cbronze && (messageData ? messageData.topStat : 0) < config.targetAmount.csilver) {
88 | if (!kullanıcı.roles.cache.has(config.badges.cbronze)) {
89 | await kullanıcı.roles.add(config.badges.cbronze, "Mesaj Hedef Ödülü | Bronze");
90 | await kullanıcı.roles.remove([config.badges.csilver, config.badges.cgold, config.badges.cdia, config.badges.cemerl]).catch(() => { });
91 | eresbosEmbed.addFields({ name: "❯ Yeni Mesaj Rozeti!", value: `Tebrikler dostum! :tada: Sohbet kanallarına \`${parseInt(config.targetAmount.cbronze).toLocaleString()} mesaj\` atarak **${message.guild.roles.cache.get(config.badges.cbronze)}** rozetini kazandın! Bir sonraki **${message.guild.roles.cache.get(config.badges.csilver)}** rozetini elde etmek için sohbet kanallarına \`${(config.targetAmount.csilver - (messageData ? messageData.topStat : 0)).toLocaleString()}\` mesaj atman gerekiyor.` });
92 | } else {
93 | eresbosEmbed.addFields({ name: "❯ Mesaj Rozet Durumu:", value: `Tebrikler dostum **${message.guild.roles.cache.get(config.badges.cbronze)}** rozetine sahipsin! Bir sonraki **${message.guild.roles.cache.get(config.badges.csilver)}** rozetini elde etmek için sohbet kanallarına \`${(config.targetAmount.csilver - (messageData ? messageData.topStat : 0)).toLocaleString()}\` mesaj atman gerekiyor.` });
94 | }
95 | }
96 | if (parseInt(messageData ? messageData.topStat : 0) > config.targetAmount.csilver && (messageData ? messageData.topStat : 0) < config.targetAmount.cgold) {
97 | if (!kullanıcı.roles.cache.has(config.badges.csilver)) {
98 | await kullanıcı.roles.add(config.badges.csilver, "Mesaj Hedef Ödülü | Silver");
99 | await kullanıcı.roles.remove([config.badges.cbronze, config.badges.cgold, config.badges.cdia, config.badges.cemerl]).catch(() => { });
100 | eresbosEmbed.addFields({ name: "❯ Yeni Mesaj Rozeti!", value: `Tebrikler dostum! :tada: Sohbet kanallarına \`${parseInt(config.targetAmount.csilver).toLocaleString()} mesaj\` atarak **${message.guild.roles.cache.get(config.badges.csilver)}** rozetini kazandın! Bir sonraki **${message.guild.roles.cache.get(config.badges.cgold)}** rozetini elde etmek için sohbet kanallarına \`${(config.targetAmount.cgold - (messageData ? messageData.topStat : 0)).toLocaleString()}\` mesaj atman gerekiyor.` });
101 | } else {
102 | eresbosEmbed.addFields({ name: "❯ Mesaj Rozet Durumu:", value: `Tebrikler dostum **${message.guild.roles.cache.get(config.badges.csilver)}** rozetine sahipsin! Bir sonraki **${message.guild.roles.cache.get(config.badges.cgold)}** rozetini elde etmek için sohbet kanallarına \`${(config.targetAmount.cgold - (messageData ? messageData.topStat : 0)).toLocaleString()}\` mesaj atman gerekiyor.` });
103 | }
104 | }
105 | if (parseInt(messageData ? messageData.topStat : 0) > config.targetAmount.cgold && (messageData ? messageData.topStat : 0) < config.targetAmount.cdia) {
106 | if (!kullanıcı.roles.cache.has(config.badges.cgold)) {
107 | await kullanıcı.roles.add(config.badges.cgold, "Mesaj Hedef Ödülü | Gold");
108 | await kullanıcı.roles.remove([config.badges.cbronze, config.badges.csilver, config.badges.cdia, config.badges.cemerl]).catch(() => { });
109 | eresbosEmbed.addFields({ name: "❯ Yeni Mesaj Rozeti!", value: `Tebrikler dostum! :tada: Sohbet kanallarına \`${parseInt(config.targetAmount.cgold).toLocaleString()} mesaj\` atarak **${message.guild.roles.cache.get(config.badges.cgold)}** rozetini kazandın! Bir sonraki **${message.guild.roles.cache.get(config.badges.cdia)}** rozetini elde etmek için sohbet kanallarına \`${(config.targetAmount.cdia - (messageData ? messageData.topStat : 0)).toLocaleString()}\` mesaj atman gerekiyor.` });
110 | } else {
111 | eresbosEmbed.addFields({ name: "❯ Mesaj Rozet Durumu:", value: `Tebrikler dostum **${message.guild.roles.cache.get(config.badges.cgold)}** rozetine sahipsin! Bir sonraki **${message.guild.roles.cache.get(config.badges.cdia)}** rozetini elde etmek için sohbet kanallarına \`${(config.targetAmount.cdia - (messageData ? messageData.topStat : 0)).toLocaleString()}\` mesaj atman gerekiyor.` });
112 | }
113 | }
114 | if (parseInt(messageData ? messageData.topStat : 0) > config.targetAmount.cdia && (messageData ? messageData.topStat : 0) < config.targetAmount.cemerl) {
115 | if (!kullanıcı.roles.cache.has(config.badges.cdia)) {
116 | await kullanıcı.roles.add(config.badges.cdia, "Mesaj Hedef Ödülü | Diamond");
117 | await kullanıcı.roles.remove([config.badges.cbronze, config.badges.csilver, config.badges.cgold, config.badges.cemerl]).catch(() => { });
118 | eresbosEmbed.addFields({ name: "❯ Yeni Mesaj Rozeti!", value: `Tebrikler dostum! :tada: Sohbet kanallarına \`${parseInt(config.targetAmount.cdia).toLocaleString()} mesaj\` atarak **${message.guild.roles.cache.get(config.badges.cdia)}** rozetini kazandın! Bir sonraki **${message.guild.roles.cache.get(config.badges.cemerl)}** rozetini elde etmek için sohbet kanallarına \`${(config.targetAmount.cemerl - (messageData ? messageData.topStat : 0)).toLocaleString()}\` mesaj atman gerekiyor.` });
119 | } else {
120 | eresbosEmbed.addFields({ name: "❯ Mesaj Rozet Durumu:", value: `Tebrikler dostum **${message.guild.roles.cache.get(config.badges.cdia)}** rozetine sahipsin! Bir sonraki **${message.guild.roles.cache.get(config.badges.cemerl)}** rozetini elde etmek için sohbet kanallarına \`${(config.targetAmount.cemerl - (messageData ? messageData.topStat : 0)).toLocaleString()}\` mesaj atman gerekiyor.` });
121 | }
122 | }
123 | if (parseInt(messageData ? messageData.topStat : 0) > config.targetAmount.cemerl) {
124 | if (!kullanıcı.roles.cache.has(config.badges.cemerl)) {
125 | await kullanıcı.roles.add(config.badges.cemerl, "Mesaj Hedef Ödülü | Emerland");
126 | await kullanıcı.roles.remove([config.badges.cbronze, config.badges.csilver, config.badges.cgold, config.badges.cdia]).catch(() => { });
127 | eresbosEmbed.addFields({ name: "❯ Yeni Mesaj Rozeti!", value: `Tebrikler dostum! :tada: Sohbet kanallarına \`${parseInt(config.targetAmount.cemerl).toLocaleString()} mesaj\` atarak **${message.guild.roles.cache.get(config.badges.cemerl)}** rozetini kazandın! Göstermiş olduğun emeklerden dolayı seni tebrik ediyorum! :heart:` });
128 | } else {
129 | eresbosEmbed.addFields({ name: "❯ Mesaj Rozet Durumu:", value: `Tebrikler dostum **${message.guild.roles.cache.get(config.badges.cemerl)}** rozetine sahipsin! Sen efsane birisin, emeklerin için çok teşekkürler. :heart:` });
130 | }
131 | }
132 |
133 | const maxValue = ranksData.ranks[ranksData.ranks.indexOf(ranksData.ranks.find((e) => e.points > (pointData ? pointData.points : 0)))] || ranksData.ranks.last();
134 | const currentRank = ranksData.ranks.filter((e) => (pointData ? pointData.points : 0) >= e.points).last();
135 |
136 | if (ranksData.pointSystem && kullanıcı.hasRole(config.staffRoles, false) && ranksData.ranks.length > 0) {
137 | eresbosEmbed.addFields(
138 | { name: `❯ Puan Durumu: (${pointData ? pointData.points.toLocaleString() : 0} Puan)`, value: `${parseInt((pointData ? pointData.points : 0) / maxValue.points * 100) <= 100 ? `\`%${parseInt((pointData ? pointData.points : 0) / maxValue.points * 100)}\`` : "`%100`"} ${client.progressBar(pointData ? pointData.points : 0, maxValue.points, 6)} \`${pointData ? pointData.points.toLocaleString() : 0} / ${(maxValue.points).toLocaleString()}\`` },
139 | { name: "❯ Yetki Durumu:", value: currentRank !== ranksData.ranks.last() ? `${currentRank ? `Şu an <@&${currentRank.rank}> yetkisindesiniz.` : ""} <@&${maxValue.rank}> yetkisine ulaşmak için \`${(maxValue.points - (pointData ? pointData.points : 0)).toLocaleString()}\` puan kazanmanız gerekiyor. \n${maxValue.hammers.length > 0 ? `Bir sonraki yetkiye ulaşınca ${maxValue.hammers.map((e) => `<@&${e}>`).join(", ")} ${maxValue.hammers.length === 1 ? "rolünü" : "rollerini"} kazanacaksınız.` : ""}` : "Şu an son yetkidesiniz. Emekleriniz için teşekkür ederiz." },
140 | );
141 | }
142 | message.reply({ embeds: [eresbosEmbed.setDescription(`${kullanıcı.user.toString()} (${kullanıcı.roles.highest}) kullanıcısının yetkili istatistikleri;`).setThumbnail(kullanıcı.user.displayAvatarURL({ dynamic: true }))] }).then(() => message.react(config.emojis.onay));
143 | }
144 | };
145 |
--------------------------------------------------------------------------------
/src/configs/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "botOwners": [],
3 | "prefix": [],
4 | "guildID": "",
5 | "voiceChannel": "",
6 | "activity": "Eresbos ❤️",
7 | "cmds_log": "",
8 | "sunucuAdi": "",
9 | "leaderBoard": "",
10 | "topMessage": "",
11 | "topVoice": "",
12 | "emojis": {
13 | "onay": "✅",
14 | "red": "❌",
15 | "fill": "",
16 | "empty": "",
17 | "emptyStart": "",
18 | "fillStart": "",
19 | "emptyEnd": "",
20 | "fillEnd": ""
21 | },
22 | "badges": {
23 | "vbronze": "",
24 | "vsilver": "",
25 | "vgold": "",
26 | "vdia": "",
27 | "vemerl": "",
28 | "cbronze": "",
29 | "csilver": "",
30 | "cgold": "",
31 | "cdia": "",
32 | "cemerl": "",
33 | "prizeLog": ""
34 | },
35 | "targetAmount": {
36 | "vbronze": "",
37 | "vsilver": "",
38 | "vgold": "",
39 | "vdia": "",
40 | "vemerl": "",
41 | "cbronze": "",
42 | "csilver": "",
43 | "cgold": "",
44 | "cdia": "",
45 | "cemerl": ""
46 | },
47 | "points": {
48 | "messageCount": 1,
49 | "messagePoint": 1,
50 | "voiceCount": 1,
51 | "voicePoint": 1,
52 | "publicCount": 1,
53 | "publicPoint": 1
54 | },
55 | "pointStaff": [],
56 | "rankLog": "",
57 | "staffRoles": [],
58 | "otherRoles": {
59 | "cmuted": [],
60 | "vmuted": [],
61 | "jailed": [],
62 | "fTag": [],
63 | "susp": [],
64 | "underWorld": [],
65 | "unreg": []
66 | },
67 | "publicParents": [],
68 | "registerParents": [],
69 | "crewParents": [],
70 | "streamParents": [],
71 | "problemParents": [],
72 | "gameParents": [],
73 | "secretParents": [],
74 | "aloneParents": [],
75 | "sleepRoom": ""
76 | }
77 |
--------------------------------------------------------------------------------
/src/configs/config.json.example:
--------------------------------------------------------------------------------
1 | {
2 | "botOwners": ["350976460313329665"], // Bot Sahiplerinin ID'leri
3 | "prefix": ["!", ".", "e?"], // Bot Prefixleri
4 | "guildID": "910121710706114600", // Botun aktif olacağı sunucu ID'si
5 | "voiceChannel": "910123472599007252", // Botun gireceği ses kanal ID'si
6 | "activity": "Eresbos ❤️", // Botun durumunda gözükecek yazı
7 | "cmds_log": "910121710706114603", // Komut kullanımlarının gözükeceği log kanal ID'si
8 | "sunucuAdi": "Bot Test", // Lider Tablosunda gözükecek Sunucu Adı
9 | "leaderBoard": "915290872084590632", // Lider Tablosu "KANAL ID'si"
10 | "topMessage": "915296154948870215", // Lider Tablosu "MESAJ İSTATİSTİK" mesajının ID'si
11 | "topVoice": "915296199177822230", // Lider Tablosu "SES İSTATİSTİK" mesajının ID'si
12 | "emojis": {
13 | "onay": "✅", // Onay işlemlerindeki emoji
14 | "red": "❌", // Red işlemlerindeki emoji
15 | "fill": "", // İçi dolu düz çizgi
16 | "empty": "<:empty:964614693035606066>", // İçi boş düz çizgi
17 | "emptyStart": "<:emptyStart:964614693039784017>", // Boş başlangıç çizgisi
18 | "fillStart": "", // Dolu başlangıç çizgisi
19 | "emptyEnd": "<:emptyEnd:964614692888801300>", // Boş bitiş çizgisi
20 | "fillEnd": "", // Dolu bitiş çizgisi
21 | },
22 | "badges": {
23 | "vbronze": "910126457118933002", // "Ses Bronz" rozet rol ID'si
24 | "vsilver": "910126469357907998", // "Ses Gümüş" rozet rol ID'si
25 | "vgold": "910126475582251018", // "Ses Altın" rozet rol ID'si
26 | "vdia": "910126482175701032", // "Ses Elmas" rozet rol ID'si
27 | "vemerl": "910126488605564968", // "Ses Zümrüt" rozet rol ID'si
28 | "cbronze": "914093559446134815", // "Mesaj Bronz" rozet rol ID'si
29 | "csilver": "914093573723525200", // "Mesaj Gümüş" rozet rol ID'si
30 | "cgold": "914093586688126976", // "Mesaj Altın" rozet rol ID'si
31 | "cdia": "914093600890040331", // "Mesaj Elmas" rozet rol ID'si
32 | "cemerl": "914093614760607804", // "Mesaj Zümrüt" rozet rol ID'si
33 | "prizeLog": "910121710706114603" // Rozet kazanma log kanal ID'si
34 | },
35 | "targetAmount": {
36 | "vbronze": "15h", // "Ses Bronz" rozeti hedefidir. Örn: 15h = 15 saat
37 | "vsilver": "31h", // "Ses Gümüş" rozeti hedefidir. Örn: 31h = 31 saat
38 | "vgold": "45h", // "Ses Altın" rozeti hedefidir. Örn: 45h = 45 saat
39 | "vdia": "60h", // "Ses Elmas" rozeti hedefidir. Örn: 60h = 60 saat
40 | "vemerl": "80h", // "Ses Zümrüt" rozeti hedefidir. Örn: 80h = 80 saat
41 | "cbronze": "1000", // "Mesaj Bronz" rozeti hedefidir. Örn: 1000 = 1000 mesaj
42 | "csilver": "1010", // "Mesaj Gümüş" rozeti hedefidir. Örn: 1010 = 1010 mesaj
43 | "cgold": "1020", // "Mesaj Altın" rozeti hedefidir. Örn: 1020 = 1020 mesaj
44 | "cdia": "1030", // "Mesaj Elmas" rozeti hedefidir. Örn: 1030 = 1030 mesaj
45 | "cemerl": "1040" // "Mesaj Zümrüt" rozeti hedefidir. Örn: 1040 = 1040 mesaj
46 | },
47 | "points": {
48 | "messageCount": 1, // Kaç mesaj başına puan eklenecek?
49 | "messagePoint": 0.2, // Belirlenen mesaj hedefine gelince kaç puan eklenecek?
50 | "voiceCount": 1, // Kaç dakika başına puan eklenecek?
51 | "voicePoint": 0.2, // Belirlenen ses hedefine gelince kaç puan eklenecek?
52 | "publicCount": 1, // Publicte kaç dakika başına puan eklenecek?
53 | "publicPoint": 0.5 // Publicte belirlenen ses hedefine gelince kaç puan eklenecek?
54 | },
55 | "pointStaff": [], // İnsanlara puan ekleyip çıkaran ve puan sistemini aktif-deaktif edebilen kişilerdir
56 | "rankLog": "910121710706114603", // Puanla rütbe atlama loglarının atılacağı kanal ID'si
57 | "staffRoles": ["910124173442056253"], // Puanları sayılacak yetkili rol ID'leri
58 | "otherRoles": {
59 | "cmuted": [], // "Chat Muted" rol ID'leri (varsa yaz yoksa boş bırak)
60 | "vmuted": [], // "Voice Muted" rol ID'leri (varsa yaz yoksa boş bırak)
61 | "jailed": [], // "Jail" rol ID'leri (varsa yaz yoksa boş bırak)
62 | "fTag": [], // "Yasaklı Tag" rol ID'leri (varsa yaz yoksa boş bırak)
63 | "susp": [], // "Şüpheli" rol ID'leri (varsa yaz yoksa boş bırak)
64 | "underWorld": [], // "UnderWorld" rol ID'leri (varsa yaz yoksa boş bırak)
65 | "unreg": [] // "Kayıtsız" rol ID'leri (varsa yaz yoksa boş bırak)
66 | },
67 | "publicParents": ["910121710706114602"], // Public ses kanallarının kategori ID'leri (varsa yaz yoksa boş bırak)
68 | "registerParents": ["1025357995154083841"], // Register ses kanallarının kategori ID'leri (varsa yaz yoksa boş bırak)
69 | "crewParents": [], // Ekip ses kanallarının kategori ID'leri (varsa yaz yoksa boş bırak)
70 | "streamParents": [], // Stream ses kanallarının kategori ID'leri (varsa yaz yoksa boş bırak)
71 | "problemParents": [], // Sorun Çözme ses kanallarının kategori ID'leri (varsa yaz yoksa boş bırak)
72 | "gameParents": [], // Oyun ses kanallarının kategori ID'leri (varsa yaz yoksa boş bırak)
73 | "secretParents": [], // Secret ses kanallarının kategori ID'leri (varsa yaz yoksa boş bırak)
74 | "aloneParents": [], // Alone ses kanallarının kategori ID'leri (varsa yaz yoksa boş bırak)
75 | "sleepRoom": "" // Sleep Room (AFK) kanal ID'si (varsa yaz yoksa boş bırak)
76 | }
77 |
--------------------------------------------------------------------------------
/src/configs/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "token": "",
3 | "mongoURL": ""
4 | }
--------------------------------------------------------------------------------
/src/emojis/empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/emojis/empty.png
--------------------------------------------------------------------------------
/src/emojis/emptyEnd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/emojis/emptyEnd.png
--------------------------------------------------------------------------------
/src/emojis/emptyStart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/emojis/emptyStart.png
--------------------------------------------------------------------------------
/src/emojis/fill.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/emojis/fill.gif
--------------------------------------------------------------------------------
/src/emojis/fillEnd.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/emojis/fillEnd.gif
--------------------------------------------------------------------------------
/src/emojis/fillStart.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/emojis/fillStart.gif
--------------------------------------------------------------------------------
/src/events/deleteStats.js:
--------------------------------------------------------------------------------
1 | const client = global.client;
2 | const config = require("../configs/config.json");
3 | const messageUser = require("../schemas/messageUser");
4 | const voiceUser = require("../schemas/voiceUser");
5 | const { CronJob } = require("cron");
6 |
7 | module.exports = () => {
8 | const sunucu = client.guilds.cache.get(config.guildID);
9 |
10 | const daily = new CronJob("0 0 * * *", () => {
11 | sunucu.members.cache.forEach(async (member) => {
12 | await messageUser.updateMany({ guildID: sunucu.id, userID: member.user.id }, { $set: { dailyStat: 0 } });
13 | await voiceUser.updateMany({ guildID: sunucu.id, userID: member.user.id }, { $set: { dailyStat: 0 } });
14 | });
15 | }, null, true, "Europe/Istanbul");
16 | daily.start();
17 |
18 | const weekly = new CronJob("0 0 * * 0", () => {
19 | sunucu.members.cache.forEach(async (member) => {
20 | await messageUser.updateMany({ guildID: sunucu.id, userID: member.user.id }, { $set: { weeklyStat: 0 } });
21 | await voiceUser.updateMany({ guildID: sunucu.id, userID: member.user.id }, { $set: { weeklyStat: 0 } });
22 | });
23 | }, null, true, "Europe/Istanbul");
24 | weekly.start();
25 | };
26 |
27 | module.exports.conf = {
28 | name: "ready",
29 | };
30 |
--------------------------------------------------------------------------------
/src/events/leaderBoard.js:
--------------------------------------------------------------------------------
1 | const client = global.client;
2 | const { leaderBoard, topMessage, topVoice } = require("../configs/config.json");
3 | const { CronJob } = require("cron");
4 | const moment = require("moment");
5 | require("moment-duration-format");
6 | moment.locale("tr");
7 |
8 | module.exports = async () => {
9 | const channel = client.channels.cache.get(leaderBoard);
10 | if (!channel) return console.log("[LEADERBOARD] Lider tablosu kanalı bulunamadı!");
11 | const textMessageData = await channel.messages.fetch(topMessage);
12 | if (!textMessageData) return console.log("[LEADERBOARD] Mesaj sıralaması lider tablosu mesajı bulunamadı!");
13 | const voiceMessageData = await channel.messages.fetch(topVoice);
14 | if (!voiceMessageData) return console.log("[LEADERBOARD] Ses sıralaması lider tablosu mesajı bulunamadı!");
15 | client.fetchLeaderBoard(channel, textMessageData, voiceMessageData);
16 | const leaderboard = new CronJob("*/30 * * * *", async () => client.fetchLeaderBoard(channel, textMessageData, voiceMessageData));
17 | leaderboard.start();
18 | };
19 |
20 | module.exports.conf = {
21 | name: "ready",
22 | };
23 |
--------------------------------------------------------------------------------
/src/events/messageCreate.js:
--------------------------------------------------------------------------------
1 | const config = require("../configs/config.json");
2 | const { EmbedBuilder } = require("discord.js");
3 | const client = global.client;
4 | let sended = false;
5 |
6 | /**
7 | * @param { import("discord.js").Message } message
8 | * @returns
9 | */
10 | module.exports = async (message) => {
11 | const prefix = config.prefix.find((e) => message.content.toLowerCase().startsWith(e));
12 | if (message.author.bot || !message.guild || !prefix) return;
13 | let args = message.content.substring(prefix.length).trim().split(" ");
14 | const command = args[0].toLowerCase();
15 |
16 | const eresbosEmbed = new EmbedBuilder().setColor(message.member.displayHexColor).setFooter({ text: config.activity, iconURL: message.guild.iconURL({ dynamic: true }) }).setAuthor({ name: message.member.displayName, iconURL: message.author.avatarURL({ forceStatic: true }), url: "https://eresbos.xyz" }).setTimestamp();
17 | args = args.splice(1);
18 | const cmd = client.commands.has(command) ? client.commands.get(command) : client.commands.get(client.aliases.get(command));
19 |
20 | if (cmd) {
21 | if (!cmd || (cmd.conf.owner && !config.botOwners.includes(message.author.id)) || !cmd.conf.enabled) return;
22 | const cooldown = cmd.conf.cooldown || 3000;
23 | const cd = client.cooldown.get(message.author.id);
24 | if (cd) {
25 | const diff = Date.now() - cd.lastUsage;
26 | if (diff < cooldown)
27 | if (!sended) {
28 | sended = true;
29 | return message.reply({ content: `Bu komutu tekrar kullanmak için \`${Number(((cooldown - diff) / 1000).toFixed(2))} saniye\` daha beklemelisin!` }).then((e) => setTimeout(() => e.delete(), (cooldown - diff)));
30 | }
31 | } else client.cooldown.set(message.author.id, { cooldown, lastUsage: Date.now() });
32 | cmd.run(client, message, args, eresbosEmbed, prefix);
33 | }
34 | };
35 |
36 | module.exports.conf = {
37 | name: "messageCreate",
38 | };
39 |
--------------------------------------------------------------------------------
/src/events/messageStats.js:
--------------------------------------------------------------------------------
1 | const client = global.client;
2 | const { EmbedBuilder } = require("discord.js");
3 | const config = require("../configs/config.json");
4 | const messageUser = require("../schemas/messageUser");
5 | const messageGuild = require("../schemas/messageGuild");
6 | const guildChannel = require("../schemas/messageGuildChannel");
7 | const messageUserChannel = require("../schemas/messageUserChannel");
8 | const points = require("../schemas/points");
9 | const ranks = require("../schemas/ranks");
10 | const nums = new Map();
11 |
12 | /**
13 | * @param { import("discord.js").Message } message
14 | * @returns
15 | */
16 | module.exports = async (message) => {
17 | if (message.guild.id !== config.guildID) return;
18 | if (
19 | config.otherRoles.cmuted.some((e) => message.member.roles.cache.has(e)) &&
20 | config.otherRoles.vmuted.some((e) => message.member.roles.cache.has(e)) &&
21 | config.otherRoles.jailed.some((e) => message.member.roles.cache.has(e)) &&
22 | config.otherRoles.fTag.some((e) => message.member.roles.cache.get(e)) &&
23 | config.otherRoles.susp.some((e) => message.member.roles.cache.has(e)) &&
24 | config.otherRoles.underWorld.some((e) => message.member.roles.cache.has(e)) &&
25 | config.otherRoles.unreg.some((e) => message.member.roles.cache.has(e))
26 | ) return;
27 | const messageData = await messageUser.findOne({ guildID: message.guild.id, userID: message.author.id });
28 | const logKanal = message.guild.channels.cache.get(config.badges.prizeLog);
29 |
30 | if (message.guild.roles.cache.get(config.badges.cbronze) && config.staffRoles.some((e) => message.member.roles.cache.get(e)) && messageData && logKanal && !message.member.roles.cache.get(config.badges.cbronze) && ((messageData ? messageData.topStat : 0) > config.targetAmount.cbronze) && ((messageData ? messageData.topStat : 0) < config.targetAmount.csilver)) {
31 | logKanal.send({ content: `${message.member.toString()}, \`${parseInt(config.targetAmount.cbronze).toLocaleString()} adet mesaj\` hedefine ulaştığı için \`${message.guild.roles.cache.get(config.badges.cbronze).name}\` rolünü kazandı!` });
32 | await message.member.roles.add(config.badges.cbronze, `Mesaj Hedef Ödülü | ${message.guild.roles.cache.get(config.badges.cbronze).name}`);
33 | } else if (message.guild.roles.cache.get(config.badges.csilver) && config.staffRoles.some((e) => message.member.roles.cache.get(e)) && messageData && logKanal && !message.member.roles.cache.get(config.badges.csilver) && ((messageData ? messageData.topStat : 0) > config.targetAmount.csilver) && ((messageData ? messageData.topStat : 0) < config.targetAmount.cgold)) {
34 | logKanal.send({ content: `${message.member.toString()}, \`${parseInt(config.targetAmount.csilver).toLocaleString()} adet mesaj\` hedefine ulaştığı için \`${message.guild.roles.cache.get(config.badges.csilver).name}\` rolünü kazandı!` });
35 | await message.member.roles.add(config.badges.csilver, `Mesaj Hedef Ödülü | ${message.guild.roles.cache.get(config.badges.csilver).name}`);
36 | await message.member.roles.remove(config.badges.cbronze, `Eski Mesaj Hedef Ödülü | ${message.guild.roles.cache.get(config.badges.cbronze).name}`);
37 | } else if (message.guild.roles.cache.get(config.badges.cgold) && config.staffRoles.some((e) => message.member.roles.cache.get(e)) && messageData && logKanal && !message.member.roles.cache.get(config.badges.cgold) && ((messageData ? messageData.topStat : 0) > config.targetAmount.cgold) && ((messageData ? messageData.topStat : 0) < config.targetAmount.cdia)) {
38 | logKanal.send({ content: `${message.member.toString()}, \`${parseInt(config.targetAmount.cgold).toLocaleString()} adet mesaj\` hedefine ulaştığı için \`${message.guild.roles.cache.get(config.badges.cgold).name}\` rolünü kazandı!` });
39 | await message.member.roles.add(config.badges.cgold, `Mesaj Hedef Ödülü | ${message.guild.roles.cache.get(config.badges.cgold).name}`);
40 | await message.member.roles.remove(config.badges.csilver, `Eski Mesaj Hedef Ödülü | ${message.guild.roles.cache.get(config.badges.csilver).name}`);
41 | } else if (message.guild.roles.cache.get(config.badges.cdia) && config.staffRoles.some((e) => message.member.roles.cache.get(e)) && messageData && logKanal && !message.member.roles.cache.get(config.badges.cdia) && ((messageData ? messageData.topStat : 0) > config.targetAmount.cdia) && ((messageData ? messageData.topStat : 0) < config.targetAmount.cemerl)) {
42 | logKanal.send({ content: `${message.member.toString()}, \`${parseInt(config.targetAmount.cdia).toLocaleString()} adet mesaj\` hedefine ulaştığı için \`${message.guild.roles.cache.get(config.badges.cdia).name}\` rolünü kazandı!` });
43 | await message.member.roles.add(config.badges.cdia, `Mesaj Hedef Ödülü | ${message.guild.roles.cache.get(config.badges.cdia).name}`);
44 | await message.member.roles.remove(config.badges.cgold, `Eski Mesaj Hedef Ödülü | ${message.guild.roles.cache.get(config.badges.cgold).name}`);
45 | } else if (message.guild.roles.cache.get(config.badges.cemerl) && config.staffRoles.some((e) => message.member.roles.cache.get(e)) && messageData && logKanal && !message.member.roles.cache.get(config.badges.cemerl) && ((messageData ? messageData.topStat : 0) > config.targetAmount.cemerl)) {
46 | logKanal.send({ content: `${message.member.toString()}, \`${parseInt(config.targetAmount.cemerl).toLocaleString()} adet mesaj\` hedefine ulaştığı için \`${message.guild.roles.cache.get(config.badges.cemerl).name}\` rolünü kazandı!` });
47 | await message.member.roles.add(config.badges.cemerl, `Mesaj Hedef Ödülü | ${message.guild.roles.cache.get(config.badges.cemerl).name}`);
48 | await message.member.roles.remove(config.badges.cdia, `Eski Mesaj Hedef Ödülü | ${message.guild.roles.cache.get(config.badges.cdia).name}`);
49 | }
50 |
51 | const prefix = config.prefix.find((e) => message.content.toLowerCase().startsWith(e));
52 | if (message.author.bot || !message.guild || prefix) return;
53 |
54 | const ranksData = await ranks.findOne({ guildId: message.guild.id });
55 | if (ranksData.pointSystem === true && config.staffRoles.some((e) => message.member.roles.cache.has(e))) {
56 | const num = nums.get(message.author.id);
57 | if (num && num % config.points.messageCount === 0) {
58 | nums.set(message.author.id, num + 1);
59 | await points.findOneAndUpdate({ guildID: message.guild.id, userID: message.author.id }, { $inc: { points: config.points.messagePoint } }, { upsert: true });
60 | const pointData = await points.findOne({ guildID: message.guild.id, userID: message.author.id });
61 | if (pointData && ranksData.ranks.some(e => pointData.points >= e.points && !message.member.roles.cache.has(e.rank))) {
62 | const newRank = ranksData.ranks.filter((e) => pointData.points >= e.points).last();
63 | await message.member.roles.add(newRank.rank);
64 | await message.member.roles.add(newRank.hammers);
65 | const oldRank = ranksData.ranks[ranksData.ranks.indexOf(newRank) - 1];
66 | if (oldRank) await message.member.roles.remove(oldRank.rank);
67 | const embed = new EmbedBuilder().setColor(message.member.displayHexColor);
68 | const rankLog = message.guild.channels.cache.get(config.rankLog);
69 | if (rankLog) rankLog.send({ embeds: [embed.setDescription(`${message.member.toString()} kullanıcısı \`${Number(newRank.points).toLocaleString()}\` puan hedefini tamamladı ve <@&${newRank.rank}> ${newRank.hammers.length > 0 ? `(${newRank.hammers.map((e) => `<@&${e}>`).join(", ")})` : ""} rolü verildi!`)] });
70 | }
71 | } else nums.set(message.author.id, num ? num + 1 : 1);
72 | }
73 |
74 | await messageUser.findOneAndUpdate({ guildID: message.guild.id, userID: message.author.id }, { $set: { timeout: Date.now() }, $inc: { topStat: 1, dailyStat: 1, weeklyStat: 1, twoWeeklyStat: 1 } }, { upsert: true });
75 | await messageGuild.findOneAndUpdate({ guildID: message.guild.id }, { $inc: { topStat: 1, dailyStat: 1, weeklyStat: 1, twoWeeklyStat: 1 } }, { upsert: true });
76 | await guildChannel.findOneAndUpdate({ guildID: message.guild.id, channelID: message.channel.id }, { $inc: { channelData: 1 } }, { upsert: true });
77 | await messageUserChannel.findOneAndUpdate({ guildID: message.guild.id, userID: message.author.id, channelID: message.channel.id }, { $inc: { channelData: 1 } }, { upsert: true });
78 | };
79 |
80 | module.exports.conf = {
81 | name: "messageCreate",
82 | };
83 |
--------------------------------------------------------------------------------
/src/events/ready.js:
--------------------------------------------------------------------------------
1 | const client = global.client;
2 | const config = require("../configs/config.json");
3 | const { joinVoiceChannel } = require("@discordjs/voice");
4 | const ranks = require("../schemas/ranks");
5 |
6 | module.exports = async () => {
7 | ranks.findOne({ guildId: config.guildID }, async (err, data) => {
8 | if (!data) new ranks({ guildId: config.guildID, ranks: [] }).save();
9 | });
10 | setInterval(async () => {
11 | client.status(
12 | [
13 | { name: config.activity, type: 0 }, // Bir oyun oynuyor
14 | { name: config.activity, type: 1, url: "https://www.twitch.tv/eresb0s" }, // Twitch'de yayında
15 | { name: config.activity, type: 2 }, // Dinliyor
16 | { name: config.activity, type: 3 }, // İzliyor
17 | { name: config.activity, type: 5 } // Yarışmada yarışıyor
18 | ],
19 | ["online", "idle", "dnd", "invisible"],
20 | {
21 | on: false,
22 | activities: 15000,
23 | status: 30000,
24 | }
25 | );
26 | const Guild = client.guilds.cache.get(config.guildID);
27 | if (!Guild) return;
28 | const VoiceChannel = Guild.channels.cache.get(config.voiceChannel);
29 | if (!VoiceChannel) return;
30 | joinVoiceChannel({
31 | channelId: VoiceChannel.id,
32 | guildId: VoiceChannel.guild.id,
33 | selfDeaf: true,
34 | adapterCreator: VoiceChannel.guild.voiceAdapterCreator,
35 | });
36 | }, 1000 * 3);
37 |
38 | // client.on("warn", m => console.log(`[WARN] - ${m}`));
39 | // client.on("error", m => console.log(`[ERROR] - ${m}`));
40 | // process.on("uncaughtException", error => console.log(`[ERROR] - ${error}`));
41 | // process.on("unhandledRejection", (err) => console.log(`[ERROR] - ${err}`));
42 | };
43 |
44 | module.exports.conf = {
45 | name: "ready",
46 | };
47 |
--------------------------------------------------------------------------------
/src/events/voiceStats.js:
--------------------------------------------------------------------------------
1 | const client = global.client;
2 | const { EmbedBuilder } = require("discord.js");
3 | const config = require("../configs/config.json");
4 | const joinedAt = require("../schemas/voiceJoinedAt");
5 | const voiceUser = require("../schemas/voiceUser");
6 | const voiceGuild = require("../schemas/voiceGuild");
7 | const guildChannel = require("../schemas/voiceGuildChannel");
8 | const userChannel = require("../schemas/voiceUserChannel");
9 | const userParent = require("../schemas/voiceUserParent");
10 | const points = require("../schemas/points");
11 | const ranks = require("../schemas/ranks");
12 | const ms = require("ms");
13 |
14 | /**
15 | * @param { import("discord.js").VoiceState } oldState
16 | * @param { import("discord.js").VoiceState } newState
17 | * @returns
18 | */
19 | module.exports = async (oldState, newState) => {
20 | if (oldState.guild.id !== config.guildID) return;
21 | if ((oldState.member && oldState.member.user.bot) || (newState.member && newState.member.user.bot)) return;
22 | if (
23 | config.otherRoles.cmuted.some((e) => oldState.member.roles.cache.get(e)) &&
24 | config.otherRoles.vmuted.some((e) => oldState.member.roles.cache.get(e)) &&
25 | config.otherRoles.jailed.some((e) => oldState.member.roles.cache.get(e)) &&
26 | config.otherRoles.fTag.some((e) => oldState.member.roles.cache.get(e)) &&
27 | config.otherRoles.susp.some((e) => oldState.member.roles.cache.get(e)) &&
28 | config.otherRoles.underWorld.some((e) => oldState.member.roles.cache.has(e)) &&
29 | config.otherRoles.unreg.some((e) => oldState.member.roles.cache.get(e))
30 | ) return;
31 | const logKanal = oldState.guild.channels.cache.get(config.badges.prizeLog);
32 | const pubVeriler = await userParent.findOne({ guildID: oldState.guild.id, userID: oldState.id, parentID: config.publicParents });
33 |
34 | if (oldState.guild.roles.cache.get(config.badges.vbronze) && config.staffRoles.some((e) => oldState.member.roles.cache.get(e)) && !oldState.member.roles.cache.get(config.badges.vbronze) && parseInt(pubVeriler ? pubVeriler.parentData : 0) > ms(config.targetAmount.vbronze) && parseInt(pubVeriler ? pubVeriler.parentData : 0) < ms(config.targetAmount.vsilver)) {
35 | if (logKanal) logKanal.send(`${oldState.member.toString()}, \`${client.getTime(ms(config.targetAmount.vbronze))} ses\` hedefine ulaştığı için \`${oldState.guild.roles.cache.get(config.badges.vbronze).name}\` rolünü kazandı!`);
36 | await oldState.member.roles.add(config.badges.vbronze, `Ses Hedef Ödülü | ${oldState.guild.roles.cache.get(config.badges.vbronze).name}`);
37 | } else if (oldState.guild.roles.cache.get(config.badges.vsilver) && config.staffRoles.some((e) => oldState.member.roles.cache.get(e)) && !oldState.member.roles.cache.get(config.badges.vsilver) && parseInt(pubVeriler ? pubVeriler.parentData : 0) > ms(config.targetAmount.vsilver) && parseInt(pubVeriler ? pubVeriler.parentData : 0) < ms(config.targetAmount.vgold)) {
38 | if (logKanal) logKanal.send(`${oldState.member.toString()}, \`${client.getTime(ms(config.targetAmount.vsilver))} ses\` hedefine ulaştığı için \`${oldState.guild.roles.cache.get(config.badges.vsilver).name}\` rolünü kazandı!`);
39 | await oldState.member.roles.add(config.badges.vsilver, `Ses Hedef Ödülü | ${oldState.guild.roles.cache.get(config.badges.vsilver).name}`);
40 | await oldState.member.roles.remove(config.badges.vbronze, `Eski Ses Hedef Ödülü | ${oldState.guild.roles.cache.get(config.badges.vbronze).name}`);
41 | } else if (oldState.guild.roles.cache.get(config.badges.vgold) && config.staffRoles.some((e) => oldState.member.roles.cache.get(e)) && !oldState.member.roles.cache.get(config.badges.vgold) && parseInt(pubVeriler ? pubVeriler.parentData : 0) > ms(config.targetAmount.vgold) && parseInt(pubVeriler ? pubVeriler.parentData : 0) < ms(config.targetAmount.vdia)) {
42 | if (logKanal) logKanal.send(`${oldState.member.toString()}, \`${client.getTime(ms(config.targetAmount.vgold))} ses\` hedefine ulaştığı için \`${oldState.guild.roles.cache.get(config.badges.vgold).name}\` rolünü kazandı!`);
43 | await oldState.member.roles.add(config.badges.vgold, `Ses Hedef Ödülü | ${oldState.guild.roles.cache.get(config.badges.vgold).name}`);
44 | await oldState.member.roles.remove(config.badges.vsilver, `Eski Ses Hedef Ödülü | ${oldState.guild.roles.cache.get(config.badges.vsilver).name}`);
45 | } else if (oldState.guild.roles.cache.get(config.badges.vdia) && config.staffRoles.some((e) => oldState.member.roles.cache.get(e)) && !oldState.member.roles.cache.get(config.badges.vdia) && parseInt(pubVeriler ? pubVeriler.parentData : 0) > ms(config.targetAmount.vdia) && parseInt(pubVeriler ? pubVeriler.parentData : 0) < ms(config.targetAmount.vemerl)) {
46 | if (logKanal) logKanal.send(`${oldState.member.toString()}, \`${client.getTime(ms(config.targetAmount.vdia))} ses\` hedefine ulaştığı için \`${oldState.guild.roles.cache.get(config.badges.vdia).name}\` rolünü kazandı!`);
47 | await oldState.member.roles.add(config.badges.vdia, `Ses Hedef Ödülü | ${oldState.guild.roles.cache.get(config.badges.vdia).name}`);
48 | await oldState.member.roles.remove(config.badges.vgold, `Eski Ses Hedef Ödülü | ${oldState.guild.roles.cache.get(config.badges.vgold).name}`);
49 | } else if (oldState.guild.roles.cache.get(config.badges.vemerl) && config.staffRoles.some((e) => oldState.member.roles.cache.get(e)) && !oldState.member.roles.cache.get(config.badges.vemerl) && parseInt(pubVeriler ? pubVeriler.parentData : 0) > ms(config.targetAmount.vemerl)) {
50 | if (logKanal) logKanal.send(`${oldState.member.toString()}, \`${client.getTime(ms(config.targetAmount.vemerl))} ses\` hedefine ulaştığı için \`${oldState.guild.roles.cache.get(config.badges.vemerl).name}\` rolünü kazandı!`);
51 | await oldState.member.roles.add(config.badges.vemerl, `Ses Hedef Ödülü | ${oldState.guild.roles.cache.get(config.badges.vemerl).name}`);
52 | await oldState.member.roles.remove(config.badges.vdia, `Eski Ses Hedef Ödülü | ${oldState.guild.roles.cache.get(config.badges.vdia).name}`);
53 | }
54 |
55 | if (!oldState.channelId && newState.channelId) await joinedAt.findOneAndUpdate({ guildID: newState.guild.id, userID: newState.id }, { $set: { date: Date.now() } }, { upsert: true });
56 | let joinedAtData = await joinedAt.findOne({ guildID: oldState.guild.id, userID: oldState.id });
57 | if (!joinedAtData) await joinedAt.findOneAndUpdate({ guildID: oldState.guild.id, userID: oldState.id }, { $set: { date: Date.now() } }, { upsert: true });
58 | joinedAtData = await joinedAt.findOne({ guildID: oldState.guild.id, userID: oldState.id });
59 | const data = Date.now() - joinedAtData.date;
60 |
61 | if (oldState.channelId && !newState.channelId) {
62 | await saveData(oldState, oldState.channel, data);
63 | await joinedAt.deleteOne({ guildID: oldState.guild.id, userID: oldState.id });
64 | } else if (oldState.channelId && newState.channelId) {
65 | await saveData(oldState, oldState.channel, data);
66 | await joinedAt.findOneAndUpdate({ guildID: oldState.guild.id, userID: oldState.id }, { $set: { date: Date.now() } }, { upsert: true });
67 | }
68 | };
69 |
70 | async function saveData(user, channel, data) {
71 | const ranksData = await ranks.findOne({ guildId: user.guild.id });
72 | if (ranksData.pointSystem === true && config.staffRoles.some((e) => user.member.roles.cache.has(e))) {
73 | if (channel.parent && config.publicParents.includes(channel.parentId) && !channel.id !== config.sleepRoom) {
74 | if (data >= (1000 * 60) * config.points.publicCount) await points.findOneAndUpdate({ guildID: user.guild.id, userID: user.id }, { $inc: { points: Math.floor(parseInt(data / 1000 / 60) / config.points.publicCount) * config.points.publicPoint } }, { upsert: true });
75 | } else if (data >= (1000 * 60) * config.points.voiceCount) await points.findOneAndUpdate({ guildID: user.guild.id, userID: user.id }, { $inc: { points: Math.floor(parseInt(data / 1000 / 60) / config.points.voiceCount) * config.points.voicePoint } }, { upsert: true });
76 | const pointData = await points.findOne({ guildID: user.guild.id, userID: user.id });
77 | if (pointData && ranksData.ranks.some((e) => pointData.points >= e.points && !user.member.hasRole(e.rank))) {
78 | const newRank = ranksData.ranks.filter((e) => pointData.points >= e.points).last();
79 | if (newRank && !user.member.roles.cache.has(newRank.rank)) {
80 | await user.member.roles.add(newRank.rank);
81 | await user.member.roles.add(newRank.hammers);
82 | const oldRoles = ranksData.ranks[ranksData.ranks.indexOf(newRank) - 1];
83 | if (oldRoles) await user.member.roles.remove(oldRoles.rank);
84 | const embed = new EmbedBuilder().setColor(user.member.displayHexColor);
85 | const log = user.guild.channels.cache.get(config.rankLog);
86 | if (log) log.send({ embeds: [embed.setDescription(`${user.member.toString()} kullanıcısı \`${Number(newRank.points).toLocaleString()}\` puan hedefini tamamladı ve <@&${newRank.rank}> ${newRank.hammers.length > 0 ? `(${newRank.hammers.map((e) => `<@&${e}>`).join(", ")})` : ""} rolü verildi!`)] });
87 | }
88 | }
89 | }
90 |
91 | await voiceUser.findOneAndUpdate({ guildID: user.guild.id, userID: user.id }, { $inc: { topStat: data, dailyStat: data, weeklyStat: data } }, { upsert: true });
92 | await voiceGuild.findOneAndUpdate({ guildID: user.guild.id }, { $inc: { topStat: data, dailyStat: data, weeklyStat: data } }, { upsert: true });
93 | await guildChannel.findOneAndUpdate({ guildID: user.guild.id, channelID: channel.id }, { $inc: { channelData: data } }, { upsert: true });
94 | await userChannel.findOneAndUpdate({ guildID: user.guild.id, userID: user.id, channelID: channel.id }, { $inc: { channelData: data } }, { upsert: true });
95 | if (channel.id !== config.sleepRoom && channel.parent) await userParent.findOneAndUpdate({ guildID: user.guild.id, userID: user.id, parentID: channel.parentId }, { $inc: { parentData: data } }, { upsert: true });
96 | }
97 |
98 | module.exports.conf = {
99 | name: "voiceStateUpdate",
100 | };
101 |
--------------------------------------------------------------------------------
/src/handlers/commandHandler.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const client = global.client;
3 |
4 | fs.readdir("./src/commands", (err, files) => {
5 | if (err) console.log(err);
6 | files.forEach((f) => {
7 | const props = require(`../commands/${f}`);
8 | console.log(`[COMMAND] ${props.conf.name} aktif edildi!`);
9 | client.commands.set(props.conf.name, props);
10 | props.conf.aliases.forEach((alias) => {
11 | client.aliases.set(alias, props.conf.name);
12 | });
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/src/handlers/eventHandler.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const client = global.client;
3 |
4 | fs.readdir("./src/events", (err, files) => {
5 | if (err) return console.error(err);
6 | console.log(`[EVENT] ${files.length} event aktif edildi!`);
7 | files.filter((file) => file.endsWith(".js")).forEach((file) => {
8 | const prop = require(`../events/${file}`);
9 | if (!prop.conf) return;
10 | client.on(prop.conf.name, prop);
11 | });
12 | });
13 |
--------------------------------------------------------------------------------
/src/handlers/functionHandler.js:
--------------------------------------------------------------------------------
1 | const { GuildMember, EmbedBuilder } = require("discord.js");
2 | const { emojis, sunucuAdi, badges } = require("../configs/config.json");
3 | const messageUser = require("../schemas/messageUser");
4 | const voiceUser = require("../schemas/voiceUser");
5 | const moment = require("moment");
6 |
7 | module.exports = async (client) => {
8 | client.fetchLeaderBoard = async (channel, textMessage, voiceMessage) => {
9 | const [text, voice] = await client.generateleaderBoard(channel.guild.id);
10 |
11 | await textMessage.edit({ embeds: [text] });
12 | await voiceMessage.edit({ embeds: [voice] });
13 | };
14 |
15 | client.generateleaderBoard = async (guildId) => {
16 | const Guild = await client.guilds.cache.get(guildId);
17 | if (!Guild) throw new TypeError("Invalid Argument: Guild");
18 | const messageData = async (type) => {
19 | let data = await messageUser.find({ guildID: Guild.id }).sort({ weeklyStat: -1 });
20 | data = data.filter((e) => e[type] !== 0 && Guild.members.cache.has(e.userID));
21 | return data.length > 0 ? data.splice(0, 20).map((e, i) => `\`${i + 1}.\` <@${e.userID}> : \`${Number(e[type]).toLocaleString()} mesaj\``).join("\n") : "`Veri bulunmuyor.`";
22 | };
23 | const voiceData = async (type) => {
24 | let data = await voiceUser.find({ guildID: Guild.id }).sort({ weeklyStat: -1 });
25 | data = data.filter((e) => e[type] !== 0 && Guild.members.cache.has(e.userID));
26 | return data.length > 0 ? data.splice(0, 20).map((e, i) => `\`${i + 1}.\` <@${e.userID}> : \`${client.getTime(e[type])}\``).join("\n") : "`Veri bulunmuyor.`";
27 | };
28 |
29 | const text = new EmbedBuilder().setDescription(`${await messageData("weeklyStat")}`).setAuthor({ name: `${sunucuAdi} Mesaj Sıralaması | 1 Hafta`, iconURL: Guild.iconURL({ forceStatic: true }) }).setFooter({ text: "Son Güncelleme", iconURL: Guild.iconURL({ forceStatic: true }) }).setColor("White").setTimestamp();
30 | const voice = new EmbedBuilder().setDescription(`${await voiceData("weeklyStat")}`).setAuthor({ name: `${sunucuAdi} Ses Sıralaması | 1 Hafta`, iconURL: Guild.iconURL({ forceStatic: true }) }).setFooter({ text: "Son Güncelleme", iconURL: Guild.iconURL({ forceStatic: true }) }).setColor("White").setTimestamp();
31 |
32 | return [text, voice];
33 | };
34 |
35 | client.status = async (activities, status, time) => {
36 | if (!time.on) {
37 | client.user.setActivity(activities[3])
38 | client.user.setStatus(status[1])
39 | } else {
40 | let i = 0;
41 | setInterval(() => {
42 | if (i >= activities.length) i = 0
43 | client.user.setActivity(activities[i])
44 | i++;
45 | }, time.activities);
46 |
47 | let s = 0;
48 | setInterval(() => {
49 | if (s >= activities.length) s = 0
50 | client.user.setStatus(status[s])
51 | s++;
52 | }, time.status);
53 | }
54 | };
55 |
56 | /**
57 | * @param { Number } value
58 | * @param { Number } maxValue
59 | * @param { Number } size
60 | * @returns
61 | */
62 | client.progressBar = (value, maxValue, size) => {
63 | const progress = Math.round(
64 | size * (value / maxValue > 1 ? 1 : value / maxValue)
65 | );
66 | const emptyProgress = size - progress > 0 ? size - progress : 0;
67 |
68 | const progressText = emojis.fill.repeat(progress);
69 | const emptyProgressText = emojis.empty.repeat(emptyProgress);
70 |
71 | return emptyProgress > 0
72 | ? progress === 0
73 | ? emojis.emptyStart + progressText + emptyProgressText + emojis.emptyEnd
74 | : emojis.fillStart + progressText + emptyProgressText + emojis.emptyEnd
75 | : emojis.fillStart + progressText + emptyProgressText + emojis.fillEnd;
76 | };
77 |
78 | GuildMember.prototype.hasRole = function (role, every = true) {
79 | return (
80 | (Array.isArray(role) &&
81 | ((every && role.every((e) => this.roles.cache.has(e))) ||
82 | (!every && role.some((e) => this.roles.cache.has(e))))) ||
83 | (!Array.isArray(role) && this.roles.cache.has(role))
84 | );
85 | };
86 |
87 | /**
88 | * @param { Number } time
89 | * @returns
90 | */
91 | client.getTime = (time) => {
92 | if (isNaN(time) || time.toLocaleString().includes('-')) throw new TypeError("Invalid Argument : Time");
93 | let date = moment.duration(time)._data;
94 |
95 | if (date.years) return `${date.years} yıl${date.months ? `, ${date.months} ay` : ``}${date.days ? `, ${date.days} gün` : ``}`
96 | if (date.months) return `${date.months} ay${date.days ? `, ${date.days} gün` : ``}${date.hours ? `, ${date.hours} saat` : ``}`
97 | if (date.days) return `${date.days} gün${date.hours ? `, ${date.hours} saat` : ``}${date.minutes ? `, ${date.minutes} dakika` : ``}`;
98 | if (date.hours) return `${date.hours} saat${date.minutes ? `, ${date.minutes} dakika` : ``}${date.seconds ? `, ${date.seconds} sn.` : ``}`;
99 | if (date.minutes) return `${date.minutes} dakika${date.seconds ? `, ${date.seconds} sn.` : ``}`;
100 | if (date.seconds) return `${date.seconds} sn.`;
101 | };
102 |
103 | Array.prototype.listRoles = function (type = "mention") {
104 | return this.length > 1
105 | ? this.slice(0, -1)
106 | .map((x) => `<@&${x}>`)
107 | .join(", ") +
108 | " ve " +
109 | this.map((x) => `<@&${x}>`).slice(-1)
110 | : this.map((x) => `<@&${x}>`).join("");
111 | };
112 |
113 | Array.prototype.last = function () {
114 | return this[this.length - 1];
115 | };
116 | };
117 |
--------------------------------------------------------------------------------
/src/handlers/mongoHandler.js:
--------------------------------------------------------------------------------
1 | const mongoose = require("mongoose");
2 | const settings = require("../configs/settings.json");
3 |
4 | mongoose.connect(settings.mongoURL, {
5 | useUnifiedTopology: true,
6 | useNewUrlParser: true,
7 | });
8 |
9 | mongoose.connection.on("connected", () => {
10 | console.log(`[MONGOOSE] Mongo bağlantısı kuruldu!`);
11 | });
12 |
13 | mongoose.connection.on("disconnected", () => {
14 | console.log(`[MONGOOSE] Mongo bağlantısı kesildi!`);
15 | });
16 |
17 | mongoose.connection.on("error", () => {
18 | console.error(`[MONGOOSE] Mongo bağlantısı kurulurken bir hata oluştu!`);
19 | });
20 |
--------------------------------------------------------------------------------
/src/images/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/images/1.png
--------------------------------------------------------------------------------
/src/images/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/images/10.png
--------------------------------------------------------------------------------
/src/images/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/images/2.png
--------------------------------------------------------------------------------
/src/images/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/images/3.png
--------------------------------------------------------------------------------
/src/images/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/images/4.png
--------------------------------------------------------------------------------
/src/images/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/images/5.png
--------------------------------------------------------------------------------
/src/images/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/images/6.png
--------------------------------------------------------------------------------
/src/images/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/images/7.png
--------------------------------------------------------------------------------
/src/images/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/images/8.png
--------------------------------------------------------------------------------
/src/images/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ERESB0S/advanced-stat-bot/aab720bd0685e275952a1e9bd35369494e5a124f/src/images/9.png
--------------------------------------------------------------------------------
/src/schemas/messageGuild.js:
--------------------------------------------------------------------------------
1 | const { Schema, model } = require("mongoose");
2 |
3 | const şema = Schema({
4 | guildID: { type: String, default: "" },
5 | topStat: { type: Number, default: 0 },
6 | dailyStat: { type: Number, default: 0 },
7 | weeklyStat: { type: Number, default: 0 },
8 | });
9 |
10 | module.exports = model("messageGuild", şema);
11 |
--------------------------------------------------------------------------------
/src/schemas/messageGuildChannel.js:
--------------------------------------------------------------------------------
1 | const { Schema, model } = require("mongoose");
2 |
3 | const schema = Schema({
4 | guildID: String,
5 | channelID: String,
6 | channelData: { type: Number, default: 0 },
7 | });
8 |
9 | module.exports = model("messageGuildChannel", schema);
10 |
--------------------------------------------------------------------------------
/src/schemas/messageUser.js:
--------------------------------------------------------------------------------
1 | const { Schema, model } = require("mongoose");
2 |
3 | const şema = Schema({
4 | guildID: String,
5 | userID: String,
6 | topStat: { type: Number, default: 0 },
7 | dailyStat: { type: Number, default: 0 },
8 | weeklyStat: { type: Number, default: 0 },
9 | timeout: { type: Number, default: Date.now() },
10 | });
11 |
12 | module.exports = model("messageUser", şema);
13 |
--------------------------------------------------------------------------------
/src/schemas/messageUserChannel.js:
--------------------------------------------------------------------------------
1 | const { Schema, model } = require("mongoose");
2 |
3 | const şema = Schema({
4 | guildID: String,
5 | userID: String,
6 | channelID: String,
7 | channelData: { type: Number, default: 0 }
8 | });
9 |
10 | module.exports = model("messageUserChannel", şema);
11 |
--------------------------------------------------------------------------------
/src/schemas/points.js:
--------------------------------------------------------------------------------
1 | const { Schema, model } = require("mongoose");
2 |
3 | const şema = Schema({
4 | guildID: { type: String, default: "" },
5 | userID: { type: String, default: "" },
6 | points: { type: Number, default: 0 }
7 | });
8 |
9 | module.exports = model("points", şema);
10 |
--------------------------------------------------------------------------------
/src/schemas/ranks.js:
--------------------------------------------------------------------------------
1 | const { Schema, model } = require("mongoose");
2 |
3 | const şema = Schema({
4 | guildId: { type: String, default: "" },
5 | pointSystem: { type: Boolean, default: false },
6 | ranks: { type: Array, default: [] },
7 | });
8 |
9 | module.exports = model("ranks", şema);
10 |
--------------------------------------------------------------------------------
/src/schemas/voiceGuild.js:
--------------------------------------------------------------------------------
1 | const { Schema, model } = require("mongoose");
2 |
3 | const schema = Schema({
4 | guildID: String,
5 | topStat: { type: Number, default: 0 },
6 | dailyStat: { type: Number, default: 0 },
7 | weeklyStat: { type: Number, default: 0 },
8 | });
9 |
10 | module.exports = model("voiceGuild", schema);
11 |
--------------------------------------------------------------------------------
/src/schemas/voiceGuildChannel.js:
--------------------------------------------------------------------------------
1 | const { Schema, model } = require("mongoose");
2 |
3 | const schema = Schema({
4 | guildID: String,
5 | channelID: String,
6 | channelData: { type: Number, default: 0 },
7 | });
8 |
9 | module.exports = model("voiceGuildChannel", schema);
10 |
--------------------------------------------------------------------------------
/src/schemas/voiceJoinedAt.js:
--------------------------------------------------------------------------------
1 | const { Schema, model } = require("mongoose");
2 |
3 | const şema = Schema({
4 | guildID: String,
5 | userID: String,
6 | date: Number,
7 | });
8 |
9 | module.exports = model("voiceJoinedAt", şema);
10 |
--------------------------------------------------------------------------------
/src/schemas/voiceUser.js:
--------------------------------------------------------------------------------
1 | const { Schema, model } = require("mongoose");
2 |
3 | const şema = Schema({
4 | guildID: String,
5 | userID: String,
6 | topStat: { type: Number, default: 0 },
7 | dailyStat: { type: Number, default: 0 },
8 | weeklyStat: { type: Number, default: 0 },
9 | });
10 |
11 | module.exports = model("voiceUser", şema);
12 |
--------------------------------------------------------------------------------
/src/schemas/voiceUserChannel.js:
--------------------------------------------------------------------------------
1 | const { Schema, model } = require("mongoose");
2 |
3 | const şema = Schema({
4 | guildID: String,
5 | userID: String,
6 | channelID: String,
7 | channelData: { type: Number, default: 0 },
8 | });
9 |
10 | module.exports = model("voiceUserChannel", şema);
11 |
--------------------------------------------------------------------------------
/src/schemas/voiceUserParent.js:
--------------------------------------------------------------------------------
1 | const { Schema, model } = require("mongoose");
2 |
3 | const schema = Schema({
4 | guildID: String,
5 | userID: String,
6 | parentID: String,
7 | parentData: { type: Number, default: 0 },
8 | });
9 |
10 | module.exports = model("voiceUserParent", schema);
11 |
--------------------------------------------------------------------------------
/start.bat:
--------------------------------------------------------------------------------
1 | echo off
2 | title Stat
3 | cls
4 | :a
5 | node eresbos.js
6 | goto a
7 | pause
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@aws-crypto/ie11-detection@^2.0.0":
6 | version "2.0.2"
7 | resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz#9c39f4a5558196636031a933ec1b4792de959d6a"
8 | integrity sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==
9 | dependencies:
10 | tslib "^1.11.1"
11 |
12 | "@aws-crypto/sha256-browser@2.0.0":
13 | version "2.0.0"
14 | resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz#741c9024df55ec59b51e5b1f5d806a4852699fb5"
15 | integrity sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==
16 | dependencies:
17 | "@aws-crypto/ie11-detection" "^2.0.0"
18 | "@aws-crypto/sha256-js" "^2.0.0"
19 | "@aws-crypto/supports-web-crypto" "^2.0.0"
20 | "@aws-crypto/util" "^2.0.0"
21 | "@aws-sdk/types" "^3.1.0"
22 | "@aws-sdk/util-locate-window" "^3.0.0"
23 | "@aws-sdk/util-utf8-browser" "^3.0.0"
24 | tslib "^1.11.1"
25 |
26 | "@aws-crypto/sha256-js@2.0.0":
27 | version "2.0.0"
28 | resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz#f1f936039bdebd0b9e2dd834d65afdc2aac4efcb"
29 | integrity sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==
30 | dependencies:
31 | "@aws-crypto/util" "^2.0.0"
32 | "@aws-sdk/types" "^3.1.0"
33 | tslib "^1.11.1"
34 |
35 | "@aws-crypto/sha256-js@^2.0.0":
36 | version "2.0.2"
37 | resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.2.tgz#c81e5d378b8a74ff1671b58632779986e50f4c99"
38 | integrity sha512-iXLdKH19qPmIC73fVCrHWCSYjN/sxaAvZ3jNNyw6FclmHyjLKg0f69WlC9KTnyElxCR5MO9SKaG00VwlJwyAkQ==
39 | dependencies:
40 | "@aws-crypto/util" "^2.0.2"
41 | "@aws-sdk/types" "^3.110.0"
42 | tslib "^1.11.1"
43 |
44 | "@aws-crypto/supports-web-crypto@^2.0.0":
45 | version "2.0.2"
46 | resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz#9f02aafad8789cac9c0ab5faaebb1ab8aa841338"
47 | integrity sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==
48 | dependencies:
49 | tslib "^1.11.1"
50 |
51 | "@aws-crypto/util@^2.0.0", "@aws-crypto/util@^2.0.2":
52 | version "2.0.2"
53 | resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-2.0.2.tgz#adf5ff5dfbc7713082f897f1d01e551ce0edb9c0"
54 | integrity sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==
55 | dependencies:
56 | "@aws-sdk/types" "^3.110.0"
57 | "@aws-sdk/util-utf8-browser" "^3.0.0"
58 | tslib "^1.11.1"
59 |
60 | "@aws-sdk/abort-controller@3.226.0":
61 | version "3.226.0"
62 | resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.226.0.tgz#3adffb8ee5af57ddb154e8544a8eeec76ad32271"
63 | integrity sha512-cJVzr1xxPBd08voknXvR0RLgtZKGKt6WyDpH/BaPCu3rfSqWCDZKzwqe940eqosjmKrxC6pUZNKASIqHOQ8xxQ==
64 | dependencies:
65 | "@aws-sdk/types" "3.226.0"
66 | tslib "^2.3.1"
67 |
68 | "@aws-sdk/client-cognito-identity@3.236.0":
69 | version "3.236.0"
70 | resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.236.0.tgz#bec1a6625d1b34b0014a8ded15d70557643ee7e9"
71 | integrity sha512-lWGuTVA+q3h1KS3nxTWeRGOfsuQ+GNwq5IxFJ8ko441mpwo5A2t6u25Z+G6t5Eh+q4EcoxMX64HYA+cu91lr7g==
72 | dependencies:
73 | "@aws-crypto/sha256-browser" "2.0.0"
74 | "@aws-crypto/sha256-js" "2.0.0"
75 | "@aws-sdk/client-sts" "3.236.0"
76 | "@aws-sdk/config-resolver" "3.234.0"
77 | "@aws-sdk/credential-provider-node" "3.236.0"
78 | "@aws-sdk/fetch-http-handler" "3.226.0"
79 | "@aws-sdk/hash-node" "3.226.0"
80 | "@aws-sdk/invalid-dependency" "3.226.0"
81 | "@aws-sdk/middleware-content-length" "3.226.0"
82 | "@aws-sdk/middleware-endpoint" "3.226.0"
83 | "@aws-sdk/middleware-host-header" "3.226.0"
84 | "@aws-sdk/middleware-logger" "3.226.0"
85 | "@aws-sdk/middleware-recursion-detection" "3.226.0"
86 | "@aws-sdk/middleware-retry" "3.235.0"
87 | "@aws-sdk/middleware-serde" "3.226.0"
88 | "@aws-sdk/middleware-signing" "3.226.0"
89 | "@aws-sdk/middleware-stack" "3.226.0"
90 | "@aws-sdk/middleware-user-agent" "3.226.0"
91 | "@aws-sdk/node-config-provider" "3.226.0"
92 | "@aws-sdk/node-http-handler" "3.226.0"
93 | "@aws-sdk/protocol-http" "3.226.0"
94 | "@aws-sdk/smithy-client" "3.234.0"
95 | "@aws-sdk/types" "3.226.0"
96 | "@aws-sdk/url-parser" "3.226.0"
97 | "@aws-sdk/util-base64" "3.208.0"
98 | "@aws-sdk/util-body-length-browser" "3.188.0"
99 | "@aws-sdk/util-body-length-node" "3.208.0"
100 | "@aws-sdk/util-defaults-mode-browser" "3.234.0"
101 | "@aws-sdk/util-defaults-mode-node" "3.234.0"
102 | "@aws-sdk/util-endpoints" "3.226.0"
103 | "@aws-sdk/util-retry" "3.229.0"
104 | "@aws-sdk/util-user-agent-browser" "3.226.0"
105 | "@aws-sdk/util-user-agent-node" "3.226.0"
106 | "@aws-sdk/util-utf8-browser" "3.188.0"
107 | "@aws-sdk/util-utf8-node" "3.208.0"
108 | tslib "^2.3.1"
109 |
110 | "@aws-sdk/client-sso-oidc@3.236.0":
111 | version "3.236.0"
112 | resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.236.0.tgz#501cc3f69bdfc1b538b3b89d1166bc80dd86a461"
113 | integrity sha512-9TuigSXGafVto+GjKsVkhNLlnSgNWzRL5/ClZ5lY3dWrcDEJGZjFwwRB3ICerFQJBdDfsYwjNjJPhYEHzdyBfQ==
114 | dependencies:
115 | "@aws-crypto/sha256-browser" "2.0.0"
116 | "@aws-crypto/sha256-js" "2.0.0"
117 | "@aws-sdk/config-resolver" "3.234.0"
118 | "@aws-sdk/fetch-http-handler" "3.226.0"
119 | "@aws-sdk/hash-node" "3.226.0"
120 | "@aws-sdk/invalid-dependency" "3.226.0"
121 | "@aws-sdk/middleware-content-length" "3.226.0"
122 | "@aws-sdk/middleware-endpoint" "3.226.0"
123 | "@aws-sdk/middleware-host-header" "3.226.0"
124 | "@aws-sdk/middleware-logger" "3.226.0"
125 | "@aws-sdk/middleware-recursion-detection" "3.226.0"
126 | "@aws-sdk/middleware-retry" "3.235.0"
127 | "@aws-sdk/middleware-serde" "3.226.0"
128 | "@aws-sdk/middleware-stack" "3.226.0"
129 | "@aws-sdk/middleware-user-agent" "3.226.0"
130 | "@aws-sdk/node-config-provider" "3.226.0"
131 | "@aws-sdk/node-http-handler" "3.226.0"
132 | "@aws-sdk/protocol-http" "3.226.0"
133 | "@aws-sdk/smithy-client" "3.234.0"
134 | "@aws-sdk/types" "3.226.0"
135 | "@aws-sdk/url-parser" "3.226.0"
136 | "@aws-sdk/util-base64" "3.208.0"
137 | "@aws-sdk/util-body-length-browser" "3.188.0"
138 | "@aws-sdk/util-body-length-node" "3.208.0"
139 | "@aws-sdk/util-defaults-mode-browser" "3.234.0"
140 | "@aws-sdk/util-defaults-mode-node" "3.234.0"
141 | "@aws-sdk/util-endpoints" "3.226.0"
142 | "@aws-sdk/util-retry" "3.229.0"
143 | "@aws-sdk/util-user-agent-browser" "3.226.0"
144 | "@aws-sdk/util-user-agent-node" "3.226.0"
145 | "@aws-sdk/util-utf8-browser" "3.188.0"
146 | "@aws-sdk/util-utf8-node" "3.208.0"
147 | tslib "^2.3.1"
148 |
149 | "@aws-sdk/client-sso@3.236.0":
150 | version "3.236.0"
151 | resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.236.0.tgz#eba16f73abb9639bfdafeeb64d5c9771db2a4cc9"
152 | integrity sha512-2E/XHiVSRI+L2SlVscmV/+z4A2iWF6BTUjVBFBGMmsailvGDV6XKPFocTBsHI64G25/SYkhMdELvjn5jHLKBGQ==
153 | dependencies:
154 | "@aws-crypto/sha256-browser" "2.0.0"
155 | "@aws-crypto/sha256-js" "2.0.0"
156 | "@aws-sdk/config-resolver" "3.234.0"
157 | "@aws-sdk/fetch-http-handler" "3.226.0"
158 | "@aws-sdk/hash-node" "3.226.0"
159 | "@aws-sdk/invalid-dependency" "3.226.0"
160 | "@aws-sdk/middleware-content-length" "3.226.0"
161 | "@aws-sdk/middleware-endpoint" "3.226.0"
162 | "@aws-sdk/middleware-host-header" "3.226.0"
163 | "@aws-sdk/middleware-logger" "3.226.0"
164 | "@aws-sdk/middleware-recursion-detection" "3.226.0"
165 | "@aws-sdk/middleware-retry" "3.235.0"
166 | "@aws-sdk/middleware-serde" "3.226.0"
167 | "@aws-sdk/middleware-stack" "3.226.0"
168 | "@aws-sdk/middleware-user-agent" "3.226.0"
169 | "@aws-sdk/node-config-provider" "3.226.0"
170 | "@aws-sdk/node-http-handler" "3.226.0"
171 | "@aws-sdk/protocol-http" "3.226.0"
172 | "@aws-sdk/smithy-client" "3.234.0"
173 | "@aws-sdk/types" "3.226.0"
174 | "@aws-sdk/url-parser" "3.226.0"
175 | "@aws-sdk/util-base64" "3.208.0"
176 | "@aws-sdk/util-body-length-browser" "3.188.0"
177 | "@aws-sdk/util-body-length-node" "3.208.0"
178 | "@aws-sdk/util-defaults-mode-browser" "3.234.0"
179 | "@aws-sdk/util-defaults-mode-node" "3.234.0"
180 | "@aws-sdk/util-endpoints" "3.226.0"
181 | "@aws-sdk/util-retry" "3.229.0"
182 | "@aws-sdk/util-user-agent-browser" "3.226.0"
183 | "@aws-sdk/util-user-agent-node" "3.226.0"
184 | "@aws-sdk/util-utf8-browser" "3.188.0"
185 | "@aws-sdk/util-utf8-node" "3.208.0"
186 | tslib "^2.3.1"
187 |
188 | "@aws-sdk/client-sts@3.236.0":
189 | version "3.236.0"
190 | resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.236.0.tgz#8f3d793d627edf72ae80ffc50e7982b6cbcfd3f7"
191 | integrity sha512-ruEALU0oPwsA8xZ/HBCoUO9rsyhPyalj20GMGpzVaNcf1dr1jMTThDQvQvvjAHjY3W56mI7ApxjK+D+gok55aw==
192 | dependencies:
193 | "@aws-crypto/sha256-browser" "2.0.0"
194 | "@aws-crypto/sha256-js" "2.0.0"
195 | "@aws-sdk/config-resolver" "3.234.0"
196 | "@aws-sdk/credential-provider-node" "3.236.0"
197 | "@aws-sdk/fetch-http-handler" "3.226.0"
198 | "@aws-sdk/hash-node" "3.226.0"
199 | "@aws-sdk/invalid-dependency" "3.226.0"
200 | "@aws-sdk/middleware-content-length" "3.226.0"
201 | "@aws-sdk/middleware-endpoint" "3.226.0"
202 | "@aws-sdk/middleware-host-header" "3.226.0"
203 | "@aws-sdk/middleware-logger" "3.226.0"
204 | "@aws-sdk/middleware-recursion-detection" "3.226.0"
205 | "@aws-sdk/middleware-retry" "3.235.0"
206 | "@aws-sdk/middleware-sdk-sts" "3.226.0"
207 | "@aws-sdk/middleware-serde" "3.226.0"
208 | "@aws-sdk/middleware-signing" "3.226.0"
209 | "@aws-sdk/middleware-stack" "3.226.0"
210 | "@aws-sdk/middleware-user-agent" "3.226.0"
211 | "@aws-sdk/node-config-provider" "3.226.0"
212 | "@aws-sdk/node-http-handler" "3.226.0"
213 | "@aws-sdk/protocol-http" "3.226.0"
214 | "@aws-sdk/smithy-client" "3.234.0"
215 | "@aws-sdk/types" "3.226.0"
216 | "@aws-sdk/url-parser" "3.226.0"
217 | "@aws-sdk/util-base64" "3.208.0"
218 | "@aws-sdk/util-body-length-browser" "3.188.0"
219 | "@aws-sdk/util-body-length-node" "3.208.0"
220 | "@aws-sdk/util-defaults-mode-browser" "3.234.0"
221 | "@aws-sdk/util-defaults-mode-node" "3.234.0"
222 | "@aws-sdk/util-endpoints" "3.226.0"
223 | "@aws-sdk/util-retry" "3.229.0"
224 | "@aws-sdk/util-user-agent-browser" "3.226.0"
225 | "@aws-sdk/util-user-agent-node" "3.226.0"
226 | "@aws-sdk/util-utf8-browser" "3.188.0"
227 | "@aws-sdk/util-utf8-node" "3.208.0"
228 | fast-xml-parser "4.0.11"
229 | tslib "^2.3.1"
230 |
231 | "@aws-sdk/config-resolver@3.234.0":
232 | version "3.234.0"
233 | resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.234.0.tgz#29d8936b713b7ee59b26b335d4f6715d644fc089"
234 | integrity sha512-uZxy4wzllfvgCQxVc+Iqhde0NGAnfmV2hWR6ejadJaAFTuYNvQiRg9IqJy3pkyDPqXySiJ8Bom5PoJfgn55J/A==
235 | dependencies:
236 | "@aws-sdk/signature-v4" "3.226.0"
237 | "@aws-sdk/types" "3.226.0"
238 | "@aws-sdk/util-config-provider" "3.208.0"
239 | "@aws-sdk/util-middleware" "3.226.0"
240 | tslib "^2.3.1"
241 |
242 | "@aws-sdk/credential-provider-cognito-identity@3.236.0":
243 | version "3.236.0"
244 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.236.0.tgz#7936ce9a7ceaeff9045d85b3e69af9865c467bfc"
245 | integrity sha512-PDsUZ7gmSCwraDDYnmoSkmrA1tpmvDBDjNPUVe6E+/8tDw3SWiL2efGR6r8ajFh9m+6jF6B8Wy+YB3u3yjAjWQ==
246 | dependencies:
247 | "@aws-sdk/client-cognito-identity" "3.236.0"
248 | "@aws-sdk/property-provider" "3.226.0"
249 | "@aws-sdk/types" "3.226.0"
250 | tslib "^2.3.1"
251 |
252 | "@aws-sdk/credential-provider-env@3.226.0":
253 | version "3.226.0"
254 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.226.0.tgz#0bcb89a9abc166b3a48f5c255b9fcabc4cb80daf"
255 | integrity sha512-sd8uK1ojbXxaZXlthzw/VXZwCPUtU3PjObOfr3Evj7MPIM2IH8h29foOlggx939MdLQGboJf9gKvLlvKDWtJRA==
256 | dependencies:
257 | "@aws-sdk/property-provider" "3.226.0"
258 | "@aws-sdk/types" "3.226.0"
259 | tslib "^2.3.1"
260 |
261 | "@aws-sdk/credential-provider-imds@3.226.0":
262 | version "3.226.0"
263 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.226.0.tgz#0a4558449eb261412b0490ea1c3242eb91659759"
264 | integrity sha512-//z/COQm2AjYFI1Lb0wKHTQSrvLFTyuKLFQGPJsKS7DPoxGOCKB7hmYerlbl01IDoCxTdyL//TyyPxbZEOQD5Q==
265 | dependencies:
266 | "@aws-sdk/node-config-provider" "3.226.0"
267 | "@aws-sdk/property-provider" "3.226.0"
268 | "@aws-sdk/types" "3.226.0"
269 | "@aws-sdk/url-parser" "3.226.0"
270 | tslib "^2.3.1"
271 |
272 | "@aws-sdk/credential-provider-ini@3.236.0":
273 | version "3.236.0"
274 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.236.0.tgz#10270be0de0cd34b1a82187248ade3779ff02005"
275 | integrity sha512-W5vMEauWgFCzvf4Hks6ToU5dhbN87gyijmwp/l9AkKKvuJ25LkveAhk8xz3bydJThHdgWNEuBMyfmlVWmdybIg==
276 | dependencies:
277 | "@aws-sdk/credential-provider-env" "3.226.0"
278 | "@aws-sdk/credential-provider-imds" "3.226.0"
279 | "@aws-sdk/credential-provider-process" "3.226.0"
280 | "@aws-sdk/credential-provider-sso" "3.236.0"
281 | "@aws-sdk/credential-provider-web-identity" "3.226.0"
282 | "@aws-sdk/property-provider" "3.226.0"
283 | "@aws-sdk/shared-ini-file-loader" "3.226.0"
284 | "@aws-sdk/types" "3.226.0"
285 | tslib "^2.3.1"
286 |
287 | "@aws-sdk/credential-provider-node@3.236.0":
288 | version "3.236.0"
289 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.236.0.tgz#288f10f65c8b94d8f20f431e77febbe6c285ab42"
290 | integrity sha512-ktRPwmqw2P4dDzs/nJYTnuesSYqpDUEtqm2KSCKNT/fobzgfsrESLk3a7TY4l6N3muxQtKwguIa9Lulhe82+wg==
291 | dependencies:
292 | "@aws-sdk/credential-provider-env" "3.226.0"
293 | "@aws-sdk/credential-provider-imds" "3.226.0"
294 | "@aws-sdk/credential-provider-ini" "3.236.0"
295 | "@aws-sdk/credential-provider-process" "3.226.0"
296 | "@aws-sdk/credential-provider-sso" "3.236.0"
297 | "@aws-sdk/credential-provider-web-identity" "3.226.0"
298 | "@aws-sdk/property-provider" "3.226.0"
299 | "@aws-sdk/shared-ini-file-loader" "3.226.0"
300 | "@aws-sdk/types" "3.226.0"
301 | tslib "^2.3.1"
302 |
303 | "@aws-sdk/credential-provider-process@3.226.0":
304 | version "3.226.0"
305 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.226.0.tgz#bcd73a6d31d1b3181917d56e54aacbee242b077f"
306 | integrity sha512-iUDMdnrTvbvaCFhWwqyXrhvQ9+ojPqPqXhwZtY1X/Qaz+73S9gXBPJHZaZb2Ke0yKE1Ql3bJbKvmmxC/qLQMng==
307 | dependencies:
308 | "@aws-sdk/property-provider" "3.226.0"
309 | "@aws-sdk/shared-ini-file-loader" "3.226.0"
310 | "@aws-sdk/types" "3.226.0"
311 | tslib "^2.3.1"
312 |
313 | "@aws-sdk/credential-provider-sso@3.236.0":
314 | version "3.236.0"
315 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.236.0.tgz#98deadb0b689546bd5e93fc73dc6d6c87fe1c562"
316 | integrity sha512-HLeVsFHd8QLQwhjwhdlBhXOFIa33mzqmxOqe2Qr4FVD5IR1/G4zLpSWSwtYjpvWRZs2oWSg6XI7vSyeQttPmHg==
317 | dependencies:
318 | "@aws-sdk/client-sso" "3.236.0"
319 | "@aws-sdk/property-provider" "3.226.0"
320 | "@aws-sdk/shared-ini-file-loader" "3.226.0"
321 | "@aws-sdk/token-providers" "3.236.0"
322 | "@aws-sdk/types" "3.226.0"
323 | tslib "^2.3.1"
324 |
325 | "@aws-sdk/credential-provider-web-identity@3.226.0":
326 | version "3.226.0"
327 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.226.0.tgz#2b7d20f93a40e2243c7e3857f54b103d19a946fb"
328 | integrity sha512-CCpv847rLB0SFOHz2igvUMFAzeT2fD3YnY4C8jltuJoEkn0ITn1Hlgt13nTJ5BUuvyti2mvyXZHmNzhMIMrIlw==
329 | dependencies:
330 | "@aws-sdk/property-provider" "3.226.0"
331 | "@aws-sdk/types" "3.226.0"
332 | tslib "^2.3.1"
333 |
334 | "@aws-sdk/credential-providers@^3.186.0":
335 | version "3.236.0"
336 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.236.0.tgz#52c6f0e5baa1f0eab1f39171b47102806809d504"
337 | integrity sha512-z7RU5E9xlk6KX16jJxByn8xa8mv8pPZoqAPkavCsFJS6pOYTtQJYYdjrUK/2EmOmbPpc62P6mqVP7qTVQKgafw==
338 | dependencies:
339 | "@aws-sdk/client-cognito-identity" "3.236.0"
340 | "@aws-sdk/client-sso" "3.236.0"
341 | "@aws-sdk/client-sts" "3.236.0"
342 | "@aws-sdk/credential-provider-cognito-identity" "3.236.0"
343 | "@aws-sdk/credential-provider-env" "3.226.0"
344 | "@aws-sdk/credential-provider-imds" "3.226.0"
345 | "@aws-sdk/credential-provider-ini" "3.236.0"
346 | "@aws-sdk/credential-provider-node" "3.236.0"
347 | "@aws-sdk/credential-provider-process" "3.226.0"
348 | "@aws-sdk/credential-provider-sso" "3.236.0"
349 | "@aws-sdk/credential-provider-web-identity" "3.226.0"
350 | "@aws-sdk/property-provider" "3.226.0"
351 | "@aws-sdk/shared-ini-file-loader" "3.226.0"
352 | "@aws-sdk/types" "3.226.0"
353 | tslib "^2.3.1"
354 |
355 | "@aws-sdk/fetch-http-handler@3.226.0":
356 | version "3.226.0"
357 | resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.226.0.tgz#350f78fc18fe9cb0a889ef4870838a8fcfa8855c"
358 | integrity sha512-JewZPMNEBXfi1xVnRa7pVtK/zgZD8/lQ/YnD8pq79WuMa2cwyhDtr8oqCoqsPW+WJT5ScXoMtuHxN78l8eKWgg==
359 | dependencies:
360 | "@aws-sdk/protocol-http" "3.226.0"
361 | "@aws-sdk/querystring-builder" "3.226.0"
362 | "@aws-sdk/types" "3.226.0"
363 | "@aws-sdk/util-base64" "3.208.0"
364 | tslib "^2.3.1"
365 |
366 | "@aws-sdk/hash-node@3.226.0":
367 | version "3.226.0"
368 | resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.226.0.tgz#252d98bcbb1e13c8f26d9d416db03cf8cceac185"
369 | integrity sha512-MdlJhJ9/Espwd0+gUXdZRsHuostB2WxEVAszWxobP0FTT9PnicqnfK7ExmW+DUAc0ywxtEbR3e0UND65rlSTVw==
370 | dependencies:
371 | "@aws-sdk/types" "3.226.0"
372 | "@aws-sdk/util-buffer-from" "3.208.0"
373 | tslib "^2.3.1"
374 |
375 | "@aws-sdk/invalid-dependency@3.226.0":
376 | version "3.226.0"
377 | resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.226.0.tgz#74586f60859ed1813985e3d642066cc46d2e9d40"
378 | integrity sha512-QXOYFmap8g9QzRjumcRCIo2GEZkdCwd7ePQW0OABWPhKHzlJ74vvBxywjU3s39EEBEluWXtZ7Iufg6GxZM4ifw==
379 | dependencies:
380 | "@aws-sdk/types" "3.226.0"
381 | tslib "^2.3.1"
382 |
383 | "@aws-sdk/is-array-buffer@3.201.0":
384 | version "3.201.0"
385 | resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz#06e557adc284fac2f26071c2944ae01f61b95854"
386 | integrity sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==
387 | dependencies:
388 | tslib "^2.3.1"
389 |
390 | "@aws-sdk/middleware-content-length@3.226.0":
391 | version "3.226.0"
392 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.226.0.tgz#6cc952049f6e3cdc3a3778c9dce9f2aee942b5fe"
393 | integrity sha512-ksUzlHJN2JMuyavjA46a4sctvnrnITqt2tbGGWWrAuXY1mel2j+VbgnmJUiwHKUO6bTFBBeft5Vd1TSOb4JmiA==
394 | dependencies:
395 | "@aws-sdk/protocol-http" "3.226.0"
396 | "@aws-sdk/types" "3.226.0"
397 | tslib "^2.3.1"
398 |
399 | "@aws-sdk/middleware-endpoint@3.226.0":
400 | version "3.226.0"
401 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.226.0.tgz#d776480be4b5a9534c2805b7425be05497f840b7"
402 | integrity sha512-EvLFafjtUxTT0AC9p3aBQu1/fjhWdIeK58jIXaNFONfZ3F8QbEYUPuF/SqZvJM6cWfOO9qwYKkRDbCSTYhprIg==
403 | dependencies:
404 | "@aws-sdk/middleware-serde" "3.226.0"
405 | "@aws-sdk/protocol-http" "3.226.0"
406 | "@aws-sdk/signature-v4" "3.226.0"
407 | "@aws-sdk/types" "3.226.0"
408 | "@aws-sdk/url-parser" "3.226.0"
409 | "@aws-sdk/util-config-provider" "3.208.0"
410 | "@aws-sdk/util-middleware" "3.226.0"
411 | tslib "^2.3.1"
412 |
413 | "@aws-sdk/middleware-host-header@3.226.0":
414 | version "3.226.0"
415 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.226.0.tgz#1e1ecb034929e0dbc532ae501fd93781438f9a24"
416 | integrity sha512-haVkWVh6BUPwKgWwkL6sDvTkcZWvJjv8AgC8jiQuSl8GLZdzHTB8Qhi3IsfFta9HAuoLjxheWBE5Z/L0UrfhLA==
417 | dependencies:
418 | "@aws-sdk/protocol-http" "3.226.0"
419 | "@aws-sdk/types" "3.226.0"
420 | tslib "^2.3.1"
421 |
422 | "@aws-sdk/middleware-logger@3.226.0":
423 | version "3.226.0"
424 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.226.0.tgz#37fd0e62f555befd526b03748c3aab60dcefecf3"
425 | integrity sha512-m9gtLrrYnpN6yckcQ09rV7ExWOLMuq8mMPF/K3DbL/YL0TuILu9i2T1W+JuxSX+K9FMG2HrLAKivE/kMLr55xA==
426 | dependencies:
427 | "@aws-sdk/types" "3.226.0"
428 | tslib "^2.3.1"
429 |
430 | "@aws-sdk/middleware-recursion-detection@3.226.0":
431 | version "3.226.0"
432 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.226.0.tgz#e149b9138e94d2fa70e7752ba6b1ccb537009706"
433 | integrity sha512-mwRbdKEUeuNH5TEkyZ5FWxp6bL2UC1WbY+LDv6YjHxmSMKpAoOueEdtU34PqDOLrpXXxIGHDFmjeGeMfktyEcA==
434 | dependencies:
435 | "@aws-sdk/protocol-http" "3.226.0"
436 | "@aws-sdk/types" "3.226.0"
437 | tslib "^2.3.1"
438 |
439 | "@aws-sdk/middleware-retry@3.235.0":
440 | version "3.235.0"
441 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.235.0.tgz#c0d938db85a771812204ed5e981eaf5eef6b580b"
442 | integrity sha512-50WHbJGpD3SNp9763MAlHqIhXil++JdQbKejNpHg7HsJne/ao3ub+fDOfx//mMBjpzBV25BGd5UlfL6blrClSg==
443 | dependencies:
444 | "@aws-sdk/protocol-http" "3.226.0"
445 | "@aws-sdk/service-error-classification" "3.229.0"
446 | "@aws-sdk/types" "3.226.0"
447 | "@aws-sdk/util-middleware" "3.226.0"
448 | "@aws-sdk/util-retry" "3.229.0"
449 | tslib "^2.3.1"
450 | uuid "^8.3.2"
451 |
452 | "@aws-sdk/middleware-sdk-sts@3.226.0":
453 | version "3.226.0"
454 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.226.0.tgz#e8a8cf42bba8963259546120cde1e408628863f9"
455 | integrity sha512-NN9T/qoSD1kZvAT+VLny3NnlqgylYQcsgV3rvi/8lYzw/G/2s8VS6sm/VTWGGZhx08wZRv20MWzYu3bftcyqUg==
456 | dependencies:
457 | "@aws-sdk/middleware-signing" "3.226.0"
458 | "@aws-sdk/property-provider" "3.226.0"
459 | "@aws-sdk/protocol-http" "3.226.0"
460 | "@aws-sdk/signature-v4" "3.226.0"
461 | "@aws-sdk/types" "3.226.0"
462 | tslib "^2.3.1"
463 |
464 | "@aws-sdk/middleware-serde@3.226.0":
465 | version "3.226.0"
466 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.226.0.tgz#c837ef33b34bec2af19a1c177a0c02a1ae20da5e"
467 | integrity sha512-nPuOOAkSfx9TxzdKFx0X2bDlinOxGrqD7iof926K/AEflxGD1DBdcaDdjlYlPDW2CVE8LV/rAgbYuLxh/E/1VA==
468 | dependencies:
469 | "@aws-sdk/types" "3.226.0"
470 | tslib "^2.3.1"
471 |
472 | "@aws-sdk/middleware-signing@3.226.0":
473 | version "3.226.0"
474 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.226.0.tgz#ebb1d142ac2767466f2e464bb7dba9837143b4d1"
475 | integrity sha512-E6HmtPcl+IjYDDzi1xI2HpCbBq2avNWcjvCriMZWuTAtRVpnA6XDDGW5GY85IfS3A8G8vuWqEVPr8JcYUcjfew==
476 | dependencies:
477 | "@aws-sdk/property-provider" "3.226.0"
478 | "@aws-sdk/protocol-http" "3.226.0"
479 | "@aws-sdk/signature-v4" "3.226.0"
480 | "@aws-sdk/types" "3.226.0"
481 | "@aws-sdk/util-middleware" "3.226.0"
482 | tslib "^2.3.1"
483 |
484 | "@aws-sdk/middleware-stack@3.226.0":
485 | version "3.226.0"
486 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.226.0.tgz#b0408370270188103987c457c758f9cf7651754f"
487 | integrity sha512-85wF29LvPvpoed60fZGDYLwv1Zpd/cM0C22WSSFPw1SSJeqO4gtFYyCg2squfT3KI6kF43IIkOCJ+L7GtryPug==
488 | dependencies:
489 | tslib "^2.3.1"
490 |
491 | "@aws-sdk/middleware-user-agent@3.226.0":
492 | version "3.226.0"
493 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.226.0.tgz#26653189f3e8da86514f77688a80d0ad445c0799"
494 | integrity sha512-N1WnfzCW1Y5yWhVAphf8OPGTe8Df3vmV7/LdsoQfmpkCZgLZeK2o0xITkUQhRj1mbw7yp8tVFLFV3R2lMurdAQ==
495 | dependencies:
496 | "@aws-sdk/protocol-http" "3.226.0"
497 | "@aws-sdk/types" "3.226.0"
498 | tslib "^2.3.1"
499 |
500 | "@aws-sdk/node-config-provider@3.226.0":
501 | version "3.226.0"
502 | resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.226.0.tgz#a9e21512ef824142bb928a0b2f85b39a75b8964d"
503 | integrity sha512-B8lQDqiRk7X5izFEUMXmi8CZLOKCTWQJU9HQf3ako+sF0gexo4nHN3jhoRWyLtcgC5S3on/2jxpAcqtm7kuY3w==
504 | dependencies:
505 | "@aws-sdk/property-provider" "3.226.0"
506 | "@aws-sdk/shared-ini-file-loader" "3.226.0"
507 | "@aws-sdk/types" "3.226.0"
508 | tslib "^2.3.1"
509 |
510 | "@aws-sdk/node-http-handler@3.226.0":
511 | version "3.226.0"
512 | resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.226.0.tgz#373886e949d214a99a3521bd6c141fa17b0e89fe"
513 | integrity sha512-xQCddnZNMiPmjr3W7HYM+f5ir4VfxgJh37eqZwX6EZmyItFpNNeVzKUgA920ka1VPz/ZUYB+2OFGiX3LCLkkaA==
514 | dependencies:
515 | "@aws-sdk/abort-controller" "3.226.0"
516 | "@aws-sdk/protocol-http" "3.226.0"
517 | "@aws-sdk/querystring-builder" "3.226.0"
518 | "@aws-sdk/types" "3.226.0"
519 | tslib "^2.3.1"
520 |
521 | "@aws-sdk/property-provider@3.226.0":
522 | version "3.226.0"
523 | resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.226.0.tgz#ef0ff37c319dc37a52f08fa7544f861308a3bbd8"
524 | integrity sha512-TsljjG+Sg0LmdgfiAlWohluWKnxB/k8xenjeozZfzOr5bHmNHtdbWv6BtNvD/R83hw7SFXxbJHlD5H4u9p2NFg==
525 | dependencies:
526 | "@aws-sdk/types" "3.226.0"
527 | tslib "^2.3.1"
528 |
529 | "@aws-sdk/protocol-http@3.226.0":
530 | version "3.226.0"
531 | resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.226.0.tgz#0af7bdc331508e556b722aad0cb78eefa93466e3"
532 | integrity sha512-zWkVqiTA9RXL6y0hhfZc9bcU4DX2NI6Hw9IhQmSPeM59mdbPjJlY4bLlMr5YxywqO3yQ/ylNoAfrEzrDjlOSRg==
533 | dependencies:
534 | "@aws-sdk/types" "3.226.0"
535 | tslib "^2.3.1"
536 |
537 | "@aws-sdk/querystring-builder@3.226.0":
538 | version "3.226.0"
539 | resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.226.0.tgz#11cd751abeac66f1f9349225454bac3e39808926"
540 | integrity sha512-LVurypuNeotO4lmirKXRC4NYrZRAyMJXuwO0f2a5ZAUJCjauwYrifKue6yCfU7bls7gut7nfcR6B99WBYpHs3g==
541 | dependencies:
542 | "@aws-sdk/types" "3.226.0"
543 | "@aws-sdk/util-uri-escape" "3.201.0"
544 | tslib "^2.3.1"
545 |
546 | "@aws-sdk/querystring-parser@3.226.0":
547 | version "3.226.0"
548 | resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.226.0.tgz#ba6a26727c98d46c95180e6cdc463039c5e4740d"
549 | integrity sha512-FzB+VrQ47KAFxiPt2YXrKZ8AOLZQqGTLCKHzx4bjxGmwgsjV8yIbtJiJhZLMcUQV4LtGeIY9ixIqQhGvnZHE4A==
550 | dependencies:
551 | "@aws-sdk/types" "3.226.0"
552 | tslib "^2.3.1"
553 |
554 | "@aws-sdk/service-error-classification@3.229.0":
555 | version "3.229.0"
556 | resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.229.0.tgz#768f1eb92775ca2cc99c6451a2303a0008a28fc1"
557 | integrity sha512-dnzWWQ0/NoWMUZ5C0DW3dPm0wC1O76Y/SpKbuJzWPkx1EYy6r8p32Ly4D9vUzrKDbRGf48YHIF2kOkBmu21CLg==
558 |
559 | "@aws-sdk/shared-ini-file-loader@3.226.0":
560 | version "3.226.0"
561 | resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.226.0.tgz#d0ade86834b1803ce4b9dcab459e57e0376fd6cf"
562 | integrity sha512-661VQefsARxVyyV2FX9V61V+nNgImk7aN2hYlFKla6BCwZfMng+dEtD0xVGyg1PfRw0qvEv5LQyxMVgHcUSevA==
563 | dependencies:
564 | "@aws-sdk/types" "3.226.0"
565 | tslib "^2.3.1"
566 |
567 | "@aws-sdk/signature-v4@3.226.0":
568 | version "3.226.0"
569 | resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.226.0.tgz#100390b5c5b55a9b0abd05b06fceb36cfa0ecf98"
570 | integrity sha512-/R5q5agdPd7HJB68XMzpxrNPk158EHUvkFkuRu5Qf3kkkHebEzWEBlWoVpUe6ss4rP9Tqcue6xPuaftEmhjpYw==
571 | dependencies:
572 | "@aws-sdk/is-array-buffer" "3.201.0"
573 | "@aws-sdk/types" "3.226.0"
574 | "@aws-sdk/util-hex-encoding" "3.201.0"
575 | "@aws-sdk/util-middleware" "3.226.0"
576 | "@aws-sdk/util-uri-escape" "3.201.0"
577 | tslib "^2.3.1"
578 |
579 | "@aws-sdk/smithy-client@3.234.0":
580 | version "3.234.0"
581 | resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.234.0.tgz#8f0021e021f0e52730ed0a8f271f839eb63bc374"
582 | integrity sha512-8AtR/k4vsFvjXeQbIzq/Wy7Nbk48Ou0wUEeVYPHWHPSU8QamFWORkOwmKtKMfHAyZvmqiAPeQqHFkq+UJhWyyQ==
583 | dependencies:
584 | "@aws-sdk/middleware-stack" "3.226.0"
585 | "@aws-sdk/types" "3.226.0"
586 | tslib "^2.3.1"
587 |
588 | "@aws-sdk/token-providers@3.236.0":
589 | version "3.236.0"
590 | resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.236.0.tgz#c98ad2abad2a3686dbe849d680572f11ce965605"
591 | integrity sha512-gmHuWuQgl6+2UfdbOvtsns/byZQnPGjyQ88/SlKgnX2EcDd31ENb8wRa9gfIEwvx6rTB2ve1NAhuliydB9AomQ==
592 | dependencies:
593 | "@aws-sdk/client-sso-oidc" "3.236.0"
594 | "@aws-sdk/property-provider" "3.226.0"
595 | "@aws-sdk/shared-ini-file-loader" "3.226.0"
596 | "@aws-sdk/types" "3.226.0"
597 | tslib "^2.3.1"
598 |
599 | "@aws-sdk/types@3.226.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.110.0":
600 | version "3.226.0"
601 | resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.226.0.tgz#3dba2ba223fbb8ac1ebc84de0e036ce69a81d469"
602 | integrity sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==
603 | dependencies:
604 | tslib "^2.3.1"
605 |
606 | "@aws-sdk/url-parser@3.226.0":
607 | version "3.226.0"
608 | resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.226.0.tgz#f53d1f868b27fe74aca091a799f2af56237b15a2"
609 | integrity sha512-p5RLE0QWyP0OcTOLmFcLdVgUcUEzmEfmdrnOxyNzomcYb0p3vUagA5zfa1HVK2azsQJFBv28GfvMnba9bGhObg==
610 | dependencies:
611 | "@aws-sdk/querystring-parser" "3.226.0"
612 | "@aws-sdk/types" "3.226.0"
613 | tslib "^2.3.1"
614 |
615 | "@aws-sdk/util-base64@3.208.0":
616 | version "3.208.0"
617 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz#36b430e5396251f761590f7c2f0c5c12193f353c"
618 | integrity sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==
619 | dependencies:
620 | "@aws-sdk/util-buffer-from" "3.208.0"
621 | tslib "^2.3.1"
622 |
623 | "@aws-sdk/util-body-length-browser@3.188.0":
624 | version "3.188.0"
625 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz#e1d949318c10a621b38575a9ef01e39f9857ddb0"
626 | integrity sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==
627 | dependencies:
628 | tslib "^2.3.1"
629 |
630 | "@aws-sdk/util-body-length-node@3.208.0":
631 | version "3.208.0"
632 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz#baabd1fa1206ff2bd4ce3785122d86eb3258dd20"
633 | integrity sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==
634 | dependencies:
635 | tslib "^2.3.1"
636 |
637 | "@aws-sdk/util-buffer-from@3.208.0":
638 | version "3.208.0"
639 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz#285e86f6dc9030148a4147d65239e75cb254a1b0"
640 | integrity sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==
641 | dependencies:
642 | "@aws-sdk/is-array-buffer" "3.201.0"
643 | tslib "^2.3.1"
644 |
645 | "@aws-sdk/util-config-provider@3.208.0":
646 | version "3.208.0"
647 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz#c485fd83fbac051337e5f6be60ea3f9fa61c0139"
648 | integrity sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==
649 | dependencies:
650 | tslib "^2.3.1"
651 |
652 | "@aws-sdk/util-defaults-mode-browser@3.234.0":
653 | version "3.234.0"
654 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.234.0.tgz#1151f0beabdb46c1aaca42a1ad0714b8e686acaa"
655 | integrity sha512-IHMKXjTbOD8XMz5+2oCOsVP94BYb9YyjXdns0aAXr2NAo7k2+RCzXQ2DebJXppGda1F6opFutoKwyVSN0cmbMw==
656 | dependencies:
657 | "@aws-sdk/property-provider" "3.226.0"
658 | "@aws-sdk/types" "3.226.0"
659 | bowser "^2.11.0"
660 | tslib "^2.3.1"
661 |
662 | "@aws-sdk/util-defaults-mode-node@3.234.0":
663 | version "3.234.0"
664 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.234.0.tgz#0607f1dc7a4dc896dfcaf377522535ca9ffba7a9"
665 | integrity sha512-UGjQ+OjBYYhxFVtUY+jtr0ZZgzZh6OHtYwRhFt8IHewJXFCfZTyfsbX20szBj5y1S4HRIUJ7cwBLIytTqMbI5w==
666 | dependencies:
667 | "@aws-sdk/config-resolver" "3.234.0"
668 | "@aws-sdk/credential-provider-imds" "3.226.0"
669 | "@aws-sdk/node-config-provider" "3.226.0"
670 | "@aws-sdk/property-provider" "3.226.0"
671 | "@aws-sdk/types" "3.226.0"
672 | tslib "^2.3.1"
673 |
674 | "@aws-sdk/util-endpoints@3.226.0":
675 | version "3.226.0"
676 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.226.0.tgz#3728b2e30f6f757ae862a0b7cf3991e75f252c3f"
677 | integrity sha512-iqOkac/zLmyPBUJd7SLN0PeZMkOmlGgD5PHmmekTClOkce2eUjK9SNX1PzL73aXPoPTyhg9QGLH8uEZEQ8YUzg==
678 | dependencies:
679 | "@aws-sdk/types" "3.226.0"
680 | tslib "^2.3.1"
681 |
682 | "@aws-sdk/util-hex-encoding@3.201.0":
683 | version "3.201.0"
684 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz#21d7ec319240ee68c33d938e71cb79830bea315d"
685 | integrity sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==
686 | dependencies:
687 | tslib "^2.3.1"
688 |
689 | "@aws-sdk/util-locate-window@^3.0.0":
690 | version "3.208.0"
691 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz#0f598fc238a1256e4bcb64d01459f03a922dd4c3"
692 | integrity sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==
693 | dependencies:
694 | tslib "^2.3.1"
695 |
696 | "@aws-sdk/util-middleware@3.226.0":
697 | version "3.226.0"
698 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.226.0.tgz#7069ae96e2e00f6bb82c722e073922fb2b051ca2"
699 | integrity sha512-B96CQnwX4gRvQdaQkdUtqvDPkrptV5+va6FVeJOocU/DbSYMAScLxtR3peMS8cnlOT6nL1Eoa42OI9AfZz1VwQ==
700 | dependencies:
701 | tslib "^2.3.1"
702 |
703 | "@aws-sdk/util-retry@3.229.0":
704 | version "3.229.0"
705 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.229.0.tgz#17aad47b067e81acf644d5c2c0f2325f2d8faf4f"
706 | integrity sha512-0zKTqi0P1inD0LzIMuXRIYYQ/8c1lWMg/cfiqUcIAF1TpatlpZuN7umU0ierpBFud7S+zDgg0oemh+Nj8xliJw==
707 | dependencies:
708 | "@aws-sdk/service-error-classification" "3.229.0"
709 | tslib "^2.3.1"
710 |
711 | "@aws-sdk/util-uri-escape@3.201.0":
712 | version "3.201.0"
713 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz#5e708d4cde001a4558ee616f889ceacfadd2ab03"
714 | integrity sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==
715 | dependencies:
716 | tslib "^2.3.1"
717 |
718 | "@aws-sdk/util-user-agent-browser@3.226.0":
719 | version "3.226.0"
720 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.226.0.tgz#164bb2da8d6353133784e47f0a0ae463bc9ebb73"
721 | integrity sha512-PhBIu2h6sPJPcv2I7ELfFizdl5pNiL4LfxrasMCYXQkJvVnoXztHA1x+CQbXIdtZOIlpjC+6BjDcE0uhnpvfcA==
722 | dependencies:
723 | "@aws-sdk/types" "3.226.0"
724 | bowser "^2.11.0"
725 | tslib "^2.3.1"
726 |
727 | "@aws-sdk/util-user-agent-node@3.226.0":
728 | version "3.226.0"
729 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.226.0.tgz#7569460b9efc6bbd5295275c51357e480ff469c2"
730 | integrity sha512-othPc5Dz/pkYkxH+nZPhc1Al0HndQT8zHD4e9h+EZ+8lkd8n+IsnLfTS/mSJWrfiC6UlNRVw55cItstmJyMe/A==
731 | dependencies:
732 | "@aws-sdk/node-config-provider" "3.226.0"
733 | "@aws-sdk/types" "3.226.0"
734 | tslib "^2.3.1"
735 |
736 | "@aws-sdk/util-utf8-browser@3.188.0", "@aws-sdk/util-utf8-browser@^3.0.0":
737 | version "3.188.0"
738 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz#484762bd600401350e148277731d6744a4a92225"
739 | integrity sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==
740 | dependencies:
741 | tslib "^2.3.1"
742 |
743 | "@aws-sdk/util-utf8-node@3.208.0":
744 | version "3.208.0"
745 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz#eba17de0f92f87b98481c2e2d0ceaa05c7994d67"
746 | integrity sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==
747 | dependencies:
748 | "@aws-sdk/util-buffer-from" "3.208.0"
749 | tslib "^2.3.1"
750 |
751 | "@babel/code-frame@7.12.11":
752 | version "7.12.11"
753 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
754 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
755 | dependencies:
756 | "@babel/highlight" "^7.10.4"
757 |
758 | "@babel/helper-validator-identifier@^7.18.6":
759 | version "7.19.1"
760 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
761 | integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
762 |
763 | "@babel/highlight@^7.10.4":
764 | version "7.18.6"
765 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
766 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
767 | dependencies:
768 | "@babel/helper-validator-identifier" "^7.18.6"
769 | chalk "^2.0.0"
770 | js-tokens "^4.0.0"
771 |
772 | "@discordjs/builders@^1.4.0":
773 | version "1.4.0"
774 | resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.4.0.tgz#b951b5e6ce4e459cd06174ce50dbd51c254c1d47"
775 | integrity sha512-nEeTCheTTDw5kO93faM1j8ZJPonAX86qpq/QVoznnSa8WWcCgJpjlu6GylfINTDW6o7zZY0my2SYdxx2mfNwGA==
776 | dependencies:
777 | "@discordjs/util" "^0.1.0"
778 | "@sapphire/shapeshift" "^3.7.1"
779 | discord-api-types "^0.37.20"
780 | fast-deep-equal "^3.1.3"
781 | ts-mixer "^6.0.2"
782 | tslib "^2.4.1"
783 |
784 | "@discordjs/collection@^1.3.0":
785 | version "1.3.0"
786 | resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.3.0.tgz#65bf9674db72f38c25212be562bb28fa0dba6aa3"
787 | integrity sha512-ylt2NyZ77bJbRij4h9u/wVy7qYw/aDqQLWnadjvDqW/WoWCxrsX6M3CIw9GVP5xcGCDxsrKj5e0r5evuFYwrKg==
788 |
789 | "@discordjs/rest@^1.4.0":
790 | version "1.5.0"
791 | resolved "https://registry.yarnpkg.com/@discordjs/rest/-/rest-1.5.0.tgz#dc15474ab98cf6f31291bf61bbc72bcf4f30cea2"
792 | integrity sha512-lXgNFqHnbmzp5u81W0+frdXN6Etf4EUi8FAPcWpSykKd8hmlWh1xy6BmE0bsJypU1pxohaA8lQCgp70NUI3uzA==
793 | dependencies:
794 | "@discordjs/collection" "^1.3.0"
795 | "@discordjs/util" "^0.1.0"
796 | "@sapphire/async-queue" "^1.5.0"
797 | "@sapphire/snowflake" "^3.2.2"
798 | discord-api-types "^0.37.23"
799 | file-type "^18.0.0"
800 | tslib "^2.4.1"
801 | undici "^5.13.0"
802 |
803 | "@discordjs/util@^0.1.0":
804 | version "0.1.0"
805 | resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-0.1.0.tgz#e42ca1bf407bc6d9adf252877d1b206e32ba369a"
806 | integrity sha512-e7d+PaTLVQav6rOc2tojh2y6FE8S7REkqLldq1XF4soCx74XB/DIjbVbVLtBemf0nLW77ntz0v+o5DytKwFNLQ==
807 |
808 | "@discordjs/voice@^0.14.0":
809 | version "0.14.0"
810 | resolved "https://registry.yarnpkg.com/@discordjs/voice/-/voice-0.14.0.tgz#8e5be1a76bb6c1e6e75236237f00241c763b2833"
811 | integrity sha512-/LV8LSFuJ1c4OEW1ubPg3al2QNpUpwX8ZL+KL+LORmnUFVCtehSaEh+38uDfWg1O/TgiGI5vOLj4ZKql43drcw==
812 | dependencies:
813 | "@types/ws" "^8.5.3"
814 | discord-api-types "^0.37.20"
815 | prism-media "^1.3.4"
816 | tslib "^2.4.1"
817 | ws "^8.11.0"
818 |
819 | "@eslint/eslintrc@^0.4.3":
820 | version "0.4.3"
821 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
822 | integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==
823 | dependencies:
824 | ajv "^6.12.4"
825 | debug "^4.1.1"
826 | espree "^7.3.0"
827 | globals "^13.9.0"
828 | ignore "^4.0.6"
829 | import-fresh "^3.2.1"
830 | js-yaml "^3.13.1"
831 | minimatch "^3.0.4"
832 | strip-json-comments "^3.1.1"
833 |
834 | "@humanwhocodes/config-array@^0.5.0":
835 | version "0.5.0"
836 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9"
837 | integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==
838 | dependencies:
839 | "@humanwhocodes/object-schema" "^1.2.0"
840 | debug "^4.1.1"
841 | minimatch "^3.0.4"
842 |
843 | "@humanwhocodes/object-schema@^1.2.0":
844 | version "1.2.1"
845 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
846 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
847 |
848 | "@sapphire/async-queue@^1.5.0":
849 | version "1.5.0"
850 | resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.0.tgz#2f255a3f186635c4fb5a2381e375d3dfbc5312d8"
851 | integrity sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==
852 |
853 | "@sapphire/shapeshift@^3.7.1":
854 | version "3.8.1"
855 | resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.8.1.tgz#b98dc6a7180f9b38219267917b2e6fa33f9ec656"
856 | integrity sha512-xG1oXXBhCjPKbxrRTlox9ddaZTvVpOhYLmKmApD/vIWOV1xEYXnpoFs68zHIZBGbqztq6FrUPNPerIrO1Hqeaw==
857 | dependencies:
858 | fast-deep-equal "^3.1.3"
859 | lodash "^4.17.21"
860 |
861 | "@sapphire/snowflake@^3.2.2":
862 | version "3.3.0"
863 | resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.3.0.tgz#247413e4d7924a9f508c6a5c8d427e4105ac0fe6"
864 | integrity sha512-Hec5N6zEkZuZFLybVKyLFLlcSgYmR6C1/+9NkIhxPwOf6tgX52ndJCSz8ADejmbrNE0VuNCNkpzhRZzenEC9vA==
865 |
866 | "@tokenizer/token@^0.3.0":
867 | version "0.3.0"
868 | resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276"
869 | integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==
870 |
871 | "@types/node@*":
872 | version "18.11.17"
873 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.17.tgz#5c009e1d9c38f4a2a9d45c0b0c493fe6cdb4bcb5"
874 | integrity sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==
875 |
876 | "@types/webidl-conversions@*":
877 | version "7.0.0"
878 | resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz#2b8e60e33906459219aa587e9d1a612ae994cfe7"
879 | integrity sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==
880 |
881 | "@types/whatwg-url@^8.2.1":
882 | version "8.2.2"
883 | resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz#749d5b3873e845897ada99be4448041d4cc39e63"
884 | integrity sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==
885 | dependencies:
886 | "@types/node" "*"
887 | "@types/webidl-conversions" "*"
888 |
889 | "@types/ws@^8.5.3":
890 | version "8.5.3"
891 | resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d"
892 | integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==
893 | dependencies:
894 | "@types/node" "*"
895 |
896 | acorn-jsx@^5.3.1:
897 | version "5.3.2"
898 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
899 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
900 |
901 | acorn@^7.4.0:
902 | version "7.4.1"
903 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
904 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
905 |
906 | ajv@^6.10.0, ajv@^6.12.4:
907 | version "6.12.6"
908 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
909 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
910 | dependencies:
911 | fast-deep-equal "^3.1.1"
912 | fast-json-stable-stringify "^2.0.0"
913 | json-schema-traverse "^0.4.1"
914 | uri-js "^4.2.2"
915 |
916 | ajv@^8.0.1:
917 | version "8.11.2"
918 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.2.tgz#aecb20b50607acf2569b6382167b65a96008bb78"
919 | integrity sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==
920 | dependencies:
921 | fast-deep-equal "^3.1.1"
922 | json-schema-traverse "^1.0.0"
923 | require-from-string "^2.0.2"
924 | uri-js "^4.2.2"
925 |
926 | ansi-colors@^4.1.1:
927 | version "4.1.3"
928 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
929 | integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==
930 |
931 | ansi-regex@^5.0.1:
932 | version "5.0.1"
933 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
934 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
935 |
936 | ansi-styles@^3.2.1:
937 | version "3.2.1"
938 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
939 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
940 | dependencies:
941 | color-convert "^1.9.0"
942 |
943 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
944 | version "4.3.0"
945 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
946 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
947 | dependencies:
948 | color-convert "^2.0.1"
949 |
950 | argparse@^1.0.7:
951 | version "1.0.10"
952 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
953 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
954 | dependencies:
955 | sprintf-js "~1.0.2"
956 |
957 | astral-regex@^2.0.0:
958 | version "2.0.0"
959 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
960 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
961 |
962 | balanced-match@^1.0.0:
963 | version "1.0.2"
964 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
965 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
966 |
967 | base64-js@^1.3.1:
968 | version "1.5.1"
969 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
970 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
971 |
972 | bowser@^2.11.0:
973 | version "2.11.0"
974 | resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f"
975 | integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==
976 |
977 | brace-expansion@^1.1.7:
978 | version "1.1.11"
979 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
980 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
981 | dependencies:
982 | balanced-match "^1.0.0"
983 | concat-map "0.0.1"
984 |
985 | bson@^4.7.0:
986 | version "4.7.0"
987 | resolved "https://registry.yarnpkg.com/bson/-/bson-4.7.0.tgz#7874a60091ffc7a45c5dd2973b5cad7cded9718a"
988 | integrity sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==
989 | dependencies:
990 | buffer "^5.6.0"
991 |
992 | buffer@^5.6.0:
993 | version "5.7.1"
994 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
995 | integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
996 | dependencies:
997 | base64-js "^1.3.1"
998 | ieee754 "^1.1.13"
999 |
1000 | busboy@^1.6.0:
1001 | version "1.6.0"
1002 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
1003 | integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
1004 | dependencies:
1005 | streamsearch "^1.1.0"
1006 |
1007 | callsites@^3.0.0:
1008 | version "3.1.0"
1009 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
1010 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
1011 |
1012 | chalk@^2.0.0:
1013 | version "2.4.2"
1014 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
1015 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
1016 | dependencies:
1017 | ansi-styles "^3.2.1"
1018 | escape-string-regexp "^1.0.5"
1019 | supports-color "^5.3.0"
1020 |
1021 | chalk@^4.0.0:
1022 | version "4.1.2"
1023 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
1024 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
1025 | dependencies:
1026 | ansi-styles "^4.1.0"
1027 | supports-color "^7.1.0"
1028 |
1029 | color-convert@^1.9.0:
1030 | version "1.9.3"
1031 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
1032 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
1033 | dependencies:
1034 | color-name "1.1.3"
1035 |
1036 | color-convert@^2.0.1:
1037 | version "2.0.1"
1038 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
1039 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
1040 | dependencies:
1041 | color-name "~1.1.4"
1042 |
1043 | color-name@1.1.3:
1044 | version "1.1.3"
1045 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
1046 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
1047 |
1048 | color-name@~1.1.4:
1049 | version "1.1.4"
1050 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
1051 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
1052 |
1053 | concat-map@0.0.1:
1054 | version "0.0.1"
1055 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
1056 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
1057 |
1058 | cross-spawn@^7.0.2:
1059 | version "7.0.3"
1060 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
1061 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
1062 | dependencies:
1063 | path-key "^3.1.0"
1064 | shebang-command "^2.0.0"
1065 | which "^2.0.1"
1066 |
1067 | debug@4.x, debug@^4.0.1, debug@^4.1.1:
1068 | version "4.3.4"
1069 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
1070 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
1071 | dependencies:
1072 | ms "2.1.2"
1073 |
1074 | deep-is@^0.1.3:
1075 | version "0.1.4"
1076 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
1077 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
1078 |
1079 | discord-api-types@^0.37.20, discord-api-types@^0.37.23:
1080 | version "0.37.24"
1081 | resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.24.tgz#f3ee0ad6b2b70925b5225f9beac6e24bc4de6e46"
1082 | integrity sha512-1+Fb4huJCihdbkJLcq2p7nBmtlmAryNwjefT8wwJnL8c7bc7WA87Oaa5mbLe96QvZyfwnwRCDX40H0HhcVV50g==
1083 |
1084 | discord.js@^14.7.1:
1085 | version "14.7.1"
1086 | resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-14.7.1.tgz#26079d0ff4d27daf02480a403c456121f0682bd9"
1087 | integrity sha512-1FECvqJJjjeYcjSm0IGMnPxLqja/pmG1B0W2l3lUY2Gi4KXiyTeQmU1IxWcbXHn2k+ytP587mMWqva2IA87EbA==
1088 | dependencies:
1089 | "@discordjs/builders" "^1.4.0"
1090 | "@discordjs/collection" "^1.3.0"
1091 | "@discordjs/rest" "^1.4.0"
1092 | "@discordjs/util" "^0.1.0"
1093 | "@sapphire/snowflake" "^3.2.2"
1094 | "@types/ws" "^8.5.3"
1095 | discord-api-types "^0.37.20"
1096 | fast-deep-equal "^3.1.3"
1097 | lodash.snakecase "^4.1.1"
1098 | tslib "^2.4.1"
1099 | undici "^5.13.0"
1100 | ws "^8.11.0"
1101 |
1102 | doctrine@^3.0.0:
1103 | version "3.0.0"
1104 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
1105 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
1106 | dependencies:
1107 | esutils "^2.0.2"
1108 |
1109 | emoji-regex@^8.0.0:
1110 | version "8.0.0"
1111 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
1112 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
1113 |
1114 | enquirer@^2.3.5:
1115 | version "2.3.6"
1116 | resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
1117 | integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
1118 | dependencies:
1119 | ansi-colors "^4.1.1"
1120 |
1121 | escape-string-regexp@^1.0.5:
1122 | version "1.0.5"
1123 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
1124 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
1125 |
1126 | escape-string-regexp@^4.0.0:
1127 | version "4.0.0"
1128 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
1129 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
1130 |
1131 | eslint-scope@^5.1.1:
1132 | version "5.1.1"
1133 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
1134 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
1135 | dependencies:
1136 | esrecurse "^4.3.0"
1137 | estraverse "^4.1.1"
1138 |
1139 | eslint-utils@^2.1.0:
1140 | version "2.1.0"
1141 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
1142 | integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
1143 | dependencies:
1144 | eslint-visitor-keys "^1.1.0"
1145 |
1146 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
1147 | version "1.3.0"
1148 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
1149 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
1150 |
1151 | eslint-visitor-keys@^2.0.0:
1152 | version "2.1.0"
1153 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
1154 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
1155 |
1156 | eslint@^7.17.0:
1157 | version "7.32.0"
1158 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d"
1159 | integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==
1160 | dependencies:
1161 | "@babel/code-frame" "7.12.11"
1162 | "@eslint/eslintrc" "^0.4.3"
1163 | "@humanwhocodes/config-array" "^0.5.0"
1164 | ajv "^6.10.0"
1165 | chalk "^4.0.0"
1166 | cross-spawn "^7.0.2"
1167 | debug "^4.0.1"
1168 | doctrine "^3.0.0"
1169 | enquirer "^2.3.5"
1170 | escape-string-regexp "^4.0.0"
1171 | eslint-scope "^5.1.1"
1172 | eslint-utils "^2.1.0"
1173 | eslint-visitor-keys "^2.0.0"
1174 | espree "^7.3.1"
1175 | esquery "^1.4.0"
1176 | esutils "^2.0.2"
1177 | fast-deep-equal "^3.1.3"
1178 | file-entry-cache "^6.0.1"
1179 | functional-red-black-tree "^1.0.1"
1180 | glob-parent "^5.1.2"
1181 | globals "^13.6.0"
1182 | ignore "^4.0.6"
1183 | import-fresh "^3.0.0"
1184 | imurmurhash "^0.1.4"
1185 | is-glob "^4.0.0"
1186 | js-yaml "^3.13.1"
1187 | json-stable-stringify-without-jsonify "^1.0.1"
1188 | levn "^0.4.1"
1189 | lodash.merge "^4.6.2"
1190 | minimatch "^3.0.4"
1191 | natural-compare "^1.4.0"
1192 | optionator "^0.9.1"
1193 | progress "^2.0.0"
1194 | regexpp "^3.1.0"
1195 | semver "^7.2.1"
1196 | strip-ansi "^6.0.0"
1197 | strip-json-comments "^3.1.0"
1198 | table "^6.0.9"
1199 | text-table "^0.2.0"
1200 | v8-compile-cache "^2.0.3"
1201 |
1202 | espree@^7.3.0, espree@^7.3.1:
1203 | version "7.3.1"
1204 | resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
1205 | integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
1206 | dependencies:
1207 | acorn "^7.4.0"
1208 | acorn-jsx "^5.3.1"
1209 | eslint-visitor-keys "^1.3.0"
1210 |
1211 | esprima@^4.0.0:
1212 | version "4.0.1"
1213 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
1214 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
1215 |
1216 | esquery@^1.4.0:
1217 | version "1.4.0"
1218 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
1219 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
1220 | dependencies:
1221 | estraverse "^5.1.0"
1222 |
1223 | esrecurse@^4.3.0:
1224 | version "4.3.0"
1225 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
1226 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
1227 | dependencies:
1228 | estraverse "^5.2.0"
1229 |
1230 | estraverse@^4.1.1:
1231 | version "4.3.0"
1232 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
1233 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
1234 |
1235 | estraverse@^5.1.0, estraverse@^5.2.0:
1236 | version "5.3.0"
1237 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
1238 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
1239 |
1240 | esutils@^2.0.2:
1241 | version "2.0.3"
1242 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
1243 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
1244 |
1245 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
1246 | version "3.1.3"
1247 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
1248 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
1249 |
1250 | fast-json-stable-stringify@^2.0.0:
1251 | version "2.1.0"
1252 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
1253 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
1254 |
1255 | fast-levenshtein@^2.0.6:
1256 | version "2.0.6"
1257 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
1258 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
1259 |
1260 | fast-xml-parser@4.0.11:
1261 | version "4.0.11"
1262 | resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz#42332a9aca544520631c8919e6ea871c0185a985"
1263 | integrity sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==
1264 | dependencies:
1265 | strnum "^1.0.5"
1266 |
1267 | file-entry-cache@^6.0.1:
1268 | version "6.0.1"
1269 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
1270 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
1271 | dependencies:
1272 | flat-cache "^3.0.4"
1273 |
1274 | file-type@^18.0.0:
1275 | version "18.0.0"
1276 | resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.0.0.tgz#7a39378f8657ddc02807a0c62cb77cb4dc318197"
1277 | integrity sha512-jjMwFpnW8PKofLE/4ohlhqwDk5k0NC6iy0UHAJFKoY1fQeGMN0GDdLgHQrvCbSpMwbqzoCZhRI5dETCZna5qVA==
1278 | dependencies:
1279 | readable-web-to-node-stream "^3.0.2"
1280 | strtok3 "^7.0.0"
1281 | token-types "^5.0.1"
1282 |
1283 | flat-cache@^3.0.4:
1284 | version "3.0.4"
1285 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
1286 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
1287 | dependencies:
1288 | flatted "^3.1.0"
1289 | rimraf "^3.0.2"
1290 |
1291 | flatted@^3.1.0:
1292 | version "3.2.7"
1293 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
1294 | integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
1295 |
1296 | fs.realpath@^1.0.0:
1297 | version "1.0.0"
1298 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1299 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
1300 |
1301 | functional-red-black-tree@^1.0.1:
1302 | version "1.0.1"
1303 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
1304 | integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==
1305 |
1306 | glob-parent@^5.1.2:
1307 | version "5.1.2"
1308 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
1309 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
1310 | dependencies:
1311 | is-glob "^4.0.1"
1312 |
1313 | glob@^7.1.3:
1314 | version "7.2.3"
1315 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
1316 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
1317 | dependencies:
1318 | fs.realpath "^1.0.0"
1319 | inflight "^1.0.4"
1320 | inherits "2"
1321 | minimatch "^3.1.1"
1322 | once "^1.3.0"
1323 | path-is-absolute "^1.0.0"
1324 |
1325 | globals@^13.6.0, globals@^13.9.0:
1326 | version "13.19.0"
1327 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8"
1328 | integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==
1329 | dependencies:
1330 | type-fest "^0.20.2"
1331 |
1332 | has-flag@^3.0.0:
1333 | version "3.0.0"
1334 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
1335 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
1336 |
1337 | has-flag@^4.0.0:
1338 | version "4.0.0"
1339 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
1340 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1341 |
1342 | ieee754@^1.1.13, ieee754@^1.2.1:
1343 | version "1.2.1"
1344 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
1345 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
1346 |
1347 | ignore@^4.0.6:
1348 | version "4.0.6"
1349 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
1350 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
1351 |
1352 | import-fresh@^3.0.0, import-fresh@^3.2.1:
1353 | version "3.3.0"
1354 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
1355 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
1356 | dependencies:
1357 | parent-module "^1.0.0"
1358 | resolve-from "^4.0.0"
1359 |
1360 | imurmurhash@^0.1.4:
1361 | version "0.1.4"
1362 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1363 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
1364 |
1365 | inflight@^1.0.4:
1366 | version "1.0.6"
1367 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1368 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
1369 | dependencies:
1370 | once "^1.3.0"
1371 | wrappy "1"
1372 |
1373 | inherits@2, inherits@^2.0.3:
1374 | version "2.0.4"
1375 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
1376 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1377 |
1378 | ip@^2.0.0:
1379 | version "2.0.0"
1380 | resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da"
1381 | integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==
1382 |
1383 | is-extglob@^2.1.1:
1384 | version "2.1.1"
1385 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
1386 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
1387 |
1388 | is-fullwidth-code-point@^3.0.0:
1389 | version "3.0.0"
1390 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
1391 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
1392 |
1393 | is-glob@^4.0.0, is-glob@^4.0.1:
1394 | version "4.0.3"
1395 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
1396 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
1397 | dependencies:
1398 | is-extglob "^2.1.1"
1399 |
1400 | isexe@^2.0.0:
1401 | version "2.0.0"
1402 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1403 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
1404 |
1405 | js-tokens@^4.0.0:
1406 | version "4.0.0"
1407 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1408 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1409 |
1410 | js-yaml@^3.13.1:
1411 | version "3.14.1"
1412 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
1413 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
1414 | dependencies:
1415 | argparse "^1.0.7"
1416 | esprima "^4.0.0"
1417 |
1418 | json-schema-traverse@^0.4.1:
1419 | version "0.4.1"
1420 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
1421 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
1422 |
1423 | json-schema-traverse@^1.0.0:
1424 | version "1.0.0"
1425 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
1426 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
1427 |
1428 | json-stable-stringify-without-jsonify@^1.0.1:
1429 | version "1.0.1"
1430 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
1431 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
1432 |
1433 | kareem@2.5.0:
1434 | version "2.5.0"
1435 | resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.5.0.tgz#9d2b2272609b0d5b981757fa5794d7ad0ac041b2"
1436 | integrity sha512-rVBUGGwvqg130iwYu8k7lutHuDBFj1yGRdnlE44wEhxAmFBad1zcL66PdWC1raw3tIObY6XWhtv3VL04xQb/cg==
1437 |
1438 | levn@^0.4.1:
1439 | version "0.4.1"
1440 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
1441 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
1442 | dependencies:
1443 | prelude-ls "^1.2.1"
1444 | type-check "~0.4.0"
1445 |
1446 | lodash.merge@^4.6.2:
1447 | version "4.6.2"
1448 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
1449 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
1450 |
1451 | lodash.snakecase@^4.1.1:
1452 | version "4.1.1"
1453 | resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d"
1454 | integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==
1455 |
1456 | lodash.truncate@^4.4.2:
1457 | version "4.4.2"
1458 | resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
1459 | integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==
1460 |
1461 | lodash@^4.17.21:
1462 | version "4.17.21"
1463 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
1464 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
1465 |
1466 | lru-cache@^6.0.0:
1467 | version "6.0.0"
1468 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
1469 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
1470 | dependencies:
1471 | yallist "^4.0.0"
1472 |
1473 | memory-pager@^1.0.2:
1474 | version "1.5.0"
1475 | resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5"
1476 | integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==
1477 |
1478 | minimatch@^3.0.4, minimatch@^3.1.1:
1479 | version "3.1.2"
1480 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
1481 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
1482 | dependencies:
1483 | brace-expansion "^1.1.7"
1484 |
1485 | moment-duration-format@^2.3.2:
1486 | version "2.3.2"
1487 | resolved "https://registry.yarnpkg.com/moment-duration-format/-/moment-duration-format-2.3.2.tgz#5fa2b19b941b8d277122ff3f87a12895ec0d6212"
1488 | integrity sha512-cBMXjSW+fjOb4tyaVHuaVE/A5TqkukDWiOfxxAjY+PEqmmBQlLwn+8OzwPiG3brouXKY5Un4pBjAeB6UToXHaQ==
1489 |
1490 | moment@^2.29.4:
1491 | version "2.29.4"
1492 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
1493 | integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
1494 |
1495 | mongodb-connection-string-url@^2.5.4:
1496 | version "2.6.0"
1497 | resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz#57901bf352372abdde812c81be47b75c6b2ec5cf"
1498 | integrity sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==
1499 | dependencies:
1500 | "@types/whatwg-url" "^8.2.1"
1501 | whatwg-url "^11.0.0"
1502 |
1503 | mongodb@4.12.1:
1504 | version "4.12.1"
1505 | resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.12.1.tgz#224eb39b8784af835b515aa687c6010cecaabb1a"
1506 | integrity sha512-koT87tecZmxPKtxRQD8hCKfn+ockEL2xBiUvx3isQGI6mFmagWt4f4AyCE9J4sKepnLhMacoCTQQA6SLAI2L6w==
1507 | dependencies:
1508 | bson "^4.7.0"
1509 | mongodb-connection-string-url "^2.5.4"
1510 | socks "^2.7.1"
1511 | optionalDependencies:
1512 | "@aws-sdk/credential-providers" "^3.186.0"
1513 | saslprep "^1.0.3"
1514 |
1515 | mongoose@^6.8.1:
1516 | version "6.8.1"
1517 | resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.8.1.tgz#7a5bf02241b88317ceca459beac9db5ff1ce8225"
1518 | integrity sha512-utr2hclZ+/QlO+JuVd33dxzvLKtByEhaLj8mEO+tqCm6pgOboKv+DWcvJDEcCMl4Rgd1ubgfYz4cZ9BWyHmC3Q==
1519 | dependencies:
1520 | bson "^4.7.0"
1521 | kareem "2.5.0"
1522 | mongodb "4.12.1"
1523 | mpath "0.9.0"
1524 | mquery "4.0.3"
1525 | ms "2.1.3"
1526 | sift "16.0.1"
1527 |
1528 | mpath@0.9.0:
1529 | version "0.9.0"
1530 | resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.9.0.tgz#0c122fe107846e31fc58c75b09c35514b3871904"
1531 | integrity sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==
1532 |
1533 | mquery@4.0.3:
1534 | version "4.0.3"
1535 | resolved "https://registry.yarnpkg.com/mquery/-/mquery-4.0.3.tgz#4d15f938e6247d773a942c912d9748bd1965f89d"
1536 | integrity sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA==
1537 | dependencies:
1538 | debug "4.x"
1539 |
1540 | ms@2.1.2:
1541 | version "2.1.2"
1542 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1543 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1544 |
1545 | ms@2.1.3:
1546 | version "2.1.3"
1547 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
1548 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
1549 |
1550 | natural-compare@^1.4.0:
1551 | version "1.4.0"
1552 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
1553 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
1554 |
1555 | once@^1.3.0:
1556 | version "1.4.0"
1557 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1558 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
1559 | dependencies:
1560 | wrappy "1"
1561 |
1562 | optionator@^0.9.1:
1563 | version "0.9.1"
1564 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
1565 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
1566 | dependencies:
1567 | deep-is "^0.1.3"
1568 | fast-levenshtein "^2.0.6"
1569 | levn "^0.4.1"
1570 | prelude-ls "^1.2.1"
1571 | type-check "^0.4.0"
1572 | word-wrap "^1.2.3"
1573 |
1574 | parent-module@^1.0.0:
1575 | version "1.0.1"
1576 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
1577 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
1578 | dependencies:
1579 | callsites "^3.0.0"
1580 |
1581 | path-is-absolute@^1.0.0:
1582 | version "1.0.1"
1583 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1584 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
1585 |
1586 | path-key@^3.1.0:
1587 | version "3.1.1"
1588 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
1589 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1590 |
1591 | peek-readable@^5.0.0:
1592 | version "5.0.0"
1593 | resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-5.0.0.tgz#7ead2aff25dc40458c60347ea76cfdfd63efdfec"
1594 | integrity sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==
1595 |
1596 | prelude-ls@^1.2.1:
1597 | version "1.2.1"
1598 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
1599 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
1600 |
1601 | prettier@^2.3.0:
1602 | version "2.8.1"
1603 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc"
1604 | integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==
1605 |
1606 | prism-media@^1.3.4:
1607 | version "1.3.4"
1608 | resolved "https://registry.yarnpkg.com/prism-media/-/prism-media-1.3.4.tgz#7951f26a9186b791dc8c820ff07310ec46a8a5f1"
1609 | integrity sha512-eW7LXORkTCQznZs+eqe9VjGOrLBxcBPXgNyHXMTSRVhphvd/RrxgIR7WaWt4fkLuhshcdT5KHL88LAfcvS3f5g==
1610 |
1611 | progress@^2.0.0:
1612 | version "2.0.3"
1613 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
1614 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
1615 |
1616 | punycode@^2.1.0, punycode@^2.1.1:
1617 | version "2.1.1"
1618 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
1619 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1620 |
1621 | readable-stream@^3.6.0:
1622 | version "3.6.0"
1623 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
1624 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
1625 | dependencies:
1626 | inherits "^2.0.3"
1627 | string_decoder "^1.1.1"
1628 | util-deprecate "^1.0.1"
1629 |
1630 | readable-web-to-node-stream@^3.0.2:
1631 | version "3.0.2"
1632 | resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb"
1633 | integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==
1634 | dependencies:
1635 | readable-stream "^3.6.0"
1636 |
1637 | regexpp@^3.1.0:
1638 | version "3.2.0"
1639 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
1640 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
1641 |
1642 | require-from-string@^2.0.2:
1643 | version "2.0.2"
1644 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
1645 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
1646 |
1647 | resolve-from@^4.0.0:
1648 | version "4.0.0"
1649 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
1650 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
1651 |
1652 | rimraf@^3.0.2:
1653 | version "3.0.2"
1654 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
1655 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
1656 | dependencies:
1657 | glob "^7.1.3"
1658 |
1659 | safe-buffer@~5.2.0:
1660 | version "5.2.1"
1661 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
1662 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1663 |
1664 | saslprep@^1.0.3:
1665 | version "1.0.3"
1666 | resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226"
1667 | integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==
1668 | dependencies:
1669 | sparse-bitfield "^3.0.3"
1670 |
1671 | semver@^7.2.1:
1672 | version "7.3.8"
1673 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
1674 | integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
1675 | dependencies:
1676 | lru-cache "^6.0.0"
1677 |
1678 | shebang-command@^2.0.0:
1679 | version "2.0.0"
1680 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
1681 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1682 | dependencies:
1683 | shebang-regex "^3.0.0"
1684 |
1685 | shebang-regex@^3.0.0:
1686 | version "3.0.0"
1687 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
1688 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1689 |
1690 | sift@16.0.1:
1691 | version "16.0.1"
1692 | resolved "https://registry.yarnpkg.com/sift/-/sift-16.0.1.tgz#e9c2ccc72191585008cf3e36fc447b2d2633a053"
1693 | integrity sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==
1694 |
1695 | slice-ansi@^4.0.0:
1696 | version "4.0.0"
1697 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
1698 | integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
1699 | dependencies:
1700 | ansi-styles "^4.0.0"
1701 | astral-regex "^2.0.0"
1702 | is-fullwidth-code-point "^3.0.0"
1703 |
1704 | smart-buffer@^4.2.0:
1705 | version "4.2.0"
1706 | resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
1707 | integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
1708 |
1709 | socks@^2.7.1:
1710 | version "2.7.1"
1711 | resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55"
1712 | integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==
1713 | dependencies:
1714 | ip "^2.0.0"
1715 | smart-buffer "^4.2.0"
1716 |
1717 | sparse-bitfield@^3.0.3:
1718 | version "3.0.3"
1719 | resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11"
1720 | integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==
1721 | dependencies:
1722 | memory-pager "^1.0.2"
1723 |
1724 | sprintf-js@~1.0.2:
1725 | version "1.0.3"
1726 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
1727 | integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
1728 |
1729 | streamsearch@^1.1.0:
1730 | version "1.1.0"
1731 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
1732 | integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
1733 |
1734 | string-width@^4.2.3:
1735 | version "4.2.3"
1736 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
1737 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
1738 | dependencies:
1739 | emoji-regex "^8.0.0"
1740 | is-fullwidth-code-point "^3.0.0"
1741 | strip-ansi "^6.0.1"
1742 |
1743 | string_decoder@^1.1.1:
1744 | version "1.3.0"
1745 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
1746 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
1747 | dependencies:
1748 | safe-buffer "~5.2.0"
1749 |
1750 | strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1751 | version "6.0.1"
1752 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
1753 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1754 | dependencies:
1755 | ansi-regex "^5.0.1"
1756 |
1757 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
1758 | version "3.1.1"
1759 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
1760 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
1761 |
1762 | strnum@^1.0.5:
1763 | version "1.0.5"
1764 | resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db"
1765 | integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==
1766 |
1767 | strtok3@^7.0.0:
1768 | version "7.0.0"
1769 | resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-7.0.0.tgz#868c428b4ade64a8fd8fee7364256001c1a4cbe5"
1770 | integrity sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==
1771 | dependencies:
1772 | "@tokenizer/token" "^0.3.0"
1773 | peek-readable "^5.0.0"
1774 |
1775 | supports-color@^5.3.0:
1776 | version "5.5.0"
1777 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1778 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1779 | dependencies:
1780 | has-flag "^3.0.0"
1781 |
1782 | supports-color@^7.1.0:
1783 | version "7.2.0"
1784 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1785 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1786 | dependencies:
1787 | has-flag "^4.0.0"
1788 |
1789 | table@^6.0.9:
1790 | version "6.8.1"
1791 | resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf"
1792 | integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==
1793 | dependencies:
1794 | ajv "^8.0.1"
1795 | lodash.truncate "^4.4.2"
1796 | slice-ansi "^4.0.0"
1797 | string-width "^4.2.3"
1798 | strip-ansi "^6.0.1"
1799 |
1800 | text-table@^0.2.0:
1801 | version "0.2.0"
1802 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
1803 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
1804 |
1805 | token-types@^5.0.1:
1806 | version "5.0.1"
1807 | resolved "https://registry.yarnpkg.com/token-types/-/token-types-5.0.1.tgz#aa9d9e6b23c420a675e55413b180635b86a093b4"
1808 | integrity sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==
1809 | dependencies:
1810 | "@tokenizer/token" "^0.3.0"
1811 | ieee754 "^1.2.1"
1812 |
1813 | tr46@^3.0.0:
1814 | version "3.0.0"
1815 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9"
1816 | integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==
1817 | dependencies:
1818 | punycode "^2.1.1"
1819 |
1820 | ts-mixer@^6.0.2:
1821 | version "6.0.2"
1822 | resolved "https://registry.yarnpkg.com/ts-mixer/-/ts-mixer-6.0.2.tgz#3e4e4bb8daffb24435f6980b15204cb5b287e016"
1823 | integrity sha512-zvHx3VM83m2WYCE8XL99uaM7mFwYSkjR2OZti98fabHrwkjsCvgwChda5xctein3xGOyaQhtTeDq/1H/GNvF3A==
1824 |
1825 | tslib@^1.11.1:
1826 | version "1.14.1"
1827 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
1828 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
1829 |
1830 | tslib@^2.3.1, tslib@^2.4.1:
1831 | version "2.4.1"
1832 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
1833 | integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
1834 |
1835 | type-check@^0.4.0, type-check@~0.4.0:
1836 | version "0.4.0"
1837 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
1838 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
1839 | dependencies:
1840 | prelude-ls "^1.2.1"
1841 |
1842 | type-fest@^0.20.2:
1843 | version "0.20.2"
1844 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
1845 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
1846 |
1847 | undici@^5.13.0:
1848 | version "5.14.0"
1849 | resolved "https://registry.yarnpkg.com/undici/-/undici-5.14.0.tgz#1169d0cdee06a4ffdd30810f6228d57998884d00"
1850 | integrity sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ==
1851 | dependencies:
1852 | busboy "^1.6.0"
1853 |
1854 | uri-js@^4.2.2:
1855 | version "4.4.1"
1856 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
1857 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
1858 | dependencies:
1859 | punycode "^2.1.0"
1860 |
1861 | util-deprecate@^1.0.1:
1862 | version "1.0.2"
1863 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1864 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
1865 |
1866 | uuid@^8.3.2:
1867 | version "8.3.2"
1868 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
1869 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
1870 |
1871 | v8-compile-cache@^2.0.3:
1872 | version "2.3.0"
1873 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
1874 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
1875 |
1876 | webidl-conversions@^7.0.0:
1877 | version "7.0.0"
1878 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a"
1879 | integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
1880 |
1881 | whatwg-url@^11.0.0:
1882 | version "11.0.0"
1883 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018"
1884 | integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==
1885 | dependencies:
1886 | tr46 "^3.0.0"
1887 | webidl-conversions "^7.0.0"
1888 |
1889 | which@^2.0.1:
1890 | version "2.0.2"
1891 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1892 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1893 | dependencies:
1894 | isexe "^2.0.0"
1895 |
1896 | word-wrap@^1.2.3:
1897 | version "1.2.3"
1898 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
1899 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
1900 |
1901 | wrappy@1:
1902 | version "1.0.2"
1903 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1904 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
1905 |
1906 | ws@^8.11.0:
1907 | version "8.11.0"
1908 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143"
1909 | integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==
1910 |
1911 | yallist@^4.0.0:
1912 | version "4.0.0"
1913 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
1914 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1915 |
--------------------------------------------------------------------------------