├── .dockerignore ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── commands ├── clear.js ├── join.js ├── loop.js ├── play.js ├── queue.js ├── skip.js ├── stop.js └── volume.js ├── comments.txt ├── config.example.js ├── events ├── messageCreate.js └── ready.js ├── index.js ├── package-lock.json ├── package.json ├── strings.json ├── utils.js └── yarn.lock /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /.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 | - Version [e.g. 22] 29 | - Node Version 30 | 31 | **Additional context** 32 | Add any other context about the problem here. 33 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Token 2 | config.js 3 | 4 | # Logs 5 | logs 6 | *.log 7 | npm-debug.log* 8 | yarn-debug.log* 9 | yarn-error.log* 10 | lerna-debug.log* 11 | 12 | # Diagnostic reports (https://nodejs.org/api/report.html) 13 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 14 | 15 | # Runtime data 16 | pids 17 | *.pid 18 | *.seed 19 | *.pid.lock 20 | 21 | # Directory for instrumented libs generated by jscoverage/JSCover 22 | lib-cov 23 | 24 | # Coverage directory used by tools like istanbul 25 | coverage 26 | *.lcov 27 | 28 | # nyc test coverage 29 | .nyc_output 30 | 31 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 32 | .grunt 33 | 34 | # Bower dependency directory (https://bower.io/) 35 | bower_components 36 | 37 | # node-waf configuration 38 | .lock-wscript 39 | 40 | # Compiled binary addons (https://nodejs.org/api/addons.html) 41 | build/Release 42 | 43 | # Dependency directories 44 | node_modules/ 45 | jspm_packages/ 46 | 47 | # TypeScript v1 declaration files 48 | typings/ 49 | 50 | # TypeScript cache 51 | *.tsbuildinfo 52 | 53 | # Optional npm cache directory 54 | .npm 55 | 56 | # Optional eslint cache 57 | .eslintcache 58 | 59 | # Microbundle cache 60 | .rpt2_cache/ 61 | .rts2_cache_cjs/ 62 | .rts2_cache_es/ 63 | .rts2_cache_umd/ 64 | 65 | # Optional REPL history 66 | .node_repl_history 67 | 68 | # Output of 'npm pack' 69 | *.tgz 70 | 71 | # Yarn Integrity file 72 | .yarn-integrity 73 | 74 | # dotenv environment variables file 75 | .env 76 | .env.test 77 | 78 | # parcel-bundler cache (https://parceljs.org/) 79 | .cache 80 | 81 | # Next.js build output 82 | .next 83 | 84 | # Nuxt.js build / generate output 85 | .nuxt 86 | dist 87 | 88 | # Gatsby files 89 | .cache/ 90 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 91 | # https://nextjs.org/blog/next-9-1#public-directory-support 92 | # public 93 | 94 | # vuepress build output 95 | .vuepress/dist 96 | 97 | # Serverless directories 98 | .serverless/ 99 | 100 | # FuseBox cache 101 | .fusebox/ 102 | 103 | # DynamoDB Local files 104 | .dynamodb/ 105 | 106 | # TernJS port file 107 | .tern-port 108 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:alpine 2 | WORKDIR /code 3 | COPY package*.json ./ 4 | RUN apk add --no-cache ffmpeg 5 | RUN apk add --no-cache --virtual .gyp \ 6 | python3 \ 7 | make \ 8 | g++ \ 9 | && npm i \ 10 | && apk del .gyp 11 | COPY . . 12 | CMD [ "node", "index.js" ] 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 TheDiscorders 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 | # Self Rythm Bot 2 | 3 | # USING SELFBOTS ARE AGAINST DISCORD TOS, THE USAGE OF A SELFBOT MAY RESULT IN A BAN OF YOUR ACCOUNT, WE ARE NOT RESPONSIBLE FOR ANY USAGE OF THE BOT 4 | 5 | ## ⚠ Warning 6 | 7 | We created that for fun, we don't encourage you to use selfbots to create trouble on public servers and we won't do so. 8 | ## What is this ? 9 | 10 | This project is a **Self Rythm Bot** in **[Node JS](https://nodejs.org/)**. It's made to do the same actions as **[Rythm](https://rythmbot.co/)** while being a selfbot, this mean it can be used with a user account. This has many advantages, for example you can use it on any servers you're in, even without permissions. 11 | 12 | ## ⛓ Docker installation 13 | 14 | You can use SelfRythm as a Docker container. To do so, you need to install Docker on your machine. 15 | Create a Discord account and get the token. 16 | Then, you can run the command: 17 | ```sh 18 | docker run -d \ 19 | --name "SelfRythm" \ # Optionnal, you can change it 20 | -e "TOKEN=Your Discord Token" \ #Required 21 | -e "PREFIX=A Prefix" \ #Optionnal, default is $ 22 | -e "ALLOWED=[IDS]" \ #Optionnal, list of Discord IDs allowed to use bot commands, everyone can use if not provided 23 | thediscorders/selfrythm 24 | ``` 25 | 26 | ## ⛓ Manual installation 27 | 1) Create a Discord account and get the token 28 | 2) Clone the repository and navigate in the folder 29 | 3) Install all the modules with `npm i` 30 | 4) Configure the bot with your personnal creditentials 31 | * Values to provide: 32 | * In the `config.js` file 33 | * The user account token 34 | * The bot's prefix 35 | * In the `allowed.json` file 36 | * An array of user's IDs that can control the bot 37 | * In the `strings.json` file, you can make custom messages 38 | 39 | 5) Add an ffmpeg build to system PATH 40 | 41 | ## 👌 Usage 42 | 43 | Start the bot by doing **`npm start`** in a terminal in the folder. 44 | 45 | * Commands : 46 | 47 | * **`$play {url}`** 48 | ▶️ _makes the selfbot joins the channel you're in and starts playing the sound from the link, if there is already a music playing it adds it to a queue._ 49 | * **`$join`** 50 | ▶️ _makes the selfbot move to the voice channel you're in (music needs to be playing)_ 51 | * **`$skip`** 52 | ▶️ _skips the current music playing._ 53 | * **`$stop`** 54 | ▶️ _stops the music playing and the selfbot leave the channel._ 55 | * **`$loop`** 56 | ▶️ _loop the current music, re enter the command to stop._ 57 | * **`$queue`** 58 | ▶️ _show the musics in the queue._ 59 | * **`$clear`** 60 | ▶️ _clears the current queue._ 61 | * **`$volume `** 62 | ▶️ _modifies the volume of the bot._ 63 | 64 | ## 💡 Features 65 | 66 | * Clear and Customizable messages on commands 67 | * Creates a log when an unauthorized user tries to use the SelfBot 68 | * Being a SelfBot allows you to : 69 | * add it on each discord server you're in 70 | * customize the list of users allowed to use it 71 | 72 | ## Alternative usage 73 | The selfbot can be used as a regular bot, just change the token for a bot's one 74 | -------------------------------------------------------------------------------- /commands/clear.js: -------------------------------------------------------------------------------- 1 | const utils = require("../utils") 2 | 3 | 4 | module.exports.run = async (client, message, args) => { 5 | utils.log(`Clearing queue, command from ${message.guild.name}`); 6 | const serverQueue = queue.get("queue"); 7 | if (serverQueue && serverQueue.songs) serverQueue.songs = [serverQueue.songs[0]] 8 | message.channel.send('🧹 Queue cleared !') 9 | } 10 | 11 | module.exports.names = { 12 | list: ["clear"] 13 | }; -------------------------------------------------------------------------------- /commands/join.js: -------------------------------------------------------------------------------- 1 | const strings = require("../strings.json"); 2 | const utils = require("../utils"); 3 | 4 | /** 5 | * @description Make the bot join the current voice channel the user is in 6 | * @param {Discord.Client} client the client thats runs the commands 7 | * @param {Discord.Message} message the command's message 8 | * @param {Array}args useless here 9 | */ 10 | module.exports.run = async (client, message, args) => { 11 | 12 | let voiceChannel = message.member.voice.channel; 13 | const serverQueue = queue.get("queue"); 14 | 15 | if(!voiceChannel){return message.channel.send(strings.notInVocal)}; 16 | if(!serverQueue){return message.channel.send(strings.errorJoin)}; 17 | 18 | utils.log(`Joined the channel : ${voiceChannel.name}`); 19 | 20 | 21 | if(serverQueue.voiceChannel.guild.id != voiceChannel.guild.id){ 22 | 23 | utils.play(serverQueue.songs[0]) 24 | 25 | songs = []; 26 | 27 | for(i=0;i}args useless here 9 | */ 10 | module.exports.run = async (client, message, args) => { 11 | 12 | const serverQueue = queue.get("queue"); 13 | 14 | if(!serverQueue){return message.channel.send(strings.cantLoop);}; 15 | 16 | if(serverQueue.loop === false) { 17 | serverQueue.loop = true; 18 | utils.log(`Started looping : ${serverQueue.songs[0].title}`); 19 | message.channel.send(strings.loopOn.replace("SONG_TITLE", serverQueue.songs[0].title)); 20 | } else { 21 | serverQueue.loop = false; 22 | utils.log(`Stopped looping : ${serverQueue.songs[0].title}`); 23 | message.channel.send(strings.loopOff.replace("SONG_TITLE", serverQueue.songs[0].title)); 24 | }; 25 | }; 26 | 27 | module.exports.names = { 28 | list: ["loop", "l"] 29 | }; -------------------------------------------------------------------------------- /commands/play.js: -------------------------------------------------------------------------------- 1 | const ytdl = require("ytdl-core"); 2 | 3 | const strings = require("../strings.json"); 4 | const utils = require("../utils"); 5 | 6 | 7 | /** 8 | * @description Play a song with the provided link 9 | * @param {Discord.Client} client the client thats runs the commands 10 | * @param {Discord.Message} message the command's message 11 | * @param {Array}args args[0] must be a link 12 | */ 13 | 14 | 15 | module.exports.run = async (client, message, args) => { 16 | 17 | if(!args[0]) return message.channel.send(strings.noArgsSongSearch); 18 | 19 | utils.log("Looking for music details...") 20 | 21 | if(utils.isURL(args[0])){ 22 | FUrl = args[0]; 23 | } else { 24 | FUrl = await utils.getUrl(args) 25 | }; 26 | 27 | let voiceChannel = message.member.voice.channel; 28 | const serverQueue = queue.get("queue"); 29 | const songInfo = await ytdl.getBasicInfo(FUrl); 30 | 31 | const song = { 32 | title: songInfo.videoDetails.title, 33 | duration: songInfo.videoDetails.lengthSeconds, 34 | url: FUrl, 35 | requestedby: message.author.username 36 | }; 37 | 38 | utils.log("Got music details, preparing the music to be played...") 39 | 40 | if(!serverQueue || !serverQueue.songs) { 41 | 42 | const queueConstruct = { 43 | textchannel: message.channel, 44 | voiceChannel: voiceChannel, 45 | connection: null, 46 | songs: [], 47 | volume: 1, 48 | playing: true, 49 | loop: false, 50 | skipped: false 51 | }; 52 | 53 | queue.set("queue", queueConstruct); 54 | queueConstruct.songs.push(song); 55 | 56 | if (voiceChannel != null) { 57 | 58 | message.channel.send(strings.startedPlaying.replace("SONG_TITLE", song.title).replace("url", song.url)); 59 | 60 | const connection = utils.joinVChannel(voiceChannel); 61 | 62 | queueConstruct.connection = connection; 63 | 64 | utils.play(queueConstruct.songs[0]); 65 | 66 | } else { 67 | queue.delete("queue"); 68 | return message.channel.send(strings.notInVocal); 69 | }; 70 | } else { 71 | 72 | serverQueue.songs.push(song); 73 | utils.log(`Added music to the queue : ${song.title}`) 74 | 75 | return message.channel.send(strings.songAddedToQueue.replace("SONG_TITLE", song.title).replace("url", song.url)); 76 | }; 77 | 78 | }; 79 | 80 | module.exports.names = { 81 | list: ["play", "p"] 82 | }; -------------------------------------------------------------------------------- /commands/queue.js: -------------------------------------------------------------------------------- 1 | const strings = require("../strings.json"); 2 | const utils = require("../utils"); 3 | 4 | /** 5 | * @description Show the guild's song queue 6 | * @param {Discord.Client} client the client thats runs the commands 7 | * @param {Discord.Message} message the command's message 8 | * @param {Array}args useless here 9 | */ 10 | module.exports.run = async (client, message, args) => { 11 | 12 | const serverQueue = queue.get("queue"); 13 | 14 | if(!serverQueue || !serverQueue.songs){return message.channel.send(strings.noSongsQueued);}; 15 | 16 | queuetxt = ""; 17 | 18 | for(let i=1;i}args useless here 9 | */ 10 | 11 | module.exports.run = async (client, message, args) => { 12 | 13 | let voiceChannel = message.member.voice.channel; 14 | 15 | if (!voiceChannel) {return message.channel.send(strings.notInVocal);}; 16 | 17 | const serverQueue = queue.get("queue"); 18 | if(!serverQueue.songs){return message.channel.send(strings.nothingPlaying);}; 19 | 20 | utils.log(`Skipped music : ${serverQueue.songs[0].title}`); 21 | 22 | serverQueue.skipped = true; 23 | serverQueue.connection._state.subscription.player.stop(); 24 | 25 | return message.channel.send(strings.musicSkipped); 26 | 27 | }; 28 | 29 | module.exports.names = { 30 | list: ["skip", "s"] 31 | }; -------------------------------------------------------------------------------- /commands/stop.js: -------------------------------------------------------------------------------- 1 | const strings = require("../strings.json"); 2 | const utils = require("../utils"); 3 | 4 | /** 5 | * @description Stops the music and make the bot leave the channel 6 | * @param {Discord.Client} client the client thats runs the commands 7 | * @param {Discord.Message} message the command's message 8 | * @param {Array}args useless here 9 | */ 10 | module.exports.run = async (client, message, args) => { 11 | 12 | const serverQueue = queue.get("queue"); 13 | if(!serverQueue){return message.channel.send(strings.nothingPlaying);}; 14 | 15 | serverQueue.songs = []; 16 | 17 | 18 | utils.log("Stopped playing music"); 19 | 20 | serverQueue.connection._state.subscription.player.stop(); 21 | 22 | return message.channel.send(strings.musicStopped); 23 | 24 | }; 25 | 26 | module.exports.names = { 27 | list: ["stop", "st"] 28 | }; -------------------------------------------------------------------------------- /commands/volume.js: -------------------------------------------------------------------------------- 1 | const strings = require("../strings.json"); 2 | const utils = require("../utils"); 3 | 4 | module.exports.run = async (client, message, args) => { 5 | 6 | const serverQueue = queue.get("queue"); 7 | 8 | if(!serverQueue) return message.channel.send(strings.nothingPlayingVolume); 9 | 10 | if(args.length > 1) return message.channel.send(strings.toMuchArgsVolume); 11 | if(args.length === 0) return message.channel.send(strings.noVolume); 12 | 13 | floatVolume = parseFloat(args); 14 | 15 | if(!Number.isInteger(parseInt(args)) && utils.isFloat(floatVolume) && args != "earrape") return message.channel.send(strings.noNumber); 16 | 17 | if (args[0] === "earrape"){ 18 | 19 | message.channel.send(strings.earrapeWarning) 20 | .then(async function (warning) { 21 | 22 | await warning.react('✅'); 23 | 24 | const filter = (reaction, user) => { 25 | return reaction.emoji.name == "✅" && user.id == message.author.id; 26 | }; 27 | 28 | const collector = warning.createReactionCollector(filter, { max: 1, time: 8000 }); 29 | 30 | collector.on('collect', () => { 31 | oldVolume = serverQueue.volume; 32 | serverQueue.volume = 100; 33 | serverQueue.connection._state.subscription.player._state.resource.volume.setVolumeLogarithmic(100 / 5); 34 | message.channel.send(strings.startEarrape); 35 | setTimeout(function(){ 36 | message.channel.send(strings.endEarrape.replace("VOLUME", oldVolume)); 37 | serverQueue.volume = oldVolume; 38 | return serverQueue.connection._state.subscription.player._state.resource.volume.setVolumeLogarithmic(oldVolume / 5); 39 | }, 7000); 40 | }); 41 | 42 | collector.on(`end`, () => { 43 | if(collector.total === 0) return message.channel.send(strings.earrapeFail); 44 | }); 45 | 46 | }); 47 | } else { 48 | 49 | if(args[0] > 10) return message.channel.send(strings.volumeToHigh); 50 | if(!message.member.voice.channel) return message.channel.send(strings.notInVocal); 51 | message.channel.send(strings.volumeChanged.replace("VOLUME", args[0])); 52 | 53 | serverQueue.volume = floatVolume; 54 | serverQueue.connection._state.subscription.player._state.resource.volume.setVolumeLogarithmic(100 / 5); 55 | return serverQueue.connection._state.subscription.player._state.resource.volume.setVolumeLogarithmic(floatVolume / 5); 56 | 57 | }; 58 | }; 59 | 60 | module.exports.names = { 61 | list: ["volume", "v"] 62 | }; -------------------------------------------------------------------------------- /comments.txt: -------------------------------------------------------------------------------- 1 | In the strings.json file you can add variables that will be raplaced by the real value in at the moments it's called: 2 | 3 | Example : If you put "The song SONG_TILE is now looped" in the loopOn string the name of the song playing will replace SONG_TITLE. 4 | 5 | List of variables depending on the string (";" is a separation between 2 variables names) : 6 | 7 | loopOn : SONG_TITLE 8 | loopOff : SONG_TITLE 9 | startedPlaying : SONG_TITLE ; url 10 | songAddedToQueue : SONG_TITLE ; url -------------------------------------------------------------------------------- /config.example.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | token: "Your token here", 3 | prefix: "Your prefix here" 4 | }; 5 | 6 | /* remove .example from the name of this file */ -------------------------------------------------------------------------------- /events/messageCreate.js: -------------------------------------------------------------------------------- 1 | const prefix = global.config.prefix; 2 | const strings = require('../strings.json') 3 | const utils = require('../utils') 4 | module.exports = (client, message) => { 5 | if (message.content.indexOf(prefix) == 0) { 6 | if (message.author.id == client.user.id) return; 7 | const args = message.content.slice(prefix.length).trim().split(/ +/g); 8 | const command = args.shift().toLowerCase(); 9 | const cmd = client.commands.get(command); 10 | if (!cmd) return; 11 | if (!global.config.allowed.includes(message.author.id) && global.config.allowed.length > 0) {message.channel.send(strings.permissionDenied); utils.log(`${message.author.username} tried to run the command '${message.content}' but permission was not accepted`); return; } 12 | cmd.run(client, message, args); 13 | return 14 | } 15 | }; -------------------------------------------------------------------------------- /events/ready.js: -------------------------------------------------------------------------------- 1 | const utils = require('../utils'); 2 | 3 | module.exports = client => { 4 | 5 | client.user.setActivity("gud music", {type: "LISTENING"}); 6 | 7 | utils.log(`Logged in as ${client.user.username} !`); 8 | 9 | }; -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const client = new Discord.Client({ 3 | intents: [ 4 | Discord.Intents.FLAGS.GUILDS, 5 | Discord.Intents.FLAGS.GUILD_VOICE_STATES 6 | ], 7 | checkUpdate: false, 8 | }); 9 | const fs = require('fs'); 10 | const Enmap = require('enmap'); 11 | const utils = require('./utils'); 12 | const { Player } = require("discord-player") 13 | 14 | if (!process.env.TOKEN){ 15 | try{ 16 | const config = require("./config"); 17 | global.config = {'token': config.token, 'prefix': config.prefix}; 18 | } catch (e){ 19 | console.error("No config file found, create it or use environnement variables."); 20 | process.exit(1); 21 | }; 22 | } else{ 23 | if (!process.env.PREFIX) process.env.PREFIX="$"; 24 | global.config = {'token': process.env.TOKEN, 'prefix': process.env.PREFIX}; 25 | } 26 | if (!process.env.ALLOWED){ 27 | try {global.config.allowed=require("./allowed.json").allowed} 28 | catch (e){ 29 | global.config.allowed=[] 30 | } 31 | } else{ 32 | global.config.allowed=process.env.ALLOWED 33 | } 34 | client.login(config.token) 35 | 36 | utils.log("Logging in..."); 37 | 38 | /* ----------------------------------------------- */ 39 | 40 | global.queue = new Map(); 41 | client.commands = new Enmap(); 42 | 43 | client.player = new Player(client, { 44 | ytdlOptions: { 45 | quality: "highestaudio", 46 | highWaterMark: 1 << 25 47 | } 48 | }) 49 | 50 | /* ----------------------------------------------- */ 51 | 52 | var loaded = {events: [], commands: []}; 53 | 54 | var promise = new Promise((resolve) => { 55 | fs.readdir('./events/', (err, files) => { 56 | if (err) return console.error; 57 | files.forEach(file => { 58 | if (!file.endsWith('.js')) return; 59 | const evt = require(`./events/${file}`); 60 | let evtName = file.split('.')[0]; 61 | loaded.events.push(evtName) 62 | client.on(evtName, evt.bind(null, client)); 63 | }); 64 | resolve(); 65 | }); 66 | }); 67 | 68 | 69 | fs.readdir('./commands/', async (err, files) => { 70 | if (err) return console.error; 71 | files.forEach(file => { 72 | if (!file.endsWith('.js')) return; 73 | let props = require(`./commands/${file}`); 74 | props.names.list.forEach(name => { 75 | client.commands.set(name, props); 76 | }) 77 | let cmdName = file.split('.')[0]; 78 | loaded.commands.push(cmdName) 79 | }); 80 | promise.then(() => {utils.log(`Table of commands and events :\n${utils.showTable(loaded)}`)}); 81 | }); 82 | 83 | 84 | /* ----------------------------------------------- */ -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "selfrythm", 3 | "version": "1.1.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "selfrythm", 9 | "version": "1.1.0", 10 | "license": "MIT", 11 | "dependencies": { 12 | "ascii-table": "^0.0.9", 13 | "discord-player": "^6.6.1", 14 | "discord.js-selfbot-v13": "^2.14.12", 15 | "enmap": "^5.9.8", 16 | "ytdl-core": "^4.11.4" 17 | } 18 | }, 19 | "node_modules/@aikochan2k6/qrcode-terminal": { 20 | "version": "0.12.1", 21 | "resolved": "https://registry.npmjs.org/@aikochan2k6/qrcode-terminal/-/qrcode-terminal-0.12.1.tgz", 22 | "integrity": "sha512-GfSrCCqKti0XyomCOaFRL//dnEpDux4tJleywuYChjHue+pqjM0lP39cQq8qtmfcOm1CqhWQeB6JS6kY4tQ8Tw==" 23 | }, 24 | "node_modules/@derhuerst/http-basic": { 25 | "version": "8.2.4", 26 | "resolved": "https://registry.npmjs.org/@derhuerst/http-basic/-/http-basic-8.2.4.tgz", 27 | "integrity": "sha512-F9rL9k9Xjf5blCz8HsJRO4diy111cayL2vkY2XE4r4t3n0yPXVYy3KD3nJ1qbrSn9743UWSXH4IwuCa/HWlGFw==", 28 | "optional": true, 29 | "peer": true, 30 | "dependencies": { 31 | "caseless": "^0.12.0", 32 | "concat-stream": "^2.0.0", 33 | "http-response-object": "^3.0.1", 34 | "parse-cache-control": "^1.0.1" 35 | }, 36 | "engines": { 37 | "node": ">=6.0.0" 38 | } 39 | }, 40 | "node_modules/@derhuerst/http-basic/node_modules/concat-stream": { 41 | "version": "2.0.0", 42 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", 43 | "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", 44 | "engines": [ 45 | "node >= 6.0" 46 | ], 47 | "optional": true, 48 | "peer": true, 49 | "dependencies": { 50 | "buffer-from": "^1.0.0", 51 | "inherits": "^2.0.3", 52 | "readable-stream": "^3.0.2", 53 | "typedarray": "^0.0.6" 54 | } 55 | }, 56 | "node_modules/@discord-player/equalizer": { 57 | "version": "0.2.2", 58 | "resolved": "https://registry.npmjs.org/@discord-player/equalizer/-/equalizer-0.2.2.tgz", 59 | "integrity": "sha512-U86em1cMtopXVuKFDxP8J2DcNOqwCAsYQ2tkzPoJvchsrezcI2cgvN3jtGt9FFECP3pLvSz96ZB9FOHZKG5Mqg==" 60 | }, 61 | "node_modules/@discord-player/extractor": { 62 | "version": "4.4.0", 63 | "resolved": "https://registry.npmjs.org/@discord-player/extractor/-/extractor-4.4.0.tgz", 64 | "integrity": "sha512-TpHZk6ZFS5ot504iVAfnaJrGe2xv9yMauI+2zNLCmAYPeFe6YUbliXrSRoOmKoZi5n1ahkP2VurbmBhqKqEVkw==", 65 | "peer": true, 66 | "dependencies": { 67 | "file-type": "^16.5.4", 68 | "genius-lyrics": "^4.4.3", 69 | "node-html-parser": "^6.1.4", 70 | "reverbnation-scraper": "^2.0.0", 71 | "soundcloud.ts": "^0.5.0", 72 | "spotify-url-info": "^3.2.5", 73 | "youtube-sr": "^4.3.4" 74 | } 75 | }, 76 | "node_modules/@discord-player/ffmpeg": { 77 | "version": "0.1.0", 78 | "resolved": "https://registry.npmjs.org/@discord-player/ffmpeg/-/ffmpeg-0.1.0.tgz", 79 | "integrity": "sha512-0kW6q4gMQN2B4Z4EzmUgXrKQSXXmyhjdZBBZ/6jSHZ9fh814oOu+JXP01VvtWHwTylI7qJHIctEWtSyjEubCJg==" 80 | }, 81 | "node_modules/@discord-player/utils": { 82 | "version": "0.2.2", 83 | "resolved": "https://registry.npmjs.org/@discord-player/utils/-/utils-0.2.2.tgz", 84 | "integrity": "sha512-UklWUT7BcZEkBgywM9Cmpo2nwj3SQ9Wmhu6ml1uy/YRQnY8IRdZEHD84T2kfjOg4LVZek0ej1VerIqq7a9PAHQ==", 85 | "dependencies": { 86 | "@discordjs/collection": "^1.1.0" 87 | } 88 | }, 89 | "node_modules/@discordjs/builders": { 90 | "version": "1.6.3", 91 | "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.6.3.tgz", 92 | "integrity": "sha512-CTCh8NqED3iecTNuiz49mwSsrc2iQb4d0MjMdmS/8pb69Y4IlzJ/DIy/p5GFlgOrFbNO2WzMHkWKQSiJ3VNXaw==", 93 | "dependencies": { 94 | "@discordjs/formatters": "^0.3.1", 95 | "@discordjs/util": "^0.3.1", 96 | "@sapphire/shapeshift": "^3.8.2", 97 | "discord-api-types": "^0.37.41", 98 | "fast-deep-equal": "^3.1.3", 99 | "ts-mixer": "^6.0.3", 100 | "tslib": "^2.5.0" 101 | }, 102 | "engines": { 103 | "node": ">=16.9.0" 104 | } 105 | }, 106 | "node_modules/@discordjs/collection": { 107 | "version": "1.5.3", 108 | "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.5.3.tgz", 109 | "integrity": "sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==", 110 | "engines": { 111 | "node": ">=16.11.0" 112 | } 113 | }, 114 | "node_modules/@discordjs/formatters": { 115 | "version": "0.3.1", 116 | "resolved": "https://registry.npmjs.org/@discordjs/formatters/-/formatters-0.3.1.tgz", 117 | "integrity": "sha512-M7X4IGiSeh4znwcRGcs+49B5tBkNDn4k5bmhxJDAUhRxRHTiFAOTVUNQ6yAKySu5jZTnCbSvTYHW3w0rAzV1MA==", 118 | "dependencies": { 119 | "discord-api-types": "^0.37.41" 120 | }, 121 | "engines": { 122 | "node": ">=16.9.0" 123 | } 124 | }, 125 | "node_modules/@discordjs/node-pre-gyp": { 126 | "version": "0.4.5", 127 | "resolved": "https://registry.npmjs.org/@discordjs/node-pre-gyp/-/node-pre-gyp-0.4.5.tgz", 128 | "integrity": "sha512-YJOVVZ545x24mHzANfYoy0BJX5PDyeZlpiJjDkUBM/V/Ao7TFX9lcUvCN4nr0tbr5ubeaXxtEBILUrHtTphVeQ==", 129 | "optional": true, 130 | "peer": true, 131 | "dependencies": { 132 | "detect-libc": "^2.0.0", 133 | "https-proxy-agent": "^5.0.0", 134 | "make-dir": "^3.1.0", 135 | "node-fetch": "^2.6.7", 136 | "nopt": "^5.0.0", 137 | "npmlog": "^5.0.1", 138 | "rimraf": "^3.0.2", 139 | "semver": "^7.3.5", 140 | "tar": "^6.1.11" 141 | }, 142 | "bin": { 143 | "node-pre-gyp": "bin/node-pre-gyp" 144 | } 145 | }, 146 | "node_modules/@discordjs/opus": { 147 | "version": "0.9.0", 148 | "resolved": "https://registry.npmjs.org/@discordjs/opus/-/opus-0.9.0.tgz", 149 | "integrity": "sha512-NEE76A96FtQ5YuoAVlOlB3ryMPrkXbUCTQICHGKb8ShtjXyubGicjRMouHtP1RpuDdm16cDa+oI3aAMo1zQRUQ==", 150 | "hasInstallScript": true, 151 | "optional": true, 152 | "peer": true, 153 | "dependencies": { 154 | "@discordjs/node-pre-gyp": "^0.4.5", 155 | "node-addon-api": "^5.0.0" 156 | }, 157 | "engines": { 158 | "node": ">=12.0.0" 159 | } 160 | }, 161 | "node_modules/@discordjs/rest": { 162 | "version": "1.7.1", 163 | "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-1.7.1.tgz", 164 | "integrity": "sha512-Ofa9UqT0U45G/eX86cURQnX7gzOJLG2oC28VhIk/G6IliYgQF7jFByBJEykPSHE4MxPhqCleYvmsrtfKh1nYmQ==", 165 | "peer": true, 166 | "dependencies": { 167 | "@discordjs/collection": "^1.5.1", 168 | "@discordjs/util": "^0.3.0", 169 | "@sapphire/async-queue": "^1.5.0", 170 | "@sapphire/snowflake": "^3.4.2", 171 | "discord-api-types": "^0.37.41", 172 | "file-type": "^18.3.0", 173 | "tslib": "^2.5.0", 174 | "undici": "^5.22.0" 175 | }, 176 | "engines": { 177 | "node": ">=16.9.0" 178 | } 179 | }, 180 | "node_modules/@discordjs/rest/node_modules/file-type": { 181 | "version": "18.5.0", 182 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.5.0.tgz", 183 | "integrity": "sha512-yvpl5U868+V6PqXHMmsESpg6unQ5GfnPssl4dxdJudBrr9qy7Fddt7EVX1VLlddFfe8Gj9N7goCZH22FXuSQXQ==", 184 | "peer": true, 185 | "dependencies": { 186 | "readable-web-to-node-stream": "^3.0.2", 187 | "strtok3": "^7.0.0", 188 | "token-types": "^5.0.1" 189 | }, 190 | "engines": { 191 | "node": ">=14.16" 192 | }, 193 | "funding": { 194 | "url": "https://github.com/sindresorhus/file-type?sponsor=1" 195 | } 196 | }, 197 | "node_modules/@discordjs/rest/node_modules/peek-readable": { 198 | "version": "5.0.0", 199 | "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", 200 | "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", 201 | "peer": true, 202 | "engines": { 203 | "node": ">=14.16" 204 | }, 205 | "funding": { 206 | "type": "github", 207 | "url": "https://github.com/sponsors/Borewit" 208 | } 209 | }, 210 | "node_modules/@discordjs/rest/node_modules/strtok3": { 211 | "version": "7.0.0", 212 | "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", 213 | "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", 214 | "peer": true, 215 | "dependencies": { 216 | "@tokenizer/token": "^0.3.0", 217 | "peek-readable": "^5.0.0" 218 | }, 219 | "engines": { 220 | "node": ">=14.16" 221 | }, 222 | "funding": { 223 | "type": "github", 224 | "url": "https://github.com/sponsors/Borewit" 225 | } 226 | }, 227 | "node_modules/@discordjs/rest/node_modules/token-types": { 228 | "version": "5.0.1", 229 | "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", 230 | "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", 231 | "peer": true, 232 | "dependencies": { 233 | "@tokenizer/token": "^0.3.0", 234 | "ieee754": "^1.2.1" 235 | }, 236 | "engines": { 237 | "node": ">=14.16" 238 | }, 239 | "funding": { 240 | "type": "github", 241 | "url": "https://github.com/sponsors/Borewit" 242 | } 243 | }, 244 | "node_modules/@discordjs/util": { 245 | "version": "0.3.1", 246 | "resolved": "https://registry.npmjs.org/@discordjs/util/-/util-0.3.1.tgz", 247 | "integrity": "sha512-HxXKYKg7vohx2/OupUN/4Sd02Ev3PBJ5q0gtjdcvXb0ErCva8jNHWfe/v5sU3UKjIB/uxOhc+TDOnhqffj9pRA==", 248 | "engines": { 249 | "node": ">=16.9.0" 250 | } 251 | }, 252 | "node_modules/@discordjs/voice": { 253 | "version": "0.16.0", 254 | "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.16.0.tgz", 255 | "integrity": "sha512-ToGCvHD1cBscuW3p+C7zOF5+L7MJmU4GjdOARfNk9mkHyFFZq4grK+Sxr3QXKbp27DtfDBc9uqD4GUOYgxngfA==", 256 | "dependencies": { 257 | "@types/ws": "^8.5.4", 258 | "discord-api-types": "^0.37.37", 259 | "prism-media": "^1.3.5", 260 | "tslib": "^2.5.0", 261 | "ws": "^8.13.0" 262 | }, 263 | "engines": { 264 | "node": ">=16.9.0" 265 | } 266 | }, 267 | "node_modules/@discordjs/ws": { 268 | "version": "0.8.3", 269 | "resolved": "https://registry.npmjs.org/@discordjs/ws/-/ws-0.8.3.tgz", 270 | "integrity": "sha512-hcYtppanjHecbdNyCKQNH2I4RP9UrphDgmRgLYrATEQF1oo4sYSve7ZmGsBEXSzH72MO2tBPdWSThunbxUVk0g==", 271 | "peer": true, 272 | "dependencies": { 273 | "@discordjs/collection": "^1.5.1", 274 | "@discordjs/rest": "^1.7.1", 275 | "@discordjs/util": "^0.3.1", 276 | "@sapphire/async-queue": "^1.5.0", 277 | "@types/ws": "^8.5.4", 278 | "@vladfrangu/async_event_emitter": "^2.2.1", 279 | "discord-api-types": "^0.37.41", 280 | "tslib": "^2.5.0", 281 | "ws": "^8.13.0" 282 | }, 283 | "engines": { 284 | "node": ">=16.9.0" 285 | } 286 | }, 287 | "node_modules/@sapphire/async-queue": { 288 | "version": "1.5.0", 289 | "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.0.tgz", 290 | "integrity": "sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==", 291 | "engines": { 292 | "node": ">=v14.0.0", 293 | "npm": ">=7.0.0" 294 | } 295 | }, 296 | "node_modules/@sapphire/shapeshift": { 297 | "version": "3.9.3", 298 | "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.9.3.tgz", 299 | "integrity": "sha512-WzKJSwDYloSkHoBbE8rkRW8UNKJiSRJ/P8NqJ5iVq7U2Yr/kriIBx2hW+wj2Z5e5EnXL1hgYomgaFsdK6b+zqQ==", 300 | "dependencies": { 301 | "fast-deep-equal": "^3.1.3", 302 | "lodash": "^4.17.21" 303 | }, 304 | "engines": { 305 | "node": ">=v14.0.0", 306 | "npm": ">=7.0.0" 307 | } 308 | }, 309 | "node_modules/@sapphire/snowflake": { 310 | "version": "3.5.1", 311 | "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.1.tgz", 312 | "integrity": "sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA==", 313 | "peer": true, 314 | "engines": { 315 | "node": ">=v14.0.0", 316 | "npm": ">=7.0.0" 317 | } 318 | }, 319 | "node_modules/@tokenizer/token": { 320 | "version": "0.3.0", 321 | "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", 322 | "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", 323 | "peer": true 324 | }, 325 | "node_modules/@types/node": { 326 | "version": "20.4.1", 327 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz", 328 | "integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==" 329 | }, 330 | "node_modules/@types/node-fetch": { 331 | "version": "2.6.9", 332 | "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.9.tgz", 333 | "integrity": "sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA==", 334 | "dependencies": { 335 | "@types/node": "*", 336 | "form-data": "^4.0.0" 337 | } 338 | }, 339 | "node_modules/@types/ws": { 340 | "version": "8.5.9", 341 | "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.9.tgz", 342 | "integrity": "sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg==", 343 | "dependencies": { 344 | "@types/node": "*" 345 | } 346 | }, 347 | "node_modules/@vladfrangu/async_event_emitter": { 348 | "version": "2.2.2", 349 | "resolved": "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.2.2.tgz", 350 | "integrity": "sha512-HIzRG7sy88UZjBJamssEczH5q7t5+axva19UbZLO6u0ySbYPrwzWiXBcC0WuHyhKKoeCyneH+FvYzKQq/zTtkQ==", 351 | "peer": true, 352 | "engines": { 353 | "node": ">=v14.0.0", 354 | "npm": ">=7.0.0" 355 | } 356 | }, 357 | "node_modules/abbrev": { 358 | "version": "1.1.1", 359 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 360 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", 361 | "optional": true, 362 | "peer": true 363 | }, 364 | "node_modules/agent-base": { 365 | "version": "6.0.2", 366 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 367 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 368 | "optional": true, 369 | "peer": true, 370 | "dependencies": { 371 | "debug": "4" 372 | }, 373 | "engines": { 374 | "node": ">= 6.0.0" 375 | } 376 | }, 377 | "node_modules/ansi-regex": { 378 | "version": "5.0.1", 379 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 380 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 381 | "optional": true, 382 | "peer": true, 383 | "engines": { 384 | "node": ">=8" 385 | } 386 | }, 387 | "node_modules/ansi-styles": { 388 | "version": "4.3.0", 389 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 390 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 391 | "dependencies": { 392 | "color-convert": "^2.0.1" 393 | }, 394 | "engines": { 395 | "node": ">=8" 396 | }, 397 | "funding": { 398 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 399 | } 400 | }, 401 | "node_modules/aproba": { 402 | "version": "2.0.0", 403 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", 404 | "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", 405 | "optional": true, 406 | "peer": true 407 | }, 408 | "node_modules/are-we-there-yet": { 409 | "version": "2.0.0", 410 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", 411 | "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", 412 | "optional": true, 413 | "peer": true, 414 | "dependencies": { 415 | "delegates": "^1.0.0", 416 | "readable-stream": "^3.6.0" 417 | }, 418 | "engines": { 419 | "node": ">=10" 420 | } 421 | }, 422 | "node_modules/ascii-table": { 423 | "version": "0.0.9", 424 | "resolved": "https://registry.npmjs.org/ascii-table/-/ascii-table-0.0.9.tgz", 425 | "integrity": "sha512-xpkr6sCDIYTPqzvjG8M3ncw1YOTaloWZOyrUmicoEifBEKzQzt+ooUpRpQ/AbOoJfO/p2ZKiyp79qHThzJDulQ==" 426 | }, 427 | "node_modules/asynckit": { 428 | "version": "0.4.0", 429 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 430 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 431 | }, 432 | "node_modules/balanced-match": { 433 | "version": "1.0.2", 434 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 435 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 436 | "optional": true, 437 | "peer": true 438 | }, 439 | "node_modules/base64-js": { 440 | "version": "1.5.1", 441 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 442 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 443 | "funding": [ 444 | { 445 | "type": "github", 446 | "url": "https://github.com/sponsors/feross" 447 | }, 448 | { 449 | "type": "patreon", 450 | "url": "https://www.patreon.com/feross" 451 | }, 452 | { 453 | "type": "consulting", 454 | "url": "https://feross.org/support" 455 | } 456 | ] 457 | }, 458 | "node_modules/better-sqlite3": { 459 | "version": "8.4.0", 460 | "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-8.4.0.tgz", 461 | "integrity": "sha512-NmsNW1CQvqMszu/CFAJ3pLct6NEFlNfuGM6vw72KHkjOD1UDnL96XNN1BMQc1hiHo8vE2GbOWQYIpZ+YM5wrZw==", 462 | "hasInstallScript": true, 463 | "dependencies": { 464 | "bindings": "^1.5.0", 465 | "prebuild-install": "^7.1.0" 466 | } 467 | }, 468 | "node_modules/bignumber.js": { 469 | "version": "9.1.1", 470 | "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", 471 | "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", 472 | "engines": { 473 | "node": "*" 474 | } 475 | }, 476 | "node_modules/bindings": { 477 | "version": "1.5.0", 478 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 479 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 480 | "dependencies": { 481 | "file-uri-to-path": "1.0.0" 482 | } 483 | }, 484 | "node_modules/bl": { 485 | "version": "4.1.0", 486 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", 487 | "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", 488 | "dependencies": { 489 | "buffer": "^5.5.0", 490 | "inherits": "^2.0.4", 491 | "readable-stream": "^3.4.0" 492 | } 493 | }, 494 | "node_modules/boolbase": { 495 | "version": "1.0.0", 496 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 497 | "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", 498 | "peer": true 499 | }, 500 | "node_modules/brace-expansion": { 501 | "version": "1.1.11", 502 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 503 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 504 | "optional": true, 505 | "peer": true, 506 | "dependencies": { 507 | "balanced-match": "^1.0.0", 508 | "concat-map": "0.0.1" 509 | } 510 | }, 511 | "node_modules/buffer": { 512 | "version": "5.7.1", 513 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 514 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 515 | "funding": [ 516 | { 517 | "type": "github", 518 | "url": "https://github.com/sponsors/feross" 519 | }, 520 | { 521 | "type": "patreon", 522 | "url": "https://www.patreon.com/feross" 523 | }, 524 | { 525 | "type": "consulting", 526 | "url": "https://feross.org/support" 527 | } 528 | ], 529 | "dependencies": { 530 | "base64-js": "^1.3.1", 531 | "ieee754": "^1.1.13" 532 | } 533 | }, 534 | "node_modules/buffer-from": { 535 | "version": "1.1.2", 536 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 537 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", 538 | "optional": true, 539 | "peer": true 540 | }, 541 | "node_modules/busboy": { 542 | "version": "1.6.0", 543 | "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", 544 | "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", 545 | "peer": true, 546 | "dependencies": { 547 | "streamsearch": "^1.1.0" 548 | }, 549 | "engines": { 550 | "node": ">=10.16.0" 551 | } 552 | }, 553 | "node_modules/caseless": { 554 | "version": "0.12.0", 555 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 556 | "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", 557 | "optional": true, 558 | "peer": true 559 | }, 560 | "node_modules/chalk": { 561 | "version": "4.1.2", 562 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 563 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 564 | "dependencies": { 565 | "ansi-styles": "^4.1.0", 566 | "supports-color": "^7.1.0" 567 | }, 568 | "engines": { 569 | "node": ">=10" 570 | }, 571 | "funding": { 572 | "url": "https://github.com/chalk/chalk?sponsor=1" 573 | } 574 | }, 575 | "node_modules/cheerio": { 576 | "version": "1.0.0-rc.12", 577 | "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", 578 | "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", 579 | "peer": true, 580 | "dependencies": { 581 | "cheerio-select": "^2.1.0", 582 | "dom-serializer": "^2.0.0", 583 | "domhandler": "^5.0.3", 584 | "domutils": "^3.0.1", 585 | "htmlparser2": "^8.0.1", 586 | "parse5": "^7.0.0", 587 | "parse5-htmlparser2-tree-adapter": "^7.0.0" 588 | }, 589 | "engines": { 590 | "node": ">= 6" 591 | }, 592 | "funding": { 593 | "url": "https://github.com/cheeriojs/cheerio?sponsor=1" 594 | } 595 | }, 596 | "node_modules/cheerio-select": { 597 | "version": "2.1.0", 598 | "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", 599 | "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", 600 | "peer": true, 601 | "dependencies": { 602 | "boolbase": "^1.0.0", 603 | "css-select": "^5.1.0", 604 | "css-what": "^6.1.0", 605 | "domelementtype": "^2.3.0", 606 | "domhandler": "^5.0.3", 607 | "domutils": "^3.0.1" 608 | }, 609 | "funding": { 610 | "url": "https://github.com/sponsors/fb55" 611 | } 612 | }, 613 | "node_modules/chownr": { 614 | "version": "2.0.0", 615 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", 616 | "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", 617 | "optional": true, 618 | "peer": true, 619 | "engines": { 620 | "node": ">=10" 621 | } 622 | }, 623 | "node_modules/color-convert": { 624 | "version": "2.0.1", 625 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 626 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 627 | "dependencies": { 628 | "color-name": "~1.1.4" 629 | }, 630 | "engines": { 631 | "node": ">=7.0.0" 632 | } 633 | }, 634 | "node_modules/color-name": { 635 | "version": "1.1.4", 636 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 637 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 638 | }, 639 | "node_modules/color-support": { 640 | "version": "1.1.3", 641 | "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", 642 | "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", 643 | "optional": true, 644 | "peer": true, 645 | "bin": { 646 | "color-support": "bin.js" 647 | } 648 | }, 649 | "node_modules/combined-stream": { 650 | "version": "1.0.8", 651 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 652 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 653 | "dependencies": { 654 | "delayed-stream": "~1.0.0" 655 | }, 656 | "engines": { 657 | "node": ">= 0.8" 658 | } 659 | }, 660 | "node_modules/concat-map": { 661 | "version": "0.0.1", 662 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 663 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 664 | "optional": true, 665 | "peer": true 666 | }, 667 | "node_modules/console-control-strings": { 668 | "version": "1.1.0", 669 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 670 | "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", 671 | "optional": true, 672 | "peer": true 673 | }, 674 | "node_modules/css-select": { 675 | "version": "5.1.0", 676 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", 677 | "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", 678 | "peer": true, 679 | "dependencies": { 680 | "boolbase": "^1.0.0", 681 | "css-what": "^6.1.0", 682 | "domhandler": "^5.0.2", 683 | "domutils": "^3.0.1", 684 | "nth-check": "^2.0.1" 685 | }, 686 | "funding": { 687 | "url": "https://github.com/sponsors/fb55" 688 | } 689 | }, 690 | "node_modules/css-what": { 691 | "version": "6.1.0", 692 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", 693 | "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", 694 | "peer": true, 695 | "engines": { 696 | "node": ">= 6" 697 | }, 698 | "funding": { 699 | "url": "https://github.com/sponsors/fb55" 700 | } 701 | }, 702 | "node_modules/debug": { 703 | "version": "4.3.4", 704 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 705 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 706 | "optional": true, 707 | "peer": true, 708 | "dependencies": { 709 | "ms": "2.1.2" 710 | }, 711 | "engines": { 712 | "node": ">=6.0" 713 | }, 714 | "peerDependenciesMeta": { 715 | "supports-color": { 716 | "optional": true 717 | } 718 | } 719 | }, 720 | "node_modules/decompress-response": { 721 | "version": "6.0.0", 722 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", 723 | "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", 724 | "dependencies": { 725 | "mimic-response": "^3.1.0" 726 | }, 727 | "engines": { 728 | "node": ">=10" 729 | }, 730 | "funding": { 731 | "url": "https://github.com/sponsors/sindresorhus" 732 | } 733 | }, 734 | "node_modules/deep-extend": { 735 | "version": "0.6.0", 736 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 737 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", 738 | "engines": { 739 | "node": ">=4.0.0" 740 | } 741 | }, 742 | "node_modules/delayed-stream": { 743 | "version": "1.0.0", 744 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 745 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", 746 | "engines": { 747 | "node": ">=0.4.0" 748 | } 749 | }, 750 | "node_modules/delegates": { 751 | "version": "1.0.0", 752 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 753 | "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", 754 | "optional": true, 755 | "peer": true 756 | }, 757 | "node_modules/detect-libc": { 758 | "version": "2.0.1", 759 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", 760 | "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", 761 | "engines": { 762 | "node": ">=8" 763 | } 764 | }, 765 | "node_modules/discord-api-types": { 766 | "version": "0.37.63", 767 | "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.63.tgz", 768 | "integrity": "sha512-WbEDWj/1JGCIC1oCMIC4z9XbYY8PrWpV5eqFFQymJhJlHMqgIjqoYbU812X5oj5cwbRrEh6Va4LNLumB2Nt6IQ==" 769 | }, 770 | "node_modules/discord-player": { 771 | "version": "6.6.1", 772 | "resolved": "https://registry.npmjs.org/discord-player/-/discord-player-6.6.1.tgz", 773 | "integrity": "sha512-l72ql51uya3Uq5VrTPvR6xWBHOa3lI9oWTl7YDDHvofMXEYLgqAuDlyuelQ7AY+lUC7FOK7MoS2QgVFHeAciNw==", 774 | "dependencies": { 775 | "@discord-player/equalizer": "^0.2.2", 776 | "@discord-player/ffmpeg": "^0.1.0", 777 | "@discord-player/utils": "^0.2.2", 778 | "@discordjs/voice": "latest", 779 | "libsodium-wrappers": "^0.7.10" 780 | }, 781 | "funding": { 782 | "url": "https://github.com/Androz2091/discord-player?sponsor=1" 783 | }, 784 | "peerDependencies": { 785 | "@discord-player/extractor": "^4.4.0", 786 | "discord.js": "14.x", 787 | "youtube-sr": "4.x" 788 | } 789 | }, 790 | "node_modules/discord.js": { 791 | "version": "14.11.0", 792 | "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.11.0.tgz", 793 | "integrity": "sha512-CkueWYFQ28U38YPR8HgsBR/QT35oPpMbEsTNM30Fs8loBIhnA4s70AwQEoy6JvLcpWWJO7GY0y2BUzZmuBMepQ==", 794 | "peer": true, 795 | "dependencies": { 796 | "@discordjs/builders": "^1.6.3", 797 | "@discordjs/collection": "^1.5.1", 798 | "@discordjs/formatters": "^0.3.1", 799 | "@discordjs/rest": "^1.7.1", 800 | "@discordjs/util": "^0.3.1", 801 | "@discordjs/ws": "^0.8.3", 802 | "@sapphire/snowflake": "^3.4.2", 803 | "@types/ws": "^8.5.4", 804 | "discord-api-types": "^0.37.41", 805 | "fast-deep-equal": "^3.1.3", 806 | "lodash.snakecase": "^4.1.1", 807 | "tslib": "^2.5.0", 808 | "undici": "^5.22.0", 809 | "ws": "^8.13.0" 810 | }, 811 | "engines": { 812 | "node": ">=16.9.0" 813 | } 814 | }, 815 | "node_modules/discord.js-selfbot-v13": { 816 | "version": "2.14.12", 817 | "resolved": "https://registry.npmjs.org/discord.js-selfbot-v13/-/discord.js-selfbot-v13-2.14.12.tgz", 818 | "integrity": "sha512-3AcRA8VtMovXfojvXFg7lBkev7e5/VDGoJUhVqRFXHB+frfqRkm9bE9tTsxwptfqit8ZGRSMn4/Zbpl5h5TN6g==", 819 | "dependencies": { 820 | "@aikochan2k6/qrcode-terminal": "^0.12.1", 821 | "@discordjs/builders": "^1.6.3", 822 | "@discordjs/collection": "^1.5.3", 823 | "@discordjs/voice": "^0.16.0", 824 | "@sapphire/async-queue": "^1.5.0", 825 | "@sapphire/shapeshift": "^3.9.3", 826 | "@types/node-fetch": "^2.6.7", 827 | "@types/ws": "^8.5.8", 828 | "chalk": "^4.1.2", 829 | "discord-api-types": "^0.37.61", 830 | "fetch-cookie": "^2.1.0", 831 | "form-data": "^4.0.0", 832 | "json-bigint": "^1.0.0", 833 | "lodash.permutations": "^1.0.0", 834 | "node-fetch": "^2.6.9", 835 | "safe-base64": "^2.0.1-0", 836 | "string_decoder": "^1.3.0", 837 | "string-similarity": "^4.0.4", 838 | "tough-cookie": "^4.1.3", 839 | "ws": "^8.14.2" 840 | }, 841 | "engines": { 842 | "node": ">=16.6.0", 843 | "npm": ">=7.0.0" 844 | } 845 | }, 846 | "node_modules/dom-serializer": { 847 | "version": "2.0.0", 848 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", 849 | "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", 850 | "peer": true, 851 | "dependencies": { 852 | "domelementtype": "^2.3.0", 853 | "domhandler": "^5.0.2", 854 | "entities": "^4.2.0" 855 | }, 856 | "funding": { 857 | "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" 858 | } 859 | }, 860 | "node_modules/domelementtype": { 861 | "version": "2.3.0", 862 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", 863 | "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", 864 | "funding": [ 865 | { 866 | "type": "github", 867 | "url": "https://github.com/sponsors/fb55" 868 | } 869 | ], 870 | "peer": true 871 | }, 872 | "node_modules/domhandler": { 873 | "version": "5.0.3", 874 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", 875 | "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", 876 | "peer": true, 877 | "dependencies": { 878 | "domelementtype": "^2.3.0" 879 | }, 880 | "engines": { 881 | "node": ">= 4" 882 | }, 883 | "funding": { 884 | "url": "https://github.com/fb55/domhandler?sponsor=1" 885 | } 886 | }, 887 | "node_modules/domutils": { 888 | "version": "3.1.0", 889 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", 890 | "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", 891 | "peer": true, 892 | "dependencies": { 893 | "dom-serializer": "^2.0.0", 894 | "domelementtype": "^2.3.0", 895 | "domhandler": "^5.0.3" 896 | }, 897 | "funding": { 898 | "url": "https://github.com/fb55/domutils?sponsor=1" 899 | } 900 | }, 901 | "node_modules/emoji-regex": { 902 | "version": "8.0.0", 903 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 904 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 905 | "optional": true, 906 | "peer": true 907 | }, 908 | "node_modules/end-of-stream": { 909 | "version": "1.4.4", 910 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 911 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 912 | "dependencies": { 913 | "once": "^1.4.0" 914 | } 915 | }, 916 | "node_modules/enmap": { 917 | "version": "5.9.8", 918 | "resolved": "https://registry.npmjs.org/enmap/-/enmap-5.9.8.tgz", 919 | "integrity": "sha512-6hLGXpZ3KjiR35JkmwdHSM316TTznSl9QslsS4p7DNZNoKDGqmKnyIiP8pcKNk8BnNgcUBmPOic5siHWqCaIVA==", 920 | "dependencies": { 921 | "better-sqlite3": "^8.4.0", 922 | "lodash": "^4.17.21", 923 | "on-change": "^3.0.2", 924 | "serialize-javascript": "^6.0.1" 925 | } 926 | }, 927 | "node_modules/entities": { 928 | "version": "4.5.0", 929 | "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", 930 | "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", 931 | "peer": true, 932 | "engines": { 933 | "node": ">=0.12" 934 | }, 935 | "funding": { 936 | "url": "https://github.com/fb55/entities?sponsor=1" 937 | } 938 | }, 939 | "node_modules/env-paths": { 940 | "version": "2.2.1", 941 | "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", 942 | "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", 943 | "optional": true, 944 | "peer": true, 945 | "engines": { 946 | "node": ">=6" 947 | } 948 | }, 949 | "node_modules/expand-template": { 950 | "version": "2.0.3", 951 | "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", 952 | "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", 953 | "engines": { 954 | "node": ">=6" 955 | } 956 | }, 957 | "node_modules/fast-deep-equal": { 958 | "version": "3.1.3", 959 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 960 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 961 | }, 962 | "node_modules/fetch-cookie": { 963 | "version": "2.1.0", 964 | "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-2.1.0.tgz", 965 | "integrity": "sha512-39+cZRbWfbibmj22R2Jy6dmTbAWC+oqun1f1FzQaNurkPDUP4C38jpeZbiXCR88RKRVDp8UcDrbFXkNhN+NjYg==", 966 | "dependencies": { 967 | "set-cookie-parser": "^2.4.8", 968 | "tough-cookie": "^4.0.0" 969 | } 970 | }, 971 | "node_modules/ffmpeg-static": { 972 | "version": "4.4.1", 973 | "resolved": "https://registry.npmjs.org/ffmpeg-static/-/ffmpeg-static-4.4.1.tgz", 974 | "integrity": "sha512-gyGTIf5kgmLDmH7Rwj8vMmNK46bjXKKofHS2gY+LUqoTe/iybVuTuvnhJQR2tZHlKlDG7A/BIH7cRa2jWDKgWw==", 975 | "hasInstallScript": true, 976 | "optional": true, 977 | "peer": true, 978 | "dependencies": { 979 | "@derhuerst/http-basic": "^8.2.0", 980 | "env-paths": "^2.2.0", 981 | "https-proxy-agent": "^5.0.0", 982 | "progress": "^2.0.3" 983 | }, 984 | "engines": { 985 | "node": ">=10" 986 | } 987 | }, 988 | "node_modules/file-type": { 989 | "version": "16.5.4", 990 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", 991 | "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", 992 | "peer": true, 993 | "dependencies": { 994 | "readable-web-to-node-stream": "^3.0.0", 995 | "strtok3": "^6.2.4", 996 | "token-types": "^4.1.1" 997 | }, 998 | "engines": { 999 | "node": ">=10" 1000 | }, 1001 | "funding": { 1002 | "url": "https://github.com/sindresorhus/file-type?sponsor=1" 1003 | } 1004 | }, 1005 | "node_modules/file-uri-to-path": { 1006 | "version": "1.0.0", 1007 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 1008 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" 1009 | }, 1010 | "node_modules/form-data": { 1011 | "version": "4.0.0", 1012 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 1013 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 1014 | "dependencies": { 1015 | "asynckit": "^0.4.0", 1016 | "combined-stream": "^1.0.8", 1017 | "mime-types": "^2.1.12" 1018 | }, 1019 | "engines": { 1020 | "node": ">= 6" 1021 | } 1022 | }, 1023 | "node_modules/fs-constants": { 1024 | "version": "1.0.0", 1025 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 1026 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 1027 | }, 1028 | "node_modules/fs-minipass": { 1029 | "version": "2.1.0", 1030 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", 1031 | "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", 1032 | "optional": true, 1033 | "peer": true, 1034 | "dependencies": { 1035 | "minipass": "^3.0.0" 1036 | }, 1037 | "engines": { 1038 | "node": ">= 8" 1039 | } 1040 | }, 1041 | "node_modules/fs-minipass/node_modules/minipass": { 1042 | "version": "3.3.6", 1043 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 1044 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 1045 | "optional": true, 1046 | "peer": true, 1047 | "dependencies": { 1048 | "yallist": "^4.0.0" 1049 | }, 1050 | "engines": { 1051 | "node": ">=8" 1052 | } 1053 | }, 1054 | "node_modules/fs.realpath": { 1055 | "version": "1.0.0", 1056 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1057 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 1058 | "optional": true, 1059 | "peer": true 1060 | }, 1061 | "node_modules/gauge": { 1062 | "version": "3.0.2", 1063 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", 1064 | "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", 1065 | "optional": true, 1066 | "peer": true, 1067 | "dependencies": { 1068 | "aproba": "^1.0.3 || ^2.0.0", 1069 | "color-support": "^1.1.2", 1070 | "console-control-strings": "^1.0.0", 1071 | "has-unicode": "^2.0.1", 1072 | "object-assign": "^4.1.1", 1073 | "signal-exit": "^3.0.0", 1074 | "string-width": "^4.2.3", 1075 | "strip-ansi": "^6.0.1", 1076 | "wide-align": "^1.1.2" 1077 | }, 1078 | "engines": { 1079 | "node": ">=10" 1080 | } 1081 | }, 1082 | "node_modules/genius-lyrics": { 1083 | "version": "4.4.3", 1084 | "resolved": "https://registry.npmjs.org/genius-lyrics/-/genius-lyrics-4.4.3.tgz", 1085 | "integrity": "sha512-06L8GUg49FrUYEmSQvrSH74RH5S+qyerHwBpvk8vZLwWgpEw4mIWZDob5IpXT1ryhqazM9K6CXGNucKYPO8kng==", 1086 | "peer": true, 1087 | "dependencies": { 1088 | "cheerio": "^1.0.0-rc.9", 1089 | "undici": "^5.8.2" 1090 | } 1091 | }, 1092 | "node_modules/github-from-package": { 1093 | "version": "0.0.0", 1094 | "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", 1095 | "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" 1096 | }, 1097 | "node_modules/glob": { 1098 | "version": "7.2.3", 1099 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 1100 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 1101 | "optional": true, 1102 | "peer": true, 1103 | "dependencies": { 1104 | "fs.realpath": "^1.0.0", 1105 | "inflight": "^1.0.4", 1106 | "inherits": "2", 1107 | "minimatch": "^3.1.1", 1108 | "once": "^1.3.0", 1109 | "path-is-absolute": "^1.0.0" 1110 | }, 1111 | "engines": { 1112 | "node": "*" 1113 | }, 1114 | "funding": { 1115 | "url": "https://github.com/sponsors/isaacs" 1116 | } 1117 | }, 1118 | "node_modules/has-flag": { 1119 | "version": "4.0.0", 1120 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1121 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1122 | "engines": { 1123 | "node": ">=8" 1124 | } 1125 | }, 1126 | "node_modules/has-unicode": { 1127 | "version": "2.0.1", 1128 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 1129 | "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", 1130 | "optional": true, 1131 | "peer": true 1132 | }, 1133 | "node_modules/he": { 1134 | "version": "1.2.0", 1135 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 1136 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 1137 | "peer": true, 1138 | "bin": { 1139 | "he": "bin/he" 1140 | } 1141 | }, 1142 | "node_modules/himalaya": { 1143 | "version": "1.1.0", 1144 | "resolved": "https://registry.npmjs.org/himalaya/-/himalaya-1.1.0.tgz", 1145 | "integrity": "sha512-LLase1dHCRMel68/HZTFft0N0wti0epHr3nNY7ynpLbyZpmrKMQ8YIpiOV77TM97cNpC8Wb2n6f66IRggwdWPw==", 1146 | "peer": true 1147 | }, 1148 | "node_modules/htmlparser2": { 1149 | "version": "8.0.2", 1150 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", 1151 | "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", 1152 | "funding": [ 1153 | "https://github.com/fb55/htmlparser2?sponsor=1", 1154 | { 1155 | "type": "github", 1156 | "url": "https://github.com/sponsors/fb55" 1157 | } 1158 | ], 1159 | "peer": true, 1160 | "dependencies": { 1161 | "domelementtype": "^2.3.0", 1162 | "domhandler": "^5.0.3", 1163 | "domutils": "^3.0.1", 1164 | "entities": "^4.4.0" 1165 | } 1166 | }, 1167 | "node_modules/http-response-object": { 1168 | "version": "3.0.2", 1169 | "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", 1170 | "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", 1171 | "optional": true, 1172 | "peer": true, 1173 | "dependencies": { 1174 | "@types/node": "^10.0.3" 1175 | } 1176 | }, 1177 | "node_modules/http-response-object/node_modules/@types/node": { 1178 | "version": "10.17.60", 1179 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", 1180 | "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", 1181 | "optional": true, 1182 | "peer": true 1183 | }, 1184 | "node_modules/https-proxy-agent": { 1185 | "version": "5.0.1", 1186 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", 1187 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", 1188 | "optional": true, 1189 | "peer": true, 1190 | "dependencies": { 1191 | "agent-base": "6", 1192 | "debug": "4" 1193 | }, 1194 | "engines": { 1195 | "node": ">= 6" 1196 | } 1197 | }, 1198 | "node_modules/ieee754": { 1199 | "version": "1.2.1", 1200 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 1201 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 1202 | "funding": [ 1203 | { 1204 | "type": "github", 1205 | "url": "https://github.com/sponsors/feross" 1206 | }, 1207 | { 1208 | "type": "patreon", 1209 | "url": "https://www.patreon.com/feross" 1210 | }, 1211 | { 1212 | "type": "consulting", 1213 | "url": "https://feross.org/support" 1214 | } 1215 | ] 1216 | }, 1217 | "node_modules/inflight": { 1218 | "version": "1.0.6", 1219 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1220 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 1221 | "optional": true, 1222 | "peer": true, 1223 | "dependencies": { 1224 | "once": "^1.3.0", 1225 | "wrappy": "1" 1226 | } 1227 | }, 1228 | "node_modules/inherits": { 1229 | "version": "2.0.4", 1230 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1231 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1232 | }, 1233 | "node_modules/ini": { 1234 | "version": "1.3.8", 1235 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 1236 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" 1237 | }, 1238 | "node_modules/is-fullwidth-code-point": { 1239 | "version": "3.0.0", 1240 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1241 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 1242 | "optional": true, 1243 | "peer": true, 1244 | "engines": { 1245 | "node": ">=8" 1246 | } 1247 | }, 1248 | "node_modules/json-bigint": { 1249 | "version": "1.0.0", 1250 | "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", 1251 | "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", 1252 | "dependencies": { 1253 | "bignumber.js": "^9.0.0" 1254 | } 1255 | }, 1256 | "node_modules/libsodium": { 1257 | "version": "0.7.11", 1258 | "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", 1259 | "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==" 1260 | }, 1261 | "node_modules/libsodium-wrappers": { 1262 | "version": "0.7.11", 1263 | "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", 1264 | "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", 1265 | "dependencies": { 1266 | "libsodium": "^0.7.11" 1267 | } 1268 | }, 1269 | "node_modules/lodash": { 1270 | "version": "4.17.21", 1271 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 1272 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 1273 | }, 1274 | "node_modules/lodash.permutations": { 1275 | "version": "1.0.0", 1276 | "resolved": "https://registry.npmjs.org/lodash.permutations/-/lodash.permutations-1.0.0.tgz", 1277 | "integrity": "sha512-0hFwfPb1V63YefDRGyR3iLDwdOEiNwxb1E3QQfGfytwha9wxb8ZRI1TrIAUPBG/GRGs51ctYvsNWrp+slXC9pw==", 1278 | "peerDependencies": { 1279 | "lodash": "^4.0.0" 1280 | } 1281 | }, 1282 | "node_modules/lodash.snakecase": { 1283 | "version": "4.1.1", 1284 | "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", 1285 | "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", 1286 | "peer": true 1287 | }, 1288 | "node_modules/lru-cache": { 1289 | "version": "6.0.0", 1290 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1291 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1292 | "dependencies": { 1293 | "yallist": "^4.0.0" 1294 | }, 1295 | "engines": { 1296 | "node": ">=10" 1297 | } 1298 | }, 1299 | "node_modules/m3u8stream": { 1300 | "version": "0.8.6", 1301 | "resolved": "https://registry.npmjs.org/m3u8stream/-/m3u8stream-0.8.6.tgz", 1302 | "integrity": "sha512-LZj8kIVf9KCphiHmH7sbFQTVe4tOemb202fWwvJwR9W5ENW/1hxJN6ksAWGhQgSBSa3jyWhnjKU1Fw1GaOdbyA==", 1303 | "dependencies": { 1304 | "miniget": "^4.2.2", 1305 | "sax": "^1.2.4" 1306 | }, 1307 | "engines": { 1308 | "node": ">=12" 1309 | } 1310 | }, 1311 | "node_modules/make-dir": { 1312 | "version": "3.1.0", 1313 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 1314 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 1315 | "optional": true, 1316 | "peer": true, 1317 | "dependencies": { 1318 | "semver": "^6.0.0" 1319 | }, 1320 | "engines": { 1321 | "node": ">=8" 1322 | }, 1323 | "funding": { 1324 | "url": "https://github.com/sponsors/sindresorhus" 1325 | } 1326 | }, 1327 | "node_modules/make-dir/node_modules/semver": { 1328 | "version": "6.3.1", 1329 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 1330 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 1331 | "optional": true, 1332 | "peer": true, 1333 | "bin": { 1334 | "semver": "bin/semver.js" 1335 | } 1336 | }, 1337 | "node_modules/mime-db": { 1338 | "version": "1.52.0", 1339 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 1340 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 1341 | "engines": { 1342 | "node": ">= 0.6" 1343 | } 1344 | }, 1345 | "node_modules/mime-types": { 1346 | "version": "2.1.35", 1347 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 1348 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 1349 | "dependencies": { 1350 | "mime-db": "1.52.0" 1351 | }, 1352 | "engines": { 1353 | "node": ">= 0.6" 1354 | } 1355 | }, 1356 | "node_modules/mimic-response": { 1357 | "version": "3.1.0", 1358 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", 1359 | "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", 1360 | "engines": { 1361 | "node": ">=10" 1362 | }, 1363 | "funding": { 1364 | "url": "https://github.com/sponsors/sindresorhus" 1365 | } 1366 | }, 1367 | "node_modules/miniget": { 1368 | "version": "4.2.3", 1369 | "resolved": "https://registry.npmjs.org/miniget/-/miniget-4.2.3.tgz", 1370 | "integrity": "sha512-SjbDPDICJ1zT+ZvQwK0hUcRY4wxlhhNpHL9nJOB2MEAXRGagTljsO8MEDzQMTFf0Q8g4QNi8P9lEm/g7e+qgzA==", 1371 | "engines": { 1372 | "node": ">=12" 1373 | } 1374 | }, 1375 | "node_modules/minimatch": { 1376 | "version": "3.1.2", 1377 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1378 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1379 | "optional": true, 1380 | "peer": true, 1381 | "dependencies": { 1382 | "brace-expansion": "^1.1.7" 1383 | }, 1384 | "engines": { 1385 | "node": "*" 1386 | } 1387 | }, 1388 | "node_modules/minimist": { 1389 | "version": "1.2.8", 1390 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 1391 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 1392 | "funding": { 1393 | "url": "https://github.com/sponsors/ljharb" 1394 | } 1395 | }, 1396 | "node_modules/minipass": { 1397 | "version": "5.0.0", 1398 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", 1399 | "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", 1400 | "optional": true, 1401 | "peer": true, 1402 | "engines": { 1403 | "node": ">=8" 1404 | } 1405 | }, 1406 | "node_modules/minizlib": { 1407 | "version": "2.1.2", 1408 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", 1409 | "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", 1410 | "optional": true, 1411 | "peer": true, 1412 | "dependencies": { 1413 | "minipass": "^3.0.0", 1414 | "yallist": "^4.0.0" 1415 | }, 1416 | "engines": { 1417 | "node": ">= 8" 1418 | } 1419 | }, 1420 | "node_modules/minizlib/node_modules/minipass": { 1421 | "version": "3.3.6", 1422 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 1423 | "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 1424 | "optional": true, 1425 | "peer": true, 1426 | "dependencies": { 1427 | "yallist": "^4.0.0" 1428 | }, 1429 | "engines": { 1430 | "node": ">=8" 1431 | } 1432 | }, 1433 | "node_modules/mkdirp": { 1434 | "version": "1.0.4", 1435 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", 1436 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", 1437 | "optional": true, 1438 | "peer": true, 1439 | "bin": { 1440 | "mkdirp": "bin/cmd.js" 1441 | }, 1442 | "engines": { 1443 | "node": ">=10" 1444 | } 1445 | }, 1446 | "node_modules/mkdirp-classic": { 1447 | "version": "0.5.3", 1448 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", 1449 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" 1450 | }, 1451 | "node_modules/ms": { 1452 | "version": "2.1.2", 1453 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1454 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1455 | "optional": true, 1456 | "peer": true 1457 | }, 1458 | "node_modules/napi-build-utils": { 1459 | "version": "1.0.2", 1460 | "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", 1461 | "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" 1462 | }, 1463 | "node_modules/node-abi": { 1464 | "version": "3.45.0", 1465 | "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.45.0.tgz", 1466 | "integrity": "sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ==", 1467 | "dependencies": { 1468 | "semver": "^7.3.5" 1469 | }, 1470 | "engines": { 1471 | "node": ">=10" 1472 | } 1473 | }, 1474 | "node_modules/node-addon-api": { 1475 | "version": "5.1.0", 1476 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", 1477 | "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", 1478 | "optional": true, 1479 | "peer": true 1480 | }, 1481 | "node_modules/node-fetch": { 1482 | "version": "2.6.12", 1483 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", 1484 | "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", 1485 | "dependencies": { 1486 | "whatwg-url": "^5.0.0" 1487 | }, 1488 | "engines": { 1489 | "node": "4.x || >=6.0.0" 1490 | }, 1491 | "peerDependencies": { 1492 | "encoding": "^0.1.0" 1493 | }, 1494 | "peerDependenciesMeta": { 1495 | "encoding": { 1496 | "optional": true 1497 | } 1498 | } 1499 | }, 1500 | "node_modules/node-html-parser": { 1501 | "version": "6.1.5", 1502 | "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.5.tgz", 1503 | "integrity": "sha512-fAaM511feX++/Chnhe475a0NHD8M7AxDInsqQpz6x63GRF7xYNdS8Vo5dKsIVPgsOvG7eioRRTZQnWBrhDHBSg==", 1504 | "peer": true, 1505 | "dependencies": { 1506 | "css-select": "^5.1.0", 1507 | "he": "1.2.0" 1508 | } 1509 | }, 1510 | "node_modules/nopt": { 1511 | "version": "5.0.0", 1512 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", 1513 | "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", 1514 | "optional": true, 1515 | "peer": true, 1516 | "dependencies": { 1517 | "abbrev": "1" 1518 | }, 1519 | "bin": { 1520 | "nopt": "bin/nopt.js" 1521 | }, 1522 | "engines": { 1523 | "node": ">=6" 1524 | } 1525 | }, 1526 | "node_modules/npmlog": { 1527 | "version": "5.0.1", 1528 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", 1529 | "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", 1530 | "optional": true, 1531 | "peer": true, 1532 | "dependencies": { 1533 | "are-we-there-yet": "^2.0.0", 1534 | "console-control-strings": "^1.1.0", 1535 | "gauge": "^3.0.0", 1536 | "set-blocking": "^2.0.0" 1537 | } 1538 | }, 1539 | "node_modules/nth-check": { 1540 | "version": "2.1.1", 1541 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", 1542 | "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", 1543 | "peer": true, 1544 | "dependencies": { 1545 | "boolbase": "^1.0.0" 1546 | }, 1547 | "funding": { 1548 | "url": "https://github.com/fb55/nth-check?sponsor=1" 1549 | } 1550 | }, 1551 | "node_modules/object-assign": { 1552 | "version": "4.1.1", 1553 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1554 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 1555 | "optional": true, 1556 | "peer": true, 1557 | "engines": { 1558 | "node": ">=0.10.0" 1559 | } 1560 | }, 1561 | "node_modules/on-change": { 1562 | "version": "3.0.2", 1563 | "resolved": "https://registry.npmjs.org/on-change/-/on-change-3.0.2.tgz", 1564 | "integrity": "sha512-rdt5YfIfo86aFNwvQqzzHMpaPPyVQ/XjcGK01d46chZh47G8Xzvoao79SgFb03GZfxRGREzNQVJuo31drqyIlA==", 1565 | "engines": { 1566 | "node": ">=10" 1567 | }, 1568 | "funding": { 1569 | "url": "https://github.com/sindresorhus/on-change?sponsor=1" 1570 | } 1571 | }, 1572 | "node_modules/once": { 1573 | "version": "1.4.0", 1574 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1575 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1576 | "dependencies": { 1577 | "wrappy": "1" 1578 | } 1579 | }, 1580 | "node_modules/opusscript": { 1581 | "version": "0.0.8", 1582 | "resolved": "https://registry.npmjs.org/opusscript/-/opusscript-0.0.8.tgz", 1583 | "integrity": "sha512-VSTi1aWFuCkRCVq+tx/BQ5q9fMnQ9pVZ3JU4UHKqTkf0ED3fKEPdr+gKAAl3IA2hj9rrP6iyq3hlcJq3HELtNQ==", 1584 | "optional": true, 1585 | "peer": true 1586 | }, 1587 | "node_modules/parse-cache-control": { 1588 | "version": "1.0.1", 1589 | "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", 1590 | "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", 1591 | "optional": true, 1592 | "peer": true 1593 | }, 1594 | "node_modules/parse5": { 1595 | "version": "7.1.2", 1596 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", 1597 | "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", 1598 | "peer": true, 1599 | "dependencies": { 1600 | "entities": "^4.4.0" 1601 | }, 1602 | "funding": { 1603 | "url": "https://github.com/inikulin/parse5?sponsor=1" 1604 | } 1605 | }, 1606 | "node_modules/parse5-htmlparser2-tree-adapter": { 1607 | "version": "7.0.0", 1608 | "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", 1609 | "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", 1610 | "peer": true, 1611 | "dependencies": { 1612 | "domhandler": "^5.0.2", 1613 | "parse5": "^7.0.0" 1614 | }, 1615 | "funding": { 1616 | "url": "https://github.com/inikulin/parse5?sponsor=1" 1617 | } 1618 | }, 1619 | "node_modules/path-is-absolute": { 1620 | "version": "1.0.1", 1621 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1622 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 1623 | "optional": true, 1624 | "peer": true, 1625 | "engines": { 1626 | "node": ">=0.10.0" 1627 | } 1628 | }, 1629 | "node_modules/peek-readable": { 1630 | "version": "4.1.0", 1631 | "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", 1632 | "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", 1633 | "peer": true, 1634 | "engines": { 1635 | "node": ">=8" 1636 | }, 1637 | "funding": { 1638 | "type": "github", 1639 | "url": "https://github.com/sponsors/Borewit" 1640 | } 1641 | }, 1642 | "node_modules/prebuild-install": { 1643 | "version": "7.1.1", 1644 | "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", 1645 | "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", 1646 | "dependencies": { 1647 | "detect-libc": "^2.0.0", 1648 | "expand-template": "^2.0.3", 1649 | "github-from-package": "0.0.0", 1650 | "minimist": "^1.2.3", 1651 | "mkdirp-classic": "^0.5.3", 1652 | "napi-build-utils": "^1.0.1", 1653 | "node-abi": "^3.3.0", 1654 | "pump": "^3.0.0", 1655 | "rc": "^1.2.7", 1656 | "simple-get": "^4.0.0", 1657 | "tar-fs": "^2.0.0", 1658 | "tunnel-agent": "^0.6.0" 1659 | }, 1660 | "bin": { 1661 | "prebuild-install": "bin.js" 1662 | }, 1663 | "engines": { 1664 | "node": ">=10" 1665 | } 1666 | }, 1667 | "node_modules/prism-media": { 1668 | "version": "1.3.5", 1669 | "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.5.tgz", 1670 | "integrity": "sha512-IQdl0Q01m4LrkN1EGIE9lphov5Hy7WWlH6ulf5QdGePLlPas9p2mhgddTEHrlaXYjjFToM1/rWuwF37VF4taaA==", 1671 | "peerDependencies": { 1672 | "@discordjs/opus": ">=0.8.0 <1.0.0", 1673 | "ffmpeg-static": "^5.0.2 || ^4.2.7 || ^3.0.0 || ^2.4.0", 1674 | "node-opus": "^0.3.3", 1675 | "opusscript": "^0.0.8" 1676 | }, 1677 | "peerDependenciesMeta": { 1678 | "@discordjs/opus": { 1679 | "optional": true 1680 | }, 1681 | "ffmpeg-static": { 1682 | "optional": true 1683 | }, 1684 | "node-opus": { 1685 | "optional": true 1686 | }, 1687 | "opusscript": { 1688 | "optional": true 1689 | } 1690 | } 1691 | }, 1692 | "node_modules/progress": { 1693 | "version": "2.0.3", 1694 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 1695 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 1696 | "optional": true, 1697 | "peer": true, 1698 | "engines": { 1699 | "node": ">=0.4.0" 1700 | } 1701 | }, 1702 | "node_modules/psl": { 1703 | "version": "1.9.0", 1704 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", 1705 | "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" 1706 | }, 1707 | "node_modules/pump": { 1708 | "version": "3.0.0", 1709 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 1710 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 1711 | "dependencies": { 1712 | "end-of-stream": "^1.1.0", 1713 | "once": "^1.3.1" 1714 | } 1715 | }, 1716 | "node_modules/punycode": { 1717 | "version": "2.3.0", 1718 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", 1719 | "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", 1720 | "engines": { 1721 | "node": ">=6" 1722 | } 1723 | }, 1724 | "node_modules/querystringify": { 1725 | "version": "2.2.0", 1726 | "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", 1727 | "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" 1728 | }, 1729 | "node_modules/randombytes": { 1730 | "version": "2.1.0", 1731 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 1732 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 1733 | "dependencies": { 1734 | "safe-buffer": "^5.1.0" 1735 | } 1736 | }, 1737 | "node_modules/rc": { 1738 | "version": "1.2.8", 1739 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 1740 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 1741 | "dependencies": { 1742 | "deep-extend": "^0.6.0", 1743 | "ini": "~1.3.0", 1744 | "minimist": "^1.2.0", 1745 | "strip-json-comments": "~2.0.1" 1746 | }, 1747 | "bin": { 1748 | "rc": "cli.js" 1749 | } 1750 | }, 1751 | "node_modules/readable-stream": { 1752 | "version": "3.6.2", 1753 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", 1754 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", 1755 | "dependencies": { 1756 | "inherits": "^2.0.3", 1757 | "string_decoder": "^1.1.1", 1758 | "util-deprecate": "^1.0.1" 1759 | }, 1760 | "engines": { 1761 | "node": ">= 6" 1762 | } 1763 | }, 1764 | "node_modules/readable-web-to-node-stream": { 1765 | "version": "3.0.2", 1766 | "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", 1767 | "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", 1768 | "peer": true, 1769 | "dependencies": { 1770 | "readable-stream": "^3.6.0" 1771 | }, 1772 | "engines": { 1773 | "node": ">=8" 1774 | }, 1775 | "funding": { 1776 | "type": "github", 1777 | "url": "https://github.com/sponsors/Borewit" 1778 | } 1779 | }, 1780 | "node_modules/requires-port": { 1781 | "version": "1.0.0", 1782 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", 1783 | "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" 1784 | }, 1785 | "node_modules/reverbnation-scraper": { 1786 | "version": "2.0.0", 1787 | "resolved": "https://registry.npmjs.org/reverbnation-scraper/-/reverbnation-scraper-2.0.0.tgz", 1788 | "integrity": "sha512-t1Mew5QC9QEVEry5DXyagvci2O+TgXTGoMHbNoW5NRz6LTOzK/DLHUpnrQwloX8CVX5z1a802vwHM3YgUVOvKg==", 1789 | "peer": true, 1790 | "dependencies": { 1791 | "node-fetch": "^2.6.0" 1792 | } 1793 | }, 1794 | "node_modules/rimraf": { 1795 | "version": "3.0.2", 1796 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 1797 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 1798 | "optional": true, 1799 | "peer": true, 1800 | "dependencies": { 1801 | "glob": "^7.1.3" 1802 | }, 1803 | "bin": { 1804 | "rimraf": "bin.js" 1805 | }, 1806 | "funding": { 1807 | "url": "https://github.com/sponsors/isaacs" 1808 | } 1809 | }, 1810 | "node_modules/safe-base64": { 1811 | "version": "2.0.1-0", 1812 | "resolved": "https://registry.npmjs.org/safe-base64/-/safe-base64-2.0.1-0.tgz", 1813 | "integrity": "sha512-ZoFf0RRp5NpNkgupFq3oILwFC5wzR8TD+U9WbWAMk4iryuBvyOP/p8nrc5qtDFlqHxL8rwbr/t+rRjsIYZsJrg==" 1814 | }, 1815 | "node_modules/safe-buffer": { 1816 | "version": "5.2.1", 1817 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1818 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1819 | "funding": [ 1820 | { 1821 | "type": "github", 1822 | "url": "https://github.com/sponsors/feross" 1823 | }, 1824 | { 1825 | "type": "patreon", 1826 | "url": "https://www.patreon.com/feross" 1827 | }, 1828 | { 1829 | "type": "consulting", 1830 | "url": "https://feross.org/support" 1831 | } 1832 | ] 1833 | }, 1834 | "node_modules/sax": { 1835 | "version": "1.2.4", 1836 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 1837 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" 1838 | }, 1839 | "node_modules/semver": { 1840 | "version": "7.5.4", 1841 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", 1842 | "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", 1843 | "dependencies": { 1844 | "lru-cache": "^6.0.0" 1845 | }, 1846 | "bin": { 1847 | "semver": "bin/semver.js" 1848 | }, 1849 | "engines": { 1850 | "node": ">=10" 1851 | } 1852 | }, 1853 | "node_modules/serialize-javascript": { 1854 | "version": "6.0.1", 1855 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", 1856 | "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", 1857 | "dependencies": { 1858 | "randombytes": "^2.1.0" 1859 | } 1860 | }, 1861 | "node_modules/set-blocking": { 1862 | "version": "2.0.0", 1863 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 1864 | "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", 1865 | "optional": true, 1866 | "peer": true 1867 | }, 1868 | "node_modules/set-cookie-parser": { 1869 | "version": "2.6.0", 1870 | "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", 1871 | "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==" 1872 | }, 1873 | "node_modules/signal-exit": { 1874 | "version": "3.0.7", 1875 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 1876 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", 1877 | "optional": true, 1878 | "peer": true 1879 | }, 1880 | "node_modules/simple-concat": { 1881 | "version": "1.0.1", 1882 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", 1883 | "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", 1884 | "funding": [ 1885 | { 1886 | "type": "github", 1887 | "url": "https://github.com/sponsors/feross" 1888 | }, 1889 | { 1890 | "type": "patreon", 1891 | "url": "https://www.patreon.com/feross" 1892 | }, 1893 | { 1894 | "type": "consulting", 1895 | "url": "https://feross.org/support" 1896 | } 1897 | ] 1898 | }, 1899 | "node_modules/simple-get": { 1900 | "version": "4.0.1", 1901 | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", 1902 | "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", 1903 | "funding": [ 1904 | { 1905 | "type": "github", 1906 | "url": "https://github.com/sponsors/feross" 1907 | }, 1908 | { 1909 | "type": "patreon", 1910 | "url": "https://www.patreon.com/feross" 1911 | }, 1912 | { 1913 | "type": "consulting", 1914 | "url": "https://feross.org/support" 1915 | } 1916 | ], 1917 | "dependencies": { 1918 | "decompress-response": "^6.0.0", 1919 | "once": "^1.3.1", 1920 | "simple-concat": "^1.0.0" 1921 | } 1922 | }, 1923 | "node_modules/soundcloud.ts": { 1924 | "version": "0.5.2", 1925 | "resolved": "https://registry.npmjs.org/soundcloud.ts/-/soundcloud.ts-0.5.2.tgz", 1926 | "integrity": "sha512-/pc72HWYJpSpup+mJBE9pT31JsrMcxJGBlip3Vem+0Fsscg98xh1/7I2nCpAKuMAeV6MVyrisI8TfjO6T7qKJg==", 1927 | "peer": true, 1928 | "dependencies": { 1929 | "undici": "^5.22.1" 1930 | } 1931 | }, 1932 | "node_modules/spotify-uri": { 1933 | "version": "3.0.4", 1934 | "resolved": "https://registry.npmjs.org/spotify-uri/-/spotify-uri-3.0.4.tgz", 1935 | "integrity": "sha512-wtofZNzMjPXR1KD2/gw8F/7ng1QwxpfFbrVgcRaAh0oSJ6ZGC5ln+IBptIRuti1dYGOxJqEIvDc88ctLvTSWiQ==", 1936 | "peer": true, 1937 | "engines": { 1938 | "node": ">= 16" 1939 | } 1940 | }, 1941 | "node_modules/spotify-url-info": { 1942 | "version": "3.2.5", 1943 | "resolved": "https://registry.npmjs.org/spotify-url-info/-/spotify-url-info-3.2.5.tgz", 1944 | "integrity": "sha512-5LpA8PznECfTPRVcgYSyYOn7dr3aq+sHgl3JrDDKT7NVJ8exEhFD1NsmR8/kObc6qlr0H6t+AZDVVfv3HiEKaQ==", 1945 | "peer": true, 1946 | "dependencies": { 1947 | "himalaya": "~1.1.0", 1948 | "spotify-uri": "~3.0.3" 1949 | }, 1950 | "engines": { 1951 | "node": ">= 12" 1952 | } 1953 | }, 1954 | "node_modules/streamsearch": { 1955 | "version": "1.1.0", 1956 | "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", 1957 | "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", 1958 | "peer": true, 1959 | "engines": { 1960 | "node": ">=10.0.0" 1961 | } 1962 | }, 1963 | "node_modules/string_decoder": { 1964 | "version": "1.3.0", 1965 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 1966 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 1967 | "dependencies": { 1968 | "safe-buffer": "~5.2.0" 1969 | } 1970 | }, 1971 | "node_modules/string-similarity": { 1972 | "version": "4.0.4", 1973 | "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-4.0.4.tgz", 1974 | "integrity": "sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==", 1975 | "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." 1976 | }, 1977 | "node_modules/string-width": { 1978 | "version": "4.2.3", 1979 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 1980 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1981 | "optional": true, 1982 | "peer": true, 1983 | "dependencies": { 1984 | "emoji-regex": "^8.0.0", 1985 | "is-fullwidth-code-point": "^3.0.0", 1986 | "strip-ansi": "^6.0.1" 1987 | }, 1988 | "engines": { 1989 | "node": ">=8" 1990 | } 1991 | }, 1992 | "node_modules/strip-ansi": { 1993 | "version": "6.0.1", 1994 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1995 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1996 | "optional": true, 1997 | "peer": true, 1998 | "dependencies": { 1999 | "ansi-regex": "^5.0.1" 2000 | }, 2001 | "engines": { 2002 | "node": ">=8" 2003 | } 2004 | }, 2005 | "node_modules/strip-json-comments": { 2006 | "version": "2.0.1", 2007 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 2008 | "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", 2009 | "engines": { 2010 | "node": ">=0.10.0" 2011 | } 2012 | }, 2013 | "node_modules/strtok3": { 2014 | "version": "6.3.0", 2015 | "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", 2016 | "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", 2017 | "peer": true, 2018 | "dependencies": { 2019 | "@tokenizer/token": "^0.3.0", 2020 | "peek-readable": "^4.1.0" 2021 | }, 2022 | "engines": { 2023 | "node": ">=10" 2024 | }, 2025 | "funding": { 2026 | "type": "github", 2027 | "url": "https://github.com/sponsors/Borewit" 2028 | } 2029 | }, 2030 | "node_modules/supports-color": { 2031 | "version": "7.2.0", 2032 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2033 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2034 | "dependencies": { 2035 | "has-flag": "^4.0.0" 2036 | }, 2037 | "engines": { 2038 | "node": ">=8" 2039 | } 2040 | }, 2041 | "node_modules/tar": { 2042 | "version": "6.1.15", 2043 | "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", 2044 | "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", 2045 | "optional": true, 2046 | "peer": true, 2047 | "dependencies": { 2048 | "chownr": "^2.0.0", 2049 | "fs-minipass": "^2.0.0", 2050 | "minipass": "^5.0.0", 2051 | "minizlib": "^2.1.1", 2052 | "mkdirp": "^1.0.3", 2053 | "yallist": "^4.0.0" 2054 | }, 2055 | "engines": { 2056 | "node": ">=10" 2057 | } 2058 | }, 2059 | "node_modules/tar-fs": { 2060 | "version": "2.1.1", 2061 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", 2062 | "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", 2063 | "dependencies": { 2064 | "chownr": "^1.1.1", 2065 | "mkdirp-classic": "^0.5.2", 2066 | "pump": "^3.0.0", 2067 | "tar-stream": "^2.1.4" 2068 | } 2069 | }, 2070 | "node_modules/tar-fs/node_modules/chownr": { 2071 | "version": "1.1.4", 2072 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 2073 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" 2074 | }, 2075 | "node_modules/tar-stream": { 2076 | "version": "2.2.0", 2077 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", 2078 | "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", 2079 | "dependencies": { 2080 | "bl": "^4.0.3", 2081 | "end-of-stream": "^1.4.1", 2082 | "fs-constants": "^1.0.0", 2083 | "inherits": "^2.0.3", 2084 | "readable-stream": "^3.1.1" 2085 | }, 2086 | "engines": { 2087 | "node": ">=6" 2088 | } 2089 | }, 2090 | "node_modules/token-types": { 2091 | "version": "4.2.1", 2092 | "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", 2093 | "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", 2094 | "peer": true, 2095 | "dependencies": { 2096 | "@tokenizer/token": "^0.3.0", 2097 | "ieee754": "^1.2.1" 2098 | }, 2099 | "engines": { 2100 | "node": ">=10" 2101 | }, 2102 | "funding": { 2103 | "type": "github", 2104 | "url": "https://github.com/sponsors/Borewit" 2105 | } 2106 | }, 2107 | "node_modules/tough-cookie": { 2108 | "version": "4.1.3", 2109 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", 2110 | "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", 2111 | "dependencies": { 2112 | "psl": "^1.1.33", 2113 | "punycode": "^2.1.1", 2114 | "universalify": "^0.2.0", 2115 | "url-parse": "^1.5.3" 2116 | }, 2117 | "engines": { 2118 | "node": ">=6" 2119 | } 2120 | }, 2121 | "node_modules/tr46": { 2122 | "version": "0.0.3", 2123 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 2124 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" 2125 | }, 2126 | "node_modules/ts-mixer": { 2127 | "version": "6.0.3", 2128 | "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.3.tgz", 2129 | "integrity": "sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ==" 2130 | }, 2131 | "node_modules/tslib": { 2132 | "version": "2.6.0", 2133 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", 2134 | "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" 2135 | }, 2136 | "node_modules/tunnel-agent": { 2137 | "version": "0.6.0", 2138 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 2139 | "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", 2140 | "dependencies": { 2141 | "safe-buffer": "^5.0.1" 2142 | }, 2143 | "engines": { 2144 | "node": "*" 2145 | } 2146 | }, 2147 | "node_modules/typedarray": { 2148 | "version": "0.0.6", 2149 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 2150 | "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", 2151 | "optional": true, 2152 | "peer": true 2153 | }, 2154 | "node_modules/undici": { 2155 | "version": "5.22.1", 2156 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz", 2157 | "integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==", 2158 | "peer": true, 2159 | "dependencies": { 2160 | "busboy": "^1.6.0" 2161 | }, 2162 | "engines": { 2163 | "node": ">=14.0" 2164 | } 2165 | }, 2166 | "node_modules/universalify": { 2167 | "version": "0.2.0", 2168 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", 2169 | "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", 2170 | "engines": { 2171 | "node": ">= 4.0.0" 2172 | } 2173 | }, 2174 | "node_modules/url-parse": { 2175 | "version": "1.5.10", 2176 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", 2177 | "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", 2178 | "dependencies": { 2179 | "querystringify": "^2.1.1", 2180 | "requires-port": "^1.0.0" 2181 | } 2182 | }, 2183 | "node_modules/util-deprecate": { 2184 | "version": "1.0.2", 2185 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2186 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 2187 | }, 2188 | "node_modules/webidl-conversions": { 2189 | "version": "3.0.1", 2190 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 2191 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" 2192 | }, 2193 | "node_modules/whatwg-url": { 2194 | "version": "5.0.0", 2195 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 2196 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 2197 | "dependencies": { 2198 | "tr46": "~0.0.3", 2199 | "webidl-conversions": "^3.0.0" 2200 | } 2201 | }, 2202 | "node_modules/wide-align": { 2203 | "version": "1.1.5", 2204 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", 2205 | "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", 2206 | "optional": true, 2207 | "peer": true, 2208 | "dependencies": { 2209 | "string-width": "^1.0.2 || 2 || 3 || 4" 2210 | } 2211 | }, 2212 | "node_modules/wrappy": { 2213 | "version": "1.0.2", 2214 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2215 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 2216 | }, 2217 | "node_modules/ws": { 2218 | "version": "8.14.2", 2219 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", 2220 | "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", 2221 | "engines": { 2222 | "node": ">=10.0.0" 2223 | }, 2224 | "peerDependencies": { 2225 | "bufferutil": "^4.0.1", 2226 | "utf-8-validate": ">=5.0.2" 2227 | }, 2228 | "peerDependenciesMeta": { 2229 | "bufferutil": { 2230 | "optional": true 2231 | }, 2232 | "utf-8-validate": { 2233 | "optional": true 2234 | } 2235 | } 2236 | }, 2237 | "node_modules/yallist": { 2238 | "version": "4.0.0", 2239 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 2240 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 2241 | }, 2242 | "node_modules/youtube-sr": { 2243 | "version": "4.3.4", 2244 | "resolved": "https://registry.npmjs.org/youtube-sr/-/youtube-sr-4.3.4.tgz", 2245 | "integrity": "sha512-olSYcR80XigutCrePEXBX3/RJJrWfonJQj7+/ggBiWU0CzTDLE1q8+lpWTWCG0JpzhzILp/IB/Bq/glGqqr1TQ==", 2246 | "peer": true 2247 | }, 2248 | "node_modules/ytdl-core": { 2249 | "version": "4.11.4", 2250 | "resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.11.4.tgz", 2251 | "integrity": "sha512-tsVvqt++B5LSTMnCKQb4H/PFBewKj7gGPJ6KIM5gOFGMKNZj4qglGAl4QGFG8cNPP6wY54P80FDID5eN2di0GQ==", 2252 | "dependencies": { 2253 | "m3u8stream": "^0.8.6", 2254 | "miniget": "^4.2.2", 2255 | "sax": "^1.1.3" 2256 | }, 2257 | "engines": { 2258 | "node": ">=12" 2259 | } 2260 | } 2261 | } 2262 | } 2263 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "selfrythm", 3 | "version": "1.1.0", 4 | "description": "This project is a **Self Rythm Bot** in **[Node JS](https://nodejs.org/)**. His purpose is to do the same actions as **[Rythm](https://rythmbot.co/)** while being a selfbot. This has many advantages, for example you can use it on any servs you're in, even without permissions.", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node index.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/TheDiscorders/SelfRythm.git" 12 | }, 13 | "author": "The Discorders", 14 | "license": "MIT", 15 | "bugs": { 16 | "url": "https://github.com/TheDiscorders/SelfRythm/issues" 17 | }, 18 | "homepage": "https://github.com/TheDiscorders/SelfRythm#readme", 19 | "dependencies": { 20 | "ascii-table": "^0.0.9", 21 | "discord-player": "^6.6.1", 22 | "discord.js-selfbot-v13": "^2.14.12", 23 | "enmap": "^5.9.8", 24 | "ytdl-core": "^4.11.4" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /strings.json: -------------------------------------------------------------------------------- 1 | { 2 | "permissionDenied": "❌ You don't have the permission to run this command", 3 | "notInVocal" : "❌ You have to be in a voice channel to do this", 4 | "noArgsSongSearch" : "❌ You need to provide a link or some keywords", 5 | "nothingPlaying": "❌ There is nothing playing", 6 | "noSongsQueued": "❌ No songs queued", 7 | "cantLoop": "❌ You need to have a song playing to loop it", 8 | "badUrl": "❌ Invalid link provided", 9 | "errorJoin": "❌ A music needs to be playing for the bot to change channels", 10 | "noVolume": "❌ You need to provide a value for the volume", 11 | "nothingPlayingVolume": "❌ You need to have a song playing to change the volume", 12 | "toMuchArgsVolume": "❌ They are too many arguments, please provide a single number", 13 | "volumeToHigh": "❌ Volume can't be above 10", 14 | "noNumber": "❌ You need to provide number (1 being 100% about the right volume)", 15 | "earrapeFail": "❌ Conditions not completed in 8sec, earrape mod canceled", 16 | "startedPlaying": "✅ '**SONG_TITLE**' started playing\n", 17 | "songAddedToQueue": "✅ '**SONG_TITLE**' has been added to the queue\n", 18 | "musicStopped": "✅ Music stopped", 19 | "musicSkipped": "✅ Music skipped", 20 | "loopOn": ":repeat_one: **Enabled !**", 21 | "loopOff": ":repeat_one: **Disabled !**", 22 | "joinMsg": "✅ Joinned succesfully the voice channel", 23 | "volumeChanged": "✅ The volume was successfully set to VOLUME", 24 | "startEarrape" : "✅ The volume was successfully set to ___**EARRAPE**___ :ear: :headstone:", 25 | "endEarrape" : "✅ The volume was successfully set back to VOLUME", 26 | "musicsQueued": ":musical_note: **Musics queued** :musical_note: :", 27 | "earrapeWarning": "⚠ Are you sure ? It can severely damage the hearing of all people in the channel !\nPress the ✅ reaction to continue" 28 | } -------------------------------------------------------------------------------- /utils.js: -------------------------------------------------------------------------------- 1 | const AsciiTable = require("ascii-table/ascii-table"); 2 | const YouTube = require("youtube-sr").default; 3 | const ytdl = require("ytdl-core"); 4 | const { createAudioResource, createAudioPlayer, joinVoiceChannel } = require('@discordjs/voice'); 5 | 6 | module.exports = { 7 | 8 | /** 9 | * @description Sends logs to console and adds the date/time 10 | * @param content The content to log 11 | */ 12 | isFloat: function(n) { 13 | return ((typeof n==='number')&&(n%1!==0)); 14 | }, 15 | log: function(content) { 16 | date_ob = new Date(); 17 | 18 | date = date_ob.getDate().toString(); 19 | month = date_ob.getMonth().toString(); 20 | year = date_ob.getFullYear().toString(); 21 | 22 | if(date.length === 1){date = "0" + date;}; 23 | if(month.length === 1){month = "0" + month;}; 24 | 25 | dmy = date + "/" + month + "/" + year; 26 | 27 | /* Gets hours, minutes and seconds */ 28 | hms = date_ob.toLocaleTimeString(); 29 | 30 | console.log(`[ ${dmy} | ${hms} ] ${content}`); 31 | }, 32 | /** 33 | * @description Checks if the provided string is an url 34 | * @param {String} url 35 | */ 36 | isURL: function (url) { 37 | if(!url) return false; 38 | var pattern = new RegExp('^(https?:\\/\\/)?'+ 39 | '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ 40 | '((\\d{1,3}\\.){3}\\d{1,3}))|' + 41 | 'localhost' + 42 | '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ 43 | '(\\?[;&a-z\\d%_.~+=-]*)?'+ 44 | '(\\#[-a-z\\d_]*)?$', 'i'); 45 | return pattern.test(url); 46 | }, 47 | /** 48 | * @description Create an ascii-table shown in the console on startup with the loaded events & commands 49 | * @param {Object} loaded 50 | */ 51 | showTable: function(loaded){ 52 | var table = new AsciiTable('Loading content...'); 53 | table.setHeading("Commands","Events"); 54 | for(let i=0; i<=Math.max(loaded.commands.length, loaded.events.length)-1; i++){ 55 | table.addRow(loaded.commands[i], loaded.events[i]); 56 | }; 57 | return table.render(); 58 | }, 59 | getUrl: async function (words){ 60 | stringOfWords = words.join(" "); 61 | lookingOnYtb = new Promise(async (resolve) => { 62 | YouTube.search(stringOfWords, { limit: 1 }) 63 | .then(result => { 64 | resolve("https://www.youtube.com/watch?v=" + result[0].id); 65 | }); 66 | }); 67 | 68 | let link = await lookingOnYtb; 69 | return link; 70 | }, 71 | play: function(song) { 72 | 73 | const utils = require("./utils"); 74 | const serverQueue = queue.get("queue"); 75 | 76 | if(!song){ 77 | utils.log("No songs left in queue"); 78 | serverQueue.connection.destroy(); 79 | return queue.delete("queue"); 80 | } 81 | 82 | utils.log(`Started playing the music : ${song.title}`) 83 | 84 | let resource = createAudioResource(ytdl(song.url, { 85 | filter: 'audioonly', 86 | quality: 'highestaudio', 87 | highWaterMark: 1 << 25 88 | }), {inlineVolume: true}); 89 | 90 | const player = createAudioPlayer(); 91 | serverQueue.connection.subscribe(player); 92 | 93 | player.play(resource); 94 | 95 | player.addListener("stateChange", (oldOne, newOne) => { 96 | if (newOne.status == "idle") { 97 | if(serverQueue.songs[0]) utils.log(`Finished playing the music : ${serverQueue.songs[0].title}`); 98 | else utils.log(`Finished playing all musics, no more musics in the queue`); 99 | if(serverQueue.loop === false || serverQueue.skipped === true) serverQueue.songs.shift(); 100 | if(serverQueue.skipped === true) serverQueue.skipped = false; 101 | utils.play(serverQueue.songs[0]); 102 | } 103 | }); 104 | 105 | player.on('error', error => { 106 | console.log(error) 107 | }); 108 | 109 | serverQueue.connection._state.subscription.player._state.resource.volume.setVolumeLogarithmic(serverQueue.volume / 5); 110 | }, 111 | joinVChannel: function(voiceChannel) { 112 | return joinVoiceChannel({ 113 | channelId: voiceChannel.id, 114 | guildId: voiceChannel.guild.id, 115 | adapterCreator: voiceChannel.guild.voiceAdapterCreator, 116 | }); 117 | } 118 | } -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@aikochan2k6/qrcode-terminal@^0.12.1": 6 | version "0.12.1" 7 | resolved "https://registry.npmjs.org/@aikochan2k6/qrcode-terminal/-/qrcode-terminal-0.12.1.tgz" 8 | integrity sha512-GfSrCCqKti0XyomCOaFRL//dnEpDux4tJleywuYChjHue+pqjM0lP39cQq8qtmfcOm1CqhWQeB6JS6kY4tQ8Tw== 9 | 10 | "@discord-player/equalizer@^0.2.2": 11 | version "0.2.2" 12 | resolved "https://registry.npmjs.org/@discord-player/equalizer/-/equalizer-0.2.2.tgz" 13 | integrity sha512-U86em1cMtopXVuKFDxP8J2DcNOqwCAsYQ2tkzPoJvchsrezcI2cgvN3jtGt9FFECP3pLvSz96ZB9FOHZKG5Mqg== 14 | 15 | "@discord-player/ffmpeg@^0.1.0": 16 | version "0.1.0" 17 | resolved "https://registry.npmjs.org/@discord-player/ffmpeg/-/ffmpeg-0.1.0.tgz" 18 | integrity sha512-0kW6q4gMQN2B4Z4EzmUgXrKQSXXmyhjdZBBZ/6jSHZ9fh814oOu+JXP01VvtWHwTylI7qJHIctEWtSyjEubCJg== 19 | 20 | "@discord-player/utils@^0.2.2": 21 | version "0.2.2" 22 | resolved "https://registry.npmjs.org/@discord-player/utils/-/utils-0.2.2.tgz" 23 | integrity sha512-UklWUT7BcZEkBgywM9Cmpo2nwj3SQ9Wmhu6ml1uy/YRQnY8IRdZEHD84T2kfjOg4LVZek0ej1VerIqq7a9PAHQ== 24 | dependencies: 25 | "@discordjs/collection" "^1.1.0" 26 | 27 | "@discordjs/builders@^1.6.3": 28 | version "1.6.3" 29 | resolved "https://registry.npmjs.org/@discordjs/builders/-/builders-1.6.3.tgz" 30 | integrity sha512-CTCh8NqED3iecTNuiz49mwSsrc2iQb4d0MjMdmS/8pb69Y4IlzJ/DIy/p5GFlgOrFbNO2WzMHkWKQSiJ3VNXaw== 31 | dependencies: 32 | "@discordjs/formatters" "^0.3.1" 33 | "@discordjs/util" "^0.3.1" 34 | "@sapphire/shapeshift" "^3.8.2" 35 | discord-api-types "^0.37.41" 36 | fast-deep-equal "^3.1.3" 37 | ts-mixer "^6.0.3" 38 | tslib "^2.5.0" 39 | 40 | "@discordjs/collection@^1.1.0", "@discordjs/collection@^1.5.3": 41 | version "1.5.3" 42 | resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.5.3.tgz#5a1250159ebfff9efa4f963cfa7e97f1b291be18" 43 | integrity sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ== 44 | 45 | "@discordjs/formatters@^0.3.1": 46 | version "0.3.1" 47 | resolved "https://registry.npmjs.org/@discordjs/formatters/-/formatters-0.3.1.tgz" 48 | integrity sha512-M7X4IGiSeh4znwcRGcs+49B5tBkNDn4k5bmhxJDAUhRxRHTiFAOTVUNQ6yAKySu5jZTnCbSvTYHW3w0rAzV1MA== 49 | dependencies: 50 | discord-api-types "^0.37.41" 51 | 52 | "@discordjs/util@^0.3.1": 53 | version "0.3.1" 54 | resolved "https://registry.npmjs.org/@discordjs/util/-/util-0.3.1.tgz" 55 | integrity sha512-HxXKYKg7vohx2/OupUN/4Sd02Ev3PBJ5q0gtjdcvXb0ErCva8jNHWfe/v5sU3UKjIB/uxOhc+TDOnhqffj9pRA== 56 | 57 | "@discordjs/voice@^0.16.0", "@discordjs/voice@latest": 58 | version "0.16.0" 59 | resolved "https://registry.npmjs.org/@discordjs/voice/-/voice-0.16.0.tgz" 60 | integrity sha512-ToGCvHD1cBscuW3p+C7zOF5+L7MJmU4GjdOARfNk9mkHyFFZq4grK+Sxr3QXKbp27DtfDBc9uqD4GUOYgxngfA== 61 | dependencies: 62 | "@types/ws" "^8.5.4" 63 | discord-api-types "^0.37.37" 64 | prism-media "^1.3.5" 65 | tslib "^2.5.0" 66 | ws "^8.13.0" 67 | 68 | "@sapphire/async-queue@^1.5.0": 69 | version "1.5.0" 70 | resolved "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.0.tgz" 71 | integrity sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA== 72 | 73 | "@sapphire/shapeshift@^3.8.2", "@sapphire/shapeshift@^3.9.3": 74 | version "3.9.3" 75 | resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.9.3.tgz#89d26713044bc21cc5e0845e61a8a328ca3c1a84" 76 | integrity sha512-WzKJSwDYloSkHoBbE8rkRW8UNKJiSRJ/P8NqJ5iVq7U2Yr/kriIBx2hW+wj2Z5e5EnXL1hgYomgaFsdK6b+zqQ== 77 | dependencies: 78 | fast-deep-equal "^3.1.3" 79 | lodash "^4.17.21" 80 | 81 | "@types/node-fetch@^2.6.7": 82 | version "2.6.9" 83 | resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.9.tgz#15f529d247f1ede1824f7e7acdaa192d5f28071e" 84 | integrity sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA== 85 | dependencies: 86 | "@types/node" "*" 87 | form-data "^4.0.0" 88 | 89 | "@types/node@*": 90 | version "20.4.1" 91 | resolved "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz" 92 | integrity sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg== 93 | 94 | "@types/ws@^8.5.4", "@types/ws@^8.5.8": 95 | version "8.5.9" 96 | resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.9.tgz#384c489f99c83225a53f01ebc3eddf3b8e202a8c" 97 | integrity sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg== 98 | dependencies: 99 | "@types/node" "*" 100 | 101 | ansi-styles@^4.1.0: 102 | version "4.3.0" 103 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" 104 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 105 | dependencies: 106 | color-convert "^2.0.1" 107 | 108 | ascii-table@^0.0.9: 109 | version "0.0.9" 110 | resolved "https://registry.npmjs.org/ascii-table/-/ascii-table-0.0.9.tgz" 111 | integrity sha512-xpkr6sCDIYTPqzvjG8M3ncw1YOTaloWZOyrUmicoEifBEKzQzt+ooUpRpQ/AbOoJfO/p2ZKiyp79qHThzJDulQ== 112 | 113 | asynckit@^0.4.0: 114 | version "0.4.0" 115 | resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" 116 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 117 | 118 | base64-js@^1.3.1: 119 | version "1.5.1" 120 | resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" 121 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 122 | 123 | better-sqlite3@^8.4.0: 124 | version "8.4.0" 125 | resolved "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-8.4.0.tgz" 126 | integrity sha512-NmsNW1CQvqMszu/CFAJ3pLct6NEFlNfuGM6vw72KHkjOD1UDnL96XNN1BMQc1hiHo8vE2GbOWQYIpZ+YM5wrZw== 127 | dependencies: 128 | bindings "^1.5.0" 129 | prebuild-install "^7.1.0" 130 | 131 | bignumber.js@^9.0.0: 132 | version "9.1.1" 133 | resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz" 134 | integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== 135 | 136 | bindings@^1.5.0: 137 | version "1.5.0" 138 | resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" 139 | integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== 140 | dependencies: 141 | file-uri-to-path "1.0.0" 142 | 143 | bl@^4.0.3: 144 | version "4.1.0" 145 | resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" 146 | integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== 147 | dependencies: 148 | buffer "^5.5.0" 149 | inherits "^2.0.4" 150 | readable-stream "^3.4.0" 151 | 152 | buffer@^5.5.0: 153 | version "5.7.1" 154 | resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" 155 | integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== 156 | dependencies: 157 | base64-js "^1.3.1" 158 | ieee754 "^1.1.13" 159 | 160 | chalk@^4.1.2: 161 | version "4.1.2" 162 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" 163 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 164 | dependencies: 165 | ansi-styles "^4.1.0" 166 | supports-color "^7.1.0" 167 | 168 | chownr@^1.1.1: 169 | version "1.1.4" 170 | resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" 171 | integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== 172 | 173 | color-convert@^2.0.1: 174 | version "2.0.1" 175 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 176 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 177 | dependencies: 178 | color-name "~1.1.4" 179 | 180 | color-name@~1.1.4: 181 | version "1.1.4" 182 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 183 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 184 | 185 | combined-stream@^1.0.8: 186 | version "1.0.8" 187 | resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" 188 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 189 | dependencies: 190 | delayed-stream "~1.0.0" 191 | 192 | decompress-response@^6.0.0: 193 | version "6.0.0" 194 | resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" 195 | integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== 196 | dependencies: 197 | mimic-response "^3.1.0" 198 | 199 | deep-extend@^0.6.0: 200 | version "0.6.0" 201 | resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" 202 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 203 | 204 | delayed-stream@~1.0.0: 205 | version "1.0.0" 206 | resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" 207 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 208 | 209 | detect-libc@^2.0.0: 210 | version "2.0.1" 211 | resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz" 212 | integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== 213 | 214 | discord-api-types@^0.37.37, discord-api-types@^0.37.41, discord-api-types@^0.37.61: 215 | version "0.37.63" 216 | resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.63.tgz#ba7e6b425806fc7335afbdff69fc006dc6daf208" 217 | integrity sha512-WbEDWj/1JGCIC1oCMIC4z9XbYY8PrWpV5eqFFQymJhJlHMqgIjqoYbU812X5oj5cwbRrEh6Va4LNLumB2Nt6IQ== 218 | 219 | discord-player@^6.6.1: 220 | version "6.6.1" 221 | resolved "https://registry.npmjs.org/discord-player/-/discord-player-6.6.1.tgz" 222 | integrity sha512-l72ql51uya3Uq5VrTPvR6xWBHOa3lI9oWTl7YDDHvofMXEYLgqAuDlyuelQ7AY+lUC7FOK7MoS2QgVFHeAciNw== 223 | dependencies: 224 | "@discord-player/equalizer" "^0.2.2" 225 | "@discord-player/ffmpeg" "^0.1.0" 226 | "@discord-player/utils" "^0.2.2" 227 | "@discordjs/voice" latest 228 | libsodium-wrappers "^0.7.10" 229 | 230 | discord.js-selfbot-v13@^2.14.12: 231 | version "2.14.12" 232 | resolved "https://registry.yarnpkg.com/discord.js-selfbot-v13/-/discord.js-selfbot-v13-2.14.12.tgz#9cbd13d6ac78a8fcae7891d1d6e190550ece23e9" 233 | integrity sha512-3AcRA8VtMovXfojvXFg7lBkev7e5/VDGoJUhVqRFXHB+frfqRkm9bE9tTsxwptfqit8ZGRSMn4/Zbpl5h5TN6g== 234 | dependencies: 235 | "@aikochan2k6/qrcode-terminal" "^0.12.1" 236 | "@discordjs/builders" "^1.6.3" 237 | "@discordjs/collection" "^1.5.3" 238 | "@discordjs/voice" "^0.16.0" 239 | "@sapphire/async-queue" "^1.5.0" 240 | "@sapphire/shapeshift" "^3.9.3" 241 | "@types/node-fetch" "^2.6.7" 242 | "@types/ws" "^8.5.8" 243 | chalk "^4.1.2" 244 | discord-api-types "^0.37.61" 245 | fetch-cookie "^2.1.0" 246 | form-data "^4.0.0" 247 | json-bigint "^1.0.0" 248 | lodash.permutations "^1.0.0" 249 | node-fetch "^2.6.9" 250 | safe-base64 "^2.0.1-0" 251 | string-similarity "^4.0.4" 252 | string_decoder "^1.3.0" 253 | tough-cookie "^4.1.3" 254 | ws "^8.14.2" 255 | 256 | end-of-stream@^1.1.0, end-of-stream@^1.4.1: 257 | version "1.4.4" 258 | resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" 259 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 260 | dependencies: 261 | once "^1.4.0" 262 | 263 | enmap@^5.9.8: 264 | version "5.9.8" 265 | resolved "https://registry.npmjs.org/enmap/-/enmap-5.9.8.tgz" 266 | integrity sha512-6hLGXpZ3KjiR35JkmwdHSM316TTznSl9QslsS4p7DNZNoKDGqmKnyIiP8pcKNk8BnNgcUBmPOic5siHWqCaIVA== 267 | dependencies: 268 | better-sqlite3 "^8.4.0" 269 | lodash "^4.17.21" 270 | on-change "^3.0.2" 271 | serialize-javascript "^6.0.1" 272 | 273 | expand-template@^2.0.3: 274 | version "2.0.3" 275 | resolved "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz" 276 | integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== 277 | 278 | fast-deep-equal@^3.1.3: 279 | version "3.1.3" 280 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 281 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 282 | 283 | fetch-cookie@^2.1.0: 284 | version "2.1.0" 285 | resolved "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-2.1.0.tgz" 286 | integrity sha512-39+cZRbWfbibmj22R2Jy6dmTbAWC+oqun1f1FzQaNurkPDUP4C38jpeZbiXCR88RKRVDp8UcDrbFXkNhN+NjYg== 287 | dependencies: 288 | set-cookie-parser "^2.4.8" 289 | tough-cookie "^4.0.0" 290 | 291 | file-uri-to-path@1.0.0: 292 | version "1.0.0" 293 | resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" 294 | integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== 295 | 296 | form-data@^4.0.0: 297 | version "4.0.0" 298 | resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" 299 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 300 | dependencies: 301 | asynckit "^0.4.0" 302 | combined-stream "^1.0.8" 303 | mime-types "^2.1.12" 304 | 305 | fs-constants@^1.0.0: 306 | version "1.0.0" 307 | resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" 308 | integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== 309 | 310 | github-from-package@0.0.0: 311 | version "0.0.0" 312 | resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz" 313 | integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== 314 | 315 | has-flag@^4.0.0: 316 | version "4.0.0" 317 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 318 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 319 | 320 | ieee754@^1.1.13: 321 | version "1.2.1" 322 | resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" 323 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 324 | 325 | inherits@^2.0.3, inherits@^2.0.4: 326 | version "2.0.4" 327 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" 328 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 329 | 330 | ini@~1.3.0: 331 | version "1.3.8" 332 | resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" 333 | integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== 334 | 335 | json-bigint@^1.0.0: 336 | version "1.0.0" 337 | resolved "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz" 338 | integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== 339 | dependencies: 340 | bignumber.js "^9.0.0" 341 | 342 | libsodium-wrappers@^0.7.10: 343 | version "0.7.11" 344 | resolved "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz" 345 | integrity sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q== 346 | dependencies: 347 | libsodium "^0.7.11" 348 | 349 | libsodium@^0.7.11: 350 | version "0.7.11" 351 | resolved "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz" 352 | integrity sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A== 353 | 354 | lodash.permutations@^1.0.0: 355 | version "1.0.0" 356 | resolved "https://registry.npmjs.org/lodash.permutations/-/lodash.permutations-1.0.0.tgz" 357 | integrity sha512-0hFwfPb1V63YefDRGyR3iLDwdOEiNwxb1E3QQfGfytwha9wxb8ZRI1TrIAUPBG/GRGs51ctYvsNWrp+slXC9pw== 358 | 359 | lodash@^4.17.21: 360 | version "4.17.21" 361 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" 362 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 363 | 364 | lru-cache@^6.0.0: 365 | version "6.0.0" 366 | resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" 367 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 368 | dependencies: 369 | yallist "^4.0.0" 370 | 371 | m3u8stream@^0.8.6: 372 | version "0.8.6" 373 | resolved "https://registry.npmjs.org/m3u8stream/-/m3u8stream-0.8.6.tgz" 374 | integrity sha512-LZj8kIVf9KCphiHmH7sbFQTVe4tOemb202fWwvJwR9W5ENW/1hxJN6ksAWGhQgSBSa3jyWhnjKU1Fw1GaOdbyA== 375 | dependencies: 376 | miniget "^4.2.2" 377 | sax "^1.2.4" 378 | 379 | mime-db@1.52.0: 380 | version "1.52.0" 381 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" 382 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 383 | 384 | mime-types@^2.1.12: 385 | version "2.1.35" 386 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" 387 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 388 | dependencies: 389 | mime-db "1.52.0" 390 | 391 | mimic-response@^3.1.0: 392 | version "3.1.0" 393 | resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" 394 | integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== 395 | 396 | miniget@^4.2.2: 397 | version "4.2.3" 398 | resolved "https://registry.npmjs.org/miniget/-/miniget-4.2.3.tgz" 399 | integrity sha512-SjbDPDICJ1zT+ZvQwK0hUcRY4wxlhhNpHL9nJOB2MEAXRGagTljsO8MEDzQMTFf0Q8g4QNi8P9lEm/g7e+qgzA== 400 | 401 | minimist@^1.2.0, minimist@^1.2.3: 402 | version "1.2.8" 403 | resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" 404 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 405 | 406 | mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: 407 | version "0.5.3" 408 | resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" 409 | integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== 410 | 411 | napi-build-utils@^1.0.1: 412 | version "1.0.2" 413 | resolved "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz" 414 | integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== 415 | 416 | node-abi@^3.3.0: 417 | version "3.45.0" 418 | resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.45.0.tgz" 419 | integrity sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ== 420 | dependencies: 421 | semver "^7.3.5" 422 | 423 | node-fetch@^2.6.9: 424 | version "2.6.12" 425 | resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz" 426 | integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== 427 | dependencies: 428 | whatwg-url "^5.0.0" 429 | 430 | on-change@^3.0.2: 431 | version "3.0.2" 432 | resolved "https://registry.npmjs.org/on-change/-/on-change-3.0.2.tgz" 433 | integrity sha512-rdt5YfIfo86aFNwvQqzzHMpaPPyVQ/XjcGK01d46chZh47G8Xzvoao79SgFb03GZfxRGREzNQVJuo31drqyIlA== 434 | 435 | once@^1.3.1, once@^1.4.0: 436 | version "1.4.0" 437 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" 438 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 439 | dependencies: 440 | wrappy "1" 441 | 442 | prebuild-install@^7.1.0: 443 | version "7.1.1" 444 | resolved "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz" 445 | integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== 446 | dependencies: 447 | detect-libc "^2.0.0" 448 | expand-template "^2.0.3" 449 | github-from-package "0.0.0" 450 | minimist "^1.2.3" 451 | mkdirp-classic "^0.5.3" 452 | napi-build-utils "^1.0.1" 453 | node-abi "^3.3.0" 454 | pump "^3.0.0" 455 | rc "^1.2.7" 456 | simple-get "^4.0.0" 457 | tar-fs "^2.0.0" 458 | tunnel-agent "^0.6.0" 459 | 460 | prism-media@^1.3.5: 461 | version "1.3.5" 462 | resolved "https://registry.npmjs.org/prism-media/-/prism-media-1.3.5.tgz" 463 | integrity sha512-IQdl0Q01m4LrkN1EGIE9lphov5Hy7WWlH6ulf5QdGePLlPas9p2mhgddTEHrlaXYjjFToM1/rWuwF37VF4taaA== 464 | 465 | psl@^1.1.33: 466 | version "1.9.0" 467 | resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" 468 | integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== 469 | 470 | pump@^3.0.0: 471 | version "3.0.0" 472 | resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" 473 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 474 | dependencies: 475 | end-of-stream "^1.1.0" 476 | once "^1.3.1" 477 | 478 | punycode@^2.1.1: 479 | version "2.3.0" 480 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" 481 | integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== 482 | 483 | querystringify@^2.1.1: 484 | version "2.2.0" 485 | resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" 486 | integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== 487 | 488 | randombytes@^2.1.0: 489 | version "2.1.0" 490 | resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" 491 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 492 | dependencies: 493 | safe-buffer "^5.1.0" 494 | 495 | rc@^1.2.7: 496 | version "1.2.8" 497 | resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" 498 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 499 | dependencies: 500 | deep-extend "^0.6.0" 501 | ini "~1.3.0" 502 | minimist "^1.2.0" 503 | strip-json-comments "~2.0.1" 504 | 505 | readable-stream@^3.1.1, readable-stream@^3.4.0: 506 | version "3.6.2" 507 | resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" 508 | integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== 509 | dependencies: 510 | inherits "^2.0.3" 511 | string_decoder "^1.1.1" 512 | util-deprecate "^1.0.1" 513 | 514 | requires-port@^1.0.0: 515 | version "1.0.0" 516 | resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" 517 | integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== 518 | 519 | safe-base64@^2.0.1-0: 520 | version "2.0.1-0" 521 | resolved "https://registry.npmjs.org/safe-base64/-/safe-base64-2.0.1-0.tgz" 522 | integrity sha512-ZoFf0RRp5NpNkgupFq3oILwFC5wzR8TD+U9WbWAMk4iryuBvyOP/p8nrc5qtDFlqHxL8rwbr/t+rRjsIYZsJrg== 523 | 524 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: 525 | version "5.2.1" 526 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" 527 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 528 | 529 | sax@^1.1.3, sax@^1.2.4: 530 | version "1.2.4" 531 | resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" 532 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== 533 | 534 | semver@^7.3.5: 535 | version "7.5.4" 536 | resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" 537 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== 538 | dependencies: 539 | lru-cache "^6.0.0" 540 | 541 | serialize-javascript@^6.0.1: 542 | version "6.0.1" 543 | resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz" 544 | integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== 545 | dependencies: 546 | randombytes "^2.1.0" 547 | 548 | set-cookie-parser@^2.4.8: 549 | version "2.6.0" 550 | resolved "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz" 551 | integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ== 552 | 553 | simple-concat@^1.0.0: 554 | version "1.0.1" 555 | resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" 556 | integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== 557 | 558 | simple-get@^4.0.0: 559 | version "4.0.1" 560 | resolved "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz" 561 | integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== 562 | dependencies: 563 | decompress-response "^6.0.0" 564 | once "^1.3.1" 565 | simple-concat "^1.0.0" 566 | 567 | string-similarity@^4.0.4: 568 | version "4.0.4" 569 | resolved "https://registry.npmjs.org/string-similarity/-/string-similarity-4.0.4.tgz" 570 | integrity sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ== 571 | 572 | string_decoder@^1.1.1, string_decoder@^1.3.0: 573 | version "1.3.0" 574 | resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" 575 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 576 | dependencies: 577 | safe-buffer "~5.2.0" 578 | 579 | strip-json-comments@~2.0.1: 580 | version "2.0.1" 581 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" 582 | integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== 583 | 584 | supports-color@^7.1.0: 585 | version "7.2.0" 586 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" 587 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 588 | dependencies: 589 | has-flag "^4.0.0" 590 | 591 | tar-fs@^2.0.0: 592 | version "2.1.1" 593 | resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz" 594 | integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== 595 | dependencies: 596 | chownr "^1.1.1" 597 | mkdirp-classic "^0.5.2" 598 | pump "^3.0.0" 599 | tar-stream "^2.1.4" 600 | 601 | tar-stream@^2.1.4: 602 | version "2.2.0" 603 | resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" 604 | integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== 605 | dependencies: 606 | bl "^4.0.3" 607 | end-of-stream "^1.4.1" 608 | fs-constants "^1.0.0" 609 | inherits "^2.0.3" 610 | readable-stream "^3.1.1" 611 | 612 | tough-cookie@^4.0.0, tough-cookie@^4.1.3: 613 | version "4.1.3" 614 | resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz" 615 | integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== 616 | dependencies: 617 | psl "^1.1.33" 618 | punycode "^2.1.1" 619 | universalify "^0.2.0" 620 | url-parse "^1.5.3" 621 | 622 | tr46@~0.0.3: 623 | version "0.0.3" 624 | resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" 625 | integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== 626 | 627 | ts-mixer@^6.0.3: 628 | version "6.0.3" 629 | resolved "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.3.tgz" 630 | integrity sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ== 631 | 632 | tslib@^2.5.0: 633 | version "2.6.0" 634 | resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz" 635 | integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== 636 | 637 | tunnel-agent@^0.6.0: 638 | version "0.6.0" 639 | resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" 640 | integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== 641 | dependencies: 642 | safe-buffer "^5.0.1" 643 | 644 | universalify@^0.2.0: 645 | version "0.2.0" 646 | resolved "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz" 647 | integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== 648 | 649 | url-parse@^1.5.3: 650 | version "1.5.10" 651 | resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" 652 | integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== 653 | dependencies: 654 | querystringify "^2.1.1" 655 | requires-port "^1.0.0" 656 | 657 | util-deprecate@^1.0.1: 658 | version "1.0.2" 659 | resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" 660 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 661 | 662 | webidl-conversions@^3.0.0: 663 | version "3.0.1" 664 | resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" 665 | integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== 666 | 667 | whatwg-url@^5.0.0: 668 | version "5.0.0" 669 | resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" 670 | integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== 671 | dependencies: 672 | tr46 "~0.0.3" 673 | webidl-conversions "^3.0.0" 674 | 675 | wrappy@1: 676 | version "1.0.2" 677 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" 678 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 679 | 680 | ws@^8.13.0, ws@^8.14.2: 681 | version "8.14.2" 682 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" 683 | integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== 684 | 685 | yallist@^4.0.0: 686 | version "4.0.0" 687 | resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" 688 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 689 | 690 | ytdl-core@^4.11.4: 691 | version "4.11.4" 692 | resolved "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.11.4.tgz" 693 | integrity sha512-tsVvqt++B5LSTMnCKQb4H/PFBewKj7gGPJ6KIM5gOFGMKNZj4qglGAl4QGFG8cNPP6wY54P80FDID5eN2di0GQ== 694 | dependencies: 695 | m3u8stream "^0.8.6" 696 | miniget "^4.2.2" 697 | sax "^1.1.3" 698 | --------------------------------------------------------------------------------