├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ └── node.js.yml ├── .gitignore ├── .replit ├── INSTALLATION.md ├── LICENSE ├── README.md ├── bot.js ├── commands ├── avatar.js ├── farm.js ├── help.js ├── im.js ├── info-server.js ├── inventory.js ├── market.js ├── mine.js ├── ping.js ├── profile.js ├── prune.js ├── reaction.js ├── reload.js └── restart.js ├── config.json ├── index.html ├── json.sqlite ├── keep_alive.js ├── manifest.json ├── models ├── items.js ├── member.js ├── profile.js └── schema │ ├── guild.js │ ├── log.js │ └── user.js ├── package-lock.json ├── package.json └── shrinkwrap.yaml /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/workflows/node.js.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | on: 4 | pull_request: 5 | paths-ignore: 6 | - '*.md' 7 | 8 | jobs: 9 | build: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/checkout@v2 14 | - name: Use Node.js 12 15 | uses: actions/setup-node@v2 16 | with: 17 | node-version: 12.x 18 | cache: 'npm' 19 | - run: npm i 20 | - run: npm start bot.js 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | keep_alive.js 2 | manifest.json 3 | json.sqlite 4 | .models 5 | config.json 6 | -------------------------------------------------------------------------------- /.replit: -------------------------------------------------------------------------------- 1 | language = "nodejs" 2 | run = "npm start bot.js" -------------------------------------------------------------------------------- /INSTALLATION.md: -------------------------------------------------------------------------------- 1 | # Installation Guide 2 | Finally, i have time to write installation guide for those who fork this project 3 | So i will give you some tips how to make your bot online 4 | 5 | - First 6 | You will need to see `config.json` file, you can see there is `"prefix": s!` 7 | change that whenever you want for your prefix 8 | if you are asking "Where do i put my bot token?" well, you should read the second step 9 | 10 | - Second 11 | Now, you should create `.env` file 12 | Inside this file you should put your token with 13 | ``` 14 | TOKEN="[YOUR BOT TOKEN]" 15 | F_CREDITS="This bot created by GameWatch21" // You can change this if you want, F refer to Footer not respect 16 | PREFIX=s! //This one is for help command, well even i want to use this too for command prefix, but eh still working on it 17 | ``` 18 | Inside the `.env` file, you can put whatever you want 19 | To import what's inside the file, you can use `process.env.[KEY]` example: `process.env.TOKEN` and it will print your bot token (cool right?) 20 | 21 | - Third 22 | Make sure to install all the package, the most important is 23 | • Discord.js (ver 12) 24 | • quick.db (latest ver) 25 | • parse-ms (latest ver) 26 | • express (latest ver) For website 27 | • querystring (latest ver) For website and command 28 | 29 | - Fourth 30 | erase the `json.sqlite` file, since it store my database 31 | You willnt use database right? well even you use mine, it still separate but to reset the database, you can erase that file, then make new one (just delete it then you can use the database) 32 | If you are saying that "sqlite is hard, i cant do database" that's why i use quick.db, it's an easy database, same function, but better for begginer (like me) 33 | 34 | - Fifth 35 | Now, lets try to make your bot online, if your bot not online after following this step, then probably i miss something with the guide, sorry 😂 36 | But, if your bot online, congrats, you already did the guide succesfully and i didnt need to worry about my code 37 | You can see the code isnt clean yet, i still use the comment tag instead of erasing them, because i need them sometime 38 | So i need to use comment tag to remind myself sooner 39 | 40 | - sixth (optional) 41 | For you that want to make a website for your discord bot, for now im still learning about ejs (an js embed for website) you can change the port to your server hosting or repl or glitch, if it still not online, probably your html code print an error 42 | If it not error there is a line saying "Listening to port blabla" in your console 43 | That's mean your website is online :) 44 | 45 | ## Support 46 | If you desperate, or this guide is stupid, you should join my support server or just dm me `GameWatch21#2121` (okay dont spam me) 47 | And i will respond to you as soon as possible and help with your bot, dont give me access to your bot token because it's not safe to share it to other users especially me (just give me your ID Card, jk) 48 | 49 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 GameWatch21 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 | # CodordGround 2 | A Discord Bot for coding Ground 3 | Roughly, this bot is created to train myself to code a discord bot myself, actually not myself, i also learn code and learn guides on other website too, such as [DiscordJs Guide](https://discordjs.guide) 4 | Also, Join our [Discord Server](https://discord.gg/ASHGkue) so it's easy to meet me and ask something, actually im not your teacher so i will not teach you 😂 5 | 6 | At Wednesday 8 December, i make website for CodeGround, actually sorry for the bad css, i'm bad at choosing style and animation, so it's still in maintenance and probably never going to publish it to global but here if you want 7 | [CodeGround Website](https://cg-economy.gamewatch21.repl.co/) 8 | If it offline, please wait a minute till it load :) thank you 9 | 10 | Before this, i use glitch.com as my personal Coding space and as github uploder 11 | But at Wednesday, 16 December, i decide to use repl.it for my coding space, it's also because of the free hosting and mobile friendly (not really, but i for me i already code easier) 12 | 13 | If you want to help me building project, or you have a project that are forked from my code, or you got motivation from my code, you can send your github link and i will list the project 14 | 15 | If you found that my code is different from other, it's normal, we have different "client" different "variable" and etc 16 | 17 | I will be posting the installation guide soon but, you only need to make ".env" file and copy this text 18 | `TOKEN = [your token]` 19 | `F_CREDIT = Created by GameWatch21` 20 | The complete installation guide will be posted soon 21 | 22 | ## Working Log 23 | Here are my **Working Log** that i need to work on and not hopefully work, but i must make it work 24 | The checked one, mean it's already working, for the others, i dont know when i will finish it, but i will finish it soon 25 | - [x] Bot online (Wednesday, 25 November 2020 by **_GameWatch21_**) 26 | - [x] Sending Basic Message (Wednesday, 25 November 2020 by **_GameWatch21_**) 27 | - [ ] Sending Arguments Message 28 | - [x] Making an Embed message working (Wednesday, 25 November 2020 by **_GameWatch21_**) 29 | - [x] Making Purne Message (Wednesday, 25 November 2020 by **_GameWatch21_**) 30 | - [x] Make backend code more dynamic, not that dynamic,i use my own style to write codes even it's bad (Thursday, 26 Novermber 2020 by **_GameWatch21_**) 31 | - [x] Add avatar command (Wednesday, 8 December 2020 by **_GameWatch21_**) 32 | - [x] Create Status for bot (Wednesday, 16 December 2020 by **_GameWatch21_**) 33 | - [ ] Making an Economy Games [This one is different, will be on differeny section] 34 | - [ ] Make an Moderation commands 35 | - [x] Make an Website for the bot (Wednesday, 8 December 2020 by **_GameWatch21_**) 36 | - [ ] Add music feature to the bot 37 | - [ ] Brainstorming New Features 38 | 39 | ## Economy Games 40 | Soo, uhh i have plan that i will make a real economy game where there is 4 roles (Farmer, Miner, Crafter, Worker) 41 | You can choose one of the 4 roles and contribute to the economy world 42 | Here are all the details what can you get for each roles, also you cant change roles when you are playing so choose wisely 43 | ### Farmer 44 | - Producing Crops 45 | - Selling and Buying lifestocks 46 | - Grow animal 47 | - Renting Lands 48 | 49 | ### Miner 50 | - Producing Ores (Gold, Silver, Platinum, Diamond, Emerald) 51 | - Renting Mines and Equipment 52 | - Selling Ores to get money 53 | 54 | ### Worker 55 | - Producing Materials 56 | - Renting Workspace 57 | - Selling Materials to craft and make equipment 58 | 59 | ### Crafter 60 | - Producing Equipment 61 | - Renting Workspace 62 | - Selling Equipment 63 | 64 | Note: It was CG-ECO, but i change it to Codord Ground because ehh, i will change the code for a bit and make a rework, Also following the discord.js Updates, so yeah stay tuned 65 | 66 | ## 👤For contributors 67 | Actually i never thought to invite or ask an contributors, but if you want to contribute, you can try to learn to make a new command and we will publish your code with your credits, so if you have simple code that you want to share with us, it's okay, just DM me on Discord and send the code file on txt or whatever you want or just open an issue and paste the code 68 | 69 | ## 🚫About Error Code 70 | If you found out a bug, or something that's weird on the code, just open a issue and i will try to solve it as fast as possible, and always i will say thank you for those who help me find out a bug 71 | 72 | ## 🍴For Forking 73 | Feel free to fork my code, it's free and you can edit with your own style, well i didnt explain well the code what's the section is, what's this used for, so you will need to explore it yourself, you can decide you want to use my credits or no, i dont care just do whatever you want i will try to make new command and code as my free time 74 | 75 | ## 🛠️Other Project 76 | There is other project i work on, even though, i still make the project as an open source, so probably you want to fork it, or you have better idea than mine 77 | You can easily fork it and use it, no need installation guide :) 78 | - [Discord Faucet Bot](https://github.com/GameWatch21/faucet-bot) | A fork from CG-Economy, turn into a cryptocurrency faucet bot 79 | -------------------------------------------------------------------------------- /bot.js: -------------------------------------------------------------------------------- 1 | //To make a website working on node.js 2 | const http = require("http"); 3 | //For the website port 4 | const port = 8080; 5 | const url = require('url'); 6 | const fetchs = require('node-fetch'); 7 | //To read file on a folder 8 | const fs = require("fs"); 9 | //Variable for discordjs 10 | const { Client, Collection, Intents } = require('discord.js'); 11 | //Importing your information from config.jsom 12 | const { prefix , token , mongodb_uri , status , clientid , clientsecret , grandtype } = require("./config.json"); 13 | //Make the discord client 14 | const client = new Client({ intents: [Intents.FLAGS.GUILDS] }); 15 | //Variable for mongodb 16 | const mongoose = require('mongoose'); 17 | // Variable for client comman 18 | client.commands = new Collection(); 19 | 20 | // [WEBSITE CODE] 21 | http.createServer((req, res) => { 22 | let responseCode = 404; 23 | let content = '404 Error'; 24 | let content2 = '404 Error'; 25 | 26 | const urlObj = url.parse(req.url, true); 27 | 28 | // upcoming feature to use discord login 29 | if (urlObj.query.code) { 30 | const accessCode = urlObj.query.code; 31 | const data = { 32 | client_id: clientid, 33 | client_secret: clientsecret, 34 | grant_type: grandtype, 35 | redirect_uri: 'https://discord.com/api/oauth2/authorize?client_id=694134339465642014&redirect_uri=https%3A%2F%2Fcodeground-cg.glitch.me%2F&response_type=code&scope=identify', 36 | code: accessCode, 37 | scope: 'the scopes', 38 | }; fetch('https://discord.com/api/oauth2/token', { 39 | method: 'POST', 40 | body: new URLSearchParams(data), 41 | headers: { 42 | 'Content-Type': 'application/x-www-form-urlencoded', 43 | }, 44 | }) 45 | .then(discordRes => discordRes.json()) 46 | .then(info => { 47 | console.log(info); 48 | return info; 49 | }) 50 | .then(info => fetch('https://discord.com/api/users/@me', { 51 | headers: { 52 | authorization: `${info.token_type} ${info.access_token}`, 53 | }, 54 | })) 55 | .then(userRes => userRes.json()) 56 | .then(console.log); 57 | } 58 | // will be updated when more page is added 59 | if (urlObj.pathname === '/') { 60 | responseCode = 200; 61 | content = fs.readFileSync('./index.html') 62 | } 63 | 64 | res.writeHead(responseCode, { 65 | 'content-type': 'text/html;charset=utf-8', 66 | }); 67 | 68 | res.write(content); 69 | res.end(); 70 | }) 71 | .listen(port); 72 | // [WEBSITE CODE END] 73 | 74 | // [COMMAND READ] 75 | const commandFiles = fs 76 | .readdirSync("./commands") 77 | .filter(file => file.endsWith(".js")); 78 | for (const file of commandFiles) { 79 | const command = require(`./commands/${file}`); 80 | client.commands.set(command.name, command); 81 | } 82 | // [COMMAND READ END] 83 | 84 | // [MONGODB CONNECT] 85 | 86 | // [MONGODB CONNECT END] 87 | 88 | // [DISCORD ONLINE CHECK] 89 | client.once("ready", () => { 90 | console.log( 91 | "Yup im online, and im ready to work" 92 | ); 93 | // [DISCORD ONLINE CHECK END] 94 | 95 | // [DISCORD BOT STATUS] 96 | // set your own status at config.json :) 97 | client.user.setActivity(status), { 98 | type: "playing" 99 | }; 100 | // [DISCORD BOT STATUS END] 101 | }); 102 | 103 | // [DISCORD MAIN COMMAND] 104 | client.on("message", message => { 105 | if (!message.content.startsWith(prefix) || message.author.bot) return; 106 | // this simply help command with arguments 107 | const args = message.content 108 | .slice(prefix.length) 109 | .trim() 110 | .split(/ +/); 111 | // if you use prefix with a character example: s!, it still work if the user use S! 112 | const commandName = args.shift().toLowerCase(); 113 | 114 | const command = 115 | client.commands.get(commandName) || 116 | client.commands.find( 117 | cmd => cmd.aliases && cmd.aliases.includes(commandName) 118 | ); 119 | 120 | if (!command) return; 121 | 122 | try { 123 | command.execute(message, args); 124 | } catch (error) { 125 | console.error(error); 126 | message.reply("there was an error trying to execute that command!"); 127 | } 128 | }); 129 | // [DISCORD MAIN COMMAND END] 130 | 131 | client.login(token); 132 | -------------------------------------------------------------------------------- /commands/avatar.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'avatar', 3 | description: 'Showing someone avatar', 4 | aliases: ['av'], 5 | execute(message, args){ 6 | if (!message.mentions.users.size) { 7 | return message.channel.send(`Your avatar: <${message.author.displayAvatarURL({ format: "png", dynamic: true })}>`); 8 | } 9 | 10 | const avatarList = message.mentions.users.map(user => { 11 | return `${user.username}'s avatar: <${user.displayAvatarURL({ format: "png", dynamic: true })}>`; 12 | }); 13 | 14 | // send the entire array of strings as a message 15 | // by default, discord.js will `.join()` the array with `\n` 16 | message.channel.send(avatarList) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /commands/farm.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db'); 3 | const ms = require('parse-ms'); 4 | 5 | module.exports = { 6 | name: "farm", 7 | description: "Lets play with your farm :)", 8 | execute(message, args){ 9 | const option = args[0]; 10 | const check = db.fetch(`class_check.${message.author.id}`) || "no"; 11 | const classes = db.fetch(`class.${message.author.id}`); 12 | /*let growth = 3500000; 13 | let harvest_time = db.get(`harvest_time.${message.author.id}`); 14 | if(message.channel.type == "text"){ 15 | if (harvest_time !== null && growth - (Date.now() - harvest_time ) > 0) { 16 | let time = ms(growth - (Date.now() - harvest_time)); 17 | return message.channel.send( 18 | `**Your plant is not yet ready to be harvested. Come back in ${time.hours}h ${time.minutes}m ${time.seconds}` 19 | ); 20 | }*/ 21 | // 22 | // ====================== 23 | // 24 | if(check == 'no'){ 25 | message.reply("You didnt register yet, use `s!register` to register"); 26 | } 27 | if(!option){ 28 | message.reply('what you are going to do with your farm?') 29 | } 30 | if(classes != "Farmer"){ 31 | message.reply("This is not your class command") 32 | } 33 | if(classes == "Farmer"){ 34 | // ================ 35 | // PLANTING COMMAND 36 | // ================ 37 | if(option == "plant"){ 38 | const land = db.fetch(`land.${message.author.id}`) || 0; 39 | const seed = db.fetch(`seed.${message.author.id}`) || 0; 40 | const shovel = db.fetch(`shovel.${message.author.id}`) || 0; 41 | 42 | if(land == "0"){ 43 | message.reply("You need land to plant your seed"); 44 | } 45 | if(seed == "0"){ 46 | message.reply("You need seed to grow a plant"); 47 | } 48 | if(shovel == "0"){ 49 | message.reply("You need shovel for your land"); 50 | } 51 | if(shovel >= "1"){ 52 | if(seed >= "1"){ 53 | if(land >= "1"){ 54 | db.subtract(`seed.${message.author.id}` , 1); 55 | db.subtract(`land` , 1); 56 | db.set(`harvest_time.${message.author.id}`, Date.now()); 57 | message.channel.send("You have planted your seed, wait for 30 Minutes to get your plant harvested") 58 | } 59 | } 60 | } 61 | 62 | 63 | } 64 | // ================ 65 | // END OF PLANTING COMMAND 66 | // ================ 67 | 68 | // ================ 69 | // HARVESTING COMMAND 70 | // ================ 71 | if(option == "harvest"){ 72 | let growth = 1800000; 73 | let harvest_time = db.get(`harvest_time.${message.author.id}`); 74 | if(message.channel.type == "text"){ 75 | if (harvest_time !== null && growth - (Date.now() - harvest_time ) > 0) { 76 | let time = ms(growth - (Date.now() - harvest_time)); 77 | return message.channel.send( 78 | `**Your plant is not yet ready to be harvested. Come back in ${time.hours}h ${time.minutes}m ${time.seconds}` 79 | ); 80 | } 81 | } 82 | } 83 | // ================ 84 | // END OF HARVESTING COMMAND 85 | // ================ 86 | 87 | } 88 | } 89 | } -------------------------------------------------------------------------------- /commands/help.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | module.exports = { 4 | name: 'help', 5 | description: 'Showing all list of the commands', 6 | aliases: ['h'], 7 | execute(message, args){ 8 | 9 | const helpEmbed = new Discord.MessageEmbed() 10 | .setTitle(`${message.author.tag}, Help Commands Page 1/1`) 11 | .setDescription(`Here are the commands:`) 12 | .setColor('RANDOM') 13 | .addFields( 14 | {name:`${process.env.PREFIX}ping` , value:'Checking if the bot are online or offline' , inline: true}, 15 | 16 | {name: `${process.env.PREFIX}info-server` , value: 'Giving the Server Information', inline: true}, 17 | {name: `${process.env.PREFIX}prune` , value: 'Deleting/Pruning messages' , inline: true}, 18 | {name: `${process.env.PREFIX}im` , value: 'Just a weird command for testing' , inline: true}, 19 | {name: `${process.env.PREFIX}reload` , value: 'Reloading a commands' , inline: true}, 20 | {name: `${process.env.PREFIX}reaction` , value: 'Giving a Reaction collector' , inline: true}, 21 | {name: `${process.env.PREFIX}avatar` , value: 'Showing the user avatar link' , inline: true} 22 | ) 23 | .setTimestamp() 24 | .setFooter(process.env.F_CREDITS); 25 | 26 | message.channel.send(helpEmbed) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /commands/im.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'im', 3 | description: 'Umm just a weird command, for testing', 4 | execute(message, args) { 5 | if (!args.length) { 6 | return message.channel.send(`... So who are you?, ${message.author}!`); 7 | } else if (args[0] === 'GameWatch21') { 8 | return message.channel.send('nope, you are not GameWatch21'); 9 | } 10 | 11 | message.channel.send(`So you are ${args}, am i right?`); 12 | }, 13 | }; 14 | -------------------------------------------------------------------------------- /commands/info-server.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | 3 | module.exports = { 4 | name: "info-server", 5 | description: "Check the server Information", 6 | execute(message, args){ 7 | const embed = new Discord.MessageEmbed() 8 | .setColor('#0099ff') 9 | .setTitle(`Information about ${message.guild.name} server`) 10 | .setDescription('Detailed Information:') 11 | .addFields( 12 | { name: 'Total Members:', value: `${message.guild.memberCount}`}, 13 | { name: 'Created at:', value: `${message.guild.createdAt}`, inline: true }, 14 | { name: 'This server owned by:', value: `${message.guild.owner}`, inline: true }, 15 | ) 16 | .setTimestamp() 17 | .setFooter('Created by GameWatch21'); 18 | 19 | message.channel.send(embed) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /commands/inventory.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db'); 3 | 4 | module.exports = { 5 | name: "inventory", 6 | description: "Check your inventort for each class", 7 | aliases: ["inv" , "backpack"], 8 | execute(message, args){ 9 | const check = db.fetch(`class_check.${message.author.id}`) || "no"; 10 | const classes = db.fetch(`class.${message.author.id}`); 11 | // ====================== 12 | // MINER CLASS DATABASE 13 | // ====================== 14 | const stone = db.fetch(`stone.${message.author.id}`) || 0; 15 | const rock = db.fetch(`rock.${message.author.id}`) || 0; 16 | const coal = db.fetch(`coal.${message.author.id}`) || 0; 17 | const iron_ore = db.fetch(`iron_ore.${message.author.id}`) || 0; 18 | const gold_ore = db.fetch(`gold_ore.${message.author.id}`) || 0; 19 | const diamond_ore = db.fetch(`diamond_ore.${message.author.id}`) || 0; 20 | const iron = db.fetch(`iron.${message.author.id}`) || 0; 21 | const gold = db.fetch(`gold.${message.author.id}`) || 0; 22 | const diamond = db.fetch(`diamond.${message.author.id}`) || 0; 23 | // ====================== 24 | // FARMER CLASS DATABASE 25 | // ====================== 26 | const wheat = db.fetch(`wheat.${message.author.id}`) || 0; 27 | const seed = db.fetch(`seed.${message.author.id}`) || 0; 28 | const carrot = db.fetch(`carrot.${message.author.id}`) || 0; 29 | const potato = db.fetch(`potato.${message.author.id}`) || 0; 30 | const land = db.fetch(`land.${message.author.id}`) || 0; 31 | const fertilizer = db.fetch(`fertilizer.${message.author.id}`) || 0; 32 | const log = db.fetch(`log.${message.author.id}`) || 0; 33 | // ====================== 34 | // WORKER CLASS DATABASE (most fantasy inventory ever) 35 | // ====================== 36 | const reputation = db.fetch(`reputation.${message.author.id}`) || 0; 37 | // ENERGY WILL BE GLOBAL THING 38 | const energy = db.fetch(`energy.${message.author.id}`) || 0; 39 | const experience = db.fetch(`experience.${message.author.id}`) || 0; 40 | const rank = db.fetch(`rank.${message.author.id}`) || 0; 41 | // ====================== 42 | // CRAFTER CLASS DATABASE (complicated cause i need to mix between farmer and miner class) 43 | // ====================== 44 | const hoe = db.fetch(`hoe.${message.author.id}`) || 0; 45 | const pickaxe = db.fetch(`rank.${message.author.id}`) || 0; 46 | const shovel = db.fetch(`shovel.${message.author.id}`) || 0; 47 | // ====================== 48 | // END OF DATABASE 49 | // ====================== 50 | 51 | if(check == "no"){ 52 | message.reply("You didnt register yet, use `s!register` to register"); 53 | } 54 | if(check == "registered"){ 55 | if(classes == "Miner" ){ 56 | const embed = new Discord.MessageEmbed() 57 | .setTitle(`${message.author.tag}'s Inventory`) 58 | .addFields( 59 | {name: `Stone:` , value: `${stone}`}, 60 | {name: `Coal:` , value: `${coal}`}, 61 | {name: `Rock:` , value: `${rock}`}, 62 | {name: `Iron Ore:` , value: `${iron_ore}`}, 63 | {name: `Gold Ore:` , value: `${gold_ore}`}, 64 | {name: `Diamond Ore:` , value: `${diamond_ore}`}, 65 | {name: `Iron:` , value: `${iron}`}, 66 | {name: `Gold:` , value: `${gold}`}, 67 | {name: `Diamond` , value: `${diamond}`} 68 | ) 69 | .setTimestamp() 70 | .setColor("RANDOM"); 71 | 72 | message.channel.send(embed); 73 | 74 | } 75 | if(classes == "Farmer"){ 76 | const embed = new Discord.MessageEmbed() 77 | .setTitle(`${message.author.tag}'s Inventory`) 78 | .addFields( 79 | {name: `Seed:` , value: `${seed}`}, 80 | {name: `Land:` , value: `${land}`}, 81 | {name: `Fertilizer:` , value: `${fertilizer}`}, 82 | {name: `Wheat:` , value: `${wheat}`}, 83 | {name: `Carrot:` , value: `${carrot}`}, 84 | {name: `Potato:` , value: `${potato}`}, 85 | {name: `Log:` , value: `${log}`}, 86 | 87 | {name: `Shovel:` , value: `${shovel}`} 88 | /*{name: `Diamond` , value: `${diamond}`}*/ 89 | ) 90 | .setTimestamp() 91 | .setColor("RANDOM"); 92 | 93 | message.channel.send(embed); 94 | } 95 | if(classes == "Worker"){ 96 | const embed = new Discord.MessageEmbed() 97 | .setTitle(`${message.author.tag}'s Inventory`) 98 | .addFields( 99 | {name: `Reputation:` , value: `${reputation}`}, 100 | {name: `Experience:` , value: `${experience}`}, 101 | {name: `Energy:` , value: `${energy}`}, 102 | {name: `Rank:` , value: `${rank}`}/*, 103 | {name: `Gold Ore:` , value: `${gold_ore}`}, 104 | {name: `Diamond Ore:` , value: `${diamond_ore}`}, 105 | {name: `Iron:` , value: `${iron}`}, 106 | {name: `Gold:` , value: `${gold}`}, 107 | {name: `Diamond` , value: `${diamond}`}*/ 108 | ) 109 | .setTimestamp() 110 | .setColor("RANDOM"); 111 | 112 | message.channel.send(embed); 113 | } 114 | if(classes == "Crafter"){ 115 | const embed = new Discord.MessageEmbed() 116 | .setTitle(`${message.author.tag}'s Inventory`) 117 | .addFields( 118 | /* {name: `Axe:` , value: `${axe}`},*/ 119 | {name: `Pickaxe:` , value: `${pickaxe}`}, 120 | {name: `hoe:` , value: `${hoe}`}, 121 | {name: `Shovel:` , value: `${shovel}`}/*, 122 | {name: `Gold Ore:` , value: `${gold_ore}`}, 123 | {name: `Diamond Ore:` , value: `${diamond_ore}`}, 124 | {name: `Iron:` , value: `${iron}`}, 125 | {name: `Gold:` , value: `${gold}`}, 126 | {name: `Diamond` , value: `${diamond}`}*/ 127 | ) 128 | .setTimestamp() 129 | .setColor("RANDOM"); 130 | 131 | message.channel.send(embed); 132 | } 133 | 134 | } 135 | 136 | } 137 | } -------------------------------------------------------------------------------- /commands/market.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const db = require("quick.db"); 3 | 4 | module.exports = { 5 | name: "market", 6 | description: "Market of all Trades", 7 | aliases: ["mark"], 8 | execute(message, args){ 9 | const check = db.fetch(`class_check.${message.author.id}`) || "no"; 10 | const classes = db.fetch(`class.${message.author.id}`); 11 | // ====================== 12 | // MINER CLASS DATABASE 13 | // ====================== 14 | const stone = db.fetch(`stone.${message.author.id}`) || 0; 15 | const rock = db.fetch(`rock.${message.author.id}`) || 0; 16 | const coal = db.fetch(`coal.${message.author.id}`) || 0; 17 | const iron_ore = db.fetch(`iron_ore.${message.author.id}`) || 0; 18 | const gold_ore = db.fetch(`gold_ore.${message.author.id}`) || 0; 19 | const diamond_ore = db.fetch(`diamond_ore.${message.author.id}`) || 0; 20 | const iron = db.fetch(`iron.${message.author.id}`) || 0; 21 | const gold = db.fetch(`gold.${message.author.id}`) || 0; 22 | const diamond = db.fetch(`diamond.${message.author.id}`) || 0; 23 | // ====================== 24 | // FARMER CLASS DATABASE 25 | // ====================== 26 | const wheat = db.fetch(`wheat.${message.author.id}`) || 0; 27 | const seed = db.fetch(`seed.${message.author.id}`) || 0; 28 | const carrot = db.fetch(`carrot.${message.author.id}`) || 0; 29 | const potato = db.fetch(`potato.${message.author.id}`) || 0; 30 | const land = db.fetch(`land.${message.author.id}`) || 0; 31 | const fertilizer = db.fetch(`fertilizer.${message.author.id}`) || 0; 32 | const log = db.fetch(`log.${message.author.id}`) || 0; 33 | // ====================== 34 | // WORKER CLASS DATABASE (most fantasy inventory ever) 35 | // ====================== 36 | const reputation = db.fetch(`reputation.${message.author.id}`) || 0; 37 | // ENERGY WILL BE GLOBAL THING 38 | const energy = db.fetch(`energy.${message.author.id}`) || 0; 39 | const experience = db.fetch(`experience.${message.author.id}`) || 0; 40 | const rank = db.fetch(`rank.${message.author.id}`) || 0; 41 | // ====================== 42 | // CRAFTER CLASS DATABASE (complicated cause i need to mix between farmer and miner class) 43 | // ====================== 44 | const hoe = db.fetch(`hoe.${message.author.id}`) || 0; 45 | const pickaxe = db.fetch(`rank.${message.author.id}`) || 0; 46 | const shovel = db.fetch(`shovel.${message.author.id}`) || 0; 47 | // ====================== 48 | // END OF USER DATABASE 49 | // ====================== 50 | 51 | // ====================== 52 | // START OF MARKET DATABASE 53 | // ====================== 54 | // ====================== 55 | // MINER CLASS DATABASE 56 | // ====================== 57 | const stone_market = db.fetch(`stone`) || 0; 58 | const rock_market = db.fetch(`rock`) || 0; 59 | const coal_market = db.fetch(`coal`) || 0; 60 | const iron_ore_market = db.fetch(`iron_ore`) || 0; 61 | const gold_ore_market = db.fetch(`gold_ore`) || 0; 62 | const diamond_ore_market = db.fetch(`diamond_ore`) || 0; 63 | const iron_market = db.fetch(`iron`) || 0; 64 | const gold_market = db.fetch(`gold.`) || 0; 65 | const diamond_market = db.fetch(`diamond`) || 0; 66 | // ====================== 67 | // FARMER CLASS DATABASE 68 | // ====================== 69 | const wheat_market = db.fetch(`wheat`) || 0; 70 | const seed_market = db.fetch(`seed`) || 0; 71 | const carrot_market = db.fetch(`carrot`) || 0; 72 | const potato_market = db.fetch(`potato`) || 0; 73 | const land_market = db.fetch(`land`) || 0; 74 | const fertilizer_market = db.fetch(`fertilizer`) || 0; 75 | const log_market = db.fetch(`log`) || 0; 76 | // ====================== 77 | // CRAFTER CLASS DATABASE (complicated cause i need to mix between farmer and miner class) 78 | // ====================== 79 | const hoe_market = db.fetch(`hoe.${message.author.id}`) || 0; 80 | const pickaxe_market = db.fetch(`rank.${message.author.id}`) || 0; 81 | const shovel_market = db.fetch(`shovel.${message.author.id}`) || 0; 82 | // ====================== 83 | // END OF DATABASE 84 | // ====================== 85 | 86 | } 87 | } -------------------------------------------------------------------------------- /commands/mine.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db'); 3 | const ms = require('parse-ms'); 4 | 5 | module.exports = { 6 | name: "mine", 7 | description: "Check your inventort for each class", 8 | aliases: ["m" , "dig"], 9 | execute(message, args){ 10 | 11 | const pickaxe = db.fetch(`pickaxe.${message.author.id}`) || 0; 12 | const energy = db.fetch(`energy.${message.author.id}`) || 0; 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /commands/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "ping", 3 | description: "Checking bot status", 4 | execute(message, args){ 5 | message.channel.send("Ah i need to work **twice** now") 6 | }, 7 | }; 8 | -------------------------------------------------------------------------------- /commands/profile.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db'); 3 | 4 | module.exports = { 5 | name: "profile", 6 | aliases: ["pro"], 7 | description: "Check your Economy Profile", 8 | execute(message, args, Profile, proDB, profile){ 9 | /* function getUser(mention) { 10 | if (!mention) return; 11 | if (mention.startsWith("<@") && mention.endsWith(">")) { 12 | var mention = mention.slice(2, -1); 13 | if (mention.startsWith("!")) { 14 | mention = mention.slice(1); 15 | } 16 | return message.guild.member(message.guild.members.get(mention)); 17 | } 18 | } */ 19 | /* const user = message.mentions.users.first() ; 20 | /*getUser(args[0]) || message.member; */ 21 | message.channel.send(`Your balance is ${Profile.money}`); 22 | } 23 | } -------------------------------------------------------------------------------- /commands/prune.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'purge', 3 | description: 'Purging messages', 4 | aliases: ['prune'], 5 | execute(message, args){ 6 | 7 | const amount = Math.floor(parseInt(args[0]) + 1); 8 | if (!message.member.hasPermission("MANAGE_MESSAGES")) 9 | return message.channel.send( 10 | `${message.author},You don't have enough permissions for this command!` 11 | ); 12 | 13 | if (isNaN(amount)) { 14 | return message.reply("that doesn't seem to be a valid number."); 15 | } else if (amount <= 0 || amount > 100) { 16 | return message.reply("You need to input a number between 1 and 99."); 17 | } 18 | 19 | message.channel.bulkDelete(amount, true); 20 | return message 21 | .reply(`Successfully deleted ${amount} messages.\n\nThis message will be deleted in 3 secs`) 22 | .then(msg => { 23 | msg.delete({ timeout: 3000 }); 24 | }); 25 | } 26 | } -------------------------------------------------------------------------------- /commands/reaction.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | module.exports = { 4 | name: 'reaction', 5 | description: 'A test command for upcoming help command', 6 | aliases: ['react' , 'r'], 7 | execute(message, args){ 8 | const embed1 = new Discord.MessageEmbed() 9 | .setColor('#0099ff') 10 | .setTitle(`Testing no.1`) 11 | // .setAuthor(`${message.author}`, 'https://i.imgur.com/wSTFkRM.png', 'https://discord.js.org') 12 | .setDescription('You choose the legendary Thumb up') 13 | // .setThumbnail(`${message.guild.icon}`) 14 | .addFields( 15 | { name: 'Just about you and me, you will get', value: `You get $100 by reacting`}, 16 | ) 17 | .setTimestamp() 18 | .setFooter('Created by GameWatch21 | Nah this one, is in Prototype'); 19 | 20 | const embed2 = new Discord.MessageEmbed() 21 | .setColor('#0099ff') 22 | .setTitle(`Testing No.2`) 23 | // .setAuthor(`${message.author}`, 'https://i.imgur.com/wSTFkRM.png', 'https://discord.js.org') 24 | .setDescription('You reacting the legendary Thumbs down') 25 | // .setThumbnail(`${message.guild.icon}`) 26 | .addFields( 27 | { name: 'Just for you and me, by reacting this', value: `You fined -$100, money is easy like that`}, 28 | ) 29 | //.addField('Inline field title', 'Some value here', true) 30 | // .setImage(`${message.guild.icon}`) 31 | .setTimestamp() 32 | .setFooter('Created by GameWatch21 | Another prototype, just wait till i fix this ok?'); 33 | 34 | message.react('👍').then(() => message.react('👎')); 35 | 36 | const filter = (reaction, user) => { 37 | return ['👍', '👎'].includes(reaction.emoji.name) && user.id === message.author.id; 38 | }; 39 | 40 | message.awaitReactions(filter, { max: 1, time: 60000, errors: ['time'] }) 41 | .then(collected => { 42 | const reaction = collected.first(); 43 | 44 | if (reaction.emoji.name === '👍') { 45 | message.channel.send(embed1); 46 | } else { 47 | message.channel.send(embed2); 48 | } 49 | }) 50 | .catch(collected => { 51 | message.reply('you reacted with neither a thumbs up, nor a thumbs down.'); 52 | }); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /commands/reload.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'reload', 3 | description: 'Reloads a command', 4 | execute(message, args) { 5 | if (!args.length) return message.channel.send(`You didn't pass any command to reload, ${message.author}!`); 6 | const commandName = args[0].toLowerCase(); 7 | const command = message.client.commands.get(commandName) 8 | || message.client.commands.find(cmd => cmd.aliases && cmd.aliases.includes(commandName)); 9 | 10 | if (!command) return message.channel.send(`There is no command with name or alias \`${commandName}\`, ${message.author}!`); 11 | delete require.cache[require.resolve(`./${command.name}.js`)]; 12 | try { 13 | const newCommand = require(`./${command.name}.js`); 14 | message.client.commands.set(newCommand.name, newCommand); 15 | } catch (error) { 16 | console.error(error); 17 | message.channel.send(`There was an error while reloading a command \`${command.name}\`:\n\`${error.message}\``); 18 | } 19 | 20 | message.channel.send(`Command \`${command.name}\` was reloaded!`); 21 | 22 | }, 23 | }; 24 | -------------------------------------------------------------------------------- /commands/restart.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db'); 3 | 4 | module.exports = { 5 | name: "restart", 6 | description: "Restart the Economy Game profile", 7 | execute(message, args){ 8 | db.delete(`class.${message.author.id}`); 9 | db.delete(`class_check.${message.author.id}`) 10 | message.channel.send('Your profile has been restarted') 11 | } 12 | } -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "prefix": "s!", 3 | "token": "your discord token here", 4 | "client_id": "your client id", 5 | "client_secret": "your client secret", 6 | "grant_type": "authorization_code", 7 | "mongodb_uri": "YOUR MONGODB URL HERE", 8 | "status": "every game i see 🗿" 9 | } 10 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CodeGround By GameWatch21 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 103 | 104 | 130 |
131 |

New Website coming soon!

132 |

Hello, CodordGround website will coming soon, so stay Tune :)

133 |

This website will be a website for bot name Strelitzia, and also will be my personal Website 134 |

135 |

136 |
137 | 138 | 145 | 146 |
147 |
148 |

Information

149 |

Welcome to CodeGround Website, where you can see all my works :)

150 |

I already make some Discord Bot (i didnt verify the bot, so you can copy the source code)

151 |

CodeGround is created by GameWatch21, it's purpose is to train myself to become a coder

152 |

Actually this is like a hobby.. wait no i mean free time work, so the project isnt fully working, probably there is a bug or problem, since i also want to train myself

153 |

With this website, i can also see my own achievement and what i already done

154 |

Join our Discord Server

155 |

Strelitzia Github Link

156 |
157 |
158 | 159 |
160 |

List of Commands

161 |
162 |
163 |
164 |

165 | 166 | s!help 167 |

168 |
169 |
170 |
Give the Help page for all the command list

Usage: s!help

Aliases: [NONE]

171 |
172 |
173 |
174 |
175 |

176 | 177 | s!avatar 178 |

179 |
180 |
181 |
Showing Your, or someone avatar(s)

Usage: s!avatar [USER]

Aliases: [NONE]

182 |
183 |
184 |
185 |
186 |

187 | 188 | s!prune 189 |

190 |
191 |
192 |
Pruning or Deleting message on a channel

Usage: s!prune [AMOUNT]

Aliases: [NONE]

193 |
194 |
195 |
196 |
197 |

198 | 199 | s!register 200 |

201 |
202 |
203 |
Register to the economy Games, Choose a class and start playing

Usage: s!register | s!register [CLASS]

Aliases: s!reg

204 |
205 |
206 |
207 |
208 |

209 | 210 | s!profile 211 |

212 |
213 |
214 |
Check your profile game, If you already register, you can view your profile, oh also you can check someone profile too

Usage: s!profile | s!profile [USER]

Aliases: s!pro

215 |
216 |
217 |
218 |
219 |

220 | 221 | s!info-server 222 |

223 |
224 |
225 |
Check the server information

Usage: s!info-server

Aliases: [NONE]

226 |
227 |
228 |
229 |
230 |

231 | 232 | s!inventory 233 |

234 |
235 |
236 |
Check your Economy Inventory

Usage: s!inventory

Aliases: [s!inv]

237 |
238 |
239 |
240 |
241 | 242 |
243 |
244 |
GameWatch21 also work on other project, well the other project used from Codeground project and just add some modifitcation 245 |

You can visit the Github link where you can fork my other project, if you curious where i code it, both project i use glitch.com and repl.it, Then i use mobile phone to code (10% using pc)

246 |

So here you may take a look with my other project i work on

247 | Discord Faucet Bot 248 |
249 |
250 |
251 | 252 | 255 | 256 | 257 | 325 | 326 | 327 | -------------------------------------------------------------------------------- /json.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameWatch21/CG-Economy/6e624432740987f0c153eb19de5eb1b06d86c4ac/json.sqlite -------------------------------------------------------------------------------- /keep_alive.js: -------------------------------------------------------------------------------- 1 | var http = require('http'); 2 | 3 | http.createServer(function (req, res) { 4 | res.write("Cmon, Wake up dude"); 5 | res.end(); 6 | }).listen(8080); -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CodeGround", 3 | "short_name": "CodeGround", 4 | "start_url": "/index.html", 5 | "display": "standalone", 6 | "background_color": "#fff", 7 | "description": "A Website for Private Code Playground", 8 | "icons": [{ 9 | "src": "images/touch/homescreen48.png", 10 | "sizes": "48x48", 11 | "type": "image/png" 12 | }, { 13 | "src": "images/touch/homescreen72.png", 14 | "sizes": "72x72", 15 | "type": "image/png" 16 | }, { 17 | "src": "images/touch/homescreen96.png", 18 | "sizes": "96x96", 19 | "type": "image/png" 20 | }, { 21 | "src": "images/touch/homescreen144.png", 22 | "sizes": "144x144", 23 | "type": "image/png" 24 | }, { 25 | "src": "images/touch/homescreen168.png", 26 | "sizes": "168x168", 27 | "type": "image/png" 28 | }, { 29 | "src": "images/touch/homescreen192.png", 30 | "sizes": "192x192", 31 | "type": "image/png" 32 | }] 33 | } -------------------------------------------------------------------------------- /models/items.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | const messages = require('discord.js') 3 | 4 | { 5 | const stone = db.fetch(`stone.${message.author.id}`) || 0; 6 | const rock = db.fetch(`rock.${message.author.id}`) || 0; 7 | const coal = db.fetch(`coal.${message.author.id}`) || 0; 8 | const iron_ore = db.fetch(`iron_ore.${message.author.id}`) || 0; 9 | const gold_ore = db.fetch(`gold_ore.${message.author.id}`) || 0; 10 | const diamond_ore = db.fetch(`diamond_ore.${message.author.id}`) || 0; 11 | const iron = db.fetch(`iron.${message.author.id}`) || 0; 12 | const gold = db.fetch(`gold.${message.author.id}`) || 0; 13 | const diamond = db.fetch(`diamond.${message.author.id}`) || 0; 14 | } 15 | -------------------------------------------------------------------------------- /models/member.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameWatch21/CG-Economy/6e624432740987f0c153eb19de5eb1b06d86c4ac/models/member.js -------------------------------------------------------------------------------- /models/profile.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameWatch21/CG-Economy/6e624432740987f0c153eb19de5eb1b06d86c4ac/models/profile.js -------------------------------------------------------------------------------- /models/schema/guild.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameWatch21/CG-Economy/6e624432740987f0c153eb19de5eb1b06d86c4ac/models/schema/guild.js -------------------------------------------------------------------------------- /models/schema/log.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameWatch21/CG-Economy/6e624432740987f0c153eb19de5eb1b06d86c4ac/models/schema/log.js -------------------------------------------------------------------------------- /models/schema/user.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameWatch21/CG-Economy/6e624432740987f0c153eb19de5eb1b06d86c4ac/models/schema/user.js -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "codeground", 3 | "version": "1.0.2", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@discordjs/collection": { 8 | "version": "0.1.6", 9 | "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz", 10 | "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==" 11 | }, 12 | "@discordjs/form-data": { 13 | "version": "3.0.1", 14 | "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", 15 | "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", 16 | "requires": { 17 | "asynckit": "^0.4.0", 18 | "combined-stream": "^1.0.8", 19 | "mime-types": "^2.1.12" 20 | } 21 | }, 22 | "@types/bson": { 23 | "version": "4.0.4", 24 | "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.4.tgz", 25 | "integrity": "sha512-awqorHvQS0DqxkHQ/FxcPX9E+H7Du51Qw/2F+5TBMSaE3G0hm+8D3eXJ6MAzFw75nE8V7xF0QvzUSdxIjJb/GA==", 26 | "requires": { 27 | "@types/node": "*" 28 | } 29 | }, 30 | "@types/mongodb": { 31 | "version": "3.6.20", 32 | "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.20.tgz", 33 | "integrity": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==", 34 | "requires": { 35 | "@types/bson": "*", 36 | "@types/node": "*" 37 | } 38 | }, 39 | "@types/node": { 40 | "version": "15.14.1", 41 | "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.1.tgz", 42 | "integrity": "sha512-wF6hazbsnwaW3GhK4jFuw5NaLDQVRQ6pWQUGAUrJzxixFkTaODSiAKMPXuHwPEPkAKQWHAzj6uJ5h+3zU9gQxg==" 43 | }, 44 | "abort-controller": { 45 | "version": "3.0.0", 46 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 47 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 48 | "requires": { 49 | "event-target-shim": "^5.0.0" 50 | } 51 | }, 52 | "accepts": { 53 | "version": "1.3.7", 54 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 55 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 56 | "requires": { 57 | "mime-types": "~2.1.24", 58 | "negotiator": "0.6.2" 59 | } 60 | }, 61 | "ansi-regex": { 62 | "version": "2.1.1", 63 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 64 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 65 | }, 66 | "aproba": { 67 | "version": "1.2.0", 68 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 69 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" 70 | }, 71 | "are-we-there-yet": { 72 | "version": "1.1.5", 73 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", 74 | "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", 75 | "requires": { 76 | "delegates": "^1.0.0", 77 | "readable-stream": "^2.0.6" 78 | } 79 | }, 80 | "array-flatten": { 81 | "version": "1.1.1", 82 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 83 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 84 | }, 85 | "asynckit": { 86 | "version": "0.4.0", 87 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 88 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 89 | }, 90 | "base64-js": { 91 | "version": "1.5.1", 92 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 93 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 94 | }, 95 | "better-sqlite3": { 96 | "version": "7.1.1", 97 | "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.1.1.tgz", 98 | "integrity": "sha512-AkvGGyhAVZhRBOul2WT+5CB2EuveM3ZkebEKe1wxMqDZUy1XB/1RBgM66t0ybHC4DIni8+pr7NaLqEX87NUTwg==", 99 | "requires": { 100 | "bindings": "^1.5.0", 101 | "prebuild-install": "^5.3.3", 102 | "tar": "4.4.10" 103 | } 104 | }, 105 | "bindings": { 106 | "version": "1.5.0", 107 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 108 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 109 | "requires": { 110 | "file-uri-to-path": "1.0.0" 111 | } 112 | }, 113 | "bl": { 114 | "version": "4.0.3", 115 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", 116 | "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", 117 | "requires": { 118 | "buffer": "^5.5.0", 119 | "inherits": "^2.0.4", 120 | "readable-stream": "^3.4.0" 121 | }, 122 | "dependencies": { 123 | "inherits": { 124 | "version": "2.0.4", 125 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 126 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 127 | }, 128 | "readable-stream": { 129 | "version": "3.6.0", 130 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 131 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 132 | "requires": { 133 | "inherits": "^2.0.3", 134 | "string_decoder": "^1.1.1", 135 | "util-deprecate": "^1.0.1" 136 | } 137 | } 138 | } 139 | }, 140 | "bluebird": { 141 | "version": "3.5.1", 142 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 143 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" 144 | }, 145 | "body-parser": { 146 | "version": "1.19.0", 147 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 148 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 149 | "requires": { 150 | "bytes": "3.1.0", 151 | "content-type": "~1.0.4", 152 | "debug": "2.6.9", 153 | "depd": "~1.1.2", 154 | "http-errors": "1.7.2", 155 | "iconv-lite": "0.4.24", 156 | "on-finished": "~2.3.0", 157 | "qs": "6.7.0", 158 | "raw-body": "2.4.0", 159 | "type-is": "~1.6.17" 160 | } 161 | }, 162 | "bson": { 163 | "version": "1.1.6", 164 | "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", 165 | "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==" 166 | }, 167 | "buffer": { 168 | "version": "5.7.1", 169 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 170 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 171 | "requires": { 172 | "base64-js": "^1.3.1", 173 | "ieee754": "^1.1.13" 174 | } 175 | }, 176 | "bytes": { 177 | "version": "3.1.0", 178 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 179 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 180 | }, 181 | "chownr": { 182 | "version": "1.1.4", 183 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 184 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" 185 | }, 186 | "code-point-at": { 187 | "version": "1.1.0", 188 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 189 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" 190 | }, 191 | "combined-stream": { 192 | "version": "1.0.8", 193 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 194 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 195 | "requires": { 196 | "delayed-stream": "~1.0.0" 197 | } 198 | }, 199 | "console-control-strings": { 200 | "version": "1.1.0", 201 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 202 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" 203 | }, 204 | "content-disposition": { 205 | "version": "0.5.3", 206 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 207 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 208 | "requires": { 209 | "safe-buffer": "5.1.2" 210 | } 211 | }, 212 | "content-type": { 213 | "version": "1.0.4", 214 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 215 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 216 | }, 217 | "cookie": { 218 | "version": "0.4.0", 219 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 220 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 221 | }, 222 | "cookie-signature": { 223 | "version": "1.0.6", 224 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 225 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 226 | }, 227 | "core-util-is": { 228 | "version": "1.0.2", 229 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 230 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 231 | }, 232 | "debug": { 233 | "version": "2.6.9", 234 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 235 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 236 | "requires": { 237 | "ms": "2.0.0" 238 | } 239 | }, 240 | "decompress-response": { 241 | "version": "4.2.1", 242 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", 243 | "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", 244 | "requires": { 245 | "mimic-response": "^2.0.0" 246 | } 247 | }, 248 | "deep-extend": { 249 | "version": "0.6.0", 250 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 251 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" 252 | }, 253 | "delayed-stream": { 254 | "version": "1.0.0", 255 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 256 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 257 | }, 258 | "delegates": { 259 | "version": "1.0.0", 260 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 261 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" 262 | }, 263 | "denque": { 264 | "version": "1.5.0", 265 | "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", 266 | "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==" 267 | }, 268 | "depd": { 269 | "version": "1.1.2", 270 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 271 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 272 | }, 273 | "destroy": { 274 | "version": "1.0.4", 275 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 276 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 277 | }, 278 | "detect-libc": { 279 | "version": "1.0.3", 280 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", 281 | "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" 282 | }, 283 | "discord.js": { 284 | "version": "12.5.1", 285 | "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.1.tgz", 286 | "integrity": "sha512-VwZkVaUAIOB9mKdca0I5MefPMTQJTNg0qdgi1huF3iwsFwJ0L5s/Y69AQe+iPmjuV6j9rtKoG0Ta0n9vgEIL6w==", 287 | "requires": { 288 | "@discordjs/collection": "^0.1.6", 289 | "@discordjs/form-data": "^3.0.1", 290 | "abort-controller": "^3.0.0", 291 | "node-fetch": "^2.6.1", 292 | "prism-media": "^1.2.2", 293 | "setimmediate": "^1.0.5", 294 | "tweetnacl": "^1.0.3", 295 | "ws": "^7.3.1" 296 | } 297 | }, 298 | "ee-first": { 299 | "version": "1.1.1", 300 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 301 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 302 | }, 303 | "encodeurl": { 304 | "version": "1.0.2", 305 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 306 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 307 | }, 308 | "end-of-stream": { 309 | "version": "1.4.4", 310 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 311 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 312 | "requires": { 313 | "once": "^1.4.0" 314 | } 315 | }, 316 | "escape-html": { 317 | "version": "1.0.3", 318 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 319 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 320 | }, 321 | "etag": { 322 | "version": "1.8.1", 323 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 324 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 325 | }, 326 | "event-target-shim": { 327 | "version": "5.0.1", 328 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 329 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" 330 | }, 331 | "expand-template": { 332 | "version": "2.0.3", 333 | "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", 334 | "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" 335 | }, 336 | "express": { 337 | "version": "4.17.1", 338 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 339 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 340 | "requires": { 341 | "accepts": "~1.3.7", 342 | "array-flatten": "1.1.1", 343 | "body-parser": "1.19.0", 344 | "content-disposition": "0.5.3", 345 | "content-type": "~1.0.4", 346 | "cookie": "0.4.0", 347 | "cookie-signature": "1.0.6", 348 | "debug": "2.6.9", 349 | "depd": "~1.1.2", 350 | "encodeurl": "~1.0.2", 351 | "escape-html": "~1.0.3", 352 | "etag": "~1.8.1", 353 | "finalhandler": "~1.1.2", 354 | "fresh": "0.5.2", 355 | "merge-descriptors": "1.0.1", 356 | "methods": "~1.1.2", 357 | "on-finished": "~2.3.0", 358 | "parseurl": "~1.3.3", 359 | "path-to-regexp": "0.1.7", 360 | "proxy-addr": "~2.0.5", 361 | "qs": "6.7.0", 362 | "range-parser": "~1.2.1", 363 | "safe-buffer": "5.1.2", 364 | "send": "0.17.1", 365 | "serve-static": "1.14.1", 366 | "setprototypeof": "1.1.1", 367 | "statuses": "~1.5.0", 368 | "type-is": "~1.6.18", 369 | "utils-merge": "1.0.1", 370 | "vary": "~1.1.2" 371 | } 372 | }, 373 | "file-uri-to-path": { 374 | "version": "1.0.0", 375 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 376 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" 377 | }, 378 | "finalhandler": { 379 | "version": "1.1.2", 380 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 381 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 382 | "requires": { 383 | "debug": "2.6.9", 384 | "encodeurl": "~1.0.2", 385 | "escape-html": "~1.0.3", 386 | "on-finished": "~2.3.0", 387 | "parseurl": "~1.3.3", 388 | "statuses": "~1.5.0", 389 | "unpipe": "~1.0.0" 390 | } 391 | }, 392 | "forwarded": { 393 | "version": "0.1.2", 394 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 395 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 396 | }, 397 | "fresh": { 398 | "version": "0.5.2", 399 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 400 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 401 | }, 402 | "fs-constants": { 403 | "version": "1.0.0", 404 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 405 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 406 | }, 407 | "fs-minipass": { 408 | "version": "1.2.7", 409 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", 410 | "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", 411 | "requires": { 412 | "minipass": "^2.6.0" 413 | } 414 | }, 415 | "gauge": { 416 | "version": "2.7.4", 417 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", 418 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", 419 | "requires": { 420 | "aproba": "^1.0.3", 421 | "console-control-strings": "^1.0.0", 422 | "has-unicode": "^2.0.0", 423 | "object-assign": "^4.1.0", 424 | "signal-exit": "^3.0.0", 425 | "string-width": "^1.0.1", 426 | "strip-ansi": "^3.0.1", 427 | "wide-align": "^1.1.0" 428 | } 429 | }, 430 | "github-from-package": { 431 | "version": "0.0.0", 432 | "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", 433 | "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" 434 | }, 435 | "has-unicode": { 436 | "version": "2.0.1", 437 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 438 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" 439 | }, 440 | "http-errors": { 441 | "version": "1.7.2", 442 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 443 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 444 | "requires": { 445 | "depd": "~1.1.2", 446 | "inherits": "2.0.3", 447 | "setprototypeof": "1.1.1", 448 | "statuses": ">= 1.5.0 < 2", 449 | "toidentifier": "1.0.0" 450 | } 451 | }, 452 | "iconv-lite": { 453 | "version": "0.4.24", 454 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 455 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 456 | "requires": { 457 | "safer-buffer": ">= 2.1.2 < 3" 458 | } 459 | }, 460 | "ieee754": { 461 | "version": "1.2.1", 462 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 463 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 464 | }, 465 | "inherits": { 466 | "version": "2.0.3", 467 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 468 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 469 | }, 470 | "ini": { 471 | "version": "1.3.8", 472 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 473 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" 474 | }, 475 | "ipaddr.js": { 476 | "version": "1.9.1", 477 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 478 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 479 | }, 480 | "is-fullwidth-code-point": { 481 | "version": "1.0.0", 482 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 483 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 484 | "requires": { 485 | "number-is-nan": "^1.0.0" 486 | } 487 | }, 488 | "isarray": { 489 | "version": "1.0.0", 490 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 491 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 492 | }, 493 | "kareem": { 494 | "version": "2.3.2", 495 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", 496 | "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" 497 | }, 498 | "lodash": { 499 | "version": "4.17.20", 500 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", 501 | "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" 502 | }, 503 | "m3u8stream": { 504 | "version": "0.8.3", 505 | "resolved": "https://registry.npmjs.org/m3u8stream/-/m3u8stream-0.8.3.tgz", 506 | "integrity": "sha512-0nAcdrF8YJKUkb6PzWdvGftTPyCVWgoiot1AkNVbPKTeIGsWs6DrOjifrJ0Zi8WQfQmD2SuVCjkYIOip12igng==", 507 | "requires": { 508 | "miniget": "^4.0.0", 509 | "sax": "^1.2.4" 510 | } 511 | }, 512 | "media-typer": { 513 | "version": "0.3.0", 514 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 515 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 516 | }, 517 | "memory-pager": { 518 | "version": "1.5.0", 519 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", 520 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", 521 | "optional": true 522 | }, 523 | "merge-descriptors": { 524 | "version": "1.0.1", 525 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 526 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 527 | }, 528 | "methods": { 529 | "version": "1.1.2", 530 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 531 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 532 | }, 533 | "mime": { 534 | "version": "1.6.0", 535 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 536 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 537 | }, 538 | "mime-db": { 539 | "version": "1.44.0", 540 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 541 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" 542 | }, 543 | "mime-types": { 544 | "version": "2.1.27", 545 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", 546 | "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", 547 | "requires": { 548 | "mime-db": "1.44.0" 549 | } 550 | }, 551 | "mimic-response": { 552 | "version": "2.1.0", 553 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", 554 | "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" 555 | }, 556 | "miniget": { 557 | "version": "4.1.0", 558 | "resolved": "https://registry.npmjs.org/miniget/-/miniget-4.1.0.tgz", 559 | "integrity": "sha512-kzhrNv5L7LlomwGmPGQsLQ2PnT1LeJJWfB0wNFGyv426gEM1gsfziBQmfkr6XOBA8EusZg9nowlNT5CbuKTjZg==" 560 | }, 561 | "minimist": { 562 | "version": "1.2.5", 563 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 564 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 565 | }, 566 | "minipass": { 567 | "version": "2.9.0", 568 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", 569 | "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", 570 | "requires": { 571 | "safe-buffer": "^5.1.2", 572 | "yallist": "^3.0.0" 573 | } 574 | }, 575 | "minizlib": { 576 | "version": "1.3.3", 577 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", 578 | "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", 579 | "requires": { 580 | "minipass": "^2.9.0" 581 | } 582 | }, 583 | "mkdirp": { 584 | "version": "0.5.5", 585 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 586 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 587 | "requires": { 588 | "minimist": "^1.2.5" 589 | } 590 | }, 591 | "mkdirp-classic": { 592 | "version": "0.5.3", 593 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", 594 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" 595 | }, 596 | "mongodb": { 597 | "version": "3.6.8", 598 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.8.tgz", 599 | "integrity": "sha512-sDjJvI73WjON1vapcbyBD3Ao9/VN3TKYY8/QX9EPbs22KaCSrQ5rXo5ZZd44tWJ3wl3FlnrFZ+KyUtNH6+1ZPQ==", 600 | "requires": { 601 | "bl": "^2.2.1", 602 | "bson": "^1.1.4", 603 | "denque": "^1.4.1", 604 | "optional-require": "^1.0.3", 605 | "safe-buffer": "^5.1.2", 606 | "saslprep": "^1.0.0" 607 | }, 608 | "dependencies": { 609 | "bl": { 610 | "version": "2.2.1", 611 | "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", 612 | "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", 613 | "requires": { 614 | "readable-stream": "^2.3.5", 615 | "safe-buffer": "^5.1.1" 616 | } 617 | } 618 | } 619 | }, 620 | "mongoose": { 621 | "version": "5.13.2", 622 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.2.tgz", 623 | "integrity": "sha512-sBUKJGpdwZCq9102Lj6ZOaLcW4z/T4TI9aGWrNX5ZlICwChKWG4Wo5qriLImdww3H7bETPW9vYtSiADNlA4wSQ==", 624 | "requires": { 625 | "@types/mongodb": "^3.5.27", 626 | "@types/node": "14.x || 15.x", 627 | "bson": "^1.1.4", 628 | "kareem": "2.3.2", 629 | "mongodb": "3.6.8", 630 | "mongoose-legacy-pluralize": "1.0.2", 631 | "mpath": "0.8.3", 632 | "mquery": "3.2.5", 633 | "ms": "2.1.2", 634 | "regexp-clone": "1.0.0", 635 | "safe-buffer": "5.2.1", 636 | "sift": "13.5.2", 637 | "sliced": "1.0.1" 638 | }, 639 | "dependencies": { 640 | "ms": { 641 | "version": "2.1.2", 642 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 643 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 644 | }, 645 | "safe-buffer": { 646 | "version": "5.2.1", 647 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 648 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 649 | } 650 | } 651 | }, 652 | "mongoose-legacy-pluralize": { 653 | "version": "1.0.2", 654 | "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", 655 | "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" 656 | }, 657 | "mpath": { 658 | "version": "0.8.3", 659 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz", 660 | "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==" 661 | }, 662 | "mquery": { 663 | "version": "3.2.5", 664 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz", 665 | "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==", 666 | "requires": { 667 | "bluebird": "3.5.1", 668 | "debug": "3.1.0", 669 | "regexp-clone": "^1.0.0", 670 | "safe-buffer": "5.1.2", 671 | "sliced": "1.0.1" 672 | }, 673 | "dependencies": { 674 | "debug": { 675 | "version": "3.1.0", 676 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 677 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 678 | "requires": { 679 | "ms": "2.0.0" 680 | } 681 | } 682 | } 683 | }, 684 | "ms": { 685 | "version": "2.0.0", 686 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 687 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 688 | }, 689 | "napi-build-utils": { 690 | "version": "1.0.2", 691 | "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", 692 | "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" 693 | }, 694 | "negotiator": { 695 | "version": "0.6.2", 696 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 697 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 698 | }, 699 | "node-abi": { 700 | "version": "2.19.3", 701 | "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", 702 | "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", 703 | "requires": { 704 | "semver": "^5.4.1" 705 | } 706 | }, 707 | "node-fetch": { 708 | "version": "2.6.1", 709 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", 710 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" 711 | }, 712 | "noop-logger": { 713 | "version": "0.1.1", 714 | "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", 715 | "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" 716 | }, 717 | "npmlog": { 718 | "version": "4.1.2", 719 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", 720 | "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", 721 | "requires": { 722 | "are-we-there-yet": "~1.1.2", 723 | "console-control-strings": "~1.1.0", 724 | "gauge": "~2.7.3", 725 | "set-blocking": "~2.0.0" 726 | } 727 | }, 728 | "number-is-nan": { 729 | "version": "1.0.1", 730 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 731 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" 732 | }, 733 | "object-assign": { 734 | "version": "4.1.1", 735 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 736 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 737 | }, 738 | "on-finished": { 739 | "version": "2.3.0", 740 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 741 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 742 | "requires": { 743 | "ee-first": "1.1.1" 744 | } 745 | }, 746 | "once": { 747 | "version": "1.4.0", 748 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 749 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 750 | "requires": { 751 | "wrappy": "1" 752 | } 753 | }, 754 | "optional-require": { 755 | "version": "1.0.3", 756 | "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz", 757 | "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==" 758 | }, 759 | "parse-ms": { 760 | "version": "2.1.0", 761 | "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", 762 | "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==" 763 | }, 764 | "parseurl": { 765 | "version": "1.3.3", 766 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 767 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 768 | }, 769 | "path-to-regexp": { 770 | "version": "0.1.7", 771 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 772 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 773 | }, 774 | "prebuild-install": { 775 | "version": "5.3.6", 776 | "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", 777 | "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", 778 | "requires": { 779 | "detect-libc": "^1.0.3", 780 | "expand-template": "^2.0.3", 781 | "github-from-package": "0.0.0", 782 | "minimist": "^1.2.3", 783 | "mkdirp-classic": "^0.5.3", 784 | "napi-build-utils": "^1.0.1", 785 | "node-abi": "^2.7.0", 786 | "noop-logger": "^0.1.1", 787 | "npmlog": "^4.0.1", 788 | "pump": "^3.0.0", 789 | "rc": "^1.2.7", 790 | "simple-get": "^3.0.3", 791 | "tar-fs": "^2.0.0", 792 | "tunnel-agent": "^0.6.0", 793 | "which-pm-runs": "^1.0.0" 794 | } 795 | }, 796 | "prism-media": { 797 | "version": "1.2.3", 798 | "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.3.tgz", 799 | "integrity": "sha512-fSrR66n0l6roW9Rx4rSLMyTPTjRTiXy5RVqDOurACQ6si1rKHHKDU5gwBJoCsIV0R3o9gi+K50akl/qyw1C74A==" 800 | }, 801 | "process-nextick-args": { 802 | "version": "2.0.1", 803 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 804 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 805 | }, 806 | "proxy-addr": { 807 | "version": "2.0.6", 808 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", 809 | "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", 810 | "requires": { 811 | "forwarded": "~0.1.2", 812 | "ipaddr.js": "1.9.1" 813 | } 814 | }, 815 | "pump": { 816 | "version": "3.0.0", 817 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 818 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 819 | "requires": { 820 | "end-of-stream": "^1.1.0", 821 | "once": "^1.3.1" 822 | } 823 | }, 824 | "qs": { 825 | "version": "6.7.0", 826 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 827 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 828 | }, 829 | "querystring": { 830 | "version": "0.2.0", 831 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 832 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" 833 | }, 834 | "quick.db": { 835 | "version": "7.1.3", 836 | "resolved": "https://registry.npmjs.org/quick.db/-/quick.db-7.1.3.tgz", 837 | "integrity": "sha512-0S1fVb9OAZGhkI4ZIc5Oe4yWMwhz20xSsziwd6+yGWKKMsPt+XOfj/gD5CesGxd2WdqBkZFBiP8ZqWDu55HLHA==", 838 | "requires": { 839 | "better-sqlite3": "^7.1.1", 840 | "lodash": "^4.17.20" 841 | } 842 | }, 843 | "range-parser": { 844 | "version": "1.2.1", 845 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 846 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 847 | }, 848 | "raw-body": { 849 | "version": "2.4.0", 850 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 851 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 852 | "requires": { 853 | "bytes": "3.1.0", 854 | "http-errors": "1.7.2", 855 | "iconv-lite": "0.4.24", 856 | "unpipe": "1.0.0" 857 | } 858 | }, 859 | "rc": { 860 | "version": "1.2.8", 861 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 862 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 863 | "requires": { 864 | "deep-extend": "^0.6.0", 865 | "ini": "~1.3.0", 866 | "minimist": "^1.2.0", 867 | "strip-json-comments": "~2.0.1" 868 | } 869 | }, 870 | "readable-stream": { 871 | "version": "2.3.7", 872 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 873 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 874 | "requires": { 875 | "core-util-is": "~1.0.0", 876 | "inherits": "~2.0.3", 877 | "isarray": "~1.0.0", 878 | "process-nextick-args": "~2.0.0", 879 | "safe-buffer": "~5.1.1", 880 | "string_decoder": "~1.1.1", 881 | "util-deprecate": "~1.0.1" 882 | } 883 | }, 884 | "regexp-clone": { 885 | "version": "1.0.0", 886 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", 887 | "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" 888 | }, 889 | "safe-buffer": { 890 | "version": "5.1.2", 891 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 892 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 893 | }, 894 | "safer-buffer": { 895 | "version": "2.1.2", 896 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 897 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 898 | }, 899 | "saslprep": { 900 | "version": "1.0.3", 901 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", 902 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", 903 | "optional": true, 904 | "requires": { 905 | "sparse-bitfield": "^3.0.3" 906 | } 907 | }, 908 | "sax": { 909 | "version": "1.2.4", 910 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 911 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" 912 | }, 913 | "semver": { 914 | "version": "5.7.1", 915 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 916 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 917 | }, 918 | "send": { 919 | "version": "0.17.1", 920 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 921 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 922 | "requires": { 923 | "debug": "2.6.9", 924 | "depd": "~1.1.2", 925 | "destroy": "~1.0.4", 926 | "encodeurl": "~1.0.2", 927 | "escape-html": "~1.0.3", 928 | "etag": "~1.8.1", 929 | "fresh": "0.5.2", 930 | "http-errors": "~1.7.2", 931 | "mime": "1.6.0", 932 | "ms": "2.1.1", 933 | "on-finished": "~2.3.0", 934 | "range-parser": "~1.2.1", 935 | "statuses": "~1.5.0" 936 | }, 937 | "dependencies": { 938 | "ms": { 939 | "version": "2.1.1", 940 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 941 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 942 | } 943 | } 944 | }, 945 | "serve-static": { 946 | "version": "1.14.1", 947 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 948 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 949 | "requires": { 950 | "encodeurl": "~1.0.2", 951 | "escape-html": "~1.0.3", 952 | "parseurl": "~1.3.3", 953 | "send": "0.17.1" 954 | } 955 | }, 956 | "set-blocking": { 957 | "version": "2.0.0", 958 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 959 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 960 | }, 961 | "setimmediate": { 962 | "version": "1.0.5", 963 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 964 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" 965 | }, 966 | "setprototypeof": { 967 | "version": "1.1.1", 968 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 969 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 970 | }, 971 | "sift": { 972 | "version": "13.5.2", 973 | "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", 974 | "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" 975 | }, 976 | "signal-exit": { 977 | "version": "3.0.3", 978 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 979 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 980 | }, 981 | "simple-concat": { 982 | "version": "1.0.1", 983 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", 984 | "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" 985 | }, 986 | "simple-get": { 987 | "version": "3.1.0", 988 | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", 989 | "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", 990 | "requires": { 991 | "decompress-response": "^4.2.0", 992 | "once": "^1.3.1", 993 | "simple-concat": "^1.0.0" 994 | } 995 | }, 996 | "sliced": { 997 | "version": "1.0.1", 998 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", 999 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" 1000 | }, 1001 | "sparse-bitfield": { 1002 | "version": "3.0.3", 1003 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", 1004 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", 1005 | "optional": true, 1006 | "requires": { 1007 | "memory-pager": "^1.0.2" 1008 | } 1009 | }, 1010 | "statuses": { 1011 | "version": "1.5.0", 1012 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 1013 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 1014 | }, 1015 | "string-width": { 1016 | "version": "1.0.2", 1017 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 1018 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 1019 | "requires": { 1020 | "code-point-at": "^1.0.0", 1021 | "is-fullwidth-code-point": "^1.0.0", 1022 | "strip-ansi": "^3.0.0" 1023 | } 1024 | }, 1025 | "string_decoder": { 1026 | "version": "1.1.1", 1027 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1028 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1029 | "requires": { 1030 | "safe-buffer": "~5.1.0" 1031 | } 1032 | }, 1033 | "strip-ansi": { 1034 | "version": "3.0.1", 1035 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 1036 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1037 | "requires": { 1038 | "ansi-regex": "^2.0.0" 1039 | } 1040 | }, 1041 | "strip-json-comments": { 1042 | "version": "2.0.1", 1043 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1044 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" 1045 | }, 1046 | "tar": { 1047 | "version": "4.4.10", 1048 | "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", 1049 | "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==", 1050 | "requires": { 1051 | "chownr": "^1.1.1", 1052 | "fs-minipass": "^1.2.5", 1053 | "minipass": "^2.3.5", 1054 | "minizlib": "^1.2.1", 1055 | "mkdirp": "^0.5.0", 1056 | "safe-buffer": "^5.1.2", 1057 | "yallist": "^3.0.3" 1058 | } 1059 | }, 1060 | "tar-fs": { 1061 | "version": "2.1.1", 1062 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", 1063 | "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", 1064 | "requires": { 1065 | "chownr": "^1.1.1", 1066 | "mkdirp-classic": "^0.5.2", 1067 | "pump": "^3.0.0", 1068 | "tar-stream": "^2.1.4" 1069 | } 1070 | }, 1071 | "tar-stream": { 1072 | "version": "2.1.4", 1073 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz", 1074 | "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==", 1075 | "requires": { 1076 | "bl": "^4.0.3", 1077 | "end-of-stream": "^1.4.1", 1078 | "fs-constants": "^1.0.0", 1079 | "inherits": "^2.0.3", 1080 | "readable-stream": "^3.1.1" 1081 | }, 1082 | "dependencies": { 1083 | "readable-stream": { 1084 | "version": "3.6.0", 1085 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1086 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1087 | "requires": { 1088 | "inherits": "^2.0.3", 1089 | "string_decoder": "^1.1.1", 1090 | "util-deprecate": "^1.0.1" 1091 | } 1092 | } 1093 | } 1094 | }, 1095 | "toidentifier": { 1096 | "version": "1.0.0", 1097 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 1098 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 1099 | }, 1100 | "tunnel-agent": { 1101 | "version": "0.6.0", 1102 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 1103 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 1104 | "requires": { 1105 | "safe-buffer": "^5.0.1" 1106 | } 1107 | }, 1108 | "tweetnacl": { 1109 | "version": "1.0.3", 1110 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", 1111 | "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" 1112 | }, 1113 | "type-is": { 1114 | "version": "1.6.18", 1115 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 1116 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 1117 | "requires": { 1118 | "media-typer": "0.3.0", 1119 | "mime-types": "~2.1.24" 1120 | } 1121 | }, 1122 | "unpipe": { 1123 | "version": "1.0.0", 1124 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1125 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 1126 | }, 1127 | "util-deprecate": { 1128 | "version": "1.0.2", 1129 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1130 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1131 | }, 1132 | "utils-merge": { 1133 | "version": "1.0.1", 1134 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 1135 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 1136 | }, 1137 | "vary": { 1138 | "version": "1.1.2", 1139 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1140 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 1141 | }, 1142 | "which-pm-runs": { 1143 | "version": "1.0.0", 1144 | "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", 1145 | "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" 1146 | }, 1147 | "wide-align": { 1148 | "version": "1.1.3", 1149 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", 1150 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", 1151 | "requires": { 1152 | "string-width": "^1.0.2 || 2" 1153 | } 1154 | }, 1155 | "wrappy": { 1156 | "version": "1.0.2", 1157 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1158 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1159 | }, 1160 | "ws": { 1161 | "version": "7.4.1", 1162 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", 1163 | "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==" 1164 | }, 1165 | "yallist": { 1166 | "version": "3.1.1", 1167 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 1168 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" 1169 | }, 1170 | "ytdl-core": { 1171 | "version": "4.2.1", 1172 | "resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.2.1.tgz", 1173 | "integrity": "sha512-7zAoJiWpaBGgiAUCQuvKBuWom7tmSCV0A70gRdrPxR96yQoJOrCZkW6Wg1CofvPtAeQVWTVWThC8bXRsE+SBeA==", 1174 | "requires": { 1175 | "m3u8stream": "^0.8.3", 1176 | "miniget": "^4.0.0", 1177 | "sax": "^1.1.3" 1178 | } 1179 | } 1180 | } 1181 | } 1182 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "codeground", 3 | "version": "1.1.1", 4 | "description": "Just a bot for me to code for fun", 5 | "main": "bot.js", 6 | "engines": { 7 | "node": "12.x" 8 | }, 9 | "scripts": { 10 | "start": "node bot.js", 11 | "test": "node bot.js" 12 | }, 13 | "keywords": [], 14 | "author": "GameWatch21", 15 | "license": "ISC", 16 | "dependencies": { 17 | "discord.js": "^12.5.0", 18 | "express": "^4.17.1", 19 | "mongoose": "^5.13.2", 20 | "node-fetch": "^2.6.1", 21 | "parse-ms": "^2.1.0", 22 | "querystring": "^0.2.0", 23 | "quick.db": "^7.1.2" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /shrinkwrap.yaml: -------------------------------------------------------------------------------- 1 | dependencies: 2 | discord.js: 12.5.0 3 | express: 4.17.1 4 | node-fetch: 2.6.1 5 | querystring: 0.2.0 6 | quick.db: 7.1.3 7 | packages: 8 | /@discordjs/collection/0.1.6: 9 | dev: false 10 | resolution: 11 | integrity: sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ== 12 | /@discordjs/form-data/3.0.1: 13 | dependencies: 14 | asynckit: 0.4.0 15 | combined-stream: 1.0.8 16 | mime-types: 2.1.27 17 | dev: false 18 | engines: 19 | node: '>= 6' 20 | resolution: 21 | integrity: sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg== 22 | /abort-controller/3.0.0: 23 | dependencies: 24 | event-target-shim: 5.0.1 25 | dev: false 26 | engines: 27 | node: '>=6.5' 28 | resolution: 29 | integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== 30 | /accepts/1.3.7: 31 | dependencies: 32 | mime-types: 2.1.27 33 | negotiator: 0.6.2 34 | dev: false 35 | engines: 36 | node: '>= 0.6' 37 | resolution: 38 | integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 39 | /ansi-regex/2.1.1: 40 | dev: false 41 | engines: 42 | node: '>=0.10.0' 43 | resolution: 44 | integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 45 | /ansi-regex/3.0.0: 46 | dev: false 47 | engines: 48 | node: '>=4' 49 | resolution: 50 | integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 51 | /aproba/1.2.0: 52 | dev: false 53 | resolution: 54 | integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== 55 | /are-we-there-yet/1.1.5: 56 | dependencies: 57 | delegates: 1.0.0 58 | readable-stream: 2.3.7 59 | dev: false 60 | resolution: 61 | integrity: sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== 62 | /array-flatten/1.1.1: 63 | dev: false 64 | resolution: 65 | integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= 66 | /asynckit/0.4.0: 67 | dev: false 68 | resolution: 69 | integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k= 70 | /base64-js/1.5.1: 71 | dev: false 72 | resolution: 73 | integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 74 | /better-sqlite3/7.1.1: 75 | dependencies: 76 | bindings: 1.5.0 77 | prebuild-install: 5.3.6 78 | tar: 4.4.10 79 | dev: false 80 | requiresBuild: true 81 | resolution: 82 | integrity: sha512-AkvGGyhAVZhRBOul2WT+5CB2EuveM3ZkebEKe1wxMqDZUy1XB/1RBgM66t0ybHC4DIni8+pr7NaLqEX87NUTwg== 83 | /bindings/1.5.0: 84 | dependencies: 85 | file-uri-to-path: 1.0.0 86 | dev: false 87 | resolution: 88 | integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== 89 | /bl/4.0.3: 90 | dependencies: 91 | buffer: 5.7.1 92 | inherits: 2.0.4 93 | readable-stream: 3.6.0 94 | dev: false 95 | resolution: 96 | integrity: sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== 97 | /body-parser/1.19.0: 98 | dependencies: 99 | bytes: 3.1.0 100 | content-type: 1.0.4 101 | debug: 2.6.9 102 | depd: 1.1.2 103 | http-errors: 1.7.2 104 | iconv-lite: 0.4.24 105 | on-finished: 2.3.0 106 | qs: 6.7.0 107 | raw-body: 2.4.0 108 | type-is: 1.6.18 109 | dev: false 110 | engines: 111 | node: '>= 0.8' 112 | resolution: 113 | integrity: sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== 114 | /buffer/5.7.1: 115 | dependencies: 116 | base64-js: 1.5.1 117 | ieee754: 1.2.1 118 | dev: false 119 | resolution: 120 | integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== 121 | /bytes/3.1.0: 122 | dev: false 123 | engines: 124 | node: '>= 0.8' 125 | resolution: 126 | integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 127 | /chownr/1.1.4: 128 | dev: false 129 | resolution: 130 | integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== 131 | /code-point-at/1.1.0: 132 | dev: false 133 | engines: 134 | node: '>=0.10.0' 135 | resolution: 136 | integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 137 | /combined-stream/1.0.8: 138 | dependencies: 139 | delayed-stream: 1.0.0 140 | dev: false 141 | engines: 142 | node: '>= 0.8' 143 | resolution: 144 | integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 145 | /console-control-strings/1.1.0: 146 | dev: false 147 | resolution: 148 | integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= 149 | /content-disposition/0.5.3: 150 | dependencies: 151 | safe-buffer: 5.1.2 152 | dev: false 153 | engines: 154 | node: '>= 0.6' 155 | resolution: 156 | integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 157 | /content-type/1.0.4: 158 | dev: false 159 | engines: 160 | node: '>= 0.6' 161 | resolution: 162 | integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 163 | /cookie-signature/1.0.6: 164 | dev: false 165 | resolution: 166 | integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw= 167 | /cookie/0.4.0: 168 | dev: false 169 | engines: 170 | node: '>= 0.6' 171 | resolution: 172 | integrity: sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== 173 | /core-util-is/1.0.2: 174 | dev: false 175 | resolution: 176 | integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 177 | /debug/2.6.9: 178 | dependencies: 179 | ms: 2.0.0 180 | dev: false 181 | resolution: 182 | integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 183 | /decompress-response/4.2.1: 184 | dependencies: 185 | mimic-response: 2.1.0 186 | dev: false 187 | engines: 188 | node: '>=8' 189 | resolution: 190 | integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== 191 | /deep-extend/0.6.0: 192 | dev: false 193 | engines: 194 | node: '>=4.0.0' 195 | resolution: 196 | integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 197 | /delayed-stream/1.0.0: 198 | dev: false 199 | engines: 200 | node: '>=0.4.0' 201 | resolution: 202 | integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 203 | /delegates/1.0.0: 204 | dev: false 205 | resolution: 206 | integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 207 | /depd/1.1.2: 208 | dev: false 209 | engines: 210 | node: '>= 0.6' 211 | resolution: 212 | integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 213 | /destroy/1.0.4: 214 | dev: false 215 | resolution: 216 | integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 217 | /detect-libc/1.0.3: 218 | dev: false 219 | engines: 220 | node: '>=0.10' 221 | hasBin: true 222 | resolution: 223 | integrity: sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= 224 | /discord.js/12.5.0: 225 | dependencies: 226 | '@discordjs/collection': 0.1.6 227 | '@discordjs/form-data': 3.0.1 228 | abort-controller: 3.0.0 229 | node-fetch: 2.6.1 230 | prism-media: 1.2.2 231 | setimmediate: 1.0.5 232 | tweetnacl: 1.0.3 233 | ws: 7.4.0 234 | dev: false 235 | engines: 236 | node: '>=12.0.0' 237 | resolution: 238 | integrity: sha512-MXZcnBIosHEOX26ipWEcZdUrTyfTbb4sDYYp0Go5N05PyI78LR8Ds7yAfMu0zUDmxFHYLSYX0pCdiO2pd4CP6w== 239 | /ee-first/1.1.1: 240 | dev: false 241 | resolution: 242 | integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 243 | /encodeurl/1.0.2: 244 | dev: false 245 | engines: 246 | node: '>= 0.8' 247 | resolution: 248 | integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 249 | /end-of-stream/1.4.4: 250 | dependencies: 251 | once: 1.4.0 252 | dev: false 253 | resolution: 254 | integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 255 | /escape-html/1.0.3: 256 | dev: false 257 | resolution: 258 | integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 259 | /etag/1.8.1: 260 | dev: false 261 | engines: 262 | node: '>= 0.6' 263 | resolution: 264 | integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 265 | /event-target-shim/5.0.1: 266 | dev: false 267 | engines: 268 | node: '>=6' 269 | resolution: 270 | integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== 271 | /expand-template/2.0.3: 272 | dev: false 273 | engines: 274 | node: '>=6' 275 | resolution: 276 | integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== 277 | /express/4.17.1: 278 | dependencies: 279 | accepts: 1.3.7 280 | array-flatten: 1.1.1 281 | body-parser: 1.19.0 282 | content-disposition: 0.5.3 283 | content-type: 1.0.4 284 | cookie: 0.4.0 285 | cookie-signature: 1.0.6 286 | debug: 2.6.9 287 | depd: 1.1.2 288 | encodeurl: 1.0.2 289 | escape-html: 1.0.3 290 | etag: 1.8.1 291 | finalhandler: 1.1.2 292 | fresh: 0.5.2 293 | merge-descriptors: 1.0.1 294 | methods: 1.1.2 295 | on-finished: 2.3.0 296 | parseurl: 1.3.3 297 | path-to-regexp: 0.1.7 298 | proxy-addr: 2.0.6 299 | qs: 6.7.0 300 | range-parser: 1.2.1 301 | safe-buffer: 5.1.2 302 | send: 0.17.1 303 | serve-static: 1.14.1 304 | setprototypeof: 1.1.1 305 | statuses: 1.5.0 306 | type-is: 1.6.18 307 | utils-merge: 1.0.1 308 | vary: 1.1.2 309 | dev: false 310 | engines: 311 | node: '>= 0.10.0' 312 | resolution: 313 | integrity: sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== 314 | /file-uri-to-path/1.0.0: 315 | dev: false 316 | resolution: 317 | integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== 318 | /finalhandler/1.1.2: 319 | dependencies: 320 | debug: 2.6.9 321 | encodeurl: 1.0.2 322 | escape-html: 1.0.3 323 | on-finished: 2.3.0 324 | parseurl: 1.3.3 325 | statuses: 1.5.0 326 | unpipe: 1.0.0 327 | dev: false 328 | engines: 329 | node: '>= 0.8' 330 | resolution: 331 | integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== 332 | /forwarded/0.1.2: 333 | dev: false 334 | engines: 335 | node: '>= 0.6' 336 | resolution: 337 | integrity: sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= 338 | /fresh/0.5.2: 339 | dev: false 340 | engines: 341 | node: '>= 0.6' 342 | resolution: 343 | integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 344 | /fs-constants/1.0.0: 345 | dev: false 346 | resolution: 347 | integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== 348 | /fs-minipass/1.2.7: 349 | dependencies: 350 | minipass: 2.9.0 351 | dev: false 352 | resolution: 353 | integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== 354 | /gauge/2.7.4: 355 | dependencies: 356 | aproba: 1.2.0 357 | console-control-strings: 1.1.0 358 | has-unicode: 2.0.1 359 | object-assign: 4.1.1 360 | signal-exit: 3.0.3 361 | string-width: 1.0.2 362 | strip-ansi: 3.0.1 363 | wide-align: 1.1.3 364 | dev: false 365 | resolution: 366 | integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= 367 | /github-from-package/0.0.0: 368 | dev: false 369 | resolution: 370 | integrity: sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= 371 | /has-unicode/2.0.1: 372 | dev: false 373 | resolution: 374 | integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= 375 | /http-errors/1.7.2: 376 | dependencies: 377 | depd: 1.1.2 378 | inherits: 2.0.3 379 | setprototypeof: 1.1.1 380 | statuses: 1.5.0 381 | toidentifier: 1.0.0 382 | dev: false 383 | engines: 384 | node: '>= 0.6' 385 | resolution: 386 | integrity: sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== 387 | /http-errors/1.7.3: 388 | dependencies: 389 | depd: 1.1.2 390 | inherits: 2.0.4 391 | setprototypeof: 1.1.1 392 | statuses: 1.5.0 393 | toidentifier: 1.0.0 394 | dev: false 395 | engines: 396 | node: '>= 0.6' 397 | resolution: 398 | integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 399 | /iconv-lite/0.4.24: 400 | dependencies: 401 | safer-buffer: 2.1.2 402 | dev: false 403 | engines: 404 | node: '>=0.10.0' 405 | resolution: 406 | integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 407 | /ieee754/1.2.1: 408 | dev: false 409 | resolution: 410 | integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 411 | /inherits/2.0.3: 412 | dev: false 413 | resolution: 414 | integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 415 | /inherits/2.0.4: 416 | dev: false 417 | resolution: 418 | integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 419 | /ini/1.3.5: 420 | dev: false 421 | resolution: 422 | integrity: sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== 423 | /ipaddr.js/1.9.1: 424 | dev: false 425 | engines: 426 | node: '>= 0.10' 427 | resolution: 428 | integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 429 | /is-fullwidth-code-point/1.0.0: 430 | dependencies: 431 | number-is-nan: 1.0.1 432 | dev: false 433 | engines: 434 | node: '>=0.10.0' 435 | resolution: 436 | integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 437 | /is-fullwidth-code-point/2.0.0: 438 | dev: false 439 | engines: 440 | node: '>=4' 441 | resolution: 442 | integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 443 | /isarray/1.0.0: 444 | dev: false 445 | resolution: 446 | integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 447 | /lodash/4.17.20: 448 | dev: false 449 | resolution: 450 | integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== 451 | /media-typer/0.3.0: 452 | dev: false 453 | engines: 454 | node: '>= 0.6' 455 | resolution: 456 | integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 457 | /merge-descriptors/1.0.1: 458 | dev: false 459 | resolution: 460 | integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= 461 | /methods/1.1.2: 462 | dev: false 463 | engines: 464 | node: '>= 0.6' 465 | resolution: 466 | integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 467 | /mime-db/1.44.0: 468 | dev: false 469 | engines: 470 | node: '>= 0.6' 471 | resolution: 472 | integrity: sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== 473 | /mime-types/2.1.27: 474 | dependencies: 475 | mime-db: 1.44.0 476 | dev: false 477 | engines: 478 | node: '>= 0.6' 479 | resolution: 480 | integrity: sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== 481 | /mime/1.6.0: 482 | dev: false 483 | engines: 484 | node: '>=4' 485 | hasBin: true 486 | resolution: 487 | integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 488 | /mimic-response/2.1.0: 489 | dev: false 490 | engines: 491 | node: '>=8' 492 | resolution: 493 | integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== 494 | /minimist/1.2.5: 495 | dev: false 496 | resolution: 497 | integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 498 | /minipass/2.9.0: 499 | dependencies: 500 | safe-buffer: 5.2.1 501 | yallist: 3.1.1 502 | dev: false 503 | resolution: 504 | integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== 505 | /minizlib/1.3.3: 506 | dependencies: 507 | minipass: 2.9.0 508 | dev: false 509 | resolution: 510 | integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== 511 | /mkdirp-classic/0.5.3: 512 | dev: false 513 | resolution: 514 | integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== 515 | /mkdirp/0.5.5: 516 | dependencies: 517 | minimist: 1.2.5 518 | dev: false 519 | hasBin: true 520 | resolution: 521 | integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== 522 | /ms/2.0.0: 523 | dev: false 524 | resolution: 525 | integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 526 | /ms/2.1.1: 527 | dev: false 528 | resolution: 529 | integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 530 | /napi-build-utils/1.0.2: 531 | dev: false 532 | resolution: 533 | integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== 534 | /negotiator/0.6.2: 535 | dev: false 536 | engines: 537 | node: '>= 0.6' 538 | resolution: 539 | integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 540 | /node-abi/2.19.3: 541 | dependencies: 542 | semver: 5.7.1 543 | dev: false 544 | resolution: 545 | integrity: sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg== 546 | /node-fetch/2.6.1: 547 | dev: false 548 | engines: 549 | node: 4.x || >=6.0.0 550 | resolution: 551 | integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== 552 | /noop-logger/0.1.1: 553 | dev: false 554 | resolution: 555 | integrity: sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= 556 | /npmlog/4.1.2: 557 | dependencies: 558 | are-we-there-yet: 1.1.5 559 | console-control-strings: 1.1.0 560 | gauge: 2.7.4 561 | set-blocking: 2.0.0 562 | dev: false 563 | resolution: 564 | integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== 565 | /number-is-nan/1.0.1: 566 | dev: false 567 | engines: 568 | node: '>=0.10.0' 569 | resolution: 570 | integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 571 | /object-assign/4.1.1: 572 | dev: false 573 | engines: 574 | node: '>=0.10.0' 575 | resolution: 576 | integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 577 | /on-finished/2.3.0: 578 | dependencies: 579 | ee-first: 1.1.1 580 | dev: false 581 | engines: 582 | node: '>= 0.8' 583 | resolution: 584 | integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 585 | /once/1.4.0: 586 | dependencies: 587 | wrappy: 1.0.2 588 | dev: false 589 | resolution: 590 | integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 591 | /parseurl/1.3.3: 592 | dev: false 593 | engines: 594 | node: '>= 0.8' 595 | resolution: 596 | integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 597 | /path-to-regexp/0.1.7: 598 | dev: false 599 | resolution: 600 | integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= 601 | /prebuild-install/5.3.6: 602 | dependencies: 603 | detect-libc: 1.0.3 604 | expand-template: 2.0.3 605 | github-from-package: 0.0.0 606 | minimist: 1.2.5 607 | mkdirp-classic: 0.5.3 608 | napi-build-utils: 1.0.2 609 | node-abi: 2.19.3 610 | noop-logger: 0.1.1 611 | npmlog: 4.1.2 612 | pump: 3.0.0 613 | rc: 1.2.8 614 | simple-get: 3.1.0 615 | tar-fs: 2.1.1 616 | tunnel-agent: 0.6.0 617 | which-pm-runs: 1.0.0 618 | dev: false 619 | engines: 620 | node: '>=6' 621 | hasBin: true 622 | resolution: 623 | integrity: sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg== 624 | /prism-media/1.2.2: 625 | dev: false 626 | peerDependencies: 627 | '@discordjs/opus': ^0.1.0 628 | ffmpeg-static: ^2.4.0 || ^3.0.0 629 | node-opus: ^0.3.1 630 | opusscript: ^0.0.6 631 | resolution: 632 | integrity: sha512-I+nkWY212lJ500jLe4tN9tWO7nRiBAVdMv76P9kffZjYhw20raMlW1HSSvS+MLXC9MmbNZCazMrAr+5jEEgTuw== 633 | /process-nextick-args/2.0.1: 634 | dev: false 635 | resolution: 636 | integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 637 | /proxy-addr/2.0.6: 638 | dependencies: 639 | forwarded: 0.1.2 640 | ipaddr.js: 1.9.1 641 | dev: false 642 | engines: 643 | node: '>= 0.10' 644 | resolution: 645 | integrity: sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== 646 | /pump/3.0.0: 647 | dependencies: 648 | end-of-stream: 1.4.4 649 | once: 1.4.0 650 | dev: false 651 | resolution: 652 | integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 653 | /qs/6.7.0: 654 | dev: false 655 | engines: 656 | node: '>=0.6' 657 | resolution: 658 | integrity: sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== 659 | /querystring/0.2.0: 660 | dev: false 661 | engines: 662 | node: '>=0.4.x' 663 | resolution: 664 | integrity: sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= 665 | /quick.db/7.1.3: 666 | dependencies: 667 | better-sqlite3: 7.1.1 668 | lodash: 4.17.20 669 | dev: false 670 | resolution: 671 | integrity: sha512-0S1fVb9OAZGhkI4ZIc5Oe4yWMwhz20xSsziwd6+yGWKKMsPt+XOfj/gD5CesGxd2WdqBkZFBiP8ZqWDu55HLHA== 672 | /range-parser/1.2.1: 673 | dev: false 674 | engines: 675 | node: '>= 0.6' 676 | resolution: 677 | integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 678 | /raw-body/2.4.0: 679 | dependencies: 680 | bytes: 3.1.0 681 | http-errors: 1.7.2 682 | iconv-lite: 0.4.24 683 | unpipe: 1.0.0 684 | dev: false 685 | engines: 686 | node: '>= 0.8' 687 | resolution: 688 | integrity: sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== 689 | /rc/1.2.8: 690 | dependencies: 691 | deep-extend: 0.6.0 692 | ini: 1.3.5 693 | minimist: 1.2.5 694 | strip-json-comments: 2.0.1 695 | dev: false 696 | hasBin: true 697 | resolution: 698 | integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 699 | /readable-stream/2.3.7: 700 | dependencies: 701 | core-util-is: 1.0.2 702 | inherits: 2.0.4 703 | isarray: 1.0.0 704 | process-nextick-args: 2.0.1 705 | safe-buffer: 5.1.2 706 | string_decoder: 1.1.1 707 | util-deprecate: 1.0.2 708 | dev: false 709 | resolution: 710 | integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 711 | /readable-stream/3.6.0: 712 | dependencies: 713 | inherits: 2.0.4 714 | string_decoder: 1.3.0 715 | util-deprecate: 1.0.2 716 | dev: false 717 | engines: 718 | node: '>= 6' 719 | resolution: 720 | integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 721 | /safe-buffer/5.1.2: 722 | dev: false 723 | resolution: 724 | integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 725 | /safe-buffer/5.2.1: 726 | dev: false 727 | resolution: 728 | integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 729 | /safer-buffer/2.1.2: 730 | dev: false 731 | resolution: 732 | integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 733 | /semver/5.7.1: 734 | dev: false 735 | hasBin: true 736 | resolution: 737 | integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 738 | /send/0.17.1: 739 | dependencies: 740 | debug: 2.6.9 741 | depd: 1.1.2 742 | destroy: 1.0.4 743 | encodeurl: 1.0.2 744 | escape-html: 1.0.3 745 | etag: 1.8.1 746 | fresh: 0.5.2 747 | http-errors: 1.7.3 748 | mime: 1.6.0 749 | ms: 2.1.1 750 | on-finished: 2.3.0 751 | range-parser: 1.2.1 752 | statuses: 1.5.0 753 | dev: false 754 | engines: 755 | node: '>= 0.8.0' 756 | resolution: 757 | integrity: sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== 758 | /serve-static/1.14.1: 759 | dependencies: 760 | encodeurl: 1.0.2 761 | escape-html: 1.0.3 762 | parseurl: 1.3.3 763 | send: 0.17.1 764 | dev: false 765 | engines: 766 | node: '>= 0.8.0' 767 | resolution: 768 | integrity: sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== 769 | /set-blocking/2.0.0: 770 | dev: false 771 | resolution: 772 | integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 773 | /setimmediate/1.0.5: 774 | dev: false 775 | resolution: 776 | integrity: sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= 777 | /setprototypeof/1.1.1: 778 | dev: false 779 | resolution: 780 | integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 781 | /signal-exit/3.0.3: 782 | dev: false 783 | resolution: 784 | integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 785 | /simple-concat/1.0.1: 786 | dev: false 787 | resolution: 788 | integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== 789 | /simple-get/3.1.0: 790 | dependencies: 791 | decompress-response: 4.2.1 792 | once: 1.4.0 793 | simple-concat: 1.0.1 794 | dev: false 795 | resolution: 796 | integrity: sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== 797 | /statuses/1.5.0: 798 | dev: false 799 | engines: 800 | node: '>= 0.6' 801 | resolution: 802 | integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 803 | /string-width/1.0.2: 804 | dependencies: 805 | code-point-at: 1.1.0 806 | is-fullwidth-code-point: 1.0.0 807 | strip-ansi: 3.0.1 808 | dev: false 809 | engines: 810 | node: '>=0.10.0' 811 | resolution: 812 | integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 813 | /string-width/2.1.1: 814 | dependencies: 815 | is-fullwidth-code-point: 2.0.0 816 | strip-ansi: 4.0.0 817 | dev: false 818 | engines: 819 | node: '>=4' 820 | resolution: 821 | integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 822 | /string_decoder/1.1.1: 823 | dependencies: 824 | safe-buffer: 5.1.2 825 | dev: false 826 | resolution: 827 | integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 828 | /string_decoder/1.3.0: 829 | dependencies: 830 | safe-buffer: 5.2.1 831 | dev: false 832 | resolution: 833 | integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 834 | /strip-ansi/3.0.1: 835 | dependencies: 836 | ansi-regex: 2.1.1 837 | dev: false 838 | engines: 839 | node: '>=0.10.0' 840 | resolution: 841 | integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 842 | /strip-ansi/4.0.0: 843 | dependencies: 844 | ansi-regex: 3.0.0 845 | dev: false 846 | engines: 847 | node: '>=4' 848 | resolution: 849 | integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8= 850 | /strip-json-comments/2.0.1: 851 | dev: false 852 | engines: 853 | node: '>=0.10.0' 854 | resolution: 855 | integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo= 856 | /tar-fs/2.1.1: 857 | dependencies: 858 | chownr: 1.1.4 859 | mkdirp-classic: 0.5.3 860 | pump: 3.0.0 861 | tar-stream: 2.1.4 862 | dev: false 863 | resolution: 864 | integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== 865 | /tar-stream/2.1.4: 866 | dependencies: 867 | bl: 4.0.3 868 | end-of-stream: 1.4.4 869 | fs-constants: 1.0.0 870 | inherits: 2.0.4 871 | readable-stream: 3.6.0 872 | dev: false 873 | engines: 874 | node: '>=6' 875 | resolution: 876 | integrity: sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw== 877 | /tar/4.4.10: 878 | dependencies: 879 | chownr: 1.1.4 880 | fs-minipass: 1.2.7 881 | minipass: 2.9.0 882 | minizlib: 1.3.3 883 | mkdirp: 0.5.5 884 | safe-buffer: 5.2.1 885 | yallist: 3.1.1 886 | dev: false 887 | engines: 888 | node: '>=4.5' 889 | resolution: 890 | integrity: sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== 891 | /toidentifier/1.0.0: 892 | dev: false 893 | engines: 894 | node: '>=0.6' 895 | resolution: 896 | integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 897 | /tunnel-agent/0.6.0: 898 | dependencies: 899 | safe-buffer: 5.2.1 900 | dev: false 901 | resolution: 902 | integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= 903 | /tweetnacl/1.0.3: 904 | dev: false 905 | resolution: 906 | integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== 907 | /type-is/1.6.18: 908 | dependencies: 909 | media-typer: 0.3.0 910 | mime-types: 2.1.27 911 | dev: false 912 | engines: 913 | node: '>= 0.6' 914 | resolution: 915 | integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 916 | /unpipe/1.0.0: 917 | dev: false 918 | engines: 919 | node: '>= 0.8' 920 | resolution: 921 | integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 922 | /util-deprecate/1.0.2: 923 | dev: false 924 | resolution: 925 | integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 926 | /utils-merge/1.0.1: 927 | dev: false 928 | engines: 929 | node: '>= 0.4.0' 930 | resolution: 931 | integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 932 | /vary/1.1.2: 933 | dev: false 934 | engines: 935 | node: '>= 0.8' 936 | resolution: 937 | integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 938 | /which-pm-runs/1.0.0: 939 | dev: false 940 | resolution: 941 | integrity: sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= 942 | /wide-align/1.1.3: 943 | dependencies: 944 | string-width: 2.1.1 945 | dev: false 946 | resolution: 947 | integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== 948 | /wrappy/1.0.2: 949 | dev: false 950 | resolution: 951 | integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 952 | /ws/7.4.0: 953 | dev: false 954 | engines: 955 | node: '>=8.3.0' 956 | peerDependencies: 957 | bufferutil: ^4.0.1 958 | utf-8-validate: ^5.0.2 959 | resolution: 960 | integrity: sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ== 961 | /yallist/3.1.1: 962 | dev: false 963 | resolution: 964 | integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 965 | registry: 'https://registry.npmjs.org/' 966 | shrinkwrapMinorVersion: 9 967 | shrinkwrapVersion: 3 968 | specifiers: 969 | discord.js: ^12.5.0 970 | express: ^4.17.1 971 | node-fetch: ^2.6.1 972 | querystring: ^0.2.0 973 | quick.db: ^7.1.2 974 | --------------------------------------------------------------------------------