From 2d3f0ea332383e1c2152bbab91b2f104675bcc85 Mon Sep 17 00:00:00 2001 From: Cristiano Pires Date: Thu, 23 Feb 2023 23:24:29 +0000 Subject: [PATCH] init --- .gitignore | 133 +- commands/admin/activateStrikes.js | 57 + commands/admin/ban.js | 31 + commands/admin/clearchat.js | 122 + commands/admin/createchannel.js | 66 + commands/admin/createvoicechannel.js | 83 + commands/admin/deletechannel.js | 16 + commands/admin/guilds.js | 60 + commands/admin/kick.js | 35 + commands/admin/prune.js | 22 + commands/admin/purge.js | 80 + commands/admin/removerustcommitschannel.js | 73 + commands/admin/setFreeGamesChannel.js | 88 + commands/admin/setRoleRule.js | 108 + commands/admin/setcrackwatchchannel.js | 60 + commands/admin/setrustcommitschannel.js | 63 + commands/admin/strike.js | 81 + commands/games/coinflip.js | 33 + commands/games/dice_roll.js | 19 + commands/image/certificate.js | 26 + commands/image/cry.js | 32 + commands/image/cuddle.js | 31 + commands/image/hug.js | 32 + commands/image/kiss.js | 32 + commands/image/lewd.js | 33 + commands/image/lick.js | 34 + commands/image/owo.js | 33 + commands/image/pat.js | 34 + commands/image/pout.js | 34 + commands/image/rem.js | 36 + commands/image/report.js | 27 + commands/image/slap.js | 35 + commands/image/smug.js | 35 + commands/image/stare.js | 35 + commands/image/tickle.js | 35 + commands/image/triggered.js | 35 + commands/music/activateMusic.js | 57 + commands/music/leave.js | 50 + commands/music/pause.js | 53 + commands/music/play.js | 162 + commands/music/queue.js | 52 + commands/music/resume.js | 51 + commands/music/skip.js | 53 + commands/random/help.js | 72 + commands/random/say.js | 23 + commands/random/suggest.js | 39 + commands/random/tableflip.js | 21 + commands/search/searchAnime.js | 52 + commands/search/searchChar.js | 50 + commands/search/searchManga.js | 45 + controller/bot.js | 7 + controller/home.js | 7 + dist/controller/bot.d.ts | 2 + dist/controller/bot.d.ts.map | 1 + dist/controller/home.d.ts | 2 + dist/controller/home.d.ts.map | 1 + dist/lib.d.ts | 10108 ++++++++++++++++ dist/lib.d.ts.map | 1 + dist/models/channels.d.ts | 1677 +++ dist/models/channels.d.ts.map | 1 + dist/models/mcommands.d.ts | 2008 +++ dist/models/mcommands.d.ts.map | 1 + dist/models/queue.d.ts | 3001 +++++ dist/models/queue.d.ts.map | 1 + dist/musicWorker.d.ts | 2 + dist/musicWorker.d.ts.map | 1 + dist/routes/routes.d.ts | 3 + dist/routes/routes.d.ts.map | 1 + dist/rustCommitsWorker.d.ts | 1 + dist/rustCommitsWorker.d.ts.map | 1 + dist/server.d.ts | 2 + dist/server.d.ts.map | 1 + dist/test.d.ts | 2 + dist/test.d.ts.map | 1 + jsconfig.json | 7 + lib.js | 880 ++ models/autoRoleRule.js | 23 + models/channels.js | 20 + models/guilds.js | 22 + models/mcommands.js | 21 + models/queue.js | 24 + models/strikes.js | 23 + models/suggestion.js | 23 + musicWorker.js | 209 + package-lock.json | 6862 +++++++++++ package.json | 38 + public/css/addtodiscord.css | 103 + public/css/index.css | 276 + .../297223b974b01cc567b25a200d1e3229.png | Bin 0 -> 27434 bytes public/images/add-to-discord.png | Bin 0 -> 8203 bytes public/images/favicon.ico | Bin 0 -> 17470 bytes public/images/github.png | Bin 0 -> 21835 bytes public/images/wallhaven-650953.jpg | Bin 0 -> 261599 bytes public/js/index.js | 38 + routes/routes.js | 7 + server.js | 145 + test.js | 42 + tsconfig.json | 22 + views/addtodiscord.ejs | 40 + views/home.ejs | 65 + 100 files changed, 28160 insertions(+), 132 deletions(-) create mode 100644 commands/admin/activateStrikes.js create mode 100644 commands/admin/ban.js create mode 100644 commands/admin/clearchat.js create mode 100644 commands/admin/createchannel.js create mode 100644 commands/admin/createvoicechannel.js create mode 100644 commands/admin/deletechannel.js create mode 100644 commands/admin/guilds.js create mode 100644 commands/admin/kick.js create mode 100644 commands/admin/prune.js create mode 100644 commands/admin/purge.js create mode 100644 commands/admin/removerustcommitschannel.js create mode 100644 commands/admin/setFreeGamesChannel.js create mode 100644 commands/admin/setRoleRule.js create mode 100644 commands/admin/setcrackwatchchannel.js create mode 100644 commands/admin/setrustcommitschannel.js create mode 100644 commands/admin/strike.js create mode 100644 commands/games/coinflip.js create mode 100644 commands/games/dice_roll.js create mode 100644 commands/image/certificate.js create mode 100644 commands/image/cry.js create mode 100644 commands/image/cuddle.js create mode 100644 commands/image/hug.js create mode 100644 commands/image/kiss.js create mode 100644 commands/image/lewd.js create mode 100644 commands/image/lick.js create mode 100644 commands/image/owo.js create mode 100644 commands/image/pat.js create mode 100644 commands/image/pout.js create mode 100644 commands/image/rem.js create mode 100644 commands/image/report.js create mode 100644 commands/image/slap.js create mode 100644 commands/image/smug.js create mode 100644 commands/image/stare.js create mode 100644 commands/image/tickle.js create mode 100644 commands/image/triggered.js create mode 100644 commands/music/activateMusic.js create mode 100644 commands/music/leave.js create mode 100644 commands/music/pause.js create mode 100644 commands/music/play.js create mode 100644 commands/music/queue.js create mode 100644 commands/music/resume.js create mode 100644 commands/music/skip.js create mode 100644 commands/random/help.js create mode 100644 commands/random/say.js create mode 100644 commands/random/suggest.js create mode 100644 commands/random/tableflip.js create mode 100644 commands/search/searchAnime.js create mode 100644 commands/search/searchChar.js create mode 100644 commands/search/searchManga.js create mode 100644 controller/bot.js create mode 100644 controller/home.js create mode 100644 dist/controller/bot.d.ts create mode 100644 dist/controller/bot.d.ts.map create mode 100644 dist/controller/home.d.ts create mode 100644 dist/controller/home.d.ts.map create mode 100644 dist/lib.d.ts create mode 100644 dist/lib.d.ts.map create mode 100644 dist/models/channels.d.ts create mode 100644 dist/models/channels.d.ts.map create mode 100644 dist/models/mcommands.d.ts create mode 100644 dist/models/mcommands.d.ts.map create mode 100644 dist/models/queue.d.ts create mode 100644 dist/models/queue.d.ts.map create mode 100644 dist/musicWorker.d.ts create mode 100644 dist/musicWorker.d.ts.map create mode 100644 dist/routes/routes.d.ts create mode 100644 dist/routes/routes.d.ts.map create mode 100644 dist/rustCommitsWorker.d.ts create mode 100644 dist/rustCommitsWorker.d.ts.map create mode 100644 dist/server.d.ts create mode 100644 dist/server.d.ts.map create mode 100644 dist/test.d.ts create mode 100644 dist/test.d.ts.map create mode 100644 jsconfig.json create mode 100644 lib.js create mode 100644 models/autoRoleRule.js create mode 100644 models/channels.js create mode 100644 models/guilds.js create mode 100644 models/mcommands.js create mode 100644 models/queue.js create mode 100644 models/strikes.js create mode 100644 models/suggestion.js create mode 100644 musicWorker.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/css/addtodiscord.css create mode 100644 public/css/index.css create mode 100644 public/images/297223b974b01cc567b25a200d1e3229.png create mode 100644 public/images/add-to-discord.png create mode 100644 public/images/favicon.ico create mode 100644 public/images/github.png create mode 100644 public/images/wallhaven-650953.jpg create mode 100644 public/js/index.js create mode 100644 routes/routes.js create mode 100644 server.js create mode 100644 test.js create mode 100644 tsconfig.json create mode 100644 views/addtodiscord.ejs create mode 100644 views/home.ejs diff --git a/.gitignore b/.gitignore index ceaea36..b512c09 100644 --- a/.gitignore +++ b/.gitignore @@ -1,132 +1 @@ -# ---> Node -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* -.pnpm-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional stylelint cache -.stylelintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variable files -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# vuepress v2.x temp and cache directory -.temp -.cache - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# yarn v2 -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.* - +node_modules \ No newline at end of file diff --git a/commands/admin/activateStrikes.js b/commands/admin/activateStrikes.js new file mode 100644 index 0000000..81a7deb --- /dev/null +++ b/commands/admin/activateStrikes.js @@ -0,0 +1,57 @@ +const {Command, Random} = require('../../lib.js'); +const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('discord.js'); +const guildsM = require('../../models/guilds.js'); + +module.exports = class leave extends Command +{ + constructor(client) + { + super(client, { + name: 'activateStrikes', + group:'admin', + aliases: ['aStrike'], + description: 'Activates strikes for the guild. Can be called again to disable.', + needsAdmin:true + }) + } + async run(message, args) + { + const Author = message.author + const guild = message.guild.id + guildsM.findOne({gID:guild}).then(g=> + { + g.strikes =!g.strikes; + guildsM.updateOne({gID:guild}, g,{upsert:true}).then(updatedG=> + { + sendMessage(g.strikes); + }) + }) + async function sendMessage(active){ + console.log(active?'Activate Music: -':'Disable Music: -', Author.username, 'on guild:', guild); + const randomID = Random() + const embed = new EmbedBuilder() + .setColor(0xd31f1f) + .setTitle(active?'Music activated!':'Music disabled!') + .setAuthor( {name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png"}) + .setFooter({text:'Rem-chan on ', iconURL:"https://i.imgur.com/g6FSNhL.png"}) + .setTimestamp() + const row = new ActionRowBuilder() + .addComponents( + new ButtonBuilder() + .setCustomId(randomID) + .setLabel('Remove this.') + .setStyle(ButtonStyle.Primary), + ); + await message.channel.send({ephemeral: true, embeds: [embed], components: [row] }); + const filter = i => i.customId === randomID; + + const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 }); + + collector.on('collect', async m => + { + message.delete(); + m.message.delete(); + }); + } + } +} \ No newline at end of file diff --git a/commands/admin/ban.js b/commands/admin/ban.js new file mode 100644 index 0000000..a881360 --- /dev/null +++ b/commands/admin/ban.js @@ -0,0 +1,31 @@ +const {Command} = require('../../lib.js') + + + class ban extends Command{ + constructor(client){ + super(client, { + name: 'ban', + group:'admin', + needsAdmin: true, + description: 'Bans a user from the server.' + + }) + } + async run(message, args) { + // Get the user mentioned in the message + const user = message.mentions.users.first(); + // Check if the user mentioned exists and is not a bot + if (!user || user.bot) { + return new ErrorMessage(this.client).send(ErrorType.Arguments, message, ['User is a bot, or you sent something wrong.']) + } + + // Ban the user + try { + await user.ban(); + return message.channel.send(`${user.tag} was banned from the server.`); + } catch (error) { + return console.log(`Ban: An error occurred: ${error.message}`); + } + } + +}module.exports = ban; \ No newline at end of file diff --git a/commands/admin/clearchat.js b/commands/admin/clearchat.js new file mode 100644 index 0000000..094b53b --- /dev/null +++ b/commands/admin/clearchat.js @@ -0,0 +1,122 @@ + +const {Command, ErrorMessage, ErrorType, Client, Message} = require('../../lib.js') + + + +class clearchat extends Command{ + constructor(client){ + super(client, { + name: 'clearchat', + needsAdmin: true, + aliases:['clear'], + description: 'Clears the channel where it was used, you can pass a message id to clear around it.' + }) + this.client = client; + } + async run(message, args) + { + //verificar admin + const Author = message.author.username; + const channel = message.channel.name; + console.log('ClearChat:',' - ', Author, 'on:', channel, args?args:'No limit' ) + //Verificar se está na sala bemvindo + if(bemvindo(message)) + { + clear(null, true, null); + } + else + { + //verificar se tem argumentos + if(args.length>0) + { + console.log("Info: !clearchat: has Args"); + if(correctArgs(this.client)) + { + console.log("Info: !clearchat: arround argument:",args); + clear(null,false, args,this.client); + } + else + { + console.log("Info: !clearchat: Ammount:",args); + clear(args, false, null,this.client); + } + //Quais-quer eventuais problemas são tratados na função + } + else + { + //caso normal, apenas apaga tudo. + clear(null, false,null,this.client); + } + } + //verificar se é a sala bem vindo + /** + * + * @param {Message} message + * @returns {boolean} + */ + function bemvindo(message){ + + if(message.channel.id==='434713876836122626')return true; + return false; + } + /** + * + * @param {number} costumLimit + * @param {boolean} bemvindo + * @param {string} around + * @param {Client} client + * @returns {void} + */ + async function clear(costumLimit, bemvindo, around,client) + { + message.delete(); + let limit = costumLimit || 99; + if (limit > 100) { + limit = 100; + } + var filter = {}; + filter.limit = limit; + if(bemvindo) filter.after = '436122906565804032' + filter.around = around; + const fetched = await message.channel.messages.fetch(filter); + //console.log("Info: !clearchat: ",fetched) + message.channel.bulkDelete(fetched, true) + .then(()=> + { + console.log("Info: !clearchat", 'CostumLimit?:',limit?limit:'N/A', 'Bemvindo?:', bemvindo,'Around?:', around?around:'N/A'); + }) + .catch((err)=> + { + //console.log(err) + new ErrorMessage(client).send(ErrorType.OldMessages,message, ['Messages are too old and powerfull!']); + }) + } + + //verificar se os argumentos estão corretos + /** + * + * @param {Client} client + * @returns {boolean} + */ + function correctArgs(client){ + + if(message.content.split(' ').length >2) { + new ErrorMessage(client).send(ErrorType.Arguments, message, ['Use just one ID.']); + }else{ + var arg = parseInt(message.content.split(' ')[1], 10); + var arglenght = message.content.split(' ')[1].split('').length; + + + if(typeof arg == "number"){ + + if(arglenght == 18) { + return true; + }else{ + return false; + } + }else { + new ErrorMessage(client).send(ErrorType.NoArguments, message, ['Messages are too old and powerfull!']); + } + } + } +}}module.exports = clearchat; \ No newline at end of file diff --git a/commands/admin/createchannel.js b/commands/admin/createchannel.js new file mode 100644 index 0000000..e7e87c8 --- /dev/null +++ b/commands/admin/createchannel.js @@ -0,0 +1,66 @@ + +const {Command, Random} = require('../../lib.js') + +const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, ChannelType, } = require('discord.js'); + + + class createchannel extends Command{ + constructor(client){ + super(client, { + name: 'createchannel', + description: 'Creates a text based channel on the category the command was used.', + aliases: ['channel'], + needsAdmin:true, + + }) + } + + async run(message, args) + { + //Check admin privilege + var name = args.join(' '); + //log the creation of a new channel. + console.log("Creating a new channel on server:",message.guild.name," with the name:",name); + //Actually create the channel. + message.guild.channels.create({ + name: name, + type: ChannelType.GuildText, + parent: message.guild.channels.cache.get(message.channelId).parentId + }).then(()=> + { + sendMessage(name) + }) + + //Send message confirming the creation of said new channel. + + async function sendMessage(name){ + const randomID = Random() + const embed = new EmbedBuilder() + .setColor(0xd31f1f) + .setTitle('New channel created!') + .setAuthor( {name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png"}) + .setDescription(`${name}`) + .setFooter({text:'Rem-chan on ', iconURL:"https://i.imgur.com/g6FSNhL.png"}) + .setTimestamp() + const row = new ActionRowBuilder() + .addComponents( + new ButtonBuilder() + .setCustomId(randomID) + .setLabel('Remove this.') + .setStyle(ButtonStyle.Primary), + ); + await message.channel.send({ephemeral: true, embeds: [embed], components: [row] }); + const filter = i => i.customId === randomID; + + const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 }); + + collector.on('collect', async m => + { + message.delete(); + m.message.delete(); + }); + + + } + } +}module.exports = createchannel; \ No newline at end of file diff --git a/commands/admin/createvoicechannel.js b/commands/admin/createvoicechannel.js new file mode 100644 index 0000000..a38627a --- /dev/null +++ b/commands/admin/createvoicechannel.js @@ -0,0 +1,83 @@ + +const {Command, Random} = require('../../lib.js') + +const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, ChannelType, PermissionFlagsBits} = require('discord.js'); + + + class createchannel extends Command{ + constructor(client){ + super(client, { + name: 'createvoicechannel', + description: 'Creates a voice based channel on the category the command was used.', + aliases: ['voicechannel'], + needsAdmin:true, + + }) + } + + async run(message, args) { + // Check admin privilege + + // Store the channel name and the parent channel ID in local variables + const name = args.join(' '); + const parentId = message.guild.channels.cache.get(message.channelId).parentId; + + // Log the creation of a new channel + console.log(`Creating a new channel on server: ${message.guild.name} with the name: ${name}`); + + // Use Promise.all() to create the channel and send the message in parallel + await Promise.all([ + message.guild.channels.create({ + name, + type: ChannelType.GuildVoice, + parent: parentId + }), + sendMessage(name) + ]); + + // Define the sendMessage() function using the async/await syntax + async function sendMessage(name) { + const costumID = Random(); + const embed = new EmbedBuilder() + .setColor(0xd31f1f) + .setTitle('New voice channel created!') + .setAuthor({ + name: "Rem-chan", + iconURL: "https://i.imgur.com/g6FSNhL.png" + }) + .setDescription(`${name}`) + .setFooter({ + text: 'Rem-chan em ', + iconURL: "https://i.imgur.com/g6FSNhL.png" + }) + .setTimestamp(); + + const row = new ActionRowBuilder() + .addComponents( + new ButtonBuilder() + .setCustomId(costumID) + .setLabel('Remove this.') + .setStyle(ButtonStyle.Primary) + ); + + await message.channel.send({ + ephemeral: true, + embeds: [embed], + components: [row] + }); + + const filter = i => i.customId === costumID; + + const collector = message.channel.createMessageComponentCollector({ + filter, + time: 60000 + }); + + collector.on('collect', async m => { + message.delete(); + m.message.delete(); + }); + } + } + +}module.exports = createchannel; \ No newline at end of file diff --git a/commands/admin/deletechannel.js b/commands/admin/deletechannel.js new file mode 100644 index 0000000..5a14ca2 --- /dev/null +++ b/commands/admin/deletechannel.js @@ -0,0 +1,16 @@ +const {Command} = require('../../lib.js') + + + class prune extends Command{ + constructor(client){ + super(client, { + name: 'deletechannel', + aliases:['delchannel'], + description: 'Deletes the channel it was used in.', + needsAdmin:true, + }) + } + async run(message, args){ + return message.channel.delete() + } +}module.exports = prune; diff --git a/commands/admin/guilds.js b/commands/admin/guilds.js new file mode 100644 index 0000000..fbc80dc --- /dev/null +++ b/commands/admin/guilds.js @@ -0,0 +1,60 @@ +const {Command, Random} = require('../../lib.js') +const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('discord.js'); + +class Guilds extends Command +{ + constructor(client) + { + super(client, { + name: 'guilds', + group:'admin', + memberName: 'guilds', + description: 'Shows a list of guilds that are using Rem-chan.' + + }) + this.client = client; + } + async run(message, args) + { + const payload = {embeds:[]} + var i = 0; + for (const guild of this.client.guilds.cache) + { + if (!payload.embeds[Math.floor(i / 25)]) + { + payload.embeds.push( + new EmbedBuilder() + .setTitle('Servers hosting Rem-chan:') + .setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png"}) + .setColor(0xd31f1f) + .setFooter({text:'Rem-chan em ', iconURL:"https://i.imgur.com/g6FSNhL.png"}) + .setTimestamp() + ) + } + payload.embeds[Math.floor(i/25)].addFields({name:guild[1].name, value:'With '+guild[1].members.cache.size+' Members'}) + i++; + } + const costumID = Random(); + const row = new ActionRowBuilder() + .addComponents( + new ButtonBuilder() + .setCustomId(costumID) + .setLabel('Remove this.') + .setStyle(ButtonStyle.Primary), + ); + await message.channel.send({ephemeral: true, embeds: payload.embeds, components: [row] }); + const filter = i => i.customId === costumID; + + const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 }); + + collector.on('collect', async m => + { + message.delete(); + m.message.delete(); + }); + + } + + + +}module.exports = Guilds; \ No newline at end of file diff --git a/commands/admin/kick.js b/commands/admin/kick.js new file mode 100644 index 0000000..c23b3ad --- /dev/null +++ b/commands/admin/kick.js @@ -0,0 +1,35 @@ + + +const {Command, ErrorMessage, ErrorType} = require('../../lib.js') + +class kick extends Command{ + constructor(client){ + super(client, { + name: 'kick', + group:'admin', + memberName: 'kick', + description: 'Kicks a member from the server.', + needsAdmin:true, + hidden:true, + + }) + this.client = client; + } + async run(message, args){ + + const user = message.mentions.users.first(); + // Check if the user mentioned exists and is not a bot + if (!user || user.bot) { + return new ErrorMessage(this.client).send(ErrorType.Arguments, message, ['User is a bot, or you sent something wrong.']) + } + + // Kick the user + try { + await user.kick(); + return message.channel.send(`${user.tag} was kicked from the server.`); + } catch (error) { + return console.log(`Kick: An error occurred: ${error.message}`); + } + } +}module.exports = kick; + diff --git a/commands/admin/prune.js b/commands/admin/prune.js new file mode 100644 index 0000000..c0b3a40 --- /dev/null +++ b/commands/admin/prune.js @@ -0,0 +1,22 @@ +const {Command} = require('../../lib.js') + + + class prune extends Command{ + constructor(client){ + super(client, { + name: 'prune', + group:'admin', + description: 'Rebuilds the channel it was used in.', + needsAdmin:true, + }) + } + async run(message, args){ + //Check administration privilege + + let name = message.channel.name; + + message.channel.clone([name, true, "text"]) + + message.channel.delete(); + } +}module.exports = prune; diff --git a/commands/admin/purge.js b/commands/admin/purge.js new file mode 100644 index 0000000..8e36bc9 --- /dev/null +++ b/commands/admin/purge.js @@ -0,0 +1,80 @@ +/* +Purge by servers +Acept multiple servers + + +Purge roleless members + + + + +*/ + +const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('discord.js'); + +const {Command} = require('../../lib.js') + + + class purge extends Command{ + constructor(client){ + super(client, { + name: 'purge', + group:'admin', + memberName: 'purge', + description: 'Kicks everyone that matches has no roles on the server and is on the server for more than 10 days.', + needsAdmin:true, + hidden:false + }) + this.client = client; + } + async run(message, args) + { + // Filter the guild members to only include those with 0 roles and a user age of at least 10 days + // console.log(message.guild.members.cache) + const now = Date.now(); + await message.guild.members.fetch() + const members = message.guild.members.cache.filter( + m => m._roles.length == 0 && now - m.joinedTimestamp >= 10 * 24 * 60 * 60 * 1000 + ); + // Use the for...of loop to iterate over the filtered members + for (const member of members) + { + // Kick each member with 0 roles and a user age of at least 10 days + const m = message.guild.members.cache.get(member[0]); + if (!m) return console.log('Purge: Member not valid') + m.kick('Optional reason that will be displayed in the audit logs') + .then(() => console.log(`Successfully kicked ${m.user.username}`)) + .catch(err => console.log(`Unable to kick ${member[0]}: ${err}`)); + } + console.log(`Prune: ${members.size} members with 0 roles and a user age of at least 10 days are going to be kicked.`) + // Send a confirmation message + const embed = new EmbedBuilder() + .setColor(0x0099FF) + .setTitle('Purging Users with no roles.') + .setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + .setDescription('Kicked Members') + .addFields( + { name: 'Kicked', value:`${members.size} members with 0 roles and a user age of at least 10 days.` } + ) + .setTimestamp() + .setFooter({text:'Rem-chan on ', iconURL:"https://i.imgur.com/g6FSNhL.png"}) + const costumID = require('../../lib').Random(); + const row = new ActionRowBuilder() + .addComponents( + new ButtonBuilder() + .setCustomId(costumID) + .setLabel('Remove this.') + .setStyle(ButtonStyle.Primary), + ); + await message.channel.send({ephemeral: true, embeds: [embed], components: [row] }); + const filter = i => i.customId === costumID; + + const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 }); + + collector.on('collect', async m => + { + message.delete(); + m.message.delete(); + }); + } +}module.exports = purge; diff --git a/commands/admin/removerustcommitschannel.js b/commands/admin/removerustcommitschannel.js new file mode 100644 index 0000000..f902f13 --- /dev/null +++ b/commands/admin/removerustcommitschannel.js @@ -0,0 +1,73 @@ +/* +Purge by servers +Acept multiple servers + + +Purge roleless members? +Purge inactive members? +Purge specific role? + + + + +*/ +const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('discord.js'); +const channelM = require('../../models/channels') + +const {Command, } = require('../../lib.js'); + + + class purge extends Command{ + constructor(client){ + super(client, { + name: 'removerustcommitschannel', + aliases: ['unsetrustcommits','urustc'], + description: 'Removes a channel from the rust commits feed.', + needsAdmin:true, + hidden:true + }) + } + async run(message, args) + { + if(args.length==0) return sendMessage(false, 'No arguments') + if(!typeof args[0]=='string' && isNaN(parseInt(args[0])) && !args[0].length==19) return sendMessage(false, 'Incorrect Arguments') + channelM.find({cID:args[0]}).then(channel=> + { + if(channel.length==0) return sendMessage(false, 'ID not on the list.') + channelM.findOneAndRemove(channel.id, (err)=> + { + if(!err) + { + sendMessage(true) + } + }) + }).catch + + async function sendMessage(success,error) + { + const embed = new EmbedBuilder(); + embed.setColor(0x27e33d); + embed.setThumbnail('https://i.imgur.com/g6FSNhL.png'); + const row = new ActionRowBuilder() + .addComponents( + new ButtonBuilder() + .setCustomId('RemoveUnsetRustCommitsChannel') + .setLabel('Remove this.') + .setStyle(ButtonStyle.Primary), + ); + embed.addFields({name:success?'Removed':'Error', value:success?'Successfully removed from the list.':error}) + await message.channel.send({ephemeral: true, embeds: [embed], components: [row] }); + + const filter = i => i.customId === 'RemoveUnsetRustCommitsChannel'; + + const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 }); + + collector.on('collect', async m => + { + message.delete(); + m.message.delete() + }); + } + + } +}module.exports = purge; \ No newline at end of file diff --git a/commands/admin/setFreeGamesChannel.js b/commands/admin/setFreeGamesChannel.js new file mode 100644 index 0000000..33eb2ff --- /dev/null +++ b/commands/admin/setFreeGamesChannel.js @@ -0,0 +1,88 @@ +const {Command} = require('../../lib.js') +const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('discord.js'); +const channelM = require('../../models/channels'); + +class setfreegameschannel extends Command{ + constructor(client){ + super(client, { + name: 'setFreegamesChannel', + aliases:['freegamesc','freec'], + description: 'Sets the channel that will receive the free games/deals updates.', + needsAdmin:true, + + }) + } + async run(message, args) + { + //Check admin privilege + if(args.length>0) + { + if(typeof args[0]=='string' && !isNaN(parseInt(args[0])) && args[0].length>17) + { + var newName = message.guild.channels.cache.get(args[0]).name; + addChannel(args[0], newName); + } + else + { + sendMessage(2); + } + } + else + { + sendMessage(2); + } + + //Message sending function + async function sendMessage(modifier, name) + { + const embed = new EmbedBuilder() + embed.setFooter({text:'Rem-chan on ', iconURL:"https://i.imgur.com/g6FSNhL.png"}) + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}); + embed.setColor(0x110809); + embed.setTimestamp() + switch (modifier) { + case 0: + embed.setTitle(`Channel ${name} defined.`) + break; + case 1: + embed.setTitle('Error'); + embed.setDescription('You do not have the required permissions') + break; + case 2: + embed.setTitle('Error'); + embed.setDescription('Verify the arguments used.') + break; + default: + break; + } + const row = new ActionRowBuilder() + .addComponents( + new ButtonBuilder() + .setCustomId('RemoveRustCommitsNewChannelMessage') + .setLabel('Remove this.') + .setStyle(ButtonStyle.Primary), + ); + const filter = i => i.customId === 'RemoveRustCommitsNewChannelMessage'; + + await message.channel.send({ephemeral: true, embeds: [embed], components: [row] }); + const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 }); + collector.on('collect', async m => + { + message.delete(); + m.message.delete() + }); + } + function addChannel(id, name) + { + var channel = new channelM(); + channel.name = name; + channel.cID = id; + channel.for = 'freegames'; + channel.save(err=> + { + if(err)console.log(err); + sendMessage(0, name); + }) + } + } +}module.exports = setfreegameschannel; \ No newline at end of file diff --git a/commands/admin/setRoleRule.js b/commands/admin/setRoleRule.js new file mode 100644 index 0000000..8f8ae09 --- /dev/null +++ b/commands/admin/setRoleRule.js @@ -0,0 +1,108 @@ +const {Command, Random, ErrorMessage, ErrorType} = require('../../lib.js') +const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('discord.js'); +const roleRuleM = require('../../models/autoRoleRule'); +class setrustcommitschannel extends Command{ + constructor(client){ + super(client, { + name: 'setrolerule', + aliases:['rolerule','setrr'], + description: 'Sets a auto role rule. Requires four arguments in the following order: MessageID; RoleID; Emoji. \n MessageID refers to the message where Rem will look for reactions and then set a role to a user.', + needsAdmin:true, + }); + this.client = client; + } + async run(message, args) + { + + // Validate the command arguments + const validationResult = await this.confirmArgs(message, args); + if (validationResult === 'Error') return new ErrorMessage(this.client).send(ErrorType.Arguments, message) + // Create a new role rule object + //check if a role rule with there is already a role rule like this in this guild + // this is !roleID !roleEmoji !mID !roleEmoji + var rule = new roleRuleM(); + rule.gID = message.guildId + rule.mID = validationResult.mID; + rule.roleID = validationResult.roleID; + rule.roleEmoji = validationResult.roleEmoji; + rule.roleName = validationResult.roleName; + rule.save(err=> + { + if(err)console.log(err); + }) + + const embed = new EmbedBuilder() + const randomID = Random(); + embed.setFooter({text:'Rem-chan on ', iconURL:"https://i.imgur.com/g6FSNhL.png"}) + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}); + embed.setColor(0x110809); + embed.setTimestamp() + embed.setTitle(`${rule.roleName}'s rule defined.`) + + const row = new ActionRowBuilder() + .addComponents( + new ButtonBuilder() + .setCustomId(randomID) + .setLabel('Remove this.') + .setStyle(ButtonStyle.Primary), + ); + const filter = i => i.customId === randomID; + message.channel.send({embeds: [embed], components: [row] }); + const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 }); + collector.on('collect', async m => + { + _delete(message, m); + }); + collector.on('end', async m=> + { + _delete(message,m); + }) + } + + + /** + * + * @param {Map} message + * @param {Array} args + * @returns {RoleModel} + * + */ + async confirmArgs(message,args) + { + if(args.length<3) return 'Error' + var mID = args[0]; + var roleID = args[1]; + var roleEmoji = args[2].split(':')[2].split('>')[0]; + var roleName; + var m = await (async ()=> + { + for(const [id, channel] of this.client.channels.cache) + { + if(channel.type == 0) + { + try { + const exists = await this.client.channels.cache.get(id).messages.fetch(mID); + if(exists) return m = true; + } catch (error) {} + } + } + })(); + const r = message.guild.roles.cache.get(roleID); + const e = message.guild.emojis.cache.get(roleEmoji); + + if(!m || !r || !e) return 'Error' + roleName = r.name; + return {mID, roleID, roleEmoji, roleName} + } + +}module.exports = setrustcommitschannel; + +function _delete(message, m) +{ + try { + message.delete(); + m.message.delete(); + } catch (error) { + console.log(error) + } +} \ No newline at end of file diff --git a/commands/admin/setcrackwatchchannel.js b/commands/admin/setcrackwatchchannel.js new file mode 100644 index 0000000..349b093 --- /dev/null +++ b/commands/admin/setcrackwatchchannel.js @@ -0,0 +1,60 @@ +const {EmbedBuilder} = require('discord.js'); + +const {Command} = require('../../lib.js') +const channelModel = require('../../models/channels'); + + class setcrackwatchchannel extends Command{ + constructor(client){ + super(client, { + name: 'setcrackwatchchannel', + group:'admin', + memberName: 'setcrackwatchchannel', + hidden:true, + //! Crack watch is broken Not about to do a reddit crawler for this BS + description: 'Este comando irá usar o canal indicado para mostrar os updates do site crackwatch. É necessário voltar a usar este comando cada vez que o bot tem uma atialização.' + + }) + } + async run(message, args){ + //start channel array var + + //Check admin privilege + if(args.length>0) + { + sendMessage(0, novo); + } + else + { + sendMessage(2); + } + //Message sending function + function sendMessage(modifier,channel2) + { + const embed = new EmbedBuilder + embed.setFooter('Rem-chan em ', "https://i.imgur.com/g6FSNhL.png") + embed.setAuthor("Rem-chan", "https://i.imgur.com/g6FSNhL.png") + embed.setColor(0x11080981) // Alterar a cor + embed.setTimestamp() + switch (modifier) { + case 0: + embed.setTitle('Canal definido') + + + + break; + case 1: + embed.setTitle('Erro'); + embed.setDescription('Não tem as permissões necessárias.') + break; + case 2: + embed.setTitle('Erro'); + embed.setDescription('Verifique os parametros utilizados.') + break; + + default: + break; + } + message.channel.send({embed}); + } + } +}module.exports = setcrackwatchchannel; \ No newline at end of file diff --git a/commands/admin/setrustcommitschannel.js b/commands/admin/setrustcommitschannel.js new file mode 100644 index 0000000..2b4f826 --- /dev/null +++ b/commands/admin/setrustcommitschannel.js @@ -0,0 +1,63 @@ +const {Command} = require('../../lib.js') +const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('discord.js'); +const channelM = require('../../models/channels'); + +class setrustcommitschannel extends Command{ + constructor(client){ + super(client, { + name: 'setrustcommitschannel', + aliases:['rustcommits','rustc'], + description: 'Sets the channel that will receive the rust commits.', + needsAdmin:true, + + }) + } + async run(message, args) + { + //Check admin privilege + if(args.length>0) return sendMessage(2); + if(typeof args[0]=='string' && !isNaN(parseInt(args[0])) && args[0].length>17) return sendMessage(2); + var newName = message.guild.channels.cache.get(args[0]).name; + addChannel(args[0], newName); + + //Message sending function + async function sendMessage(modifier, name) + { + const embed = new EmbedBuilder() + embed.setFooter({text:'Rem-chan on ', iconURL:"https://i.imgur.com/g6FSNhL.png"}) + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}); + embed.setColor(0x110809); + embed.setTimestamp() + embed.setTitle(`Channel ${name} defined.`) + + const row = new ActionRowBuilder() + .addComponents( + new ButtonBuilder() + .setCustomId('RemoveRustCommitsNewChannelMessage') + .setLabel('Remove this.') + .setStyle(ButtonStyle.Primary), + ); + const filter = i => i.customId === 'RemoveRustCommitsNewChannelMessage'; + + await message.channel.send({ephemeral: true, embeds: [embed], components: [row] }); + const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 }); + collector.on('collect', async m => + { + message.delete(); + m.message.delete() + }); + } + function addChannel(id, name) + { + var channel = new channelM(); + channel.name = name; + channel.cID = id; + channel.for = 'rust'; + channel.save(err=> + { + if(err)console.log(err); + sendMessage(0, name); + }) + } + } +}module.exports = setrustcommitschannel; \ No newline at end of file diff --git a/commands/admin/strike.js b/commands/admin/strike.js new file mode 100644 index 0000000..cd9bc40 --- /dev/null +++ b/commands/admin/strike.js @@ -0,0 +1,81 @@ + + +const {Command,ErrorMessage, ErrorType, EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('../../lib.js') +const strikeM = require('../../models/strikes'); + + class strike extends Command{ + constructor(client){ + super(client, { + name: 'strike', + group:'admin', + description: 'Strikes an user. Usage !strike @USER REASON', + needsAdmin:true, + }) + this.client = client; + this.message; + } + async run(message, args) + { + //Check admin privilege + this.message = message; + var confirm = await this.confirmArgs(message,args); + if(confirm=='Error') return new ErrorMessage(this.client).send(ErrorType.Arguments, message, ['Use the mention method to pass the user.', 'Make sure you provide a reason.']) + var strike = new strikeM(); + strike.strikerID = confirm.strikerID; + strike.strokedID = confirm.strokedID; + strike.guildName = message.guild.name; + strike.guildID = message.guild.id + strike.reason = confirm.reason; + strike.date = Date.now(); + strike.save(err=> + { + if(err)console.log(err); + this.sendMessage(confirm.strokedID,confirm.reason); + message.delete(); + }) + } + async sendMessage(strokedID, reason) + { + let name = this.client.guilds.cache.get(this.message.guildId).members.cache.get(strokedID); + const embed = new EmbedBuilder() + embed.setFooter({text:'Rem-chan on ', iconURL:"https://i.imgur.com/g6FSNhL.png"}) + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}); + embed.setColor(0x110809); + embed.setTimestamp() + embed.setTitle(`Strike`) + embed.setDescription(`${name} has been struck.`) + embed.addFields({name:'Reason:', value:reason}) + + const row = new ActionRowBuilder() + .addComponents( + new ButtonBuilder() + .setCustomId('RemoveStrikeMessage') + .setLabel('Remove this.') + .setStyle(ButtonStyle.Primary), + ); + const filter = i => i.customId === 'RemoveStrikeMessage'; + + await this.message.channel.send({ephemeral: true, embeds: [embed], components: [row] }); + const collector = this.message.channel.createMessageComponentCollector({ filter, time: 60000 }); + collector.on('collect', async m => + { + m.message.delete() + .then(()=> + { + // console.log('Strikes: Embed Message: Deleted'); + }) + .catch(()=> + { + // console.log('Strikes: Embed Message: failed to delete.'); + }) + }); + } + async confirmArgs(message,args) + { + if(args.length<2) return 'Error' + if(!args[0].split('@')) return 'Error' + let strikerID = message.author.id; + let strokedID = args[0].split('@')[1].split('>')[0]; + return {strikerID, strokedID, reason:args.splice(-1,1).join(' ')} + } +}module.exports = strike; diff --git a/commands/games/coinflip.js b/commands/games/coinflip.js new file mode 100644 index 0000000..04f59b8 --- /dev/null +++ b/commands/games/coinflip.js @@ -0,0 +1,33 @@ +const {Command} = require('../../lib.js') +const {EmbedBuilder } = require('discord.js'); + + class coinflip extends Command{ + constructor(client){ + super(client, { + name: 'coinflip', + description: 'Flips a coin.' + }) + } + async run(message, args){ + var rand = 1 + Math.floor(Math.random() * 100); + var title; + var url; + if (rand > 50) { + url = 'https://cdn.ram.moe/HJSEfDUbl.gif'; + title = 'Tails'; + } else { + url = 'https://cdn.ram.moe/Byu2fPLWg.png'; + title = 'Heads'; + } + + const embed = new EmbedBuilder() + .setColor(0x0099FF) + .setTitle(title) + .setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + .setThumbnail(url) + .setTimestamp() + .setFooter({ text: 'Rem-Chan on', iconURL: 'https://i.imgur.com/g6FSNhL.png' }); + message.channel.send({embeds:[embed]}) + } + + }module.exports = coinflip; \ No newline at end of file diff --git a/commands/games/dice_roll.js b/commands/games/dice_roll.js new file mode 100644 index 0000000..2da773f --- /dev/null +++ b/commands/games/dice_roll.js @@ -0,0 +1,19 @@ +const {Command} = require('../../lib.js') + + + + class diceroll extends Command{ + constructor(client){ + super(client, { + name: 'roll', + aliases:['diceroll'], + description: 'Rolls an icosahedral dice. (d20).' + + }) + } + async run(message, args){ + var roll = Math.floor(Math.random()*20)+1; + message.channel.send('Face shows the number:'+ roll); + } + } + module.exports = diceroll; \ No newline at end of file diff --git a/commands/image/certificate.js b/commands/image/certificate.js new file mode 100644 index 0000000..01410e2 --- /dev/null +++ b/commands/image/certificate.js @@ -0,0 +1,26 @@ +const {Command} = require('../../lib.js') +const {EmbedBuilder} = require('discord.js') +module.exports = class report extends Command{ + constructor(client){ + super(client, { + name: 'certificate', + group:'image', + memberName: 'certificate', + description: 'Coninhas certificate.' + + }) + } + async run(message, args) + { + + const embed = new EmbedBuilder; + embed.setColor(0xeb7d00); + embed.setTitle('Pode recolher o seu certificado na loja do cidadão mais proxima.') + embed.setImage(`https://media.discordapp.net/attachments/662397316744871937/960689544003481600/unknown.png?width=912&height=701`); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + message.channel.send({embeds: [embed]}); + } +} \ No newline at end of file diff --git a/commands/image/cry.js b/commands/image/cry.js new file mode 100644 index 0000000..e03154d --- /dev/null +++ b/commands/image/cry.js @@ -0,0 +1,32 @@ +const {Command} = require('../../lib.js') + +const {EmbedBuilder} = require('discord.js') +const axios = require('axios'); +class cry extends Command{ + constructor(client){ + super(client, { + name: 'cry', + description: 'Publishes an images of the theme: cry.' + + }) + } + async run(message, args) + { + var cmd = 'cry'; + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": cmd}}); + var path = res.data.path.replace('/i/', ''); + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + + + } +}module.exports = cry; diff --git a/commands/image/cuddle.js b/commands/image/cuddle.js new file mode 100644 index 0000000..4e111aa --- /dev/null +++ b/commands/image/cuddle.js @@ -0,0 +1,31 @@ +const {Command} = require('../../lib.js') +const axios = require('axios') +const {EmbedBuilder} = require('discord.js') +class cuddle extends Command{ + constructor(client){ + super(client, { + name: 'cuddle', + group:'image', + memberName: 'cuddle', + description: 'Publishes an image of the theme: cuddle.' + + }) + } + async run(message, args){ + var cmd = 'cuddle'; + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": cmd}}); + var path = res.data.path.replace('/i/', ''); + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + + } + }module.exports = cuddle; diff --git a/commands/image/hug.js b/commands/image/hug.js new file mode 100644 index 0000000..60673e6 --- /dev/null +++ b/commands/image/hug.js @@ -0,0 +1,32 @@ +const {Command} = require('../../lib.js') + +const axios = require('axios') +const {EmbedBuilder} = require('discord.js') +class hug extends Command{ + constructor(client){ + super(client, { + name: 'hug', + group:'image', + memberName: 'hug', + description: 'Publishes an image of the theme: hug.' + + }) + } + async run(message, args){ + var cmd = 'hug'; + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": cmd}}); + var path = res.data.path.replace('/i/', ''); + + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + } + }module.exports = hug; \ No newline at end of file diff --git a/commands/image/kiss.js b/commands/image/kiss.js new file mode 100644 index 0000000..1ddb15b --- /dev/null +++ b/commands/image/kiss.js @@ -0,0 +1,32 @@ +const {Command} = require('../../lib.js') + +const axios = require('axios') +const {EmbedBuilder} = require('discord.js') +class kiss extends Command{ + constructor(client){ + super(client, { + name: 'kiss', + group:'image', + memberName: 'kiss', + description: 'Publishes an image of the theme: kiss.' + + }) + } + async run(message, args){ + var cmd = 'kiss'; + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": cmd}}); + var path = res.data.path.replace('/i/', ''); + + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + } +}module.exports = kiss; diff --git a/commands/image/lewd.js b/commands/image/lewd.js new file mode 100644 index 0000000..c9e05f6 --- /dev/null +++ b/commands/image/lewd.js @@ -0,0 +1,33 @@ +const {Command} = require('../../lib.js') + +const axios = require('axios') +const {EmbedBuilder} = require('discord.js') +class lewd extends Command{ + constructor(client){ + super(client, { + name: 'lewd', + group:'image', + memberName: 'lewd', + description: 'Publishes an image of the theme: lewd' + + }) + } + async run(message, args){ + var cmd = 'lewd'; + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": cmd}}); + var path = res.data.path.replace('/i/', ''); + + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + + } + }module.exports = lewd; \ No newline at end of file diff --git a/commands/image/lick.js b/commands/image/lick.js new file mode 100644 index 0000000..524af27 --- /dev/null +++ b/commands/image/lick.js @@ -0,0 +1,34 @@ +const {Command} = require('../../lib.js') + +const axios = require('axios') +const {EmbedBuilder} = require('discord.js') + +class lick extends Command{ + constructor(client){ + super(client, { + name: 'lick', + group:'image', + memberName: 'lick', + description: 'Publishes an images of the theme: lick.' + + }) + } + async run(message, args){ + var cmd = 'lick'; + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": cmd}}); + var path = res.data.path.replace('/i/', ''); + + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + + } + }module.exports = lick; diff --git a/commands/image/owo.js b/commands/image/owo.js new file mode 100644 index 0000000..14bc580 --- /dev/null +++ b/commands/image/owo.js @@ -0,0 +1,33 @@ +const {Command} = require('../../lib.js') + +const axios = require('axios') +const {EmbedBuilder} = require('discord.js') + +class owo extends Command{ + constructor(client){ + super(client, { + name: 'owo', + group:'image', + memberName: 'owo', + description: 'Publishes an images of the theme: OwO.' + + }) + } + async run(message, args){ + var cmd = 'owo'; + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": cmd}}); + var path = res.data.path.replace('/i/', ''); + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + + } + }module.exports = owo; diff --git a/commands/image/pat.js b/commands/image/pat.js new file mode 100644 index 0000000..01d8b37 --- /dev/null +++ b/commands/image/pat.js @@ -0,0 +1,34 @@ +const {Command} = require('../../lib.js') + +const axios = require('axios') +const {EmbedBuilder} = require('discord.js') + +class pat extends Command{ + constructor(client){ + super(client, { + name: 'pat', + group:'image', + memberName: 'pat', + description: 'Publishes an images of the theme: pat.' + + }) + } + async run(message, args){ + var cmd = 'pat'; + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": cmd}}); + var path = res.data.path.replace('/i/', ''); + + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + + } + }module.exports = pat; \ No newline at end of file diff --git a/commands/image/pout.js b/commands/image/pout.js new file mode 100644 index 0000000..deb4f3a --- /dev/null +++ b/commands/image/pout.js @@ -0,0 +1,34 @@ +const {Command} = require('../../lib.js') + +const axios = require('axios') +const {EmbedBuilder} = require('discord.js') + +class pout extends Command{ + constructor(client){ + super(client, { + name: 'pout', + group:'image', + memberName: 'pout', + description: 'Publishes an images of the theme: pout.' + + }) + } + async run(message, args){ + var cmd = 'pout'; + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": cmd}}); + var path = res.data.path.replace('/i/', ''); + + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + + } + }module.exports = pout; diff --git a/commands/image/rem.js b/commands/image/rem.js new file mode 100644 index 0000000..b09f6d7 --- /dev/null +++ b/commands/image/rem.js @@ -0,0 +1,36 @@ +const {Command} = require('../../lib.js') + +const axios = require('axios') +const {EmbedBuilder} = require('discord.js') + +class rem extends Command{ + constructor(client){ + super(client, { + name: 'rem', + group:'image', + memberName: 'rem', + description: 'Publishes an images of the theme: Our only waifu REM.' + + }) + } + async run(message, args){ + + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": "rem"}}); + var path = res.data.path.replace('/i/', ''); + + + + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + + } + }module.exports = rem; diff --git a/commands/image/report.js b/commands/image/report.js new file mode 100644 index 0000000..d098c31 --- /dev/null +++ b/commands/image/report.js @@ -0,0 +1,27 @@ +const {Command} = require('../../lib.js') + +const {EmbedBuilder} = require('discord.js') +module.exports = class report extends Command{ + constructor(client){ + super(client, { + name: 'report', + group:'image', + memberName: 'report', + description: 'Coninhas Report.' + + }) + } + async run(message, args) + { + + const embed = new EmbedBuilder; + embed.setColor(0xeb7d00); + embed.setTitle('É favor preencher:') + embed.setImage(`https://cdn.discordapp.com/attachments/662397316744871937/852352291428499456/64327307_2251125638288816_7660501929683845120_n.jpg`); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + message.channel.send({embeds: [embed]}); + } +} \ No newline at end of file diff --git a/commands/image/slap.js b/commands/image/slap.js new file mode 100644 index 0000000..70ac92b --- /dev/null +++ b/commands/image/slap.js @@ -0,0 +1,35 @@ +const {Command} = require('../../lib.js') + +const axios = require('axios') +const {EmbedBuilder} = require('discord.js') + +class slap extends Command{ + constructor(client){ + super(client, { + name: 'slap', + group:'image', + memberName: 'slap', + description: 'PPublishes an images of the theme: slap.' + + }) + } + async run(message, args){ + var cmd = 'slap'; + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": cmd}}); + var path = res.data.path.replace('/i/', ''); + + + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + + } + }module.exports = slap; diff --git a/commands/image/smug.js b/commands/image/smug.js new file mode 100644 index 0000000..aecdad7 --- /dev/null +++ b/commands/image/smug.js @@ -0,0 +1,35 @@ +const {Command} = require('../../lib.js') + +const axios = require('axios') +const {EmbedBuilder} = require('discord.js') + +class smug extends Command{ + constructor(client){ + super(client, { + name: 'smug', + group:'image', + memberName: 'smug', + description: 'Publishes an images of the theme: smug.' + + }) + } + async run(message, args){ + var cmd = 'smug'; + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": cmd}}); + var path = res.data.path.replace('/i/', ''); + + + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + + } + }module.exports = smug; \ No newline at end of file diff --git a/commands/image/stare.js b/commands/image/stare.js new file mode 100644 index 0000000..8f9e986 --- /dev/null +++ b/commands/image/stare.js @@ -0,0 +1,35 @@ +const {Command} = require('../../lib.js') + +const axios = require('axios') +const {EmbedBuilder} = require('discord.js') + +class stare extends Command{ + constructor(client){ + super(client, { + name: 'stare', + group:'image', + memberName: 'stare', + description: 'Publishes an images of the theme: stare.' + + }) + } + async run(message, args){ + var cmd = 'stare'; + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": cmd}}); + var path = res.data.path.replace('/i/', ''); + + + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + + } + }module.exports = stare; \ No newline at end of file diff --git a/commands/image/tickle.js b/commands/image/tickle.js new file mode 100644 index 0000000..68bc4bf --- /dev/null +++ b/commands/image/tickle.js @@ -0,0 +1,35 @@ +const {Command} = require('../../lib.js') +; +const axios = require('axios') +const {EmbedBuilder} = require('discord.js') + +class tickle extends Command{ + constructor(client){ + super(client, { + name: 'tickle', + group:'image', + memberName: 'tickle', + description: 'Publishes an images of the theme: tickle.' + + }) + } + async run(message, args){ + var cmd = 'tickle'; + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": cmd}}); + var path = res.data.path.replace('/i/', ''); + + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + + + } + }module.exports = tickle; \ No newline at end of file diff --git a/commands/image/triggered.js b/commands/image/triggered.js new file mode 100644 index 0000000..1e98537 --- /dev/null +++ b/commands/image/triggered.js @@ -0,0 +1,35 @@ +const {Command} = require('../../lib.js') + +const axios = require('axios') +const {EmbedBuilder} = require('discord.js') + +class triggered extends Command{ + constructor(client){ + super(client, { + name: 'triggered', + group:'image', + memberName: 'triggered', + description: 'Publishes an images of the theme: TRIGGERED!' + + }) + } + async run(message, args){ + var cmd = 'triggered'; + var res = await axios.get('https://rra.ram.moe/i/r', {params: {"type": cmd}}); + var path = res.data.path.replace('/i/', ''); + + + const embed = new EmbedBuilder() + embed.setColor(0xb50000); + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + embed.setTitle('Imagem:') + embed.setImage(`https://cdn.ram.moe/${path}`); + embed.setFooter({text:'Rem-chan em ', iconUrl:"https://i.imgur.com/g6FSNhL.png"}) + embed.setTimestamp(); + + + message.channel.send({embeds: [embed]}); + + + } + }module.exports = triggered; \ No newline at end of file diff --git a/commands/music/activateMusic.js b/commands/music/activateMusic.js new file mode 100644 index 0000000..9f556d5 --- /dev/null +++ b/commands/music/activateMusic.js @@ -0,0 +1,57 @@ +const {Command, Random} = require('../../lib.js'); +const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('discord.js'); +const guildsM = require('../../models/guilds.js'); + +module.exports = class leave extends Command +{ + constructor(client) + { + super(client, { + name: 'activateMusic', + group:'music', + aliases: ['music','amusic'], + description: 'Activates music for the guild. Can be called again to disable.', + needsAdmin:true + }) + } + async run(message, args) + { + const Author = message.author + const guild = message.guild.id + guildsM.findOne({gID:guild}).then(g=> + { + g.music =!g.music; + guildsM.updateOne({gID:guild}, g,{upsert:true}).then(updatedG=> + { + sendMessage(g.music); + }) + }) + async function sendMessage(active){ + console.log(active?'Activate Music: -':'Disable Music: -', Author.username, 'on guild:', guild); + const randomID = Random() + const embed = new EmbedBuilder() + .setColor(0xd31f1f) + .setTitle(active?'Music activated!':'Music disabled!') + .setAuthor( {name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png"}) + .setFooter({text:'Rem-chan on ', iconURL:"https://i.imgur.com/g6FSNhL.png"}) + .setTimestamp() + const row = new ActionRowBuilder() + .addComponents( + new ButtonBuilder() + .setCustomId(randomID) + .setLabel('Remove this.') + .setStyle(ButtonStyle.Primary), + ); + await message.channel.send({ephemeral: true, embeds: [embed], components: [row] }); + const filter = i => i.customId === randomID; + + const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 }); + + collector.on('collect', async m => + { + message.delete(); + m.message.delete(); + }); + } + } +} \ No newline at end of file diff --git a/commands/music/leave.js b/commands/music/leave.js new file mode 100644 index 0000000..8e49c24 --- /dev/null +++ b/commands/music/leave.js @@ -0,0 +1,50 @@ +const {Command} = require('../../lib.js') + +const mCommandModel = require('../../models/mcommands'); +const {ChannelType} = require('discord.js'); +module.exports = class leave extends Command +{ + constructor(client) + { + super(client, { + name: 'leave', + group:'music', + memberName: 'leave', + description: 'Leaves the voice channel you currently are in.' + + }) + } + async run(message, args) + { + const Author = message.author + console.log('Leave: -', Author.username); + const guild = message.guild.id + const channel = message.channel.id + const voice = message.member.voice.channel.id; + const {ChannelType} = require('discord.js'); + if(message.guild.channels.cache.some(channel =>(channel.type == ChannelType.GuildText && channel.members.has('356104008366030863')&& channel.members.has(Author.id)))) + { + addToDB('leave', guild, channel,voice); + message.guild.voiceStates.cache.get('356104008366030863').disconnect() + message.delete(); + } + else + { + message.reply('Rem isn`t in voice channel!') + } + + } +} +function addToDB(Command, guild, channel, voice) +{ + var command = new mCommandModel(); + command.command = Command; + command.guild = guild; + command.textchannel = channel; + command.voice = voice; + command.save(err=> + { + if(err)console.error(err) + console.log(Command, '- added to DB') + }) +} \ No newline at end of file diff --git a/commands/music/pause.js b/commands/music/pause.js new file mode 100644 index 0000000..b307091 --- /dev/null +++ b/commands/music/pause.js @@ -0,0 +1,53 @@ +const {Command} = require('../../lib.js') + +const mCommandModel = require('../../models/mcommands'); + + + +module.exports = class skip extends Command +{ + constructor(client) + { + super(client, { + name: 'pause', + group:'music', + memberName: 'pause', + description: 'Pauses the currently playing music' + }) + } + async run(message, args) + { + const Author = message.author + console.log('Pause: -', Author.username) + const guild = message.guild.id + const channel = message.channel.id + const voice = message.member.voice.channel.id; + const {ChannelType} = require('discord.js'); + if(message.guild.channels.cache.some(channel =>(channel.type == ChannelType.GuildText && channel.members.has('356104008366030863')&& channel.members.has(Author.id)))) + { + addToDB('pause', guild, channel,voice); + + message.delete(); + } + else + { + message.reply('Not in voice channel!') + } + + + + } +} +function addToDB(Command, guild, channel, voice) +{ + var command = new mCommandModel(); + command.command = Command; + command.guild = guild; + command.textchannel = channel; + command.voice = voice; + command.save(err=> + { + if(err)console.error(err) + console.log(Command, '- added to DB') + }) +} \ No newline at end of file diff --git a/commands/music/play.js b/commands/music/play.js new file mode 100644 index 0000000..b057a94 --- /dev/null +++ b/commands/music/play.js @@ -0,0 +1,162 @@ +const {Command, Random} = require('../../lib.js') + +const {EmbedBuilder, ActionRowBuilder,ButtonBuilder, ButtonStyle} = require('discord.js'); +const yts = require('yt-search'); +const QueueM = require('../../models/queue'); + +module.exports = class play extends Command +{ + constructor(client) + { + super(client, { + name: 'play', + group:'music', + memberName: 'play', + description: 'Plays on the voice channel you currently are in. Supports youtube search and links.' + + }) + } + async run(message, args) + { + const {voice} = message.member; + const guild = message.channel.guild.id; + var content = message.content; + const channel = message.channel.id; + const Author = message.author; + + try + { + if(!voice.channel) + { + console.log('Play: Err: Not currently in a voice channel.') + message.reply('Not currently in a voice channel.') + return + } + else + { + if(content.includes('https')||content.includes('www'))//LINK + { + console.log('Play: -', Author.username,'Queued this link:',content.split('!play')[1],'on',message.channel.guild.name,"'s", message.channel.name) + + if(content.includes('youtube') || content.includes('youtu.be'))//YT LINK + { + console.time('SearchL') + if(!isPlayList(content)) + { + content = content.split('&time=')?content.split('&time=')[0]:content; + content = content.split('&ab_channel=')?content.split('&ab_channel=')[0]:content; + const r = await yts( content.split('!play ')[1] ) + console.timeEnd('SearchL') + addToQ(r.videos[0]); + message.delete() + } + else + { + try + { + + var listID + if(content.split('&list=')[1].includes('&')) + { + listID = content.split('&list=')[1].split('&')[0] + } + else listID = content.split('&list=')[1] + console.log('Play: List: ListID:',listID) + const list = await yts({listId:listID}) + list.videos.forEach(video=> + { + //console.log('Teste: PlayList: ForEach(video): video:', video) + addToQ(video) + }) + message.delete(); + } + catch (error) + { + console.log('Play: List: Error:', error) + } + } + } + else //GET OUTTA HERE + { + message.channel.send('Either use a link from youtube or try searching by keywords.') + } + } + else//search + { + console.log('Play: Searching for:', content.split('!play')[1]) + const r = await yts(content.split('!play ')[1]) + const videos = r.videos.slice( 0, 3) + const embed = new EmbedBuilder(); + embed.setFooter({text:'Rem-chan on ', iconURL:"https://i.imgur.com/g6FSNhL.png"}) + embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}); + embed.setTimestamp(); + embed.setColor(0xb50000); + embed.setTitle('Searching for:'+ args.join(' ')) + embed.setImage(videos[0].thumbnail) + const row = new ActionRowBuilder(); + const randomID = Random(); + videos.forEach( function ( v , i) { + //console.log('Search:', v) + const views = String( v.views ).padStart( 10, ' ' ) + embed.addFields( {name:`[ ${i} ] - ${ v.title }`,value:`${ v.author.name } | (${v.timestamp }) | ${ views } views`} ) + row.addComponents( + new ButtonBuilder() + .setCustomId(`${randomID}PlayUserChoice${i}`) + .setLabel(` ${i} `) + .setStyle(ButtonStyle.Primary), + ); + } ) + embed.addFields({name:'Cancel', value:'Press X'}); + row.addComponents( + new ButtonBuilder() + .setCustomId(`${randomID}PlayUserChoice`) + .setLabel(` X `) + .setStyle(ButtonStyle.Danger), + ); + await message.channel.send({ephemeral: true, embeds: [embed], components: [row] }); + + const filter = i => i.customId.startsWith(`${randomID}PlayUserChoice`); + const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 }); + collector.on('collect', async m => + { + // console.log(m) + message.delete(); + m.message.delete(); + if(m.customId != 'PlayUserChoice') + { + addToQ(videos[parseInt(m.customId.split(`${randomID}PlayUserChoice`)[1])]) + } + }); + } + } + + function isPlayList(content) + { + if(content.includes('&list=')) + { + return true; + } + else return false; + } + function addToQ(video) + { + + var queueItem = new QueueM(); + queueItem.songname = video.title; + queueItem.songtime = video.seconds||video.duration.seconds; + queueItem.songURL = video.url||'https://youtube.com/watch?v='+video.videoId + queueItem.guild = guild; + queueItem.textchannel = channel; + queueItem.voice = voice.channel.id; + queueItem.requester = Author.username; + queueItem.save(err=> + { + if(err)console.error(err) + //console.log('Play: Search: Item added to queue:', queueItem) + }) + } + } catch (error) { + console.log('Play: Error:', error); + } + } +} \ No newline at end of file diff --git a/commands/music/queue.js b/commands/music/queue.js new file mode 100644 index 0000000..96124c1 --- /dev/null +++ b/commands/music/queue.js @@ -0,0 +1,52 @@ + +const {Command} = require('../../lib.js') + +const mCommandModel = require('../../models/mcommands'); + + +module.exports = class leave extends Command +{ + constructor(client) + { + super(client, { + name: 'queue', + group:'music', + memberName: 'queue', + description: 'Shows the queue for the current server.' + + }) + } + async run(message, args) + { + const Author = message.author + console.log('Queue: -', Author.username); + const guild = message.guild.id + const channel = message.channel.id + const voice = message.member.voice.channel.id; + const {ChannelType} = require('discord.js'); + if(message.guild.channels.cache.some(channel =>(channel.type == ChannelType.GuildText && channel.members.has('356104008366030863')&& channel.members.has(Author.id)))) + { + addToDB('queue', guild, channel,voice); + + message.delete(); + } + else + { + message.reply('Rem isn`t in a voice channel!') + } + + } +} +function addToDB(Command, guild, channel, voice) +{ + var command = new mCommandModel(); + command.command = Command; + command.guild = guild; + command.textchannel = channel; + command.voice = voice; + command.save(err=> + { + if(err)console.error(err) + console.log(Command, '- added to DB') + }) +} \ No newline at end of file diff --git a/commands/music/resume.js b/commands/music/resume.js new file mode 100644 index 0000000..862c465 --- /dev/null +++ b/commands/music/resume.js @@ -0,0 +1,51 @@ +const {Command} = require('../../lib.js') +const mCommandModel = require('../../models/mcommands'); + + +module.exports = class resume extends Command +{ + constructor(client) + { + super(client, { + name: 'resume', + group:'music', + memberName: 'resume', + description: 'Resumes the currently playing music' + }) + } + async run(message, args) + { + const Author = message.author + console.log('Resume: -', Author.username); + const guild = message.guild.id + const channel = message.channel.id + const voice = message.member.voice.channel.id; + const {ChannelType} = require('discord.js'); + if(message.guild.channels.cache.some(channel =>(channel.type == ChannelType.GuildText && channel.members.has('356104008366030863')&& channel.members.has(Author.id)))) + { + addToDB('leave', guild, channel,voice); + + message.delete(); + } + else + { + message.reply('Not in voice channel!') + } + + + + } +} +function addToDB(Command, guild, channel, voice) +{ + var command = new mCommandModel(); + command.command = Command; + command.guild = guild; + command.textchannel = channel; + command.voice = voice; + command.save(err=> + { + if(err)console.error(err) + console.log(Command, '- added to DB') + }) +} \ No newline at end of file diff --git a/commands/music/skip.js b/commands/music/skip.js new file mode 100644 index 0000000..01d339f --- /dev/null +++ b/commands/music/skip.js @@ -0,0 +1,53 @@ +const {Command} = require('../../lib.js') + + + +const mCommandModel = require('../../models/mcommands'); + +module.exports = class skip extends Command +{ + constructor(client) + { + super(client, { + name: 'skip', + group:'music', + memberName: 'skip', + description: 'Skips the currently playing music' + }) + } + async run(message, args) + { + const Author = message.author + console.log('Skip: -', Author.username); + const guild = message.guild.id + const channel = message.channel.id + const voice = message.member.voice.channel.id; + const {ChannelType} = require('discord.js'); + if(message.guild.channels.cache.some(channel =>(channel.type == ChannelType.GuildText && channel.members.has('356104008366030863')&& channel.members.has(Author.id)))) + { + addToDB('skip', guild, channel,voice); + + message.delete(); + } + else + { + message.reply('Not in voice channel!') + } + + + + } +} +function addToDB(Command, guild, channel, voice) +{ + var command = new mCommandModel(); + command.command = Command; + command.guild = guild; + command.textchannel = channel; + command.voice = voice; + command.save(err=> + { + if(err)console.error(err) + console.log(Command, '- added to DB') + }) +} \ No newline at end of file diff --git a/commands/random/help.js b/commands/random/help.js new file mode 100644 index 0000000..f9fd21f --- /dev/null +++ b/commands/random/help.js @@ -0,0 +1,72 @@ +const {Command} = require('../../lib.js'); +const find = require('findit'); +const path = require('path') +const {EmbedBuilder} = require('discord.js'); + + + class help extends Command{ + constructor(client){ + super(client, { + name: 'help', + memberName: 'help', + aliases:['command'], + description: 'Displays a list of available commands, or the details of a specified command.', + }) + this.client = client; + } + async run(message, args) + { + if(args.length==0) + { + let finder = find(path.resolve('commands')); + let payload = {embeds:[]}; + var Fields = []; + finder.on('file', file=> + { + let command = require(file); + if(typeof command === 'function') + { + let c = new command(this); + let _aliases = c.aliases; + let needsAdmin = c.needsAdmin; + if(!c.hidden) + { + Fields.push( + { + name: '!'+c.name+(needsAdmin?' - Requires administrator permissions:':' :'), + value: '–'+c.description + (_aliases?(' Can also be called using an aliases:'+_aliases.join(' ')):'') + }); + } + } + }) + finder.on('end', ()=> + { + var i = 0; + for(var f in Fields) + { + if (!payload.embeds[Math.floor(i / 25)]) + { //checks if the embed with the required fields already exists in our array + payload.embeds.push( + new EmbedBuilder() + .setColor(0x0099FF) + .setTitle('List of Commands:') + .setAuthor({ name: 'Rem-Chan', iconURL: 'https://i.imgur.com/g6FSNhL.png', url:'https://rem.wordfights.com/addtodiscord'}) + .setTimestamp() + .setFooter({ text: 'Rem-Chan on ', iconURL: 'https://i.imgur.com/g6FSNhL.png'}) + ) + } + payload.embeds[Math.floor(i / 25)].addFields(Fields[f]); + i++; + } + }) + + + message.author.send(payload); + + } + + + //message.author.send() + } + } + module.exports = help; \ No newline at end of file diff --git a/commands/random/say.js b/commands/random/say.js new file mode 100644 index 0000000..7e230b5 --- /dev/null +++ b/commands/random/say.js @@ -0,0 +1,23 @@ +const {Command} = require('../../lib.js') + + + + class say extends Command{ + constructor(client){ + super(client, { + name: 'say', + group:'random', + memberName: 'say', + description: 'Rem-chan will send a message that you define.' + + }) + } + async run(message, args){ + //say on channel + console.log("Say: -",message.author.username,"- on: ",message.guild.name,"'s ",message.channel.name.toLowerCase(),":",args.join(' ')) + message.delete(); + message.channel.send(args.join(' ')); + + } + } + module.exports = say; \ No newline at end of file diff --git a/commands/random/suggest.js b/commands/random/suggest.js new file mode 100644 index 0000000..27abad9 --- /dev/null +++ b/commands/random/suggest.js @@ -0,0 +1,39 @@ +const {Command} = require('../../lib.js') +const suggestionM = require('../../models/suggestion.js'); + + + class suggest extends Command{ + constructor(client){ + super(client, { + name: 'suggest', + memberName: 'suggest', + aliases: ['suggestion'], + description: `You can suggest a command. Use the following format: !suggest COMMANDNAME ARGUMENTS -> ACTION ` + + }) + } + async run(message, args) + { + console.log('Suggestion:', message.author.username, 'suggested', args); + if(args.length>0) + { + var suggestion = new suggestionM(); + suggestion.authorID = message.author.id; + suggestion.authorName = message.author.username; + suggestion.authorPermissions = message.member.permissions.toArray(); + suggestion.guildID = message.guildId; + suggestion.suggestion = message.content; + suggestion.save(err=> + { + if(err)console.error(err) + message.channel.send(`${message.author} your suggestion has been saved for future consideration, thank you.`); + }) + } + else + { + message.channel.send(`${message.author} sent an empty suggestion. Use the command correctly by following the format: !suggest COMMANDNAME ARGUMENTS -> ACTION`); + } + + } + } + module.exports = suggest; \ No newline at end of file diff --git a/commands/random/tableflip.js b/commands/random/tableflip.js new file mode 100644 index 0000000..9c0c441 --- /dev/null +++ b/commands/random/tableflip.js @@ -0,0 +1,21 @@ +const {Command} = require('../../lib.js') + + + + class tableflip extends Command{ + constructor(client){ + super(client, { + name: 'tableflip', + group:'random', + memberName: 'tableflip', + description: 'Flips a table.' + + }) + } + async run(message, args){ + message.channel.send('(╯°□°)╯︵ ┻━┻'); + + + } + } + module.exports = tableflip; \ No newline at end of file diff --git a/commands/search/searchAnime.js b/commands/search/searchAnime.js new file mode 100644 index 0000000..6b7fa0f --- /dev/null +++ b/commands/search/searchAnime.js @@ -0,0 +1,52 @@ +const {Command, aniList, Random} = require('../../lib.js') + +const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('discord.js'); + + + +class anime extends Command{ + constructor(client){ + super(client, { + name: 'anime', + group:'pesquisa', + memberName: 'anime', + description: 'Shows info about a anime.' + + }) + } + async run(message, args){ + const data = await new aniList().searchAnime(args.join(' ')); + + const embed = new EmbedBuilder() + .setTitle(`${data.title.romaji} (${data.title.native} / ${data.title.english})`) + .setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + .setColor(0x003284) + .setDescription(data.description.replaceAll('
',' ')) + .setFooter({ text: 'Rem-Chan on', iconURL: 'https://i.imgur.com/g6FSNhL.png' }) + .setImage(data.coverImage) + .setThumbnail(data.coverImage) + .setTimestamp() + .addFields( + {name:'Status:', value:data.status, inline:true}, + {name:'Episodes:', value:data.episodes.toString(), inline:true}, + {name:'Trailer:', value:data.trailer?(data.trailer.site=='yotube'?`https://www.youtube.com/watch?v=${data.trailer.id}`:`https://www.dailymotion.com/video/${data.trailer.id}`):'N/A'}); + const randomID = Random(); + const row = new ActionRowBuilder() + .addComponents( + new ButtonBuilder() + .setCustomId(randomID) + .setLabel('Remove this.') + .setStyle(ButtonStyle.Primary), + ); + const filter = i => i.customId === randomID; + await message.channel.send({ephemeral: true, embeds: [embed], components: [row] }); + const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 }); + collector.on('collect', async m => + { + message.delete(); + m.message.delete(); + }); + } + +}module.exports = anime; + diff --git a/commands/search/searchChar.js b/commands/search/searchChar.js new file mode 100644 index 0000000..6743f1c --- /dev/null +++ b/commands/search/searchChar.js @@ -0,0 +1,50 @@ +const {Command, aniList, Random} = require('../../lib.js') + +const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('discord.js'); + + +class char extends Command{ + constructor(client){ + super(client, { + name: 'char', + group:'pesquisa', + memberName: 'char', + description: 'Shows info about a character.' + + }) + } + async run(message, args) + { + const data = await new aniList().searchChar(args.join(' ')); + const embed = new EmbedBuilder() + .setTitle(`${data.name.full} (${data.name.native})`) + .setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + .setColor(0x003284) + .setDescription(data.description)//.split('~! ')[1].replaceAll('
', ' ').substring(0, 1500) + "...") + .setFooter({ text: 'Rem-Chan on', iconURL: 'https://i.imgur.com/g6FSNhL.png' }) + .setImage(data.image) + .setThumbnail(data.image) + .setTimestamp() + .addFields( + {name:'Gender:', value:data.gender, inline:true}); + const randomID = Random(); + const row = new ActionRowBuilder() + .addComponents( + new ButtonBuilder() + .setCustomId(randomID) + .setLabel('Remove this.') + .setStyle(ButtonStyle.Primary), + ); + const filter = i => i.customId === randomID; + await message.channel.send({ephemeral: true, embeds: [embed], components: [row] }); + const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 }); + collector.on('collect', async m => + { + message.delete(); + m.message.delete(); + }); + } + + + +}module.exports = char; diff --git a/commands/search/searchManga.js b/commands/search/searchManga.js new file mode 100644 index 0000000..e949a76 --- /dev/null +++ b/commands/search/searchManga.js @@ -0,0 +1,45 @@ +const {Command, aniList, Random} = require('../../lib.js') + +const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('discord.js'); + + +class manga extends Command{ + constructor(client){ + super(client, { + name: 'manga', + group:'pesquisa', + memberName: 'manga', + description: 'Shows info about a manga.' + + }) + } + async run(message, args) + { + const data = await new aniList().searchManga(args.join(' ')); + const embed = new EmbedBuilder() + .setTitle(`${data.title.romaji} (${data.title.native} / ${data.title.english})`) + .setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + .setColor(0x003284) + .setDescription(data.description)//.replaceAll('
', ' ').substring(0, 1500) + "...") + .setFooter({ text: 'Rem-Chan on', iconURL: 'https://i.imgur.com/g6FSNhL.png' }) + .setImage(data.coverImage) + .setThumbnail(data.coverImage) + .setTimestamp() + const randomID = Random(); + const row = new ActionRowBuilder() + .addComponents( + new ButtonBuilder() + .setCustomId(randomID) + .setLabel('Remove this.') + .setStyle(ButtonStyle.Primary), + ); + const filter = i => i.customId === randomID; + await message.channel.send({ephemeral: true, embeds: [embed], components: [row] }); + const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 }); + collector.on('collect', async m => + { + message.delete(); + m.message.delete(); + }); + } +}module.exports = manga; diff --git a/controller/bot.js b/controller/bot.js new file mode 100644 index 0000000..8e9ff2d --- /dev/null +++ b/controller/bot.js @@ -0,0 +1,7 @@ +exports.get = (io)=> +{ + return(req,res)=> + { + res.render('addtodiscord') + } +} \ No newline at end of file diff --git a/controller/home.js b/controller/home.js new file mode 100644 index 0000000..3f05e1c --- /dev/null +++ b/controller/home.js @@ -0,0 +1,7 @@ +exports.home = (io)=> +{ + return(req,res)=> + { + res.render('home') + } +} \ No newline at end of file diff --git a/dist/controller/bot.d.ts b/dist/controller/bot.d.ts new file mode 100644 index 0000000..21814da --- /dev/null +++ b/dist/controller/bot.d.ts @@ -0,0 +1,2 @@ +export function get(io: any): (req: any, res: any) => void; +//# sourceMappingURL=bot.d.ts.map \ No newline at end of file diff --git a/dist/controller/bot.d.ts.map b/dist/controller/bot.d.ts.map new file mode 100644 index 0000000..8d68c3c --- /dev/null +++ b/dist/controller/bot.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../controller/bot.js"],"names":[],"mappings":"AAAc,2DAMb"} \ No newline at end of file diff --git a/dist/controller/home.d.ts b/dist/controller/home.d.ts new file mode 100644 index 0000000..38cbf12 --- /dev/null +++ b/dist/controller/home.d.ts @@ -0,0 +1,2 @@ +export function home(io: any): (req: any, res: any) => void; +//# sourceMappingURL=home.d.ts.map \ No newline at end of file diff --git a/dist/controller/home.d.ts.map b/dist/controller/home.d.ts.map new file mode 100644 index 0000000..2cd907f --- /dev/null +++ b/dist/controller/home.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"home.d.ts","sourceRoot":"","sources":["../../controller/home.js"],"names":[],"mappings":"AAAe,4DAMd"} \ No newline at end of file diff --git a/dist/lib.d.ts b/dist/lib.d.ts new file mode 100644 index 0000000..036e88a --- /dev/null +++ b/dist/lib.d.ts @@ -0,0 +1,10108 @@ +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +export const Random: string; +import { GatewayIntentBits } from "discord-api-types/gateway/v10"; +import { Partials } from "discord.js"; +import { ActivityType } from "discord-api-types/payloads/v10/gateway"; +import { Message } from "discord.js"; +declare class command { + /** + * @param {_Client} client extends discord.js.Client + * @param {CommandOptions} options extends Lib.Options + */ + constructor(client: _Client, options: CommandOptions); + name: string; + aliases: string[]; + description: string; + needsAdmin: boolean; + hidden: boolean; + client: _Client; +} +declare class _Client extends Client { + /** + * + * @param {ClientOptions} options + */ + constructor(options: ClientOptions); + commands: any[]; + rustCommits: rustCommits; + freegames: FreeGames; + /** + * Register a group of commands under the folder commands + * @param {String} name - Name of the group. + * @param {String} folderName - Name of the folder. + */ + enableCommands(): Promise; + /** + * + * @param {String} name - Command Name + * @returns {command} + */ + onList(name: string): command; + RoleSetter(): Promise; +} +export namespace ErrorType { + const Permissions: string; + const Arguments: string; + const NoArguments: string; + const NotOnTheList: string; + const OldMessages: string; +} +export class Channel { + /** + * + * @param {String} channelID + */ + constructor(channelID: string); + channel: string; +} +export class ErrorMessage { + /** + * @param {_Client} client + */ + constructor(client: _Client); + client: _Client; + /** + * + * @param {ErrorType} errorType + * @param {Message} message + * @param {String[]} extraMessages + */ + send(errorType: { + Permissions: string; + Arguments: string; + NoArguments: string; + NotOnTheList: string; + OldMessages: string; + }, message: Message, extraMessages: string[]): Promise; +} +declare class aniListCli { + /** + * + * @param {String} ss - Search Query + * @returns {AnimeInfo} + */ + searchAnime(ss: string): AnimeInfo; + /** + * + * @param {String} ss - Search Query + * @returns {CharInfo} + */ + searchChar(ss: string): CharInfo; + /** + * + * @param {String} ss - Search Query + * @returns {MangaInfo} + */ + searchManga(ss: string): MangaInfo; +} +declare class CommandOptions { + /** + * + * @param {String} name + * @param {String[]} aliases + * @param {String} description + * @param {Boolean} needsAdmin + * @param {Boolean} hidden + */ + constructor(name: string, aliases: string[], description: string, needsAdmin: boolean, hidden: boolean); + name: string; + aliases: string[]; + description: string; + needsAdmin: boolean; + hidden: boolean; +} +import { Client } from "discord.js"; +declare class rustCommits { + /** + * + * @param {_Client} client + */ + constructor(client: _Client); + client: _Client; + update(): Promise; + channels: { + new (doc?: DocType, fields?: any, options?: boolean | import("mongoose").AnyObject): import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }; + aggregate(pipeline?: import("mongoose").PipelineStage[], options?: import("mongodb").AggregateOptions, callback?: import("mongoose").Callback): import("mongoose").Aggregate; + aggregate(pipeline: import("mongoose").PipelineStage[], callback?: import("mongoose").Callback): import("mongoose").Aggregate; + base: typeof import("mongoose"); + baseModelName: string; + castObject(obj: import("mongoose").AnyObject, options?: { + ignoreCastErrors?: boolean; + }): { + cID: string; + for: string; + name?: string; + }; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], options: import("mongodb").BulkWriteOptions & import("mongoose").MongooseBulkWriteOptions, callback: import("mongoose").Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], callback: import("mongoose").Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], options?: import("mongodb").BulkWriteOptions & import("mongoose").MongooseBulkWriteOptions): Promise; + bulkSave(documents: import("mongoose").Document[], options?: import("mongodb").BulkWriteOptions & { + timestamps?: boolean; + }): Promise; + collection: import("mongoose").Collection; + count(callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + count(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + countDocuments(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + countDocuments(callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents)[], options?: import("mongoose").SaveOptions): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_1)[], options?: import("mongoose").SaveOptions, callback?: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_2)[], callback: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): void; + create>(doc: { + cID: string; + for: string; + name?: string; + } | DocContents_3): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + create>(...docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_4)[]): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(doc: { + cID: string; + for: string; + name?: string; + } | DocContents_5, callback: import("mongoose").Callback & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>): void; + createCollection(options: import("mongodb").CreateCollectionOptions & Pick, "expires">, callback: import("mongoose").Callback>): void; + createCollection(callback: import("mongoose").Callback>): void; + createCollection(options?: import("mongodb").CreateCollectionOptions & Pick, "expires">): Promise>; + db: import("mongoose").Connection; + deleteMany(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteMany(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteMany(callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + events: NodeJS.EventEmitter; + findById & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findById & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + hydrate(obj: any, projection?: import("mongoose").AnyObject, options?: { + setters?: boolean; + }): import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }; + init(callback?: import("mongoose").CallbackWithoutResult): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_6)[], options: import("mongoose").InsertManyOptions & { + lean: true; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_7)[], options: import("mongoose").InsertManyOptions & { + rawResult: true; + }, callback: import("mongoose").Callback>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_8)[], callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_9, options: import("mongoose").InsertManyOptions & { + lean: true; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>): void; + insertMany(doc: DocContents_10, options: import("mongoose").InsertManyOptions & { + rawResult: true; + }, callback: import("mongoose").Callback>): void; + insertMany(doc: DocContents_11, options: import("mongoose").InsertManyOptions & { + lean?: false; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_12, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_13)[], options: import("mongoose").InsertManyOptions & { + lean: true; + }): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_14)[], options: import("mongoose").InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_15)[]): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_16, options: import("mongoose").InsertManyOptions & { + lean: true; + }): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>; + insertMany(doc: DocContents_17, options: import("mongoose").InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(doc: DocContents_18, options: import("mongoose").InsertManyOptions): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_19): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + modelName: string; + populate(docs: any[], options: string | import("mongoose").PopulateOptions | import("mongoose").PopulateOptions[], callback?: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + populate(doc: any, options: string | import("mongoose").PopulateOptions | import("mongoose").PopulateOptions[], callback?: import("mongoose").Callback & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + validate(callback?: import("mongoose").CallbackWithoutResult): Promise; + validate(optional: any, callback?: import("mongoose").CallbackWithoutResult): Promise; + validate(optional: any, pathsToValidate: import("mongoose").PathsToValidate, callback?: import("mongoose").CallbackWithoutResult): Promise; + watch(pipeline?: Record[], options?: import("mongodb").ChangeStreamOptions & { + hydrate?: boolean; + }): import("mongodb").ChangeStream>; + $where(argument: string | Function): import("mongoose").Query<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[], import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + discriminators: { + [name: string]: import("mongoose").Model; + }; + translateAliases(raw: any): any; + distinct(field: string, filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + estimatedDocumentCount(options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + exists(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").Callback<{ + _id: import("mongoose").Types.ObjectId; + }>): import("mongoose").Query, "_id">, import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + exists(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>): import("mongoose").Query<{ + _id: import("mongoose").Types.ObjectId; + }, import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(callback?: import("mongoose").Callback): import("mongoose").Query; + findByIdAndDelete & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_9, res: any) => void): import("mongoose").Query; + findByIdAndRemove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_10, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_11, {}, { + cID: string; + for: string; + name?: string; + }>; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_12, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, update?: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_13, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: (err: NativeError, doc: ResultDoc_14, res: any) => void): import("mongoose").Query; + findOneAndDelete & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_15, res: any) => void): import("mongoose").Query; + findOneAndRemove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_16, res: any) => void): import("mongoose").Query; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_17, {}, { + cID: string; + for: string; + name?: string; + }>; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_18, res: any) => void): import("mongoose").Query; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement?: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_19, res: any) => void): import("mongoose").Query; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_20, {}, { + cID: string; + for: string; + name?: string; + }>; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_21, res: any) => void): import("mongoose").Query; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: { + cID: string; + for: string; + name?: string; + }, res: any) => void): import("mongoose").Query; + geoSearch & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").GeoSearchOptions, callback?: import("mongoose").Callback): import("mongoose").Query; + mapReduce(o: import("mongoose").MapReduceOptions<{ + cID: string; + for: string; + name?: string; + }, Key, Value>, callback?: import("mongoose").Callback): Promise; + remove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: any, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query; + remove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: any, options?: import("mongoose").RemoveOptions, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query; + replaceOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement?: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + schema: import("mongoose").Schema<{ + cID: string; + for: string; + name?: string; + }, import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, any, any, any, any>, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>; + update & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + updateMany & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + updateOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(path: string, val?: any): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(obj: object): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(): import("mongoose").Query; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + on(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + once(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + off(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + removeAllListeners(event?: string | symbol): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + setMaxListeners(n: number): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + getMaxListeners(): number; + listeners(eventName: string | symbol): Function[]; + rawListeners(eventName: string | symbol): Function[]; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount(eventName: string | symbol): number; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + eventNames(): (string | symbol)[]; + discriminator(name: string | number, schema: import("mongoose").Schema, {}, {}, {}, {}, "type", { + [x: string]: any; + }>, value?: string | number | import("mongoose").Schema.Types.ObjectId | import("mongoose").DiscriminatorOptions): import("mongoose").Model; + discriminator(name: string | number, schema: import("mongoose").Schema>, value?: string | number | import("mongoose").Schema.Types.ObjectId | import("mongoose").DiscriminatorOptions): U; + createIndexes(options: import("mongodb").CreateIndexesOptions, callback: import("mongoose").CallbackWithoutResult): void; + createIndexes(callback: import("mongoose").CallbackWithoutResult): void; + createIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + diffIndexes(options: Record, callback: import("mongoose").Callback): void; + diffIndexes(callback: import("mongoose").Callback): void; + diffIndexes(options?: Record): Promise; + ensureIndexes(options: import("mongodb").CreateIndexesOptions, callback: import("mongoose").CallbackWithoutResult): void; + ensureIndexes(callback: import("mongoose").CallbackWithoutResult): void; + ensureIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + listIndexes(callback: import("mongoose").Callback): void; + listIndexes(): Promise; + syncIndexes(options: import("mongoose").SyncIndexesOptions, callback: import("mongoose").Callback): void; + syncIndexes(options?: import("mongoose").SyncIndexesOptions): Promise; + startSession(options: import("mongodb").ClientSessionOptions, callback: import("mongoose").Callback): void; + startSession(callback: import("mongoose").Callback): void; + startSession(options?: import("mongodb").ClientSessionOptions): Promise; + get: (callback: any, limit: any) => void; + }; + /** + * + * @param {channelM} channels + */ + resolveChannels(channels: { + new (doc?: DocType, fields?: any, options?: boolean | import("mongoose").AnyObject): import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }; + aggregate(pipeline?: import("mongoose").PipelineStage[], options?: import("mongodb").AggregateOptions, callback?: import("mongoose").Callback): import("mongoose").Aggregate; + aggregate(pipeline: import("mongoose").PipelineStage[], callback?: import("mongoose").Callback): import("mongoose").Aggregate; + base: typeof import("mongoose"); + baseModelName: string; + castObject(obj: import("mongoose").AnyObject, options?: { + ignoreCastErrors?: boolean; + }): { + cID: string; + for: string; + name?: string; + }; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], options: import("mongodb").BulkWriteOptions & import("mongoose").MongooseBulkWriteOptions, callback: import("mongoose").Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], callback: import("mongoose").Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], options?: import("mongodb").BulkWriteOptions & import("mongoose").MongooseBulkWriteOptions): Promise; + bulkSave(documents: import("mongoose").Document[], options?: import("mongodb").BulkWriteOptions & { + timestamps?: boolean; + }): Promise; + collection: import("mongoose").Collection; + count(callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + count(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + countDocuments(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + countDocuments(callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents)[], options?: import("mongoose").SaveOptions): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_1)[], options?: import("mongoose").SaveOptions, callback?: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_2)[], callback: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): void; + create>(doc: { + cID: string; + for: string; + name?: string; + } | DocContents_3): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + create>(...docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_4)[]): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(doc: { + cID: string; + for: string; + name?: string; + } | DocContents_5, callback: import("mongoose").Callback & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>): void; + createCollection(options: import("mongodb").CreateCollectionOptions & Pick, "expires">, callback: import("mongoose").Callback>): void; + createCollection(callback: import("mongoose").Callback>): void; + createCollection(options?: import("mongodb").CreateCollectionOptions & Pick, "expires">): Promise>; + db: import("mongoose").Connection; + deleteMany(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteMany(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteMany(callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + events: NodeJS.EventEmitter; + findById & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findById & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + hydrate(obj: any, projection?: import("mongoose").AnyObject, options?: { + setters?: boolean; + }): import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }; + init(callback?: import("mongoose").CallbackWithoutResult): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_6)[], options: import("mongoose").InsertManyOptions & { + lean: true; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_7)[], options: import("mongoose").InsertManyOptions & { + rawResult: true; + }, callback: import("mongoose").Callback>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_8)[], callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_9, options: import("mongoose").InsertManyOptions & { + lean: true; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>): void; + insertMany(doc: DocContents_10, options: import("mongoose").InsertManyOptions & { + rawResult: true; + }, callback: import("mongoose").Callback>): void; + insertMany(doc: DocContents_11, options: import("mongoose").InsertManyOptions & { + lean?: false; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_12, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_13)[], options: import("mongoose").InsertManyOptions & { + lean: true; + }): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_14)[], options: import("mongoose").InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_15)[]): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_16, options: import("mongoose").InsertManyOptions & { + lean: true; + }): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>; + insertMany(doc: DocContents_17, options: import("mongoose").InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(doc: DocContents_18, options: import("mongoose").InsertManyOptions): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_19): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + modelName: string; + populate(docs: any[], options: string | import("mongoose").PopulateOptions | import("mongoose").PopulateOptions[], callback?: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + populate(doc: any, options: string | import("mongoose").PopulateOptions | import("mongoose").PopulateOptions[], callback?: import("mongoose").Callback & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + validate(callback?: import("mongoose").CallbackWithoutResult): Promise; + validate(optional: any, callback?: import("mongoose").CallbackWithoutResult): Promise; + validate(optional: any, pathsToValidate: import("mongoose").PathsToValidate, callback?: import("mongoose").CallbackWithoutResult): Promise; + watch(pipeline?: Record[], options?: import("mongodb").ChangeStreamOptions & { + hydrate?: boolean; + }): import("mongodb").ChangeStream>; + $where(argument: string | Function): import("mongoose").Query<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[], import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + discriminators: { + [name: string]: import("mongoose").Model; + }; + translateAliases(raw: any): any; + distinct(field: string, filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + estimatedDocumentCount(options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + exists(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").Callback<{ + _id: import("mongoose").Types.ObjectId; + }>): import("mongoose").Query, "_id">, import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + exists(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>): import("mongoose").Query<{ + _id: import("mongoose").Types.ObjectId; + }, import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(callback?: import("mongoose").Callback): import("mongoose").Query; + findByIdAndDelete & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_9, res: any) => void): import("mongoose").Query; + findByIdAndRemove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_10, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_11, {}, { + cID: string; + for: string; + name?: string; + }>; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_12, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, update?: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_13, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: (err: NativeError, doc: ResultDoc_14, res: any) => void): import("mongoose").Query; + findOneAndDelete & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_15, res: any) => void): import("mongoose").Query; + findOneAndRemove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_16, res: any) => void): import("mongoose").Query; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_17, {}, { + cID: string; + for: string; + name?: string; + }>; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_18, res: any) => void): import("mongoose").Query; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement?: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_19, res: any) => void): import("mongoose").Query; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_20, {}, { + cID: string; + for: string; + name?: string; + }>; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_21, res: any) => void): import("mongoose").Query; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: { + cID: string; + for: string; + name?: string; + }, res: any) => void): import("mongoose").Query; + geoSearch & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").GeoSearchOptions, callback?: import("mongoose").Callback): import("mongoose").Query; + mapReduce(o: import("mongoose").MapReduceOptions<{ + cID: string; + for: string; + name?: string; + }, Key, Value>, callback?: import("mongoose").Callback): Promise; + remove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: any, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query; + remove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: any, options?: import("mongoose").RemoveOptions, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query; + replaceOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement?: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + schema: import("mongoose").Schema<{ + cID: string; + for: string; + name?: string; + }, import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, any, any, any, any>, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>; + update & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + updateMany & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + updateOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(path: string, val?: any): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(obj: object): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(): import("mongoose").Query; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + on(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + once(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + off(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + removeAllListeners(event?: string | symbol): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + setMaxListeners(n: number): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + getMaxListeners(): number; + listeners(eventName: string | symbol): Function[]; + rawListeners(eventName: string | symbol): Function[]; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount(eventName: string | symbol): number; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + eventNames(): (string | symbol)[]; + discriminator(name: string | number, schema: import("mongoose").Schema, {}, {}, {}, {}, "type", { + [x: string]: any; + }>, value?: string | number | import("mongoose").Schema.Types.ObjectId | import("mongoose").DiscriminatorOptions): import("mongoose").Model; + discriminator(name: string | number, schema: import("mongoose").Schema>, value?: string | number | import("mongoose").Schema.Types.ObjectId | import("mongoose").DiscriminatorOptions): U; + createIndexes(options: import("mongodb").CreateIndexesOptions, callback: import("mongoose").CallbackWithoutResult): void; + createIndexes(callback: import("mongoose").CallbackWithoutResult): void; + createIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + diffIndexes(options: Record, callback: import("mongoose").Callback): void; + diffIndexes(callback: import("mongoose").Callback): void; + diffIndexes(options?: Record): Promise; + ensureIndexes(options: import("mongodb").CreateIndexesOptions, callback: import("mongoose").CallbackWithoutResult): void; + ensureIndexes(callback: import("mongoose").CallbackWithoutResult): void; + ensureIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + listIndexes(callback: import("mongoose").Callback): void; + listIndexes(): Promise; + syncIndexes(options: import("mongoose").SyncIndexesOptions, callback: import("mongoose").Callback): void; + syncIndexes(options?: import("mongoose").SyncIndexesOptions): Promise; + startSession(options: import("mongodb").ClientSessionOptions, callback: import("mongoose").Callback): void; + startSession(callback: import("mongoose").Callback): void; + startSession(options?: import("mongodb").ClientSessionOptions): Promise; + get: (callback: any, limit: any) => void; + }): Promise<{ + new (doc?: DocType, fields?: any, options?: boolean | import("mongoose").AnyObject): import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }; + aggregate(pipeline?: import("mongoose").PipelineStage[], options?: import("mongodb").AggregateOptions, callback?: import("mongoose").Callback): import("mongoose").Aggregate; + aggregate(pipeline: import("mongoose").PipelineStage[], callback?: import("mongoose").Callback): import("mongoose").Aggregate; + base: typeof import("mongoose"); + baseModelName: string; + castObject(obj: import("mongoose").AnyObject, options?: { + ignoreCastErrors?: boolean; + }): { + cID: string; + for: string; + name?: string; + }; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], options: import("mongodb").BulkWriteOptions & import("mongoose").MongooseBulkWriteOptions, callback: import("mongoose").Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], callback: import("mongoose").Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], options?: import("mongodb").BulkWriteOptions & import("mongoose").MongooseBulkWriteOptions): Promise; + bulkSave(documents: import("mongoose").Document[], options?: import("mongodb").BulkWriteOptions & { + timestamps?: boolean; + }): Promise; + collection: import("mongoose").Collection; + count(callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + count(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + countDocuments(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + countDocuments(callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents)[], options?: import("mongoose").SaveOptions): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_1)[], options?: import("mongoose").SaveOptions, callback?: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_2)[], callback: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): void; + create>(doc: { + cID: string; + for: string; + name?: string; + } | DocContents_3): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + create>(...docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_4)[]): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(doc: { + cID: string; + for: string; + name?: string; + } | DocContents_5, callback: import("mongoose").Callback & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>): void; + createCollection(options: import("mongodb").CreateCollectionOptions & Pick, "expires">, callback: import("mongoose").Callback>): void; + createCollection(callback: import("mongoose").Callback>): void; + createCollection(options?: import("mongodb").CreateCollectionOptions & Pick, "expires">): Promise>; + db: import("mongoose").Connection; + deleteMany(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteMany(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteMany(callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + events: NodeJS.EventEmitter; + findById & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findById & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + hydrate(obj: any, projection?: import("mongoose").AnyObject, options?: { + setters?: boolean; + }): import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }; + init(callback?: import("mongoose").CallbackWithoutResult): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_6)[], options: import("mongoose").InsertManyOptions & { + lean: true; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_7)[], options: import("mongoose").InsertManyOptions & { + rawResult: true; + }, callback: import("mongoose").Callback>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_8)[], callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_9, options: import("mongoose").InsertManyOptions & { + lean: true; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>): void; + insertMany(doc: DocContents_10, options: import("mongoose").InsertManyOptions & { + rawResult: true; + }, callback: import("mongoose").Callback>): void; + insertMany(doc: DocContents_11, options: import("mongoose").InsertManyOptions & { + lean?: false; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_12, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_13)[], options: import("mongoose").InsertManyOptions & { + lean: true; + }): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_14)[], options: import("mongoose").InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_15)[]): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_16, options: import("mongoose").InsertManyOptions & { + lean: true; + }): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>; + insertMany(doc: DocContents_17, options: import("mongoose").InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(doc: DocContents_18, options: import("mongoose").InsertManyOptions): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_19): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + modelName: string; + populate(docs: any[], options: string | import("mongoose").PopulateOptions | import("mongoose").PopulateOptions[], callback?: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + populate(doc: any, options: string | import("mongoose").PopulateOptions | import("mongoose").PopulateOptions[], callback?: import("mongoose").Callback & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + validate(callback?: import("mongoose").CallbackWithoutResult): Promise; + validate(optional: any, callback?: import("mongoose").CallbackWithoutResult): Promise; + validate(optional: any, pathsToValidate: import("mongoose").PathsToValidate, callback?: import("mongoose").CallbackWithoutResult): Promise; + watch(pipeline?: Record[], options?: import("mongodb").ChangeStreamOptions & { + hydrate?: boolean; + }): import("mongodb").ChangeStream>; + $where(argument: string | Function): import("mongoose").Query<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[], import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + discriminators: { + [name: string]: import("mongoose").Model; + }; + translateAliases(raw: any): any; + distinct(field: string, filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + estimatedDocumentCount(options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + exists(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").Callback<{ + _id: import("mongoose").Types.ObjectId; + }>): import("mongoose").Query, "_id">, import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + exists(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>): import("mongoose").Query<{ + _id: import("mongoose").Types.ObjectId; + }, import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(callback?: import("mongoose").Callback): import("mongoose").Query; + findByIdAndDelete & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_9, res: any) => void): import("mongoose").Query; + findByIdAndRemove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_10, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_11, {}, { + cID: string; + for: string; + name?: string; + }>; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_12, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, update?: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_13, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: (err: NativeError, doc: ResultDoc_14, res: any) => void): import("mongoose").Query; + findOneAndDelete & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_15, res: any) => void): import("mongoose").Query; + findOneAndRemove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_16, res: any) => void): import("mongoose").Query; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_17, {}, { + cID: string; + for: string; + name?: string; + }>; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_18, res: any) => void): import("mongoose").Query; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement?: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_19, res: any) => void): import("mongoose").Query; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_20, {}, { + cID: string; + for: string; + name?: string; + }>; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_21, res: any) => void): import("mongoose").Query; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: { + cID: string; + for: string; + name?: string; + }, res: any) => void): import("mongoose").Query; + geoSearch & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").GeoSearchOptions, callback?: import("mongoose").Callback): import("mongoose").Query; + mapReduce(o: import("mongoose").MapReduceOptions<{ + cID: string; + for: string; + name?: string; + }, Key, Value>, callback?: import("mongoose").Callback): Promise; + remove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: any, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query; + remove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: any, options?: import("mongoose").RemoveOptions, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query; + replaceOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement?: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + schema: import("mongoose").Schema<{ + cID: string; + for: string; + name?: string; + }, import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, any, any, any, any>, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>; + update & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + updateMany & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + updateOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(path: string, val?: any): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(obj: object): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(): import("mongoose").Query; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + on(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + once(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + off(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + removeAllListeners(event?: string | symbol): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + setMaxListeners(n: number): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + getMaxListeners(): number; + listeners(eventName: string | symbol): Function[]; + rawListeners(eventName: string | symbol): Function[]; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount(eventName: string | symbol): number; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + eventNames(): (string | symbol)[]; + discriminator(name: string | number, schema: import("mongoose").Schema, {}, {}, {}, {}, "type", { + [x: string]: any; + }>, value?: string | number | import("mongoose").Schema.Types.ObjectId | import("mongoose").DiscriminatorOptions): import("mongoose").Model; + discriminator(name: string | number, schema: import("mongoose").Schema>, value?: string | number | import("mongoose").Schema.Types.ObjectId | import("mongoose").DiscriminatorOptions): U; + createIndexes(options: import("mongodb").CreateIndexesOptions, callback: import("mongoose").CallbackWithoutResult): void; + createIndexes(callback: import("mongoose").CallbackWithoutResult): void; + createIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + diffIndexes(options: Record, callback: import("mongoose").Callback): void; + diffIndexes(callback: import("mongoose").Callback): void; + diffIndexes(options?: Record): Promise; + ensureIndexes(options: import("mongodb").CreateIndexesOptions, callback: import("mongoose").CallbackWithoutResult): void; + ensureIndexes(callback: import("mongoose").CallbackWithoutResult): void; + ensureIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + listIndexes(callback: import("mongoose").Callback): void; + listIndexes(): Promise; + syncIndexes(options: import("mongoose").SyncIndexesOptions, callback: import("mongoose").Callback): void; + syncIndexes(options?: import("mongoose").SyncIndexesOptions): Promise; + startSession(options: import("mongodb").ClientSessionOptions, callback: import("mongoose").Callback): void; + startSession(callback: import("mongoose").Callback): void; + startSession(options?: import("mongodb").ClientSessionOptions): Promise; + get: (callback: any, limit: any) => void; + }>; +} +declare class FreeGames { + /** + * + * @param {_Client} client + */ + constructor(client: _Client); + client: _Client; + update(): Promise; + channels: { + new (doc?: DocType, fields?: any, options?: boolean | import("mongoose").AnyObject): import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }; + aggregate(pipeline?: import("mongoose").PipelineStage[], options?: import("mongodb").AggregateOptions, callback?: import("mongoose").Callback): import("mongoose").Aggregate; + aggregate(pipeline: import("mongoose").PipelineStage[], callback?: import("mongoose").Callback): import("mongoose").Aggregate; + base: typeof import("mongoose"); + baseModelName: string; + castObject(obj: import("mongoose").AnyObject, options?: { + ignoreCastErrors?: boolean; + }): { + cID: string; + for: string; + name?: string; + }; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], options: import("mongodb").BulkWriteOptions & import("mongoose").MongooseBulkWriteOptions, callback: import("mongoose").Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], callback: import("mongoose").Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], options?: import("mongodb").BulkWriteOptions & import("mongoose").MongooseBulkWriteOptions): Promise; + bulkSave(documents: import("mongoose").Document[], options?: import("mongodb").BulkWriteOptions & { + timestamps?: boolean; + }): Promise; + collection: import("mongoose").Collection; + count(callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + count(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + countDocuments(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + countDocuments(callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents)[], options?: import("mongoose").SaveOptions): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_1)[], options?: import("mongoose").SaveOptions, callback?: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_2)[], callback: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): void; + create>(doc: { + cID: string; + for: string; + name?: string; + } | DocContents_3): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + create>(...docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_4)[]): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(doc: { + cID: string; + for: string; + name?: string; + } | DocContents_5, callback: import("mongoose").Callback & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>): void; + createCollection(options: import("mongodb").CreateCollectionOptions & Pick, "expires">, callback: import("mongoose").Callback>): void; + createCollection(callback: import("mongoose").Callback>): void; + createCollection(options?: import("mongodb").CreateCollectionOptions & Pick, "expires">): Promise>; + db: import("mongoose").Connection; + deleteMany(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteMany(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteMany(callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + events: NodeJS.EventEmitter; + findById & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findById & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + hydrate(obj: any, projection?: import("mongoose").AnyObject, options?: { + setters?: boolean; + }): import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }; + init(callback?: import("mongoose").CallbackWithoutResult): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_6)[], options: import("mongoose").InsertManyOptions & { + lean: true; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_7)[], options: import("mongoose").InsertManyOptions & { + rawResult: true; + }, callback: import("mongoose").Callback>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_8)[], callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_9, options: import("mongoose").InsertManyOptions & { + lean: true; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>): void; + insertMany(doc: DocContents_10, options: import("mongoose").InsertManyOptions & { + rawResult: true; + }, callback: import("mongoose").Callback>): void; + insertMany(doc: DocContents_11, options: import("mongoose").InsertManyOptions & { + lean?: false; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_12, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_13)[], options: import("mongoose").InsertManyOptions & { + lean: true; + }): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_14)[], options: import("mongoose").InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_15)[]): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_16, options: import("mongoose").InsertManyOptions & { + lean: true; + }): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>; + insertMany(doc: DocContents_17, options: import("mongoose").InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(doc: DocContents_18, options: import("mongoose").InsertManyOptions): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_19): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + modelName: string; + populate(docs: any[], options: string | import("mongoose").PopulateOptions | import("mongoose").PopulateOptions[], callback?: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + populate(doc: any, options: string | import("mongoose").PopulateOptions | import("mongoose").PopulateOptions[], callback?: import("mongoose").Callback & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + validate(callback?: import("mongoose").CallbackWithoutResult): Promise; + validate(optional: any, callback?: import("mongoose").CallbackWithoutResult): Promise; + validate(optional: any, pathsToValidate: import("mongoose").PathsToValidate, callback?: import("mongoose").CallbackWithoutResult): Promise; + watch(pipeline?: Record[], options?: import("mongodb").ChangeStreamOptions & { + hydrate?: boolean; + }): import("mongodb").ChangeStream>; + $where(argument: string | Function): import("mongoose").Query<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[], import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + discriminators: { + [name: string]: import("mongoose").Model; + }; + translateAliases(raw: any): any; + distinct(field: string, filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + estimatedDocumentCount(options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + exists(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").Callback<{ + _id: import("mongoose").Types.ObjectId; + }>): import("mongoose").Query, "_id">, import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + exists(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>): import("mongoose").Query<{ + _id: import("mongoose").Types.ObjectId; + }, import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(callback?: import("mongoose").Callback): import("mongoose").Query; + findByIdAndDelete & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_9, res: any) => void): import("mongoose").Query; + findByIdAndRemove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_10, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_11, {}, { + cID: string; + for: string; + name?: string; + }>; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_12, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, update?: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_13, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: (err: NativeError, doc: ResultDoc_14, res: any) => void): import("mongoose").Query; + findOneAndDelete & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_15, res: any) => void): import("mongoose").Query; + findOneAndRemove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_16, res: any) => void): import("mongoose").Query; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_17, {}, { + cID: string; + for: string; + name?: string; + }>; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_18, res: any) => void): import("mongoose").Query; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement?: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_19, res: any) => void): import("mongoose").Query; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_20, {}, { + cID: string; + for: string; + name?: string; + }>; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_21, res: any) => void): import("mongoose").Query; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: { + cID: string; + for: string; + name?: string; + }, res: any) => void): import("mongoose").Query; + geoSearch & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").GeoSearchOptions, callback?: import("mongoose").Callback): import("mongoose").Query; + mapReduce(o: import("mongoose").MapReduceOptions<{ + cID: string; + for: string; + name?: string; + }, Key, Value>, callback?: import("mongoose").Callback): Promise; + remove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: any, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query; + remove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: any, options?: import("mongoose").RemoveOptions, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query; + replaceOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement?: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + schema: import("mongoose").Schema<{ + cID: string; + for: string; + name?: string; + }, import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, any, any, any, any>, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>; + update & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + updateMany & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + updateOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(path: string, val?: any): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(obj: object): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(): import("mongoose").Query; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + on(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + once(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + off(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + removeAllListeners(event?: string | symbol): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + setMaxListeners(n: number): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + getMaxListeners(): number; + listeners(eventName: string | symbol): Function[]; + rawListeners(eventName: string | symbol): Function[]; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount(eventName: string | symbol): number; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + eventNames(): (string | symbol)[]; + discriminator(name: string | number, schema: import("mongoose").Schema, {}, {}, {}, {}, "type", { + [x: string]: any; + }>, value?: string | number | import("mongoose").Schema.Types.ObjectId | import("mongoose").DiscriminatorOptions): import("mongoose").Model; + discriminator(name: string | number, schema: import("mongoose").Schema>, value?: string | number | import("mongoose").Schema.Types.ObjectId | import("mongoose").DiscriminatorOptions): U; + createIndexes(options: import("mongodb").CreateIndexesOptions, callback: import("mongoose").CallbackWithoutResult): void; + createIndexes(callback: import("mongoose").CallbackWithoutResult): void; + createIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + diffIndexes(options: Record, callback: import("mongoose").Callback): void; + diffIndexes(callback: import("mongoose").Callback): void; + diffIndexes(options?: Record): Promise; + ensureIndexes(options: import("mongodb").CreateIndexesOptions, callback: import("mongoose").CallbackWithoutResult): void; + ensureIndexes(callback: import("mongoose").CallbackWithoutResult): void; + ensureIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + listIndexes(callback: import("mongoose").Callback): void; + listIndexes(): Promise; + syncIndexes(options: import("mongoose").SyncIndexesOptions, callback: import("mongoose").Callback): void; + syncIndexes(options?: import("mongoose").SyncIndexesOptions): Promise; + startSession(options: import("mongodb").ClientSessionOptions, callback: import("mongoose").Callback): void; + startSession(callback: import("mongoose").Callback): void; + startSession(options?: import("mongodb").ClientSessionOptions): Promise; + get: (callback: any, limit: any) => void; + }; + /** + * + * @param {channelM} channels + */ + resolveChannels(channels: { + new (doc?: DocType, fields?: any, options?: boolean | import("mongoose").AnyObject): import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }; + aggregate(pipeline?: import("mongoose").PipelineStage[], options?: import("mongodb").AggregateOptions, callback?: import("mongoose").Callback): import("mongoose").Aggregate; + aggregate(pipeline: import("mongoose").PipelineStage[], callback?: import("mongoose").Callback): import("mongoose").Aggregate; + base: typeof import("mongoose"); + baseModelName: string; + castObject(obj: import("mongoose").AnyObject, options?: { + ignoreCastErrors?: boolean; + }): { + cID: string; + for: string; + name?: string; + }; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], options: import("mongodb").BulkWriteOptions & import("mongoose").MongooseBulkWriteOptions, callback: import("mongoose").Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], callback: import("mongoose").Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], options?: import("mongodb").BulkWriteOptions & import("mongoose").MongooseBulkWriteOptions): Promise; + bulkSave(documents: import("mongoose").Document[], options?: import("mongodb").BulkWriteOptions & { + timestamps?: boolean; + }): Promise; + collection: import("mongoose").Collection; + count(callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + count(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + countDocuments(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + countDocuments(callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents)[], options?: import("mongoose").SaveOptions): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_1)[], options?: import("mongoose").SaveOptions, callback?: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_2)[], callback: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): void; + create>(doc: { + cID: string; + for: string; + name?: string; + } | DocContents_3): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + create>(...docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_4)[]): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(doc: { + cID: string; + for: string; + name?: string; + } | DocContents_5, callback: import("mongoose").Callback & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>): void; + createCollection(options: import("mongodb").CreateCollectionOptions & Pick, "expires">, callback: import("mongoose").Callback>): void; + createCollection(callback: import("mongoose").Callback>): void; + createCollection(options?: import("mongodb").CreateCollectionOptions & Pick, "expires">): Promise>; + db: import("mongoose").Connection; + deleteMany(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteMany(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteMany(callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + events: NodeJS.EventEmitter; + findById & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findById & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + hydrate(obj: any, projection?: import("mongoose").AnyObject, options?: { + setters?: boolean; + }): import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }; + init(callback?: import("mongoose").CallbackWithoutResult): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_6)[], options: import("mongoose").InsertManyOptions & { + lean: true; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_7)[], options: import("mongoose").InsertManyOptions & { + rawResult: true; + }, callback: import("mongoose").Callback>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_8)[], callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_9, options: import("mongoose").InsertManyOptions & { + lean: true; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>): void; + insertMany(doc: DocContents_10, options: import("mongoose").InsertManyOptions & { + rawResult: true; + }, callback: import("mongoose").Callback>): void; + insertMany(doc: DocContents_11, options: import("mongoose").InsertManyOptions & { + lean?: false; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_12, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_13)[], options: import("mongoose").InsertManyOptions & { + lean: true; + }): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_14)[], options: import("mongoose").InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_15)[]): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_16, options: import("mongoose").InsertManyOptions & { + lean: true; + }): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>; + insertMany(doc: DocContents_17, options: import("mongoose").InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(doc: DocContents_18, options: import("mongoose").InsertManyOptions): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_19): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + modelName: string; + populate(docs: any[], options: string | import("mongoose").PopulateOptions | import("mongoose").PopulateOptions[], callback?: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + populate(doc: any, options: string | import("mongoose").PopulateOptions | import("mongoose").PopulateOptions[], callback?: import("mongoose").Callback & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + validate(callback?: import("mongoose").CallbackWithoutResult): Promise; + validate(optional: any, callback?: import("mongoose").CallbackWithoutResult): Promise; + validate(optional: any, pathsToValidate: import("mongoose").PathsToValidate, callback?: import("mongoose").CallbackWithoutResult): Promise; + watch(pipeline?: Record[], options?: import("mongodb").ChangeStreamOptions & { + hydrate?: boolean; + }): import("mongodb").ChangeStream>; + $where(argument: string | Function): import("mongoose").Query<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[], import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + discriminators: { + [name: string]: import("mongoose").Model; + }; + translateAliases(raw: any): any; + distinct(field: string, filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + estimatedDocumentCount(options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + exists(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").Callback<{ + _id: import("mongoose").Types.ObjectId; + }>): import("mongoose").Query, "_id">, import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + exists(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>): import("mongoose").Query<{ + _id: import("mongoose").Types.ObjectId; + }, import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(callback?: import("mongoose").Callback): import("mongoose").Query; + findByIdAndDelete & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_9, res: any) => void): import("mongoose").Query; + findByIdAndRemove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_10, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_11, {}, { + cID: string; + for: string; + name?: string; + }>; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_12, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, update?: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_13, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: (err: NativeError, doc: ResultDoc_14, res: any) => void): import("mongoose").Query; + findOneAndDelete & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_15, res: any) => void): import("mongoose").Query; + findOneAndRemove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_16, res: any) => void): import("mongoose").Query; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_17, {}, { + cID: string; + for: string; + name?: string; + }>; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_18, res: any) => void): import("mongoose").Query; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement?: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_19, res: any) => void): import("mongoose").Query; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_20, {}, { + cID: string; + for: string; + name?: string; + }>; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_21, res: any) => void): import("mongoose").Query; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: { + cID: string; + for: string; + name?: string; + }, res: any) => void): import("mongoose").Query; + geoSearch & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").GeoSearchOptions, callback?: import("mongoose").Callback): import("mongoose").Query; + mapReduce(o: import("mongoose").MapReduceOptions<{ + cID: string; + for: string; + name?: string; + }, Key, Value>, callback?: import("mongoose").Callback): Promise; + remove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: any, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query; + remove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: any, options?: import("mongoose").RemoveOptions, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query; + replaceOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement?: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + schema: import("mongoose").Schema<{ + cID: string; + for: string; + name?: string; + }, import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, any, any, any, any>, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>; + update & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + updateMany & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + updateOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(path: string, val?: any): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(obj: object): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(): import("mongoose").Query; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + on(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + once(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + off(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + removeAllListeners(event?: string | symbol): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + setMaxListeners(n: number): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + getMaxListeners(): number; + listeners(eventName: string | symbol): Function[]; + rawListeners(eventName: string | symbol): Function[]; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount(eventName: string | symbol): number; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + eventNames(): (string | symbol)[]; + discriminator(name: string | number, schema: import("mongoose").Schema, {}, {}, {}, {}, "type", { + [x: string]: any; + }>, value?: string | number | import("mongoose").Schema.Types.ObjectId | import("mongoose").DiscriminatorOptions): import("mongoose").Model; + discriminator(name: string | number, schema: import("mongoose").Schema>, value?: string | number | import("mongoose").Schema.Types.ObjectId | import("mongoose").DiscriminatorOptions): U; + createIndexes(options: import("mongodb").CreateIndexesOptions, callback: import("mongoose").CallbackWithoutResult): void; + createIndexes(callback: import("mongoose").CallbackWithoutResult): void; + createIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + diffIndexes(options: Record, callback: import("mongoose").Callback): void; + diffIndexes(callback: import("mongoose").Callback): void; + diffIndexes(options?: Record): Promise; + ensureIndexes(options: import("mongodb").CreateIndexesOptions, callback: import("mongoose").CallbackWithoutResult): void; + ensureIndexes(callback: import("mongoose").CallbackWithoutResult): void; + ensureIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + listIndexes(callback: import("mongoose").Callback): void; + listIndexes(): Promise; + syncIndexes(options: import("mongoose").SyncIndexesOptions, callback: import("mongoose").Callback): void; + syncIndexes(options?: import("mongoose").SyncIndexesOptions): Promise; + startSession(options: import("mongodb").ClientSessionOptions, callback: import("mongoose").Callback): void; + startSession(callback: import("mongoose").Callback): void; + startSession(options?: import("mongodb").ClientSessionOptions): Promise; + get: (callback: any, limit: any) => void; + }): Promise<{ + new (doc?: DocType, fields?: any, options?: boolean | import("mongoose").AnyObject): import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }; + aggregate(pipeline?: import("mongoose").PipelineStage[], options?: import("mongodb").AggregateOptions, callback?: import("mongoose").Callback): import("mongoose").Aggregate; + aggregate(pipeline: import("mongoose").PipelineStage[], callback?: import("mongoose").Callback): import("mongoose").Aggregate; + base: typeof import("mongoose"); + baseModelName: string; + castObject(obj: import("mongoose").AnyObject, options?: { + ignoreCastErrors?: boolean; + }): { + cID: string; + for: string; + name?: string; + }; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], options: import("mongodb").BulkWriteOptions & import("mongoose").MongooseBulkWriteOptions, callback: import("mongoose").Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], callback: import("mongoose").Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], options?: import("mongodb").BulkWriteOptions & import("mongoose").MongooseBulkWriteOptions): Promise; + bulkSave(documents: import("mongoose").Document[], options?: import("mongodb").BulkWriteOptions & { + timestamps?: boolean; + }): Promise; + collection: import("mongoose").Collection; + count(callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + count(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + countDocuments(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + countDocuments(callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents)[], options?: import("mongoose").SaveOptions): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_1)[], options?: import("mongoose").SaveOptions, callback?: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_2)[], callback: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): void; + create>(doc: { + cID: string; + for: string; + name?: string; + } | DocContents_3): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + create>(...docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_4)[]): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + create>(doc: { + cID: string; + for: string; + name?: string; + } | DocContents_5, callback: import("mongoose").Callback & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>): void; + createCollection(options: import("mongodb").CreateCollectionOptions & Pick, "expires">, callback: import("mongoose").Callback>): void; + createCollection(callback: import("mongoose").Callback>): void; + createCollection(options?: import("mongodb").CreateCollectionOptions & Pick, "expires">): Promise>; + db: import("mongoose").Connection; + deleteMany(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteMany(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteMany(callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(callback: import("mongoose").CallbackWithoutResult): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + events: NodeJS.EventEmitter; + findById & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findById & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + hydrate(obj: any, projection?: import("mongoose").AnyObject, options?: { + setters?: boolean; + }): import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }; + init(callback?: import("mongoose").CallbackWithoutResult): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_6)[], options: import("mongoose").InsertManyOptions & { + lean: true; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_7)[], options: import("mongoose").InsertManyOptions & { + rawResult: true; + }, callback: import("mongoose").Callback>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_8)[], callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_9, options: import("mongoose").InsertManyOptions & { + lean: true; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>): void; + insertMany(doc: DocContents_10, options: import("mongoose").InsertManyOptions & { + rawResult: true; + }, callback: import("mongoose").Callback>): void; + insertMany(doc: DocContents_11, options: import("mongoose").InsertManyOptions & { + lean?: false; + }, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_12, callback: import("mongoose").Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_13)[], options: import("mongoose").InsertManyOptions & { + lean: true; + }): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_14)[], options: import("mongoose").InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_15)[]): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_16, options: import("mongoose").InsertManyOptions & { + lean: true; + }): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>[]>; + insertMany(doc: DocContents_17, options: import("mongoose").InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(doc: DocContents_18, options: import("mongoose").InsertManyOptions): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_19): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>, {}, {}>[]>; + modelName: string; + populate(docs: any[], options: string | import("mongoose").PopulateOptions | import("mongoose").PopulateOptions[], callback?: import("mongoose").Callback<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>): Promise<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[]>; + populate(doc: any, options: string | import("mongoose").PopulateOptions | import("mongoose").PopulateOptions[], callback?: import("mongoose").Callback & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>; + validate(callback?: import("mongoose").CallbackWithoutResult): Promise; + validate(optional: any, callback?: import("mongoose").CallbackWithoutResult): Promise; + validate(optional: any, pathsToValidate: import("mongoose").PathsToValidate, callback?: import("mongoose").CallbackWithoutResult): Promise; + watch(pipeline?: Record[], options?: import("mongodb").ChangeStreamOptions & { + hydrate?: boolean; + }): import("mongodb").ChangeStream>; + $where(argument: string | Function): import("mongoose").Query<(import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + })[], import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + discriminators: { + [name: string]: import("mongoose").Model; + }; + translateAliases(raw: any): any; + distinct(field: string, filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + estimatedDocumentCount(options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + exists(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: import("mongoose").Callback<{ + _id: import("mongoose").Types.ObjectId; + }>): import("mongoose").Query, "_id">, import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + exists(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>): import("mongoose").Query<{ + _id: import("mongoose").Types.ObjectId; + }, import("mongoose").Document & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: import("mongoose").ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(callback?: import("mongoose").Callback): import("mongoose").Query; + findByIdAndDelete & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_9, res: any) => void): import("mongoose").Query; + findByIdAndRemove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_10, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_11, {}, { + cID: string; + for: string; + name?: string; + }>; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_12, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id?: any, update?: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_13, res: any) => void): import("mongoose").Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(id: any, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: (err: NativeError, doc: ResultDoc_14, res: any) => void): import("mongoose").Query; + findOneAndDelete & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_15, res: any) => void): import("mongoose").Query; + findOneAndRemove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_16, res: any) => void): import("mongoose").Query; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_17, {}, { + cID: string; + for: string; + name?: string; + }>; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_18, res: any) => void): import("mongoose").Query; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement?: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_19, res: any) => void): import("mongoose").Query; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): import("mongoose").Query, ResultDoc_20, {}, { + cID: string; + for: string; + name?: string; + }>; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & import("mongoose").ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_21, res: any) => void): import("mongoose").Query; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: { + cID: string; + for: string; + name?: string; + }, res: any) => void): import("mongoose").Query; + geoSearch & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").GeoSearchOptions, callback?: import("mongoose").Callback): import("mongoose").Query; + mapReduce(o: import("mongoose").MapReduceOptions<{ + cID: string; + for: string; + name?: string; + }, Key, Value>, callback?: import("mongoose").Callback): Promise; + remove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: any, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query; + remove & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: any, options?: import("mongoose").RemoveOptions, callback?: import("mongoose").CallbackWithoutResult): import("mongoose").Query; + replaceOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement?: import("mongoose").AnyObject | { + cID: string; + for: string; + name?: string; + }, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + schema: import("mongoose").Schema<{ + cID: string; + for: string; + name?: string; + }, import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, any, any, any, any>, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>; + update & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + updateMany & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + updateOne & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(filter?: import("mongoose").FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: import("mongoose").QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: import("mongoose").Callback): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(path: string, val?: any): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(obj: object): import("mongoose").Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: import("mongoose").Types.ObjectId; + }>(): import("mongoose").Query; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + on(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + once(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + off(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + removeAllListeners(event?: string | symbol): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + setMaxListeners(n: number): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + getMaxListeners(): number; + listeners(eventName: string | symbol): Function[]; + rawListeners(eventName: string | symbol): Function[]; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount(eventName: string | symbol): number; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): import("mongoose").Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, import("mongoose").Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + eventNames(): (string | symbol)[]; + discriminator(name: string | number, schema: import("mongoose").Schema, {}, {}, {}, {}, "type", { + [x: string]: any; + }>, value?: string | number | import("mongoose").Schema.Types.ObjectId | import("mongoose").DiscriminatorOptions): import("mongoose").Model; + discriminator(name: string | number, schema: import("mongoose").Schema>, value?: string | number | import("mongoose").Schema.Types.ObjectId | import("mongoose").DiscriminatorOptions): U; + createIndexes(options: import("mongodb").CreateIndexesOptions, callback: import("mongoose").CallbackWithoutResult): void; + createIndexes(callback: import("mongoose").CallbackWithoutResult): void; + createIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + diffIndexes(options: Record, callback: import("mongoose").Callback): void; + diffIndexes(callback: import("mongoose").Callback): void; + diffIndexes(options?: Record): Promise; + ensureIndexes(options: import("mongodb").CreateIndexesOptions, callback: import("mongoose").CallbackWithoutResult): void; + ensureIndexes(callback: import("mongoose").CallbackWithoutResult): void; + ensureIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + listIndexes(callback: import("mongoose").Callback): void; + listIndexes(): Promise; + syncIndexes(options: import("mongoose").SyncIndexesOptions, callback: import("mongoose").Callback): void; + syncIndexes(options?: import("mongoose").SyncIndexesOptions): Promise; + startSession(options: import("mongodb").ClientSessionOptions, callback: import("mongoose").Callback): void; + startSession(callback: import("mongoose").Callback): void; + startSession(options?: import("mongodb").ClientSessionOptions): Promise; + get: (callback: any, limit: any) => void; + }>; +} +import { ClientOptions } from "discord.js"; +/** + * AniList Client -> Search Functions + */ +declare class AnimeInfo { + /** + * + * @param {String} title + * @param {String} status + * @param {String} episodes + * @param {String} trailer + * @param {String} description + * @param {String} coverImage + */ + constructor(title: string, status: string, episodes: string, trailer: string, description: string, coverImage: string); + title: string; + status: string; + episodes: string; + trailer: string; + description: string; + coverImage: string; +} +declare class CharInfo { + /** + * + * @param {String} name + * @param {String} gender + * @param {String} image + * @param {String} description + */ + constructor(name: string, gender: string, image: string, description: string); + name: string; + gender: string; + image: string; + description: string; +} +declare class MangaInfo { + /** + * + * @param {String} title + * @param {String} status + * @param {String} description + * @param {String} coverImage + */ + constructor(title: string, status: string, description: string, coverImage: string); + title: string; + status: string; + description: string; + coverImage: string; +} +export { GatewayIntentBits, Partials, ActivityType, Message, command as Command, _Client as Client, aniListCli as aniList }; +//# sourceMappingURL=lib.d.ts.map \ No newline at end of file diff --git a/dist/lib.d.ts.map b/dist/lib.d.ts.map new file mode 100644 index 0000000..b8f37c4 --- /dev/null +++ b/dist/lib.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../lib.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA;IAEI;;;OAGG;IACH,oBAHW,OAAO,WACP,cAAc,EAUxB;IANG,aAAwB;IACxB,kBAA+B;IAC/B,oBAAsC;IACtC,oBAAmC;IACnC,gBAA4B;IAC5B,gBAAoB;CAE3B;AAKD;IAEI;;;OAGG;IACH,qBAFW,aAAa,EAgCvB;IA3BG,gBAAkB;IAwBlB,yBAAwC;IACxC,qBAAoC;IAGxC;;;;OAIG;IACH,gCAmBC;IACD;;;;OAIG;IACH,sBAFa,OAAO,CAKnB;IACD,4BA0BC;CAEJ;;;;;;;;AAWD;IAEI;;;OAGG;IACH,+BAGC;IADG,gBAAwB;CAE/B;AAoBD;IAEI;;OAEG;IACH,oBAFW,OAAO,EAKjB;IADG,gBAAoB;IAExB;;;;;OAKG;IACH;;;;;;gBAHW,OAAO,iBACP,QAAQ,iBA2DlB;CAEJ;AA6DD;IACI;;;;OAIG;IACH,yBAFa,SAAS,CAgErB;IACD;;;;OAIG;IACH,wBAFa,QAAQ,CAyDpB;IACD;;;;OAIG;IACH,yBAFa,SAAS,CAyDrB;CAEJ;AA1fD;IAEI;;;;;;;OAOG;IACH,mCALW,QAAQ,6DAYlB;IALG,aAAgB;IAChB,kBAAsB;IACtB,oBAA8B;IAC9B,oBAA4B;IAC5B,gBAAoB;CAE3B;;AA4eD;IAEI;;;OAGG;IACH,oBAFW,OAAO,EAUjB;IANG,gBAAoB;IAOxB,wBAmEC;IAhEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAoD;IAiEvD;;;MAGE;IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkBC;CACN;AAwBD;IAEI;;;OAGG;IACH,oBAFW,OAAO,EASjB;IALG,gBAAoB;IAMxB,wBA0EC;IAvEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAoD;IAwExD;;;OAGG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkBC;CACJ;;AAjfD;;GAEG;AACH;IAEI;;;;;;;;OAQG;IACH,uHAQC;IANG,cAAkB;IAClB,eAAoB;IACpB,iBAAsB;IACtB,gBAAsB;IACtB,oBAA8B;IAC9B,mBAA4B;CAEnC;AACD;IAEI;;;;;;OAMG;IACH,8EAMC;IAJG,aAAgB;IAChB,eAAoB;IACpB,cAAgB;IAChB,oBAA8B;CAErC;AACD;IAEI;;;;;;OAMG;IACH,oFAMC;IAJG,cAAkB;IAClB,eAAoB;IACpB,oBAA8B;IAC9B,mBAA4B;CAEnC"} \ No newline at end of file diff --git a/dist/models/channels.d.ts b/dist/models/channels.d.ts new file mode 100644 index 0000000..eb72f67 --- /dev/null +++ b/dist/models/channels.d.ts @@ -0,0 +1,1677 @@ +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +declare const _exports: { + new (doc?: DocType, fields?: any, options?: boolean | mongoose.AnyObject): mongoose.Document & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }; + aggregate(pipeline?: mongoose.PipelineStage[], options?: import("mongodb").AggregateOptions, callback?: mongoose.Callback): mongoose.Aggregate; + aggregate(pipeline: mongoose.PipelineStage[], callback?: mongoose.Callback): mongoose.Aggregate; + base: typeof mongoose; + baseModelName: string; + castObject(obj: mongoose.AnyObject, options?: { + ignoreCastErrors?: boolean; + }): { + cID: string; + for: string; + name?: string; + }; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], options: import("mongodb").BulkWriteOptions & mongoose.MongooseBulkWriteOptions, callback: mongoose.Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], callback: mongoose.Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + cID: string; + for: string; + name?: string; + }>[], options?: import("mongodb").BulkWriteOptions & mongoose.MongooseBulkWriteOptions): Promise; + bulkSave(documents: mongoose.Document[], options?: import("mongodb").BulkWriteOptions & { + timestamps?: boolean; + }): Promise; + collection: mongoose.Collection; + count(callback?: mongoose.Callback): mongoose.Query & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + count(filter: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + countDocuments(filter: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + countDocuments(callback?: mongoose.Callback): mongoose.Query & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents)[], options?: mongoose.SaveOptions): Promise<(mongoose.Document & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_1)[], options?: mongoose.SaveOptions, callback?: mongoose.Callback<(mongoose.Document & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>): Promise<(mongoose.Document & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>; + create>(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_2)[], callback: mongoose.Callback<(mongoose.Document & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>): void; + create>(doc: { + cID: string; + for: string; + name?: string; + } | DocContents_3): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>; + create>(...docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_4)[]): Promise<(mongoose.Document & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>; + create>(doc: { + cID: string; + for: string; + name?: string; + } | DocContents_5, callback: mongoose.Callback & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>): void; + createCollection(options: import("mongodb").CreateCollectionOptions & Pick, "expires">, callback: mongoose.Callback>): void; + createCollection(callback: mongoose.Callback>): void; + createCollection(options?: import("mongodb").CreateCollectionOptions & Pick, "expires">): Promise>; + db: mongoose.Connection; + deleteMany(filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.CallbackWithoutResult): mongoose.Query & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteMany(filter: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: mongoose.CallbackWithoutResult): mongoose.Query & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteMany(callback: mongoose.CallbackWithoutResult): mongoose.Query & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.CallbackWithoutResult): mongoose.Query & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(filter: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: mongoose.CallbackWithoutResult): mongoose.Query & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + deleteOne(callback: mongoose.CallbackWithoutResult): mongoose.Query & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + events: NodeJS.EventEmitter; + findById & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, projection?: mongoose.ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + findById & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, projection?: mongoose.ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: mongoose.ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: mongoose.ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + findOne & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + hydrate(obj: any, projection?: mongoose.AnyObject, options?: { + setters?: boolean; + }): mongoose.Document & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }; + init(callback?: mongoose.CallbackWithoutResult): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_6)[], options: mongoose.InsertManyOptions & { + lean: true; + }, callback: mongoose.Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>[]>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_7)[], options: mongoose.InsertManyOptions & { + rawResult: true; + }, callback: mongoose.Callback>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_8)[], callback: mongoose.Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_9, options: mongoose.InsertManyOptions & { + lean: true; + }, callback: mongoose.Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>[]>): void; + insertMany(doc: DocContents_10, options: mongoose.InsertManyOptions & { + rawResult: true; + }, callback: mongoose.Callback>): void; + insertMany(doc: DocContents_11, options: mongoose.InsertManyOptions & { + lean?: false; + }, callback: mongoose.Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_12, callback: mongoose.Callback, { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_13)[], options: mongoose.InsertManyOptions & { + lean: true; + }): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>[]>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_14)[], options: mongoose.InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(docs: ({ + cID: string; + for: string; + name?: string; + } | DocContents_15)[]): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_16, options: mongoose.InsertManyOptions & { + lean: true; + }): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>[]>; + insertMany(doc: DocContents_17, options: mongoose.InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(doc: DocContents_18, options: mongoose.InsertManyOptions): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_19): Promise, { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>; + modelName: string; + populate(docs: any[], options: string | mongoose.PopulateOptions | mongoose.PopulateOptions[], callback?: mongoose.Callback<(mongoose.Document & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>): Promise<(mongoose.Document & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>; + populate(doc: any, options: string | mongoose.PopulateOptions | mongoose.PopulateOptions[], callback?: mongoose.Callback & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>): Promise & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>; + validate(callback?: mongoose.CallbackWithoutResult): Promise; + validate(optional: any, callback?: mongoose.CallbackWithoutResult): Promise; + validate(optional: any, pathsToValidate: mongoose.PathsToValidate, callback?: mongoose.CallbackWithoutResult): Promise; + watch(pipeline?: Record[], options?: import("mongodb").ChangeStreamOptions & { + hydrate?: boolean; + }): import("mongodb").ChangeStream>; + $where(argument: string | Function): mongoose.Query<(mongoose.Document & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + })[], mongoose.Document & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + discriminators: { + [name: string]: mongoose.Model; + }; + translateAliases(raw: any): any; + distinct(field: string, filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + estimatedDocumentCount(options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + exists(filter: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: mongoose.Callback<{ + _id: mongoose.Types.ObjectId; + }>): mongoose.Query, "_id">, mongoose.Document & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + exists(filter: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>): mongoose.Query<{ + _id: mongoose.Types.ObjectId; + }, mongoose.Document & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + cID: string; + for: string; + name?: string; + }>; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: mongoose.ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, projection?: mongoose.ProjectionType<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + find & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(callback?: mongoose.Callback): mongoose.Query; + findByIdAndDelete & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id?: any, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_9, res: any) => void): mongoose.Query; + findByIdAndRemove & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id?: any, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_10, res: any) => void): mongoose.Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, update: mongoose.UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): mongoose.Query, ResultDoc_11, {}, { + cID: string; + for: string; + name?: string; + }>; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, update: mongoose.UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & mongoose.ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_12, res: any) => void): mongoose.Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id?: any, update?: mongoose.UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_13, res: any) => void): mongoose.Query; + findByIdAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, update: mongoose.UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, callback: (err: NativeError, doc: ResultDoc_14, res: any) => void): mongoose.Query; + findOneAndDelete & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_15, res: any) => void): mongoose.Query; + findOneAndRemove & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_16, res: any) => void): mongoose.Query; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement: mongoose.AnyObject | { + cID: string; + for: string; + name?: string; + }, options: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): mongoose.Query, ResultDoc_17, {}, { + cID: string; + for: string; + name?: string; + }>; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement: mongoose.AnyObject | { + cID: string; + for: string; + name?: string; + }, options: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & mongoose.ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_18, res: any) => void): mongoose.Query; + findOneAndReplace & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement?: mongoose.AnyObject | { + cID: string; + for: string; + name?: string; + }, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_19, res: any) => void): mongoose.Query; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update: mongoose.UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): mongoose.Query, ResultDoc_20, {}, { + cID: string; + for: string; + name?: string; + }>; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update: mongoose.UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }> & { + upsert: true; + } & mongoose.ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_21, res: any) => void): mongoose.Query; + findOneAndUpdate & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: mongoose.UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: (err: NativeError, doc: { + cID: string; + for: string; + name?: string; + }, res: any) => void): mongoose.Query; + geoSearch & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: mongoose.GeoSearchOptions, callback?: mongoose.Callback): mongoose.Query; + mapReduce(o: mongoose.MapReduceOptions<{ + cID: string; + for: string; + name?: string; + }, Key, Value>, callback?: mongoose.Callback): Promise; + remove & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: any, callback?: mongoose.CallbackWithoutResult): mongoose.Query; + remove & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: any, options?: mongoose.RemoveOptions, callback?: mongoose.CallbackWithoutResult): mongoose.Query; + replaceOne & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, replacement?: mongoose.AnyObject | { + cID: string; + for: string; + name?: string; + }, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + schema: mongoose.Schema<{ + cID: string; + for: string; + name?: string; + }, mongoose.Model<{ + cID: string; + for: string; + name?: string; + }, any, any, any, any>, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>; + update & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: mongoose.UpdateWithAggregationPipeline | mongoose.UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + updateMany & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: mongoose.UpdateWithAggregationPipeline | mongoose.UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + updateOne & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + cID: string; + for: string; + name?: string; + }>, update?: mongoose.UpdateWithAggregationPipeline | mongoose.UpdateQuery<{ + cID: string; + for: string; + name?: string; + }>, options?: mongoose.QueryOptions<{ + cID: string; + for: string; + name?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(path: string, val?: any): mongoose.Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(obj: object): mongoose.Query; + where & { + cID: string; + for: string; + name?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(): mongoose.Query; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + on(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + once(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + off(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + removeAllListeners(event?: string | symbol): mongoose.Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + setMaxListeners(n: number): mongoose.Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + getMaxListeners(): number; + listeners(eventName: string | symbol): Function[]; + rawListeners(eventName: string | symbol): Function[]; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount(eventName: string | symbol): number; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + cID: string; + for: string; + name?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + cID: string; + for: string; + name?: string; + }>>; + eventNames(): (string | symbol)[]; + discriminator(name: string | number, schema: mongoose.Schema, {}, {}, {}, {}, "type", { + [x: string]: any; + }>, value?: string | number | mongoose.Schema.Types.ObjectId | mongoose.DiscriminatorOptions): mongoose.Model; + discriminator(name: string | number, schema: mongoose.Schema>, value?: string | number | mongoose.Schema.Types.ObjectId | mongoose.DiscriminatorOptions): U; + createIndexes(options: import("mongodb").CreateIndexesOptions, callback: mongoose.CallbackWithoutResult): void; + createIndexes(callback: mongoose.CallbackWithoutResult): void; + createIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + diffIndexes(options: Record, callback: mongoose.Callback): void; + diffIndexes(callback: mongoose.Callback): void; + diffIndexes(options?: Record): Promise; + ensureIndexes(options: import("mongodb").CreateIndexesOptions, callback: mongoose.CallbackWithoutResult): void; + ensureIndexes(callback: mongoose.CallbackWithoutResult): void; + ensureIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + listIndexes(callback: mongoose.Callback): void; + listIndexes(): Promise; + syncIndexes(options: mongoose.SyncIndexesOptions, callback: mongoose.Callback): void; + syncIndexes(options?: mongoose.SyncIndexesOptions): Promise; + startSession(options: import("mongodb").ClientSessionOptions, callback: mongoose.Callback): void; + startSession(callback: mongoose.Callback): void; + startSession(options?: import("mongodb").ClientSessionOptions): Promise; + get: (callback: any, limit: any) => void; +}; +export = _exports; +export function get(callback: any, limit: any): void; +import mongoose = require("mongoose"); +//# sourceMappingURL=channels.d.ts.map \ No newline at end of file diff --git a/dist/models/channels.d.ts.map b/dist/models/channels.d.ts.map new file mode 100644 index 0000000..77c5ffe --- /dev/null +++ b/dist/models/channels.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../models/channels.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBqB,qDAGpB"} \ No newline at end of file diff --git a/dist/models/mcommands.d.ts b/dist/models/mcommands.d.ts new file mode 100644 index 0000000..135a962 --- /dev/null +++ b/dist/models/mcommands.d.ts @@ -0,0 +1,2008 @@ +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +declare const _exports: { + new (doc?: DocType, fields?: any, options?: boolean | mongoose.AnyObject): mongoose.Document & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }; + aggregate(pipeline?: mongoose.PipelineStage[], options?: import("mongodb").AggregateOptions, callback?: mongoose.Callback): mongoose.Aggregate; + aggregate(pipeline: mongoose.PipelineStage[], callback?: mongoose.Callback): mongoose.Aggregate; + base: typeof mongoose; + baseModelName: string; + castObject(obj: mongoose.AnyObject, options?: { + ignoreCastErrors?: boolean; + }): { + guild: string; + command: string; + voice: string; + textchannel: string; + }; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>[], options: import("mongodb").BulkWriteOptions & mongoose.MongooseBulkWriteOptions, callback: mongoose.Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>[], callback: mongoose.Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>[], options?: import("mongodb").BulkWriteOptions & mongoose.MongooseBulkWriteOptions): Promise; + bulkSave(documents: mongoose.Document[], options?: import("mongodb").BulkWriteOptions & { + timestamps?: boolean; + }): Promise; + collection: mongoose.Collection; + count(callback?: mongoose.Callback): mongoose.Query & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + count(filter: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + countDocuments(filter: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + countDocuments(callback?: mongoose.Callback): mongoose.Query & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + create>(docs: ({ + guild: string; + command: string; + voice: string; + textchannel: string; + } | DocContents)[], options?: mongoose.SaveOptions): Promise<(mongoose.Document & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>; + create>(docs: ({ + guild: string; + command: string; + voice: string; + textchannel: string; + } | DocContents_1)[], options?: mongoose.SaveOptions, callback?: mongoose.Callback<(mongoose.Document & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>): Promise<(mongoose.Document & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>; + create>(docs: ({ + guild: string; + command: string; + voice: string; + textchannel: string; + } | DocContents_2)[], callback: mongoose.Callback<(mongoose.Document & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>): void; + create>(doc: { + guild: string; + command: string; + voice: string; + textchannel: string; + } | DocContents_3): Promise & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>; + create>(...docs: ({ + guild: string; + command: string; + voice: string; + textchannel: string; + } | DocContents_4)[]): Promise<(mongoose.Document & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>; + create>(doc: { + guild: string; + command: string; + voice: string; + textchannel: string; + } | DocContents_5, callback: mongoose.Callback & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>): void; + createCollection(options: import("mongodb").CreateCollectionOptions & Pick, "expires">, callback: mongoose.Callback>): void; + createCollection(callback: mongoose.Callback>): void; + createCollection(options?: import("mongodb").CreateCollectionOptions & Pick, "expires">): Promise>; + db: mongoose.Connection; + deleteMany(filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.CallbackWithoutResult): mongoose.Query & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + deleteMany(filter: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback: mongoose.CallbackWithoutResult): mongoose.Query & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + deleteMany(callback: mongoose.CallbackWithoutResult): mongoose.Query & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + deleteOne(filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.CallbackWithoutResult): mongoose.Query & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + deleteOne(filter: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback: mongoose.CallbackWithoutResult): mongoose.Query & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + deleteOne(callback: mongoose.CallbackWithoutResult): mongoose.Query & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + events: NodeJS.EventEmitter; + findById & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, projection?: mongoose.ProjectionType<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query; + findById & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, projection?: mongoose.ProjectionType<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query; + findOne & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, projection?: mongoose.ProjectionType<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query; + findOne & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, projection?: mongoose.ProjectionType<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query; + findOne & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query; + hydrate(obj: any, projection?: mongoose.AnyObject, options?: { + setters?: boolean; + }): mongoose.Document & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }; + init(callback?: mongoose.CallbackWithoutResult): Promise & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>; + insertMany(docs: ({ + guild: string; + command: string; + voice: string; + textchannel: string; + } | DocContents_6)[], options: mongoose.InsertManyOptions & { + lean: true; + }, callback: mongoose.Callback, { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>[]>): void; + insertMany(docs: ({ + guild: string; + command: string; + voice: string; + textchannel: string; + } | DocContents_7)[], options: mongoose.InsertManyOptions & { + rawResult: true; + }, callback: mongoose.Callback>): void; + insertMany(docs: ({ + guild: string; + command: string; + voice: string; + textchannel: string; + } | DocContents_8)[], callback: mongoose.Callback, { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_9, options: mongoose.InsertManyOptions & { + lean: true; + }, callback: mongoose.Callback, { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>[]>): void; + insertMany(doc: DocContents_10, options: mongoose.InsertManyOptions & { + rawResult: true; + }, callback: mongoose.Callback>): void; + insertMany(doc: DocContents_11, options: mongoose.InsertManyOptions & { + lean?: false; + }, callback: mongoose.Callback, { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_12, callback: mongoose.Callback, { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(docs: ({ + guild: string; + command: string; + voice: string; + textchannel: string; + } | DocContents_13)[], options: mongoose.InsertManyOptions & { + lean: true; + }): Promise, { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>[]>; + insertMany(docs: ({ + guild: string; + command: string; + voice: string; + textchannel: string; + } | DocContents_14)[], options: mongoose.InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(docs: ({ + guild: string; + command: string; + voice: string; + textchannel: string; + } | DocContents_15)[]): Promise, { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_16, options: mongoose.InsertManyOptions & { + lean: true; + }): Promise, { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>[]>; + insertMany(doc: DocContents_17, options: mongoose.InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(doc: DocContents_18, options: mongoose.InsertManyOptions): Promise, { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_19): Promise, { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>; + modelName: string; + populate(docs: any[], options: string | mongoose.PopulateOptions | mongoose.PopulateOptions[], callback?: mongoose.Callback<(mongoose.Document & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>): Promise<(mongoose.Document & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>; + populate(doc: any, options: string | mongoose.PopulateOptions | mongoose.PopulateOptions[], callback?: mongoose.Callback & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>): Promise & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>; + validate(callback?: mongoose.CallbackWithoutResult): Promise; + validate(optional: any, callback?: mongoose.CallbackWithoutResult): Promise; + validate(optional: any, pathsToValidate: mongoose.PathsToValidate, callback?: mongoose.CallbackWithoutResult): Promise; + watch(pipeline?: Record[], options?: import("mongodb").ChangeStreamOptions & { + hydrate?: boolean; + }): import("mongodb").ChangeStream>; + $where(argument: string | Function): mongoose.Query<(mongoose.Document & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + })[], mongoose.Document & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + discriminators: { + [name: string]: mongoose.Model; + }; + translateAliases(raw: any): any; + distinct(field: string, filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + estimatedDocumentCount(options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + exists(filter: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback: mongoose.Callback<{ + _id: mongoose.Types.ObjectId; + }>): mongoose.Query, "_id">, mongoose.Document & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + exists(filter: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>): mongoose.Query<{ + _id: mongoose.Types.ObjectId; + }, mongoose.Document & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + find & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, projection?: mongoose.ProjectionType<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query; + find & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, projection?: mongoose.ProjectionType<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query; + find & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query; + find & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(callback?: mongoose.Callback): mongoose.Query; + findByIdAndDelete & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id?: any, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: (err: NativeError, doc: ResultDoc_9, res: any) => void): mongoose.Query; + findByIdAndRemove & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id?: any, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: (err: NativeError, doc: ResultDoc_10, res: any) => void): mongoose.Query; + findByIdAndUpdate & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, update: mongoose.UpdateQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): mongoose.Query, ResultDoc_11, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + findByIdAndUpdate & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, update: mongoose.UpdateQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }> & { + upsert: true; + } & mongoose.ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_12, res: any) => void): mongoose.Query; + findByIdAndUpdate & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id?: any, update?: mongoose.UpdateQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: (err: NativeError, doc: ResultDoc_13, res: any) => void): mongoose.Query; + findByIdAndUpdate & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, update: mongoose.UpdateQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback: (err: NativeError, doc: ResultDoc_14, res: any) => void): mongoose.Query; + findOneAndDelete & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: (err: NativeError, doc: ResultDoc_15, res: any) => void): mongoose.Query; + findOneAndRemove & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: (err: NativeError, doc: ResultDoc_16, res: any) => void): mongoose.Query; + findOneAndReplace & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, replacement: mongoose.AnyObject | { + guild: string; + command: string; + voice: string; + textchannel: string; + }, options: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): mongoose.Query, ResultDoc_17, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + findOneAndReplace & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, replacement: mongoose.AnyObject | { + guild: string; + command: string; + voice: string; + textchannel: string; + }, options: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }> & { + upsert: true; + } & mongoose.ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_18, res: any) => void): mongoose.Query; + findOneAndReplace & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, replacement?: mongoose.AnyObject | { + guild: string; + command: string; + voice: string; + textchannel: string; + }, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: (err: NativeError, doc: ResultDoc_19, res: any) => void): mongoose.Query; + findOneAndUpdate & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, update: mongoose.UpdateQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): mongoose.Query, ResultDoc_20, {}, { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + findOneAndUpdate & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, update: mongoose.UpdateQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }> & { + upsert: true; + } & mongoose.ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_21, res: any) => void): mongoose.Query; + findOneAndUpdate & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, update?: mongoose.UpdateQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: (err: NativeError, doc: { + guild: string; + command: string; + voice: string; + textchannel: string; + }, res: any) => void): mongoose.Query; + geoSearch & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options?: mongoose.GeoSearchOptions, callback?: mongoose.Callback): mongoose.Query; + mapReduce(o: mongoose.MapReduceOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }, Key, Value>, callback?: mongoose.Callback): Promise; + remove & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: any, callback?: mongoose.CallbackWithoutResult): mongoose.Query; + remove & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: any, options?: mongoose.RemoveOptions, callback?: mongoose.CallbackWithoutResult): mongoose.Query; + replaceOne & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, replacement?: mongoose.AnyObject | { + guild: string; + command: string; + voice: string; + textchannel: string; + }, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query; + schema: mongoose.Schema<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }, mongoose.Model<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }, any, any, any, any>, {}, {}, {}, {}, "type", { + guild: string; + command: string; + voice: string; + textchannel: string; + }>; + update & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, update?: mongoose.UpdateWithAggregationPipeline | mongoose.UpdateQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query; + updateMany & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, update?: mongoose.UpdateWithAggregationPipeline | mongoose.UpdateQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query; + updateOne & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, update?: mongoose.UpdateWithAggregationPipeline | mongoose.UpdateQuery<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }>, callback?: mongoose.Callback): mongoose.Query; + where & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(path: string, val?: any): mongoose.Query; + where & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(obj: object): mongoose.Query; + where & { + guild: string; + command: string; + voice: string; + textchannel: string; + } & { + _id: mongoose.Types.ObjectId; + }>(): mongoose.Query; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + command: string; + voice: string; + textchannel: string; + }>>; + on(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + command: string; + voice: string; + textchannel: string; + }>>; + once(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + command: string; + voice: string; + textchannel: string; + }>>; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + command: string; + voice: string; + textchannel: string; + }>>; + off(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + command: string; + voice: string; + textchannel: string; + }>>; + removeAllListeners(event?: string | symbol): mongoose.Model<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + command: string; + voice: string; + textchannel: string; + }>>; + setMaxListeners(n: number): mongoose.Model<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + command: string; + voice: string; + textchannel: string; + }>>; + getMaxListeners(): number; + listeners(eventName: string | symbol): Function[]; + rawListeners(eventName: string | symbol): Function[]; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount(eventName: string | symbol): number; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + command: string; + voice: string; + textchannel: string; + }>>; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + guild: string; + command: string; + voice: string; + textchannel: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + command: string; + voice: string; + textchannel: string; + }>>; + eventNames(): (string | symbol)[]; + discriminator(name: string | number, schema: mongoose.Schema, {}, {}, {}, {}, "type", { + [x: string]: any; + }>, value?: string | number | mongoose.Schema.Types.ObjectId | mongoose.DiscriminatorOptions): mongoose.Model; + discriminator(name: string | number, schema: mongoose.Schema>, value?: string | number | mongoose.Schema.Types.ObjectId | mongoose.DiscriminatorOptions): U; + createIndexes(options: import("mongodb").CreateIndexesOptions, callback: mongoose.CallbackWithoutResult): void; + createIndexes(callback: mongoose.CallbackWithoutResult): void; + createIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + diffIndexes(options: Record, callback: mongoose.Callback): void; + diffIndexes(callback: mongoose.Callback): void; + diffIndexes(options?: Record): Promise; + ensureIndexes(options: import("mongodb").CreateIndexesOptions, callback: mongoose.CallbackWithoutResult): void; + ensureIndexes(callback: mongoose.CallbackWithoutResult): void; + ensureIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + listIndexes(callback: mongoose.Callback): void; + listIndexes(): Promise; + syncIndexes(options: mongoose.SyncIndexesOptions, callback: mongoose.Callback): void; + syncIndexes(options?: mongoose.SyncIndexesOptions): Promise; + startSession(options: import("mongodb").ClientSessionOptions, callback: mongoose.Callback): void; + startSession(callback: mongoose.Callback): void; + startSession(options?: import("mongodb").ClientSessionOptions): Promise; + get: (callback: any, limit: any) => void; +}; +export = _exports; +export function get(callback: any, limit: any): void; +import mongoose = require("mongoose"); +//# sourceMappingURL=mcommands.d.ts.map \ No newline at end of file diff --git a/dist/models/mcommands.d.ts.map b/dist/models/mcommands.d.ts.map new file mode 100644 index 0000000..2b62c91 --- /dev/null +++ b/dist/models/mcommands.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mcommands.d.ts","sourceRoot":"","sources":["../../models/mcommands.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBqB,qDAGpB"} \ No newline at end of file diff --git a/dist/models/queue.d.ts b/dist/models/queue.d.ts new file mode 100644 index 0000000..0aa43ae --- /dev/null +++ b/dist/models/queue.d.ts @@ -0,0 +1,3001 @@ +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +declare const _exports: { + new (doc?: DocType, fields?: any, options?: boolean | mongoose.AnyObject): mongoose.Document & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }; + aggregate(pipeline?: mongoose.PipelineStage[], options?: import("mongodb").AggregateOptions, callback?: mongoose.Callback): mongoose.Aggregate; + aggregate(pipeline: mongoose.PipelineStage[], callback?: mongoose.Callback): mongoose.Aggregate; + base: typeof mongoose; + baseModelName: string; + castObject(obj: mongoose.AnyObject, options?: { + ignoreCastErrors?: boolean; + }): { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>[], options: import("mongodb").BulkWriteOptions & mongoose.MongooseBulkWriteOptions, callback: mongoose.Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>[], callback: mongoose.Callback): void; + bulkWrite(writes: import("mongodb").AnyBulkWriteOperation<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>[], options?: import("mongodb").BulkWriteOptions & mongoose.MongooseBulkWriteOptions): Promise; + bulkSave(documents: mongoose.Document[], options?: import("mongodb").BulkWriteOptions & { + timestamps?: boolean; + }): Promise; + collection: mongoose.Collection; + count(callback?: mongoose.Callback): mongoose.Query & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + count(filter: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + countDocuments(filter: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + countDocuments(callback?: mongoose.Callback): mongoose.Query & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + create>(docs: ({ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } | DocContents)[], options?: mongoose.SaveOptions): Promise<(mongoose.Document & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>; + create>(docs: ({ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } | DocContents_1)[], options?: mongoose.SaveOptions, callback?: mongoose.Callback<(mongoose.Document & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>): Promise<(mongoose.Document & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>; + create>(docs: ({ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } | DocContents_2)[], callback: mongoose.Callback<(mongoose.Document & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>): void; + create>(doc: { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } | DocContents_3): Promise & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>; + create>(...docs: ({ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } | DocContents_4)[]): Promise<(mongoose.Document & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>; + create>(doc: { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } | DocContents_5, callback: mongoose.Callback & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>): void; + createCollection(options: import("mongodb").CreateCollectionOptions & Pick, "expires">, callback: mongoose.Callback>): void; + createCollection(callback: mongoose.Callback>): void; + createCollection(options?: import("mongodb").CreateCollectionOptions & Pick, "expires">): Promise>; + db: mongoose.Connection; + deleteMany(filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.CallbackWithoutResult): mongoose.Query & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + deleteMany(filter: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback: mongoose.CallbackWithoutResult): mongoose.Query & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + deleteMany(callback: mongoose.CallbackWithoutResult): mongoose.Query & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + deleteOne(filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.CallbackWithoutResult): mongoose.Query & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + deleteOne(filter: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback: mongoose.CallbackWithoutResult): mongoose.Query & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + deleteOne(callback: mongoose.CallbackWithoutResult): mongoose.Query & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + events: NodeJS.EventEmitter; + findById & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, projection?: mongoose.ProjectionType<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + findById & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, projection?: mongoose.ProjectionType<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + findOne & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, projection?: mongoose.ProjectionType<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + findOne & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, projection?: mongoose.ProjectionType<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + findOne & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + hydrate(obj: any, projection?: mongoose.AnyObject, options?: { + setters?: boolean; + }): mongoose.Document & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }; + init(callback?: mongoose.CallbackWithoutResult): Promise & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>; + insertMany(docs: ({ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } | DocContents_6)[], options: mongoose.InsertManyOptions & { + lean: true; + }, callback: mongoose.Callback, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>[]>): void; + insertMany(docs: ({ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } | DocContents_7)[], options: mongoose.InsertManyOptions & { + rawResult: true; + }, callback: mongoose.Callback>): void; + insertMany(docs: ({ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } | DocContents_8)[], callback: mongoose.Callback, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_9, options: mongoose.InsertManyOptions & { + lean: true; + }, callback: mongoose.Callback, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>[]>): void; + insertMany(doc: DocContents_10, options: mongoose.InsertManyOptions & { + rawResult: true; + }, callback: mongoose.Callback>): void; + insertMany(doc: DocContents_11, options: mongoose.InsertManyOptions & { + lean?: false; + }, callback: mongoose.Callback, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(doc: DocContents_12, callback: mongoose.Callback, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>): void; + insertMany(docs: ({ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } | DocContents_13)[], options: mongoose.InsertManyOptions & { + lean: true; + }): Promise, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>[]>; + insertMany(docs: ({ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } | DocContents_14)[], options: mongoose.InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(docs: ({ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } | DocContents_15)[]): Promise, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_16, options: mongoose.InsertManyOptions & { + lean: true; + }): Promise, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>[]>; + insertMany(doc: DocContents_17, options: mongoose.InsertManyOptions & { + rawResult: true; + }): Promise>; + insertMany(doc: DocContents_18, options: mongoose.InsertManyOptions): Promise, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>; + insertMany(doc: DocContents_19): Promise, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>, {}, {}>[]>; + modelName: string; + populate(docs: any[], options: string | mongoose.PopulateOptions | mongoose.PopulateOptions[], callback?: mongoose.Callback<(mongoose.Document & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>): Promise<(mongoose.Document & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + })[]>; + populate(doc: any, options: string | mongoose.PopulateOptions | mongoose.PopulateOptions[], callback?: mongoose.Callback & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>): Promise & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>; + validate(callback?: mongoose.CallbackWithoutResult): Promise; + validate(optional: any, callback?: mongoose.CallbackWithoutResult): Promise; + validate(optional: any, pathsToValidate: mongoose.PathsToValidate, callback?: mongoose.CallbackWithoutResult): Promise; + watch(pipeline?: Record[], options?: import("mongodb").ChangeStreamOptions & { + hydrate?: boolean; + }): import("mongodb").ChangeStream>; + $where(argument: string | Function): mongoose.Query<(mongoose.Document & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + })[], mongoose.Document & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + discriminators: { + [name: string]: mongoose.Model; + }; + translateAliases(raw: any): any; + distinct(field: string, filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + estimatedDocumentCount(options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + exists(filter: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback: mongoose.Callback<{ + _id: mongoose.Types.ObjectId; + }>): mongoose.Query, "_id">, mongoose.Document & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + exists(filter: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>): mongoose.Query<{ + _id: mongoose.Types.ObjectId; + }, mongoose.Document & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + find & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, projection?: mongoose.ProjectionType<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + find & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, projection?: mongoose.ProjectionType<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + find & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + find & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(callback?: mongoose.Callback): mongoose.Query; + findByIdAndDelete & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id?: any, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_9, res: any) => void): mongoose.Query; + findByIdAndRemove & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id?: any, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_10, res: any) => void): mongoose.Query; + findByIdAndUpdate & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, update: mongoose.UpdateQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): mongoose.Query, ResultDoc_11, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + findByIdAndUpdate & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, update: mongoose.UpdateQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }> & { + upsert: true; + } & mongoose.ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_12, res: any) => void): mongoose.Query; + findByIdAndUpdate & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id?: any, update?: mongoose.UpdateQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_13, res: any) => void): mongoose.Query; + findByIdAndUpdate & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(id: any, update: mongoose.UpdateQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback: (err: NativeError, doc: ResultDoc_14, res: any) => void): mongoose.Query; + findOneAndDelete & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_15, res: any) => void): mongoose.Query; + findOneAndRemove & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_16, res: any) => void): mongoose.Query; + findOneAndReplace & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, replacement: mongoose.AnyObject | { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, options: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): mongoose.Query, ResultDoc_17, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + findOneAndReplace & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, replacement: mongoose.AnyObject | { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, options: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }> & { + upsert: true; + } & mongoose.ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_18, res: any) => void): mongoose.Query; + findOneAndReplace & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, replacement?: mongoose.AnyObject | { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: (err: NativeError, doc: ResultDoc_19, res: any) => void): mongoose.Query; + findOneAndUpdate & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, update: mongoose.UpdateQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }> & { + rawResult: true; + }, callback?: (err: NativeError, doc: any, res: any) => void): mongoose.Query, ResultDoc_20, {}, { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + findOneAndUpdate & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, update: mongoose.UpdateQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }> & { + upsert: true; + } & mongoose.ReturnsNewDoc, callback?: (err: NativeError, doc: ResultDoc_21, res: any) => void): mongoose.Query; + findOneAndUpdate & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, update?: mongoose.UpdateQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: (err: NativeError, doc: { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, res: any) => void): mongoose.Query; + geoSearch & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options?: mongoose.GeoSearchOptions, callback?: mongoose.Callback): mongoose.Query; + mapReduce(o: mongoose.MapReduceOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, Key, Value>, callback?: mongoose.Callback): Promise; + remove & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: any, callback?: mongoose.CallbackWithoutResult): mongoose.Query; + remove & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: any, options?: mongoose.RemoveOptions, callback?: mongoose.CallbackWithoutResult): mongoose.Query; + replaceOne & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, replacement?: mongoose.AnyObject | { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + schema: mongoose.Schema<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, mongoose.Model<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, any, any, any, any>, {}, {}, {}, {}, "type", { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>; + update & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, update?: mongoose.UpdateWithAggregationPipeline | mongoose.UpdateQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + updateMany & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, update?: mongoose.UpdateWithAggregationPipeline | mongoose.UpdateQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + updateOne & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(filter?: mongoose.FilterQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, update?: mongoose.UpdateWithAggregationPipeline | mongoose.UpdateQuery<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, options?: mongoose.QueryOptions<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>, callback?: mongoose.Callback): mongoose.Query; + where & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(path: string, val?: any): mongoose.Query; + where & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(obj: object): mongoose.Query; + where & { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + } & { + _id: mongoose.Types.ObjectId; + }>(): mongoose.Query; + addListener(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>>; + on(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>>; + once(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>>; + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>>; + off(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>>; + removeAllListeners(event?: string | symbol): mongoose.Model<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>>; + setMaxListeners(n: number): mongoose.Model<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>>; + getMaxListeners(): number; + listeners(eventName: string | symbol): Function[]; + rawListeners(eventName: string | symbol): Function[]; + emit(eventName: string | symbol, ...args: any[]): boolean; + listenerCount(eventName: string | symbol): number; + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>>; + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): mongoose.Model<{ + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }, {}, {}, {}, mongoose.Schema, {}, {}, {}, {}, "type", { + guild: string; + voice: string; + songname: string; + songtime: string; + songURL: string; + textchannel: string; + requester?: string; + }>>; + eventNames(): (string | symbol)[]; + discriminator(name: string | number, schema: mongoose.Schema, {}, {}, {}, {}, "type", { + [x: string]: any; + }>, value?: string | number | mongoose.Schema.Types.ObjectId | mongoose.DiscriminatorOptions): mongoose.Model; + discriminator(name: string | number, schema: mongoose.Schema>, value?: string | number | mongoose.Schema.Types.ObjectId | mongoose.DiscriminatorOptions): U; + createIndexes(options: import("mongodb").CreateIndexesOptions, callback: mongoose.CallbackWithoutResult): void; + createIndexes(callback: mongoose.CallbackWithoutResult): void; + createIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + diffIndexes(options: Record, callback: mongoose.Callback): void; + diffIndexes(callback: mongoose.Callback): void; + diffIndexes(options?: Record): Promise; + ensureIndexes(options: import("mongodb").CreateIndexesOptions, callback: mongoose.CallbackWithoutResult): void; + ensureIndexes(callback: mongoose.CallbackWithoutResult): void; + ensureIndexes(options?: import("mongodb").CreateIndexesOptions): Promise; + listIndexes(callback: mongoose.Callback): void; + listIndexes(): Promise; + syncIndexes(options: mongoose.SyncIndexesOptions, callback: mongoose.Callback): void; + syncIndexes(options?: mongoose.SyncIndexesOptions): Promise; + startSession(options: import("mongodb").ClientSessionOptions, callback: mongoose.Callback): void; + startSession(callback: mongoose.Callback): void; + startSession(options?: import("mongodb").ClientSessionOptions): Promise; + get: (callback: any, limit: any) => void; +}; +export = _exports; +export function get(callback: any, limit: any): void; +import mongoose = require("mongoose"); +//# sourceMappingURL=queue.d.ts.map \ No newline at end of file diff --git a/dist/models/queue.d.ts.map b/dist/models/queue.d.ts.map new file mode 100644 index 0000000..468a4c1 --- /dev/null +++ b/dist/models/queue.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../models/queue.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBqB,qDAGpB"} \ No newline at end of file diff --git a/dist/musicWorker.d.ts b/dist/musicWorker.d.ts new file mode 100644 index 0000000..6715d6a --- /dev/null +++ b/dist/musicWorker.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=musicWorker.d.ts.map \ No newline at end of file diff --git a/dist/musicWorker.d.ts.map b/dist/musicWorker.d.ts.map new file mode 100644 index 0000000..37578de --- /dev/null +++ b/dist/musicWorker.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"musicWorker.d.ts","sourceRoot":"","sources":["../musicWorker.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/routes/routes.d.ts b/dist/routes/routes.d.ts new file mode 100644 index 0000000..3c07e32 --- /dev/null +++ b/dist/routes/routes.d.ts @@ -0,0 +1,3 @@ +declare function _exports(io: any): any; +export = _exports; +//# sourceMappingURL=routes.d.ts.map \ No newline at end of file diff --git a/dist/routes/routes.d.ts.map b/dist/routes/routes.d.ts.map new file mode 100644 index 0000000..eacf1d8 --- /dev/null +++ b/dist/routes/routes.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../routes/routes.js"],"names":[],"mappings":"AAGiB,wCAKhB"} \ No newline at end of file diff --git a/dist/rustCommitsWorker.d.ts b/dist/rustCommitsWorker.d.ts new file mode 100644 index 0000000..2f3980a --- /dev/null +++ b/dist/rustCommitsWorker.d.ts @@ -0,0 +1 @@ +//# sourceMappingURL=rustCommitsWorker.d.ts.map \ No newline at end of file diff --git a/dist/rustCommitsWorker.d.ts.map b/dist/rustCommitsWorker.d.ts.map new file mode 100644 index 0000000..7a87830 --- /dev/null +++ b/dist/rustCommitsWorker.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"rustCommitsWorker.d.ts","sourceRoot":"","sources":["../rustCommitsWorker.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/server.d.ts b/dist/server.d.ts new file mode 100644 index 0000000..21e3405 --- /dev/null +++ b/dist/server.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=server.d.ts.map \ No newline at end of file diff --git a/dist/server.d.ts.map b/dist/server.d.ts.map new file mode 100644 index 0000000..bcb65ff --- /dev/null +++ b/dist/server.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../server.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/test.d.ts b/dist/test.d.ts new file mode 100644 index 0000000..9bcc471 --- /dev/null +++ b/dist/test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=test.d.ts.map \ No newline at end of file diff --git a/dist/test.d.ts.map b/dist/test.d.ts.map new file mode 100644 index 0000000..960309d --- /dev/null +++ b/dist/test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../test.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..172c8a2 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6" + }, + "exclude": ["node_modules", "**/node_modules/*", "**/dist/**"] +} \ No newline at end of file diff --git a/lib.js b/lib.js new file mode 100644 index 0000000..ce530fd --- /dev/null +++ b/lib.js @@ -0,0 +1,880 @@ +const path = require('path'); +const find = require('findit'); +const {Client,ClientOptions,GatewayIntentBits,Message, Partials, ActivityType,EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('discord.js') +const roleRulesM = require('./models/autoRoleRule'); +module.exports.GatewayIntentBits = GatewayIntentBits; +module.exports.Partials = Partials; +module.exports.ActivityType = ActivityType; +module.exports.EmbedBuilder = EmbedBuilder; +module.exports.ActionRowBuilder = ActionRowBuilder; +module.exports.ButtonBuilder = ButtonBuilder; +module.exports.ButtonStyle = ButtonStyle; +module.exports.Message = Message; + +//@ts-check +class CommandOptions +{ + /** + * + * @param {String} name + * @param {String[]} aliases + * @param {String} description + * @param {Boolean} needsAdmin + * @param {Boolean} hidden + */ + constructor (name, aliases, description, needsAdmin, hidden) + { + this.name = name; + this.aliases = aliases; + this.description = description; + this.needsAdmin = needsAdmin; + this.hidden = hidden; + } +} +class command +{ + /** + * @param {_Client} client extends discord.js.Client + * @param {CommandOptions} options extends Lib.Options + */ + constructor(client, options) + { + this.name = options.name; + this.aliases = options.aliases; + this.description = options.description; + this.needsAdmin =options.needsAdmin; + this.hidden = options.hidden; + this.client = client; + } +}module.exports.Command = command; + +// const {func}=require('lib.d.ts'); +// func('string'); + +class _Client extends Client +{ + /** + * + * @param {ClientOptions} options + */ + commands = new Map(); + constructor(options) + { + super(options) + let finder = find(path.resolve('commands')); + finder.on('file', file=> + { + let command = require(file); + if(typeof command === 'function') + { + let c = new command(this); + this.commands.set(c.name,{ + needsAdmin: c.needsAdmin?c.needsAdmin:false, + command: command, + }); + if(c.aliases) + { + for(var i =0; i + { + this.enableCommands(); + }) + this.RoleSetter(); + this.rustCommits = new rustCommits(this); + this.freegames = new FreeGames(this); + this.strikes = new Strikes(this); + this.on('disconnect', (event) => { + // Log a message to the console + console.log(`Client disconnected: ${event.reason}`); + }); + + // Register an event listener for the 'reconnecting' event + this.on('reconnecting', () => { + // Log a message to the console + console.log('Client is reconnecting...'); + }); + + } + /** + * Register a group of commands under the folder commands + * @param {String} name - Name of the group. + * @param {String} folderName - Name of the folder. + */ + async enableCommands() + { + //use needs admin here!!!! + this.on("messageCreate", message=> + { + if(message.content.startsWith('!')) + { + let commandName=message.content.split('!')[1].split(' ')[0]; + let args = message.content.split(`!${commandName}`)[1].split(' '); + args = args.filter(n=>n); + if(this.commands.get(commandName)) + { + let needsAdmin = this.commands.get(commandName).needsAdmin; + let isAdmin = this.guilds.cache.get(message.guild.id).members.cache.get(message.author.id).permissions.has('ADMINISTRATOR'); + let command = this.commands.get(commandName).command + if((needsAdmin && isAdmin) || !needsAdmin) return new command(this).run(message, args); + } + new ErrorMessage(this).send(ErrorType.NotOnTheList,message) + } + }) + } + /** + * + * @param {String} name - Command Name + * @returns {command} + */ + async RoleSetter () + { + this.on('messageReactionAdd', (reaction, user)=> + { + (async ()=> + { + const rule = await roleRulesM.findOne({mID:reaction.message.id,roleEmoji:reaction._emoji.id}).then(rule =>{return rule}).catch(err=>{return null}) + if(rule) + { + console.log(`RoleAssignment: Guild:${this.guilds.cache.get(rule.gID)} Role ${rule.roleName} given to ${user.username}`) + this.channels.cache.get(reaction.message.channelId).members.get(user.id).roles.add(rule.roleID) + } + })() + }) + this.on('messageReactionRemove', (reaction, user)=> + { + (async ()=> + { + const rule = await roleRulesM.findOne({mID:reaction.message.id,roleEmoji:reaction._emoji.id}).then(rule =>{return rule}).catch(err=>{return null}) + if(rule) + { + console.log(`RoleAssignment: Guild:${this.guilds.cache.get(rule.gID)}: Removing, ${user.username}'s ${rule.roleName} role. `) + this.channels.cache.get(reaction.message.channelId).members.get(user.id).roles.remove(rule.roleID) + } + })() + }) + } + +}module.exports.Client = _Client; +const ErrorType = +{ + Permissions: "Permissions", + Arguments: "Arguments", + NoArguments: "No Arguments Given", + NotOnTheList: "Unknown Command", + OldMessages: "Can't delete this messages." +} +module.exports.ErrorType = ErrorType; + +class Channel +{ + /** + * + * @param {String} channelID + */ + constructor(channelID) + { + this.channel = channelID; + } + +} + +module.exports.Channel = Channel; +/** + * + * @param {Number} length + * @returns {String} + */ +function Random(length) +{ + length?length:length=5; + var result = ''; + var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + var charactersLength = characters.length; + for ( var i = 0; i < length; i++ ) { + result += characters.charAt(Math.floor(Math.random() * charactersLength)); + } + return result; +}module.exports.Random = Random; + +class ErrorMessage +{ + /** + * @param {_Client} client + */ + constructor(client) + { + this.client = client; + } + /** + * + * @param {ErrorType} errorType + * @param {Message} message + * @param {[... String]} extraMessages + */ + + async send(errorType,message, extraMessages) + { + console.log('Sending Error Message') + if (!message.channel.id) return; + const embed = new EmbedBuilder() + .setColor(0x4d0000) + .setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + .setTimestamp() + .setFooter({text:'Rem-chan on ', iconURL:"https://i.imgur.com/g6FSNhL.png"}) + .addFields({name: 'Error:', value: 'something'}) + .addFields({name: 'Try:', value: 'something'}); + + switch (errorType) { + case ErrorType.Arguments: + embed.data.fields[0].value =ErrorType.Arguments; + embed.data.fields[1].value = 'Verify the arguments provided.' + break; + case ErrorType.NoArguments: + embed.data.fields[0].value =ErrorType.NoArguments; + embed.data.fields[1].value = 'Provide the required arguments for this command.' + break; + case ErrorType.Permissions: + embed.data.fields[0].value =ErrorType.Permissions; + embed.data.fields[1].value = 'Ask this servers administrator to use the command.' + break; + case ErrorType.NotOnTheList: + embed.data.fields[0].value =ErrorType.NotOnTheList; + embed.data.fields[1].value = 'Use !help for the list of available.' + break; + case ErrorType.OldMessages: + embed.data.fields[0].value =ErrorType.OldMessages; + break; + default: + break; + } + if(extraMessages) + { + for(var i = 0; i i.customId === randomID; + + const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 }); + + collector.on('collect', async m => + { + message.delete().then(()=>m.message.delete()) + .catch(()=>m.message.delete()); + }); + } + +}module.exports.ErrorMessage = ErrorMessage; + +/** + * AniList Client -> Search Functions + */ +class AnimeInfo +{ + /** + * + * @param {String} title + * @param {String} status + * @param {String} episodes + * @param {String} trailer + * @param {String} description + * @param {String} coverImage + */ + constructor(title, status, episodes, trailer, description, coverImage) + { + this.title = title; + this.status = status; + this.episodes=episodes; + this.trailer = trailer; + this.description = description; + this.coverImage = coverImage; + } +} +class CharInfo +{ + /** + * + * @param {String} name + * @param {String} gender + * @param {String} image + * @param {String} description + */ + constructor(name, gender, image, description) + { + this.name = name; + this.gender = gender; + this.image=image; + this.description = description; + } +} +class MangaInfo +{ + /** + * + * @param {String} title + * @param {String} status + * @param {String} description + * @param {String} coverImage + */ + constructor(title, status, description, coverImage) + { + this.title = title; + this.status = status; + this.description = description; + this.coverImage = coverImage; + } +} + +class aniListCli { + /** + * + * @param {String} ss - Search Query + * @returns {AnimeInfo} + */ + async searchAnime(ss) + { + + var variables = { + ss + }; + var query = `query ($ss: String) { + Media(search:$ss,type: ANIME) { + id + title { + romaji + english + native + } + status + episodes + trailer { + site + id + } + description(asHtml:false) + coverImage { + large + } + } + }`; + var url = ``+'https://graphql.anilist.co', + options = { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }, + body: JSON.stringify({ + query, + variables + }) + }; + return await fetch(url, options).then(handleResponse) + .then(handleData) + .catch(handleError); + function handleResponse(response) + { + return response.json().then(function (json) + { + return response.ok ? json : Promise.reject(json); + }); + } + function handleError(error) { + return error; + } + function handleData(data) { + return { + title:data.data.Media.title, + status:data.data.Media.status, + episodes:data.data.Media.episodes, + trailer:data.data.Media.trailer, + description:data.data.Media.description, + coverImage:data.data.Media.coverImage.large + } + } + + } + /** + * + * @param {String} ss - Search Query + * @returns {CharInfo} + */ + async searchChar(ss) + { + + var variables = { + ss + }; + var query = `query ($ss: String) { + Character(search: $ss, sort:SEARCH_MATCH) { + id + name { + full + native + } + gender + image { + medium + } + description(asHtml:false) + } + } + `; + var url = 'https://graphql.anilist.co', + options = { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }, + body: JSON.stringify({ + query, + variables + }) + }; + return await fetch(url, options).then(handleResponse) + .then(handleData) + .catch(handleError); + function handleResponse(response) + { + return response.json().then(function (json) + { + return response.ok ? json : Promise.reject(json); + }); + } + function handleError(error) { + return error; + } + function handleData(data) { + return { + name:data.data.Character.name, + gender:data.data.Character.gender, + image:data.data.Character.image.medium, + description:data.data.Character.description, + } + } + + } + /** + * + * @param {String} ss - Search Query + * @returns {MangaInfo} + */ + async searchManga(ss) + { + + var variables = { + ss + }; + var query = `query ($ss: String) { + Media(search: $ss, type: MANGA) { + title { + romaji + english + native + } + status + description(asHtml: false) + coverImage { + large + } + } + } + `; + var url = 'https://graphql.anilist.co', + options = { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }, + body: JSON.stringify({ + query, + variables + }) + }; + return await fetch(url, options).then(handleResponse) + .then(handleData) + .catch(handleError); + function handleResponse(response) + { + return response.json().then(function (json) + { + return response.ok ? json : Promise.reject(json); + }); + } + function handleError(error) { + return error; + } + function handleData(data) { + return { + title:data.data.Media.title, + status:data.data.Media.status, + description:data.data.Media.description, + coverImage:data.data.Media.coverImage.large + } + } + + } + +}module.exports.aniList = aniListCli; + +const channelM = require('./models/channels'); + +class rustCommits +{ + /** + * + * @param {_Client} client + */ + constructor(client) + { + this.client = client; + this.update(); + setInterval(() => { + this.update(); + }, 3*60*1000); + this.channels; + } + async update () + { + const channels = await channelM.find({for:'rust'}).then(channels=>{return channels}); + this.channels = await this.resolveChannels(channels); + const Res = await fetch("https://commits.facepunch.com/?format=json").then(handleResponse) + .then(handleData) + .catch(handleError); + function handleResponse(response) + { + return response.json().then(function (json) + { + return response.ok ? json : Promise.reject(json); + }); + } + function handleError(error) { + return error; + } + function handleData(data) { + data.results.splice(30, 20); + return data.results.filter(x=>x.repo.search(/rust/i)!=-1) + } + + for(var j = 0; j e.id).indexOf(this.channels[j].lastid); + Res.splice(Pos, Res.length-Pos); + for(var i = Res.length-1; i>0; i--) + { + if(Res[i].id > this.channels[j].lastid) + { + send( + { + + Author:Res[i].user.name, + Avatar:Res[i].user.avatar, + Time:Res[i].created.split("T")[1]+ " of "+ Res[i].created.split("T")[0], + Content:Res[i].message, + ID:Res[i].id, + Repo:Res[i].repo, + Branch:Res[i].branch + }, this.channels[j].cID, this.client); + } + } + } + /** + * + * @param {RustCommit} commit + * @param {Channel} channel + */ + function send(commit, channel, client) + { + client.channels.cache.get(channel).send({embeds:[ + new EmbedBuilder() + .setColor(0xc23811) + .setTitle(commit.Time) + .setURL('https://commits.facepunch.com') + .setAuthor({name:commit.Author, iconURL:commit.Avatar==''?"https://i.imgur.com/g6FSNhL.png":commit.Avatar,url:`https://commits.facepunch.com/${commit.Author.split(' ').join('')}`}) + .setDescription(commit.Content) + .addFields( + { name:`${commit.Repo}`, value:`[${commit.Repo}/${commit.Branch}](https://commits.facepunch.com/r/${commit.Repo}/${commit.Branch}/ 'Branch Link')`}, + { name: 'ID', value: commit.ID.toString() }, + ) + .setTimestamp() + .setFooter({text:'Rem-chan on ', iconURL:"https://i.imgur.com/g6FSNhL.png"}) + ]}); + } + + } + /** + * + * @param {channelM} channels + */ + async resolveChannels(channels) + { + for await(var channel of channels ) + { + if(this.client.channels.cache.get(channel.cID)) + { + const Channel = this.client.channels.cache.get(channel.cID) + const lastid = await Channel.messages.fetch({limit:1}).then(message=> + { + if(!message) return 0 + const [content] = message.values(); + if(!content||!content.embeds||!content.embeds.length>0) return 0; + return parseInt(content.embeds[0].fields[1].value) + }) + channel.lastid = lastid; + } + } + return channels; + } +} +class RustCommit +{ + /** + * + * @param {String} Author + * @param {String} Avatar - IMAGE URL + * @param {String} Time + * @param {String} Content + * @param {Number} ID + * @param {String} Repo + * @param {String} Branch + */ + constructor(Author, Avatar, Time, Content, ID, Repo, Branch) + { + this.Author = Author + this.Avatar = Avatar + this.Time = Time + this.Content = Content + this.ID = ID + this.Repo = Repo + this.Branch = Branch + } +} +class FreeGames +{ + /** + * + * @param {_Client} client + */ + constructor(client) + { + this.client = client; + this.update() + setTimeout(() => { + this.update(); + }, 3*60*1000); + } + async update() + { + const channels = await channelM.find({for:'freegames'}).then(channels=>{return channels}); + this.channels = await this.resolveChannels(channels); + + const Res = await fetch('https://www.gamerpower.com/api/giveaways').then(handleResponse) + .then(handleData) + .catch(handleError); + function handleResponse(response) + { + return response.json().then(function (json) + { + return response.ok ? json : Promise.reject(json); + }); + } + function handleError(error) { + return error; + } + function handleData(data) { + data.splice(10, data.length-10); + return data + } + for(var j = 0; j e.id).indexOf(this.channels[j].lastid); + Res.splice(Pos, Res.length-Pos) + + for(var i = Res.length-1; i>0; i--) + { + if(Res[i].id > this.channels[j].lastid) + { + send( + { + ID:Res[i].id, // + Title:Res[i].title, // + Type:Res[i].type, // + Thumb:Res[i].thumbnail, // + Image:Res[i].image, // + Description:Res[i].description, // + Instructions:Res[i].instructions,// + URL:Res[i].open_giveaway_url,// + Platform:Res[i].platforms,// + EndDate:Res[i].end_date, + + }, this.channels[j].cID, this.client); + } + } + } + /** + * + * @param {FreeGameModel} game + * @param {Channel} channel + */ + function send(game, channel, client) + { + client.channels.cache.get(channel).send({embeds:[ + new EmbedBuilder() + .setColor(0x2d9134) + .setURL(game.URL) + .setTitle(game.Title) + .setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}) + .setDescription(game.Description) + .setImage(game.Image) + .setThumbnail(game.Thumb) + .addFields( + { name: 'Platforms', value: game.Platform}, + { name: 'Type of offer:', value: game.Type}, + { name:'Instructions:', value:game.Instructions}, + { name:`End date:`, value:`${game.EndDate}`}, + ) + .setTimestamp() + .setFooter({text:`(${game.ID}) Rem-chan on `, iconURL:"https://i.imgur.com/g6FSNhL.png"}) + ]}); + } + } + /** + * + * @param {channelM} channels + */ + async resolveChannels(channels) + { + for await(var channel of channels ) + { + if(this.client.channels.cache.get(channel.cID)) + { + const Channel = this.client.channels.cache.get(channel.cID) + const lastid = await Channel.messages.fetch({limit:1}).then(message=> + { + if(!message) return 0 + const [content] = message.values(); + if(!content||!content.embeds||!content.embeds.length>0) return 0; + return parseInt(content.embeds[0].footer.text.split('(')[1].split(')')[0]) + }) + channel.lastid = lastid; + } + } + return channels; + } +} + +class FreeGameModel +{ + /** + * @param {String} ID + * @param {String} Title + * @param {String} Thumb + * @param {String} Type + * @param {String} Image + * @param {String} Description + * @param {String} Instructions + * @param {String} URL + * @param {String} Platform + * @param {Date} EndDate + */ + constructor(ID, Title, Thumb,Type, Image, Description, Instructions, URL, Platform, EndDate) + { + this.ID = ID; + this.Title = Title; + this.Type = Type; + this.Thumb = Thumb; + this.Image = Image; + this.Description = Description; + this.Instructions = Instructions; + this.URL = URL; + this.Platform = Platform; + this.EndDate = EndDate; + } +} +const strikesM = require('./models/strikes'); +const guildsM = require('./models/guilds'); +class Strikes +{ + constructor(client) + { + this.client = client; + this.check(); + setInterval(() => { + this.check(); + }, 5*60*1000); + + //TODO: Handle old strikes + //* Strikes life time should be difined by guild + //* A default should be set + //? 15 days + + } + async check() + { + const Strikes = await strikesM.find().then(s=>{return s}); + //console.log(Strikes); + const guilds = await guildsM.find({strikes:true}).then(g=>{return g}); + if(!guilds) return console.log('Striker: No Guilds') + var guildIds = []; + for(var i = 0; i { + return guildIds.indexOf(e.guildID)>=0; + } + ) + guildIds.forEach(guild=> + { + filtered.forEach(strike=> + { + (async (guild, strike)=> + { + const ammount = await strikesM.find({guildID:guild, strokedID:strike.strokedID}).then(res=>{return res.length}); + if(ammount>2) + { + this.handleStroked(strike.strokedID, guild); + } + })(guild, strike) + }) + }) + } + handleStroked(user, guild) + { + strikesM.deleteMany({ guildID: guild, strokedID: user }, (err, res) => { + if (!err) return console.log('Strikes Deleted') + }); + // If the user is found, kick them from the server + const member = this.client.guilds.cache.get(guild).members.cache.get(user); + if (!member) return console.log('Strikes: Handle Strikened: Member not valid') + console.log(member.user.username) + member.kick('Optional reason that will be displayed in the audit logs') + .then(() => console.log(`Successfully kicked ${user.user.username}`)) + .catch(err => console.log(`Unable to kick ${user.user.username}: ${err}`)); + } +} \ No newline at end of file diff --git a/models/autoRoleRule.js b/models/autoRoleRule.js new file mode 100644 index 0000000..77fe068 --- /dev/null +++ b/models/autoRoleRule.js @@ -0,0 +1,23 @@ +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + +let rolerule = +new Schema( + { + gID: {type: String, required: false, max: 100}, + cID: {type: String, required: false, max: 100}, + mID: {type:String, required: true,}, + roleID:{type:String, required: true}, + roleEmoji:{type:String, required:true}, + roleName:{type:String, required: true}, + } +); + + + + +const RoleRule = module.exports = mongoose.model('roleRule', rolerule); +module.exports.get = (callback, limit)=> +{ + RoleRule.find(callback).limit(limit); +} \ No newline at end of file diff --git a/models/channels.js b/models/channels.js new file mode 100644 index 0000000..332b05e --- /dev/null +++ b/models/channels.js @@ -0,0 +1,20 @@ +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + +let channel = +new Schema( + { + name: {type: String, required: false, max: 100}, // Name for the sake of having one. + cID: {type:String, required: true}, // channel id where to send updates + for:{type:String, required: true}//Type of update channel (free games, rust commits) + } +); + + + + +const Channel = module.exports = mongoose.model('channel', channel); +module.exports.get = (callback, limit)=> +{ + Channel.find(callback).limit(limit); +} \ No newline at end of file diff --git a/models/guilds.js b/models/guilds.js new file mode 100644 index 0000000..c641516 --- /dev/null +++ b/models/guilds.js @@ -0,0 +1,22 @@ +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + +let guild = +new Schema( + { + name: {type: String, required: false, max: 100}, + memberCount: {type:Boolean, required: true}, + gID:{type:String, required:true}, + strikes:{type:Boolean}, + music:{type:Boolean} + } +); + + + + +const Guild = module.exports = mongoose.model('guild', guild); +module.exports.get = (callback, limit)=> +{ + Guild.find(callback).limit(limit); +} \ No newline at end of file diff --git a/models/mcommands.js b/models/mcommands.js new file mode 100644 index 0000000..36fa887 --- /dev/null +++ b/models/mcommands.js @@ -0,0 +1,21 @@ +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + +let mcommand = +new Schema( + { + command: {type: String, required: true, max: 100}, + guild: {type: String, required: true, max: 100}, + textchannel:{type: String, required: true, max:100}, + voice:{type: String, required: true, max: 100} + } +); + + + + +const mCommand = module.exports = mongoose.model('mCommands', mcommand); +module.exports.get = (callback, limit)=> +{ + mCommand.find(callback).limit(limit); +} \ No newline at end of file diff --git a/models/queue.js b/models/queue.js new file mode 100644 index 0000000..f42027f --- /dev/null +++ b/models/queue.js @@ -0,0 +1,24 @@ +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + +let queue = +new Schema( + { + songname: {type: String, required: true, max: 100}, + songtime: {type: String, required: true, max: 100}, + songURL:{type:String, required:true, max:100}, + guild: {type: String, required: true, max: 100}, + textchannel:{type: String, required: true, max:100}, + voice:{type: String, required: true, max: 100}, + requester:{type:String, required:false, max:100} + } +); + + + + +const Q = module.exports = mongoose.model('Queue', queue); +module.exports.get = (callback, limit)=> +{ + Q.find(callback).limit(limit); +} \ No newline at end of file diff --git a/models/strikes.js b/models/strikes.js new file mode 100644 index 0000000..1a8e5b0 --- /dev/null +++ b/models/strikes.js @@ -0,0 +1,23 @@ +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + +let strike = +new Schema( + { + strikerID: {type: String, required: false, max: 100}, + strokedID: {type:String, required: true,}, + guildName:{type:String, required: true}, + guildID:{type:String, required: true}, + reason:{type:String, required:true}, + date:{type:Date, required:true}, + } +); + + + + +const S = module.exports = mongoose.model('strike', strike); +module.exports.get = (callback, limit)=> +{ + S.find(callback).limit(limit); +} \ No newline at end of file diff --git a/models/suggestion.js b/models/suggestion.js new file mode 100644 index 0000000..bd3fbe7 --- /dev/null +++ b/models/suggestion.js @@ -0,0 +1,23 @@ +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + +let suggestion = +new Schema( + { + + authorID: {type: String, required: false, max: 100}, + authorName: {type:String, required: true}, + guildID: {type:String, required: true}, + authorPermissions: {type:Array, required: true}, + suggestion:{type:String, required: true} + } +); + + + + +const Suggestion = module.exports = mongoose.model('suggestion', suggestion); +module.exports.get = (callback, limit)=> +{ + Suggestion.find(callback).limit(limit); +} \ No newline at end of file diff --git a/musicWorker.js b/musicWorker.js new file mode 100644 index 0000000..840fa38 --- /dev/null +++ b/musicWorker.js @@ -0,0 +1,209 @@ +console.time('Worker Start') +const {Client, GatewayIntentBits, EmbedBuilder} = require('discord.js'); +const {createAudioPlayer, NoSubscriberBehavior, createAudioResource, joinVoiceChannel,VoiceConnectionStatus, AudioPlayerStatus, AudioResource} = require('@discordjs/voice'); + + +const bot = new Client({ intents: [GatewayIntentBits.Guilds, + GatewayIntentBits.GuildMembers, + GatewayIntentBits.GuildBans, + GatewayIntentBits.GuildEmojisAndStickers, + GatewayIntentBits.GuildIntegrations , + GatewayIntentBits.GuildWebhooks , + GatewayIntentBits.GuildInvites , + GatewayIntentBits.GuildVoiceStates, + GatewayIntentBits.GuildPresences, + GatewayIntentBits.GuildMessages, + GatewayIntentBits.GuildMessageReactions, + GatewayIntentBits.GuildMessageTyping, + GatewayIntentBits.DirectMessages, + GatewayIntentBits.DirectMessageReactions, + GatewayIntentBits.DirectMessageTyping, + GatewayIntentBits.MessageContent, + GatewayIntentBits.GuildScheduledEvents, + GatewayIntentBits.AutoModerationConfiguration, + GatewayIntentBits.AutoModerationExecution]}); +const mongoose = require('mongoose'); +const QueueM = require('./models/queue'); + +const Command = require('./models/mcommands'); + +const ytdl = require('ytdl-core'); + +const guild = process.argv[2]; +const name = process.argv[3]; + +var Pause = false; +var currentID; + +bot.login(process.env.discord_token).then(()=> +{ + + console.log('WORKER:',name,'- Music: Guild: (', guild,')'); + console.timeEnd('Worker Start') + mongoose.Promise = global.Promise; + mongoose.connect(process.env.mongoDB, {useNewUrlParser: true, useUnifiedTopology:true}).then(console.log('WORKER:',name,'- MONGODB: Connected')).catch(err=>console.log(err)); + music(); +}); +function music() +{ + QueueM.find({guild:guild}) + .then(queue=> + { + if(queue.length>0) + { + var i = 0; + do + { + if(i + { + music(); + }, 1500); + } + }) +} +/** + This is an asynchronous function that listens for commands in a guild and performs the appropriate action. + The function takes two parameters: a player and a connection. The player can be paused, resumed, or stopped, + and the queue can be skipped or displayed. The function runs continuously, checking for new commands and + performing the appropriate actions. + @param {AudioPlayer} player + @param {VoiceConnection} connection + */ +async function commandListener(player, connection) +{ + const command = await Command.findOne({guild:guild}) + if(!command) return commandListener(player, connector); + switch (command.command) { + case 'leave': + player.stop(); + removeQueue(); + break; + case 'pause': + player.pause(); + break; + case 'resume': + + break; + + case 'skip': + removeFromQueue(currentID, player, connection); + break; + case 'queue': + + break; + + default: + break; + } + Command.findByIdAndDelete(command._id) + .then(() => commandListener(player, connection)) + +} +function removeQueue() +{ + QueueM.deleteMany({guild:guild}); +} +/** + * + * @param {String} voiceID - Voice Channel ID + * @param {String} songURL - Song URL + * @param {String} id - MongoDB ID + * @param {String} songname - Song Name + * @param {String} songtime - Song play time + */ +async function play ( voiceID, songURL, id, songname, songtime, text) +{ + currentID = id; + try + { + console.log('Worker:', name ,'- Play: ', voiceID, 'ytID',songURL.split('=')[1],id, songname, songtime, text) + const connection = joinVoiceChannel({ + channelId: voiceID, + guildId: guild, + adapterCreator: bot.guilds.cache.get(guild).voiceAdapterCreator, + }); + const player = createAudioPlayer({ + behaviors: { + noSubscriber: NoSubscriberBehavior.Stop, + } + }); + connection.on(VoiceConnectionStatus.Ready, () => + { + const resource = createAudioResource(ytdl(songURL,{ filter: 'audioonly', dlChunkSize: 0 })) + player.play(resource); + connection.subscribe(player); + commandListener( player, connection); + player.on(AudioPlayerStatus.Idle, ()=> + { + if(!Pause) + { + removeFromQueue(currentID, player, connection); + } + }) + }); + } + catch (error) + { + console.log('Worker:', name ,'- Music: Play: Error: ', error) + } +} +function playNext(player, voiceID, songURL, id, songname, songtime, text) +{ + currentID = id; + console.log('Worker:', name ,'- Play: ', voiceID, 'ytID',songURL.split('=')[1],id, songname, songtime, text) + const resource = createAudioResource(ytdl(songURL,{ filter: 'audioonly', dlChunkSize: 0 })) + player.play(resource); +} +async function removeFromQueue(id, player, connection) +{ + console.log('Music: Find and Remove: id: ', id); + QueueM.findByIdAndRemove(id, (err)=> + { + if(!err) + { + console.log('Worker:',name,'- Music: Song removed!') + QueueM.findOne({guild:guild}, (err, next)=> + { + if(err) return console.log('Worker:', name, '- Error:', err); + //console.log('Worker:',name,'- Music: More in queue?', next); + if(next) + { + console.log('Worker:',name,'- Music: RFQ: Playing next. Next:', next.songname, next.songtime); + playNext(player, next.voice, next.songURL, next.id, next.songname, next.songtime, next.textchannel); + } + else + { + console.log('Worker', name, ' - Music: RFQ: No more in Q, restarting.'); + connection.destroy(); + music(); + } + }) + } + else + { + console.log('Worker:',name,'- Music: Failed to remove song from queue!', err) + music(); + } + }) + +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..f5ea159 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6862 @@ +{ + "name": "remchanv2", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "remchanv2", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@discordjs/voice": "^0.13.0", + "axios": "^1.1.3", + "bufferutil": "^4.0.7", + "discord-ytdl-core": "^5.0.4", + "discord.js": "^14.6.0", + "ejs": "^3.1.8", + "erlpack": "github:discord/erlpack", + "express": "^4.18.2", + "ffmpeg-static": "^5.1.0", + "findit": "^2.0.0", + "mongoose": "^6.7.2", + "nodemon": "^2.0.20", + "socket.io": "^4.5.3", + "tweetnacl": "^1.0.3", + "utf-8-validate": "^5.0.10", + "yt-search": "^2.10.3", + "ytdl-core": "^4.11.2", + "zlib-sync": "^0.1.7" + }, + "devDependencies": { + "typescript": "^4.9.3" + } + }, + "node_modules/@aws-crypto/ie11-detection": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", + "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", + "optional": true, + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", + "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", + "optional": true, + "dependencies": { + "@aws-crypto/ie11-detection": "^2.0.0", + "@aws-crypto/sha256-js": "^2.0.0", + "@aws-crypto/supports-web-crypto": "^2.0.0", + "@aws-crypto/util": "^2.0.0", + "@aws-sdk/types": "^3.1.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", + "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", + "optional": true, + "dependencies": { + "@aws-crypto/util": "^2.0.0", + "@aws-sdk/types": "^3.1.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", + "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", + "optional": true, + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true + }, + "node_modules/@aws-crypto/util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", + "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", + "optional": true, + "dependencies": { + "@aws-sdk/types": "^3.110.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/util/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true + }, + "node_modules/@aws-sdk/abort-controller": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.208.0.tgz", + "integrity": "sha512-mQkDR+8VLCafg9KI4TgftftBOL170ricyb+HgV8n5jLDrEG+TfOfud8e6us2lIFESEuMpohC+/8yIcf6JjKkMg==", + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.209.0.tgz", + "integrity": "sha512-u7lqFKi2PXC/LZzBEBCczlF78/bclv5Gndy4AWxNBdDBbJyuQrE+hk+IIwQQznCeFfgFOhpQMcWFPZH3tSH/qQ==", + "optional": true, + "dependencies": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/client-sts": "3.209.0", + "@aws-sdk/config-resolver": "3.209.0", + "@aws-sdk/credential-provider-node": "3.209.0", + "@aws-sdk/fetch-http-handler": "3.208.0", + "@aws-sdk/hash-node": "3.208.0", + "@aws-sdk/invalid-dependency": "3.208.0", + "@aws-sdk/middleware-content-length": "3.208.0", + "@aws-sdk/middleware-endpoint": "3.208.0", + "@aws-sdk/middleware-host-header": "3.208.0", + "@aws-sdk/middleware-logger": "3.208.0", + "@aws-sdk/middleware-recursion-detection": "3.208.0", + "@aws-sdk/middleware-retry": "3.209.0", + "@aws-sdk/middleware-serde": "3.208.0", + "@aws-sdk/middleware-signing": "3.208.0", + "@aws-sdk/middleware-stack": "3.208.0", + "@aws-sdk/middleware-user-agent": "3.208.0", + "@aws-sdk/node-config-provider": "3.209.0", + "@aws-sdk/node-http-handler": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/smithy-client": "3.209.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/url-parser": "3.208.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.209.0", + "@aws-sdk/util-defaults-mode-node": "3.209.0", + "@aws-sdk/util-endpoints": "3.209.0", + "@aws-sdk/util-user-agent-browser": "3.208.0", + "@aws-sdk/util-user-agent-node": "3.209.0", + "@aws-sdk/util-utf8-browser": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.209.0.tgz", + "integrity": "sha512-rh9QktLCOVTbvDzCb0ikSe4Q1I35Wxcx5XZ7k1J+2ze54FOBfCr3vOwcQpo5tpYWEe1Ysbt3gvA8RAqj9oDFdw==", + "optional": true, + "dependencies": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/config-resolver": "3.209.0", + "@aws-sdk/fetch-http-handler": "3.208.0", + "@aws-sdk/hash-node": "3.208.0", + "@aws-sdk/invalid-dependency": "3.208.0", + "@aws-sdk/middleware-content-length": "3.208.0", + "@aws-sdk/middleware-endpoint": "3.208.0", + "@aws-sdk/middleware-host-header": "3.208.0", + "@aws-sdk/middleware-logger": "3.208.0", + "@aws-sdk/middleware-recursion-detection": "3.208.0", + "@aws-sdk/middleware-retry": "3.209.0", + "@aws-sdk/middleware-serde": "3.208.0", + "@aws-sdk/middleware-stack": "3.208.0", + "@aws-sdk/middleware-user-agent": "3.208.0", + "@aws-sdk/node-config-provider": "3.209.0", + "@aws-sdk/node-http-handler": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/smithy-client": "3.209.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/url-parser": "3.208.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.209.0", + "@aws-sdk/util-defaults-mode-node": "3.209.0", + "@aws-sdk/util-endpoints": "3.209.0", + "@aws-sdk/util-user-agent-browser": "3.208.0", + "@aws-sdk/util-user-agent-node": "3.209.0", + "@aws-sdk/util-utf8-browser": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.209.0.tgz", + "integrity": "sha512-KSmT181IcE32lqoZsS0h400qiL/BSQ84DS1iPOqP0NkLcgnvmOkKygVpYjTql2xSUWLQBwPNFihYJ+jmAj3HtQ==", + "optional": true, + "dependencies": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/config-resolver": "3.209.0", + "@aws-sdk/fetch-http-handler": "3.208.0", + "@aws-sdk/hash-node": "3.208.0", + "@aws-sdk/invalid-dependency": "3.208.0", + "@aws-sdk/middleware-content-length": "3.208.0", + "@aws-sdk/middleware-endpoint": "3.208.0", + "@aws-sdk/middleware-host-header": "3.208.0", + "@aws-sdk/middleware-logger": "3.208.0", + "@aws-sdk/middleware-recursion-detection": "3.208.0", + "@aws-sdk/middleware-retry": "3.209.0", + "@aws-sdk/middleware-serde": "3.208.0", + "@aws-sdk/middleware-stack": "3.208.0", + "@aws-sdk/middleware-user-agent": "3.208.0", + "@aws-sdk/node-config-provider": "3.209.0", + "@aws-sdk/node-http-handler": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/smithy-client": "3.209.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/url-parser": "3.208.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.209.0", + "@aws-sdk/util-defaults-mode-node": "3.209.0", + "@aws-sdk/util-endpoints": "3.209.0", + "@aws-sdk/util-user-agent-browser": "3.208.0", + "@aws-sdk/util-user-agent-node": "3.209.0", + "@aws-sdk/util-utf8-browser": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.209.0.tgz", + "integrity": "sha512-zWlM+9/JbshEgrG79KZlqYusUziKiKqe8vRlvQ9wcuEHNbQnAri4UvObEKik+7YpTBeP3mR+US1T71G0PqJByw==", + "optional": true, + "dependencies": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/config-resolver": "3.209.0", + "@aws-sdk/credential-provider-node": "3.209.0", + "@aws-sdk/fetch-http-handler": "3.208.0", + "@aws-sdk/hash-node": "3.208.0", + "@aws-sdk/invalid-dependency": "3.208.0", + "@aws-sdk/middleware-content-length": "3.208.0", + "@aws-sdk/middleware-endpoint": "3.208.0", + "@aws-sdk/middleware-host-header": "3.208.0", + "@aws-sdk/middleware-logger": "3.208.0", + "@aws-sdk/middleware-recursion-detection": "3.208.0", + "@aws-sdk/middleware-retry": "3.209.0", + "@aws-sdk/middleware-sdk-sts": "3.208.0", + "@aws-sdk/middleware-serde": "3.208.0", + "@aws-sdk/middleware-signing": "3.208.0", + "@aws-sdk/middleware-stack": "3.208.0", + "@aws-sdk/middleware-user-agent": "3.208.0", + "@aws-sdk/node-config-provider": "3.209.0", + "@aws-sdk/node-http-handler": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/smithy-client": "3.209.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/url-parser": "3.208.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.209.0", + "@aws-sdk/util-defaults-mode-node": "3.209.0", + "@aws-sdk/util-endpoints": "3.209.0", + "@aws-sdk/util-user-agent-browser": "3.208.0", + "@aws-sdk/util-user-agent-node": "3.209.0", + "@aws-sdk/util-utf8-browser": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", + "fast-xml-parser": "4.0.11", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/config-resolver": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.209.0.tgz", + "integrity": "sha512-wLXI1Jg9xx9wE8vdIfOgSKnoBWbn9j3IvW4+7PnM/nf5xC30/Jp4j+JndEG/BKyDQF7HJQTIeRpSkwKaqJhCRA==", + "optional": true, + "dependencies": { + "@aws-sdk/signature-v4": "3.208.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/util-config-provider": "3.208.0", + "@aws-sdk/util-middleware": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.209.0.tgz", + "integrity": "sha512-31OAwgElZlJyPoV0WwerRSIrrlMlbXX6rpoBceHu9m+wACu18P+GwqKjMCjTL04Q+z7zr699pLCLp5lbLYJe3w==", + "optional": true, + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.209.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.208.0.tgz", + "integrity": "sha512-FB+KUSpZc03wVTXxGnMmgtaP0sJOv0D7oyogHb7wcf5b7RjjwqoaeUcJHTdKRZaW6e1foLk3/L9uebxiWefDbQ==", + "optional": true, + "dependencies": { + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-imds": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.209.0.tgz", + "integrity": "sha512-EjA1nWduIHjALjNF6O2lpKVOoTIlfGHgvqCxjFf7XNqBTTKWCxEflcmUgqXwo9A7TU0mTTyr7nLGMAsNE2CR3w==", + "optional": true, + "dependencies": { + "@aws-sdk/node-config-provider": "3.209.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/url-parser": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.209.0.tgz", + "integrity": "sha512-aszuzkKIg7V+tCcq8RNpr1dAyECXWvJRAvzlmE5ZBYtjHMIX/qVAqSP4sfLNeI/Qagyj7W0TeVA1XVRjkivjYA==", + "optional": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.208.0", + "@aws-sdk/credential-provider-imds": "3.209.0", + "@aws-sdk/credential-provider-sso": "3.209.0", + "@aws-sdk/credential-provider-web-identity": "3.208.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/shared-ini-file-loader": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.209.0.tgz", + "integrity": "sha512-R0kV6B+GxbfdSowf/6eeEAHZC6X7P/IxJ/o/gCuMmAOixge0e6AWVgCvrd0cg0togJHWbmoYSuUyqWPIMxM1Yg==", + "optional": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.208.0", + "@aws-sdk/credential-provider-imds": "3.209.0", + "@aws-sdk/credential-provider-ini": "3.209.0", + "@aws-sdk/credential-provider-process": "3.209.0", + "@aws-sdk/credential-provider-sso": "3.209.0", + "@aws-sdk/credential-provider-web-identity": "3.208.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/shared-ini-file-loader": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.209.0.tgz", + "integrity": "sha512-G0urC5p1kgUfgpK8lncdisSewa8onnoQAVdf2Uh51hOqc7UufGce+ouvLH8J2iMkMaL1MSyu8fqwfZNyDtH37g==", + "optional": true, + "dependencies": { + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/shared-ini-file-loader": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.209.0.tgz", + "integrity": "sha512-SKzUYOn2EFx58+iU1KihGLtBz9s1jolWUQ6HYxOy4AkWnZVGUt9Vb4mIo6wB07nSSUgYRxOSYn21SKvvBzpc2g==", + "optional": true, + "dependencies": { + "@aws-sdk/client-sso": "3.209.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/shared-ini-file-loader": "3.209.0", + "@aws-sdk/token-providers": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.208.0.tgz", + "integrity": "sha512-7wtrdEr8uvDr5t0stimrXGsW4G+TQyluZ9OucCCY0HXgNihmnk1BIu+COuOSxRtFXHwCh4rIPaVE1ABG2Mq24g==", + "optional": true, + "dependencies": { + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.209.0.tgz", + "integrity": "sha512-/oQJwzTedZC5TbQJ2pwHcpbcZS7O1RzP/3+cICw73WrIjlrpS1JGmTCvTGrIfGE8RUk5GKdLN3fjgTpVCS82cA==", + "optional": true, + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.209.0", + "@aws-sdk/client-sso": "3.209.0", + "@aws-sdk/client-sts": "3.209.0", + "@aws-sdk/credential-provider-cognito-identity": "3.209.0", + "@aws-sdk/credential-provider-env": "3.208.0", + "@aws-sdk/credential-provider-imds": "3.209.0", + "@aws-sdk/credential-provider-ini": "3.209.0", + "@aws-sdk/credential-provider-node": "3.209.0", + "@aws-sdk/credential-provider-process": "3.209.0", + "@aws-sdk/credential-provider-sso": "3.209.0", + "@aws-sdk/credential-provider-web-identity": "3.208.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/shared-ini-file-loader": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/fetch-http-handler": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.208.0.tgz", + "integrity": "sha512-GuwkwOeyLKCbSbnFlyHdlKd7u54cnQUI8NfVDAxpZvomY3PV476Tzg8XEyOYE67r5rR6XMqn6IK1PmFAACY+ew==", + "optional": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/querystring-builder": "3.208.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/util-base64": "3.208.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/hash-node": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.208.0.tgz", + "integrity": "sha512-X5u6nD9+wzaA6qhqbobxsIgiyDJMW8NgqjZgHoc5x1wz4unHUCEuSBZy1kbIZ6+EPZ9bQHQZ21gKgf1j5vhsvQ==", + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.208.0", + "@aws-sdk/util-buffer-from": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/invalid-dependency": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.208.0.tgz", + "integrity": "sha512-mUpbtijk14KntYy+w5FSvmsfj/Dqa8HylYeCKniKBKkQ1avjEz7CdizVoxyZrR3rldnLE3gItr0FEDRUhtfkAA==", + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/is-array-buffer": { + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", + "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", + "optional": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-content-length": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.208.0.tgz", + "integrity": "sha512-8bLh7lHtmKQQ2fk0fGiP7pcVJglB/dz7Q9OooxFYK+eybqxfIDDUgKphA8AFT5W34tJRh5nhT3QTJ6zrOTQM3w==", + "optional": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-endpoint": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.208.0.tgz", + "integrity": "sha512-pVa/cyB6ronfTVAoKUUTFbAPslDPU43DWOKXY/bACC3ys1lFo1CWjz4dLSQARxEEW3iZ1yZTy0zoHXnNrw5CFQ==", + "optional": true, + "dependencies": { + "@aws-sdk/middleware-serde": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/signature-v4": "3.208.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/url-parser": "3.208.0", + "@aws-sdk/util-config-provider": "3.208.0", + "@aws-sdk/util-middleware": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.208.0.tgz", + "integrity": "sha512-3oyXK81TLWOZ2T/9Ltpbj/Z7R4QWSf+FCQRpY48ND2im/ALkgFRk/tmDTOshv+TQzW1q2lOSEeq4vK6yOCar7g==", + "optional": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.208.0.tgz", + "integrity": "sha512-mwSpuWruB8RrgUAAW7w/lvadnMDesl/bZ2IELBgJri+2rIqLGbAtygJBiG0Y3e8/IeOHuKuGkN1rFYZ4SKr7/A==", + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.208.0.tgz", + "integrity": "sha512-Dgpf5NEOYXvkQuGcbxvDovTh4HwO4ULJReGko67NJjgdZZyFS1fNykVPncxenRpsN9SJBigswYs3lwPVpqijzA==", + "optional": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-retry": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.209.0.tgz", + "integrity": "sha512-PGHbpGw74HxmtqsMEH+xn2oC5/BPdHVyapB66x83n+sywt1ejTiarbQhNs70YzcSsTrJfbhbrFP1V9AzRmMaQA==", + "optional": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/service-error-classification": "3.208.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/util-middleware": "3.208.0", + "tslib": "^2.3.1", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.208.0.tgz", + "integrity": "sha512-lFVodZHYLF7puXgNZ1m5ycKbyCPp79nqI+pkRXl066ZtZWzCW8+JKCaLjF3jfXlnvg6foPDJdxUvt0VU5EddGg==", + "optional": true, + "dependencies": { + "@aws-sdk/middleware-signing": "3.208.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/signature-v4": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-serde": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.208.0.tgz", + "integrity": "sha512-3h2yP6qyf/IhfdvyFeNX7w4BF37vOZvfUDBq+wb1QEc7DCAskoUKWtCCKJ9HDq3IJQp8hzqY82eawUir6flqlQ==", + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.208.0.tgz", + "integrity": "sha512-cMSWhg8xOrxZw04EYKEQQQ7RT+03rigS4KS3Uy6x/M+jFyoM+sRiY/7376sJCwlpvKH2xJIVpwPbKk/uz4j4DA==", + "optional": true, + "dependencies": { + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/signature-v4": "3.208.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/util-middleware": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-stack": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.208.0.tgz", + "integrity": "sha512-bvFPUa+RTB7PSRCUsO6bRlEtiEadrDES+dpNmInMNQ9kmbd4OhNOCb664hhtiglIIXX5cd8mSPEo+w/RV0kEEQ==", + "optional": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.208.0.tgz", + "integrity": "sha512-6RNf+TOZpiCy7xUcDSh8ji/x8ht1oAM+qIhm6hsEPLdI1cTvbPZrwowO9Y6L0J68V9OkEgLYiq77KKKYT7QQSw==", + "optional": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/node-config-provider": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.209.0.tgz", + "integrity": "sha512-jNrUn8qTN9BIxHCcLTv2s2h8Riaz4kjwDhubVQNyI0WGZ+PYKATnZjA+Guzbnq2WMzZmwrMIE5GoOiVsPD8xYQ==", + "optional": true, + "dependencies": { + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/shared-ini-file-loader": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/node-http-handler": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.208.0.tgz", + "integrity": "sha512-2t0b9Id7WekluqxQdPugAZhe/wdzW0L53rfMEfDS3R0INNSq1sEfddIfCzJrmfWDCrCOGIDNyxo/w7Ki3NclzQ==", + "optional": true, + "dependencies": { + "@aws-sdk/abort-controller": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/querystring-builder": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/property-provider": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.208.0.tgz", + "integrity": "sha512-aUhfuwXjZ5TGzLhBstuAMmbnxHXeSGhzoIS8yy465ifgc95p6cHFZf+ZibgwgCMaGrKlTDCia2zwwpKQHN+4cw==", + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/protocol-http": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.208.0.tgz", + "integrity": "sha512-Sr9dmaW0Z9X9s16NHZn94efLRpaqLyLqABFPgjqE8cYP6eLX/VrmZGNR62GFVxCiyEEpVxy4Ddk1YkbRwnuonA==", + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/querystring-builder": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.208.0.tgz", + "integrity": "sha512-1Rpauh5hWlK++KjsHQjHcSN7yE05hj1FVb0HaeLrFIJB5rQYWXK7DpOUhmv5SOmU+q6cIM2kNCrSxH31+WglMw==", + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.208.0", + "@aws-sdk/util-uri-escape": "3.201.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/querystring-parser": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.208.0.tgz", + "integrity": "sha512-dVVLdP3il9bJX74/BNBjFn59XrEVBUZ4xSKYH6t7dgSz9uSu8DcT4pPzwaq+/94dVewCW3zq2jVA1iw1rK7JVQ==", + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/service-error-classification": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.208.0.tgz", + "integrity": "sha512-ZZWV3AOTd8UDcfXCNoQ8v4sHaTgFxGaXWO0NHHgqFbVYr1d+8EXQiOy/v8JsY1jrfoXBWXptTOcioCTeM0xBpw==", + "optional": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/shared-ini-file-loader": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.209.0.tgz", + "integrity": "sha512-hji3B/q3zFuElaUQM/ZZUFbCFBsaVjpWATgiDTnSYP+MShWvvwm/WigeC2aCNos1bs/8HVizOy9cmvK63vLZbw==", + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.208.0.tgz", + "integrity": "sha512-+c5A8RsN4Lk3TXFiQ3ZsW7sJ4zYPPmYQ55ITSfjock5hzgM1vW43Mgvjjq6foW5L7SNfdhLH+NrhpgFwSF/GeA==", + "optional": true, + "dependencies": { + "@aws-sdk/is-array-buffer": "3.201.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/util-hex-encoding": "3.201.0", + "@aws-sdk/util-middleware": "3.208.0", + "@aws-sdk/util-uri-escape": "3.201.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/smithy-client": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.209.0.tgz", + "integrity": "sha512-+d9lPAFOu3hZdLfyzMurRU6xZ+eqwKbF6HY7mDL4hGafRb/uw28HBncSwyUk5s7MIND9+RnvY4F/MwBq9wznXg==", + "optional": true, + "dependencies": { + "@aws-sdk/middleware-stack": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.209.0.tgz", + "integrity": "sha512-MMtL/yD98SxjejcZYghLN4qhC1TDNeHjnzb+zBcXANxgh5m+QdhERsZkDGU8QiEo+DL6M2HKbwyXu82z89sqnQ==", + "optional": true, + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.209.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/shared-ini-file-loader": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.208.0.tgz", + "integrity": "sha512-5AuOPtY1Hdf4xoEo+voRijl3OnFm8IB+oITXl+SN2iASJv+XPnRNw/QVbIxfGeWgWhmK31F+XdjTYsjT2rx8Qw==", + "optional": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/url-parser": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.208.0.tgz", + "integrity": "sha512-zhU231xkZbUh68Z/TGNRW30MGTZQVigGuMiJU6eOtL2aOulnKqI1Yjs/QejrTtPWsqSihWvxOUZ2cVRPyeOvrA==", + "optional": true, + "dependencies": { + "@aws-sdk/querystring-parser": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-base64": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz", + "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==", + "optional": true, + "dependencies": { + "@aws-sdk/util-buffer-from": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-body-length-browser": { + "version": "3.188.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz", + "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==", + "optional": true, + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-body-length-node": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz", + "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==", + "optional": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-buffer-from": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", + "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", + "optional": true, + "dependencies": { + "@aws-sdk/is-array-buffer": "3.201.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-config-provider": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz", + "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==", + "optional": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-defaults-mode-browser": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.209.0.tgz", + "integrity": "sha512-c+AlHqsgeDr9+87fS1wfnyVzEH3myt56GvNt0puzIv0QQqfpobMnfN8/Fy0cqMpf1eQNYY4a6lFlkComsXi5dw==", + "optional": true, + "dependencies": { + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/types": "3.208.0", + "bowser": "^2.11.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/util-defaults-mode-node": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.209.0.tgz", + "integrity": "sha512-RljPVLog6EX052DQjx4XQ95n7ZiAbmn7Vd6YSn1x93U797umaC5CnrT7a/WusTQACtxBDFWcosRgO1ZGDXuRKQ==", + "optional": true, + "dependencies": { + "@aws-sdk/config-resolver": "3.209.0", + "@aws-sdk/credential-provider-imds": "3.209.0", + "@aws-sdk/node-config-provider": "3.209.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.209.0.tgz", + "integrity": "sha512-jwraCtWjQ0P4LyIg4qoQRF94mTUg0zFPmicy4v+Dq1V8BBRf6YWa9B10SoIdGIKQXmQvoyahK5OuH5SWKkY2pw==", + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-hex-encoding": { + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz", + "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==", + "optional": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz", + "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==", + "optional": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-middleware": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.208.0.tgz", + "integrity": "sha512-oXilrYpXwaPyMw1uNjL1wmR54zeFzIWx2ve1MSMheIYr26deFP3RpMfKkGXwiOvXzZ9pzTcA8shNLhg1frO/zg==", + "optional": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-uri-escape": { + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", + "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==", + "optional": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.208.0.tgz", + "integrity": "sha512-Z5n9Kg2pBstzzQgRymQRgb4pM0bNPLGQejB3ZmCAphaxvuTBfu2E6KO55h5WwkFHUuh0i5u2wn1BI9R66S8CgQ==", + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.208.0", + "bowser": "^2.11.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.209.0.tgz", + "integrity": "sha512-lWfvnSX8rckMGaalrKZmBlPW7F0QOviG7XbLffwToN4HnYUyXcZXIE4EzOQzuOvDsOUlos/xLkUj6krdIAApcA==", + "optional": true, + "dependencies": { + "@aws-sdk/node-config-provider": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.188.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz", + "integrity": "sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==", + "optional": true, + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-utf8-node": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz", + "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==", + "optional": true, + "dependencies": { + "@aws-sdk/util-buffer-from": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@derhuerst/http-basic": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/@derhuerst/http-basic/-/http-basic-8.2.4.tgz", + "integrity": "sha512-F9rL9k9Xjf5blCz8HsJRO4diy111cayL2vkY2XE4r4t3n0yPXVYy3KD3nJ1qbrSn9743UWSXH4IwuCa/HWlGFw==", + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^2.0.0", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@discordjs/builders": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.3.0.tgz", + "integrity": "sha512-Pvca6Nw8Hp+n3N+Wp17xjygXmMvggbh5ywUsOYE2Et4xkwwVRwgzxDJiMUuYapPtnYt4w/8aKlf5khc8ipLvhg==", + "dependencies": { + "@discordjs/util": "^0.1.0", + "@sapphire/shapeshift": "^3.7.0", + "discord-api-types": "^0.37.12", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/collection": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.2.0.tgz", + "integrity": "sha512-VvrrtGb7vbfPHzbhGq9qZB5o8FOB+kfazrxdt0OtxzSkoBuw9dURMkCwWizZ00+rDpiK2HmLHBZX+y6JsG9khw==", + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/rest": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-1.3.0.tgz", + "integrity": "sha512-U6X5J+r/MxYpPTlHFuPxXEf92aKsBaD2teBC7sWkKILIr30O8c9+XshfL7KFBCavnAqS/qE+PF9fgRilO3N44g==", + "dependencies": { + "@discordjs/collection": "^1.2.0", + "@discordjs/util": "^0.1.0", + "@sapphire/async-queue": "^1.5.0", + "@sapphire/snowflake": "^3.2.2", + "discord-api-types": "^0.37.12", + "file-type": "^18.0.0", + "tslib": "^2.4.0", + "undici": "^5.11.0" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/util": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@discordjs/util/-/util-0.1.0.tgz", + "integrity": "sha512-e7d+PaTLVQav6rOc2tojh2y6FE8S7REkqLldq1XF4soCx74XB/DIjbVbVLtBemf0nLW77ntz0v+o5DytKwFNLQ==", + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/voice": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.13.0.tgz", + "integrity": "sha512-ZzwDmVINaLgkoDUeTJfpN9TkjINMLfTVoLMtEygm0YC5jTTw7AvKGqhc+Ae/2kNLywd0joyFVNrLp94yCkQ9SA==", + "dependencies": { + "@types/ws": "^8.5.3", + "discord-api-types": "^0.37.12", + "prism-media": "^1.3.4", + "tslib": "^2.4.0", + "ws": "^8.9.0" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@sapphire/async-queue": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.0.tgz", + "integrity": "sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sapphire/shapeshift": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.7.0.tgz", + "integrity": "sha512-A6vI1zJoxhjWo4grsxpBRBgk96SqSdjLX5WlzKp9H+bJbkM07mvwcbtbVAmUZHbi/OG3HLfiZ1rlw4BhH6tsBQ==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "lodash.uniqwith": "^4.5.0" + }, + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sapphire/snowflake": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.2.2.tgz", + "integrity": "sha512-ula2O0kpSZtX9rKXNeQMrHwNd7E4jPDJYUXmEGTFdMRfyfMw+FPyh04oKMjAiDuOi64bYgVkOV3MjK+loImFhQ==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + }, + "node_modules/@types/node": { + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" + }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==" + }, + "node_modules/@types/whatwg-url": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", + "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "dependencies": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "node_modules/async.parallellimit": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.parallellimit/-/async.parallellimit-0.5.2.tgz", + "integrity": "sha512-4Di2nFsb3jL7aUIICvRSvtw/oynpMIx0JrwYn5hqJI661Dd+mYBi2ElOukOQgRHihU1SCTapb86Vx/Snva5M1w==", + "dependencies": { + "async.util.eachoflimit": "0.5.2", + "async.util.parallel": "0.5.2" + } + }, + "node_modules/async.util.eachoflimit": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.eachoflimit/-/async.util.eachoflimit-0.5.2.tgz", + "integrity": "sha512-oZksH0sBW0AEOJKgBCQ79io9DZruoRBLTAea/Ik36pejR7pDpByvtXeuJsoZdPwSVslsrQcsUfucbUaiXYBnAQ==", + "dependencies": { + "async.util.keyiterator": "0.5.2", + "async.util.noop": "0.5.2", + "async.util.once": "0.5.2", + "async.util.onlyonce": "0.5.2" + } + }, + "node_modules/async.util.isarray": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.isarray/-/async.util.isarray-0.5.2.tgz", + "integrity": "sha512-wbUzlrwON8RUgi+v/rhF0U99Ce8Osjcn+JP/mFNg6ymvShcobAOvE6cvLajSY5dPqKCOE1xfdhefgBif11zZgw==" + }, + "node_modules/async.util.isarraylike": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.isarraylike/-/async.util.isarraylike-0.5.2.tgz", + "integrity": "sha512-DbFpsz3ZFNkohAW8IpGTlm8gotU32zpqe3Y2XkEA/G3XNO6rmUTKPpo7XgXUruoI+AsGi8+0zWpJHe7t1sLiAg==", + "dependencies": { + "async.util.isarray": "0.5.2" + } + }, + "node_modules/async.util.keyiterator": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.keyiterator/-/async.util.keyiterator-0.5.2.tgz", + "integrity": "sha512-cktrETawCwgu13y3KZs2uMGFnNHc+IjKPZsavtRaoCjLELkePb2co4zrr+ghPvEqLXZIJPTKqC2HFZgJTssMVw==", + "dependencies": { + "async.util.isarraylike": "0.5.2", + "async.util.keys": "0.5.2" + } + }, + "node_modules/async.util.keys": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.keys/-/async.util.keys-0.5.2.tgz", + "integrity": "sha512-umCOCRCRYwIC2Ho3fbuhKwIIe7OhQsVoVKGoF5GoQiGJUmjP4TG0Bmmcdpm7yW/znoIGKpnjKzVQz0niH4tfqw==" + }, + "node_modules/async.util.noop": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.noop/-/async.util.noop-0.5.2.tgz", + "integrity": "sha512-AdwShXwE0KoskgqVJAck8zcM32nIHj3AC8ZN62ZaR5srhrY235Nw18vOJZWxcOfhxdVM0hRVKM8kMx7lcl7cCQ==" + }, + "node_modules/async.util.once": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.once/-/async.util.once-0.5.2.tgz", + "integrity": "sha512-YQ5WPzDTt2jlblUDkq2I5RV/KiAJErJ4/0cEFhYPaZzqIuF/xDzdGvnEKe7UeuoMszsVPeajzcpKgkbwdb9MUA==" + }, + "node_modules/async.util.onlyonce": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.onlyonce/-/async.util.onlyonce-0.5.2.tgz", + "integrity": "sha512-UgQvkU9JZ+I0Cm1f56XyGXcII+J3d/5XWUuHpcevlItuA3WFSJcqZrsyAUck2FkRSD8BwYQX1zUTDp3SJMVESg==" + }, + "node_modules/async.util.parallel": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.parallel/-/async.util.parallel-0.5.2.tgz", + "integrity": "sha512-0bEvwmQ8fxsTYNwacw5iq0i3PvGryRkXxZ01Rvox21izdMdls9IH2rAZjfunbgI8j6nFRyIdCmMINQ9kka99ow==", + "dependencies": { + "async.util.isarraylike": "0.5.2", + "async.util.noop": "0.5.2", + "async.util.restparam": "0.5.2" + } + }, + "node_modules/async.util.restparam": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.restparam/-/async.util.restparam-0.5.2.tgz", + "integrity": "sha512-Q9Z+zgmtMxFX5i7CnBvNOkgrL5hptztCqwarQluyNudUUk4iCmyjmsQl8MuQEjNh3gGqP5ayvDaextL1VXXgIg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", + "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/boolstring": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/boolstring/-/boolstring-1.0.2.tgz", + "integrity": "sha512-0JLNSmZUv1m/O8sVayFm2t0naiOXwQ9O2Gq9u1eoIkhvu6U5NQER/e3k4BGpjZ33G775lWMT7TzJ7r5VtmEnbQ==" + }, + "node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bson": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", + "integrity": "sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==", + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cli-color": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.2.0.tgz", + "integrity": "sha512-AqfwItf/UqGif3FBErI3NHX04v5ywJtGYlL5z4OqWR50u7g+Fz3Xw2qcCIbKVPrqtJCBwSOkDgnSlHbcpwDKHw==", + "dependencies": { + "ansi-regex": "^2.1.1", + "d": "1", + "es5-ext": "^0.10.12", + "es6-iterator": "2", + "memoizee": "^0.4.3", + "timers-ext": "0.1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "engines": [ + "node >= 6.0" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/dasu": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/dasu/-/dasu-0.4.3.tgz", + "integrity": "sha512-AFwspl5k7V8MW8H7tyIGJ0gtOauUg7JC+DgiRFUIXvPNNDFXTMtvnCkZY0macN6JLGqBjNP38WVnQN7Iv3RSlg==" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/discord-api-types": { + "version": "0.37.17", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.17.tgz", + "integrity": "sha512-5ZIw1VtkmToBy8ziketjHkZnW1FoLevyXdK/TslNFLozijug2RnB3MyBNtSGzML1c72koU3neeGkvFZ8OiU0tQ==" + }, + "node_modules/discord-ytdl-core": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/discord-ytdl-core/-/discord-ytdl-core-5.0.4.tgz", + "integrity": "sha512-O+G9wuCw5TERR9iHZFMYnYQbs/ZGudDc9cxa1OKSV5TdcBYrHGS1JqvE90ZvSQ6SmS4XvqtOf/Okls6yiGJ3sg==", + "dependencies": { + "prism-media": "^1.2.9" + }, + "funding": { + "type": "individual", + "url": "https://paypal.me/devsnowflake" + } + }, + "node_modules/discord.js": { + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.6.0.tgz", + "integrity": "sha512-On1K7xpJZRe0KsziIaDih2ksYPhgxym/ZqV45i1f3yig4vUotikqs7qp5oXiTzQ/UTiNRCixUWFTh7vA1YBCqw==", + "dependencies": { + "@discordjs/builders": "^1.3.0", + "@discordjs/collection": "^1.2.0", + "@discordjs/rest": "^1.3.0", + "@discordjs/util": "^0.1.0", + "@sapphire/snowflake": "^3.2.2", + "@types/ws": "^8.5.3", + "discord-api-types": "^0.37.12", + "fast-deep-equal": "^3.1.3", + "lodash.snakecase": "^4.1.1", + "tslib": "^2.4.0", + "undici": "^5.11.0", + "ws": "^8.9.0" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/engine.io": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/engine.io/node_modules/ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/erlpack": { + "version": "0.1.3", + "resolved": "git+ssh://git@github.com/discord/erlpack.git#cbe76be04c2210fc9cb6ff95910f0937c1011d04", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.15.0" + } + }, + "node_modules/es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-xml-parser": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz", + "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==", + "optional": true, + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + }, + "node_modules/ffmpeg-static": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ffmpeg-static/-/ffmpeg-static-5.1.0.tgz", + "integrity": "sha512-eEWOiGdbf7HKPeJI5PoJ0oCwkL0hckL2JdS4JOuB/gUETppwkEpq8nF0+e6VEQnDCo/iuoipbTUsn9QJmtpNkg==", + "hasInstallScript": true, + "dependencies": { + "@derhuerst/http-basic": "^8.2.0", + "env-paths": "^2.2.0", + "https-proxy-agent": "^5.0.0", + "progress": "^2.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/file-type": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.0.0.tgz", + "integrity": "sha512-jjMwFpnW8PKofLE/4ohlhqwDk5k0NC6iy0UHAJFKoY1fQeGMN0GDdLgHQrvCbSpMwbqzoCZhRI5dETCZna5qVA==", + "dependencies": { + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0", + "token-types": "^5.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/findit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findit/-/findit-2.0.0.tgz", + "integrity": "sha512-ENZS237/Hr8bjczn5eKuBohLgaD0JyUd0arxretR1f9RO46vZHA1b2y0VorgGV3WaOT3c+78P8h7v4JGJ1i/rg==" + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/human-time": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/human-time/-/human-time-0.0.2.tgz", + "integrity": "sha512-sbYI90YhYmstslPTb70BLGjy6mdESa0lxL7uDR4fIVAx9Iobz8fLEqi7FqF4Q/6vblrzZALg//MsYJlIPBU8SA==" + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonpath-plus": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-5.0.7.tgz", + "integrity": "sha512-7TS6wsiw1s2UMK/A6nA4n0aUJuirCVhJ87nWX5je5MPOl0z5VTr2qs7nMP8NZ2ed3rlt6kePTqddgVPE9F0i0w==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/kareem": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.4.1.tgz", + "integrity": "sha512-aJ9opVoXroQUPfovYP5kaj2lM7Jn02Gw13bL0lg9v0V7SaUc0qavPs0Eue7d2DcC3NjqI6QAUElXNsuZSeM+EA==" + }, + "node_modules/keypress": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", + "integrity": "sha512-HjorDJFNhnM4SicvaUXac0X77NiskggxJdesG72+O5zBKpSqKFCrqmndKVqpu3pFqkla0St6uGk8Ju0sCurrmg==" + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" + }, + "node_modules/lodash.uniqwith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniqwith/-/lodash.uniqwith-4.5.0.tgz", + "integrity": "sha512-7lYL8bLopMoy4CTICbxygAUq6CdRJ36vFc80DucPueUee+d5NBRxz3FdT9Pes/HEx5mPoT9jwnsEJWz1N7uq7Q==" + }, + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", + "dependencies": { + "es5-ext": "~0.10.2" + } + }, + "node_modules/m3u8stream": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/m3u8stream/-/m3u8stream-0.8.6.tgz", + "integrity": "sha512-LZj8kIVf9KCphiHmH7sbFQTVe4tOemb202fWwvJwR9W5ENW/1hxJN6ksAWGhQgSBSa3jyWhnjKU1Fw1GaOdbyA==", + "dependencies": { + "miniget": "^4.2.2", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memoizee": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + } + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/miniget": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/miniget/-/miniget-4.2.2.tgz", + "integrity": "sha512-a7voNL1N5lDMxvTMExOkg+Fq89jM2vY8pAi9ZEWzZtfNmdfP6RXkvUtFnCAXoCv2T9k1v/fUJVaAEuepGcvLYA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mongodb": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.11.0.tgz", + "integrity": "sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg==", + "dependencies": { + "bson": "^4.7.0", + "denque": "^2.1.0", + "mongodb-connection-string-url": "^2.5.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">=12.9.0" + }, + "optionalDependencies": { + "@aws-sdk/credential-providers": "^3.186.0", + "saslprep": "^1.0.3" + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.4.tgz", + "integrity": "sha512-SeAxuWs0ez3iI3vvmLk/j2y+zHwigTDKQhtdxTgt5ZCOQQS5+HW4g45/Xw5vzzbn7oQXCNQ24Z40AkJsizEy7w==", + "dependencies": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "node_modules/mongoose": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.7.2.tgz", + "integrity": "sha512-lrP2V5U1qhaf+z33fiIn7aYAZZ1fVDly+TkFRjTujNBF/FIHESATj2RbgAOSlWqv32fsZXkXejXzeVfjbv35Ow==", + "dependencies": { + "bson": "^4.7.0", + "kareem": "2.4.1", + "mongodb": "4.11.0", + "mpath": "0.9.0", + "mquery": "4.0.3", + "ms": "2.1.3", + "sift": "16.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mongoose/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.3.tgz", + "integrity": "sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA==", + "dependencies": { + "debug": "4.x" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/mquery/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mquery/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node_modules/node-fzf": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/node-fzf/-/node-fzf-0.5.3.tgz", + "integrity": "sha512-crN8rRfApu/GUrtKq+zJ6LueUyNAOJpFHxoT2Ru1Q+OYRa/F/H7CXvzcMrFc7D964yakYZEZ9XR3YbdSHXgyCw==", + "dependencies": { + "cli-color": "~1.2.0", + "keypress": "~0.2.1", + "minimist": "~1.2.0", + "redstar": "0.0.2", + "string-width": "~2.1.1", + "ttys": "0.0.3" + }, + "bin": { + "nfzf": "bin/cli.js" + } + }, + "node_modules/node-gyp-build": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/nodemon": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", + "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + }, + "node_modules/parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/peek-readable": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prism-media": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.4.tgz", + "integrity": "sha512-eW7LXORkTCQznZs+eqe9VjGOrLBxcBPXgNyHXMTSRVhphvd/RrxgIR7WaWt4fkLuhshcdT5KHL88LAfcvS3f5g==", + "peerDependencies": { + "@discordjs/opus": "^0.8.0", + "ffmpeg-static": "^5.0.2 || ^4.2.7 || ^3.0.0 || ^2.4.0", + "node-opus": "^0.3.3", + "opusscript": "^0.0.8" + }, + "peerDependenciesMeta": { + "@discordjs/opus": { + "optional": true + }, + "ffmpeg-static": { + "optional": true + }, + "node-opus": { + "optional": true + }, + "opusscript": { + "optional": true + } + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readable-web-to-node-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", + "dependencies": { + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redstar": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/redstar/-/redstar-0.0.2.tgz", + "integrity": "sha512-VNvLaLxMJMYiAasJX5Q/GC+Os7FXL0yPWFDuTodhR7Na9wqzrXsePPWC+EtIv4t3q5DyAK00w423xi5mQN2fqg==", + "dependencies": { + "minimatch": "~3.0.4" + } + }, + "node_modules/redstar/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "dependencies": { + "sparse-bitfield": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sift": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", + "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" + }, + "node_modules/simple-update-notifier": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz", + "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==", + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socket.io": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.3.tgz", + "integrity": "sha512-zdpnnKU+H6mOp7nYRXH4GNv1ux6HL6+lHL8g7Ds7Lj8CkdK1jJK/dlwsKDculbyOHifcJ0Pr/yeXnZQ5GeFrcg==", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" + }, + "node_modules/socket.io-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", + "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-parser/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "optional": true, + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "optional": true + }, + "node_modules/strtok3": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "dependencies": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/token-types": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", + "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/ts-mixer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.2.tgz", + "integrity": "sha512-zvHx3VM83m2WYCE8XL99uaM7mFwYSkjR2OZti98fabHrwkjsCvgwChda5xctein3xGOyaQhtTeDq/1H/GNvF3A==" + }, + "node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "node_modules/ttys": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/ttys/-/ttys-0.0.3.tgz", + "integrity": "sha512-UCqXRZS2S7U4aVB7Salj3ChPRSsb57ogJpJ1eMCvyowxFOBGsaHKcRU8bovcDwajX1mRbv0IpUnYkoG7Ieo5Zg==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + }, + "node_modules/undici": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.12.0.tgz", + "integrity": "sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg==", + "dependencies": { + "busboy": "^1.6.0" + }, + "engines": { + "node": ">=12.18" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yt-search": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/yt-search/-/yt-search-2.10.3.tgz", + "integrity": "sha512-msITxMhn+1f3RIlS2R0d5/275grX0nUgaD570Fap3gvPmwfvR9w31JG8B9++4Xtm6BLAzhdITK7kAWRInef8QQ==", + "dependencies": { + "async.parallellimit": "~0.5.2", + "boolstring": "~1.0.2", + "cheerio": "^1.0.0-rc.10", + "dasu": "~0.4.3", + "human-time": "0.0.2", + "jsonpath-plus": "~5.0.2", + "minimist": "~1.2.5", + "node-fzf": "~0.5.1" + }, + "bin": { + "yt-search": "bin/cli.js", + "yt-search-audio": "bin/mpv_audio.sh", + "yt-search-video": "bin/mpv_video.sh" + } + }, + "node_modules/ytdl-core": { + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.11.2.tgz", + "integrity": "sha512-D939t9b4ZzP3v0zDvehR2q+KgG97UTgrTKju3pOPGQcXtl4W6W5z0EpznzcJFu+OOpl7S7Ge8hv8zU65QnxYug==", + "dependencies": { + "m3u8stream": "^0.8.6", + "miniget": "^4.2.2", + "sax": "^1.1.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/zlib-sync": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/zlib-sync/-/zlib-sync-0.1.7.tgz", + "integrity": "sha512-UmciU6ZrIwtwPC8noMzq+kGMdiWwNRZ3wC0SbED4Ew5Ikqx14MqDPRs/Pbk+3rZPh5SzsOgUBs1WRE0iieddpg==", + "hasInstallScript": true, + "dependencies": { + "nan": "^2.14.0" + } + } + }, + "dependencies": { + "@aws-crypto/ie11-detection": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", + "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", + "optional": true, + "requires": { + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true + } + } + }, + "@aws-crypto/sha256-browser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", + "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", + "optional": true, + "requires": { + "@aws-crypto/ie11-detection": "^2.0.0", + "@aws-crypto/sha256-js": "^2.0.0", + "@aws-crypto/supports-web-crypto": "^2.0.0", + "@aws-crypto/util": "^2.0.0", + "@aws-sdk/types": "^3.1.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true + } + } + }, + "@aws-crypto/sha256-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", + "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", + "optional": true, + "requires": { + "@aws-crypto/util": "^2.0.0", + "@aws-sdk/types": "^3.1.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true + } + } + }, + "@aws-crypto/supports-web-crypto": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", + "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", + "optional": true, + "requires": { + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true + } + } + }, + "@aws-crypto/util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", + "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", + "optional": true, + "requires": { + "@aws-sdk/types": "^3.110.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true + } + } + }, + "@aws-sdk/abort-controller": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.208.0.tgz", + "integrity": "sha512-mQkDR+8VLCafg9KI4TgftftBOL170ricyb+HgV8n5jLDrEG+TfOfud8e6us2lIFESEuMpohC+/8yIcf6JjKkMg==", + "optional": true, + "requires": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/client-cognito-identity": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.209.0.tgz", + "integrity": "sha512-u7lqFKi2PXC/LZzBEBCczlF78/bclv5Gndy4AWxNBdDBbJyuQrE+hk+IIwQQznCeFfgFOhpQMcWFPZH3tSH/qQ==", + "optional": true, + "requires": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/client-sts": "3.209.0", + "@aws-sdk/config-resolver": "3.209.0", + "@aws-sdk/credential-provider-node": "3.209.0", + "@aws-sdk/fetch-http-handler": "3.208.0", + "@aws-sdk/hash-node": "3.208.0", + "@aws-sdk/invalid-dependency": "3.208.0", + "@aws-sdk/middleware-content-length": "3.208.0", + "@aws-sdk/middleware-endpoint": "3.208.0", + "@aws-sdk/middleware-host-header": "3.208.0", + "@aws-sdk/middleware-logger": "3.208.0", + "@aws-sdk/middleware-recursion-detection": "3.208.0", + "@aws-sdk/middleware-retry": "3.209.0", + "@aws-sdk/middleware-serde": "3.208.0", + "@aws-sdk/middleware-signing": "3.208.0", + "@aws-sdk/middleware-stack": "3.208.0", + "@aws-sdk/middleware-user-agent": "3.208.0", + "@aws-sdk/node-config-provider": "3.209.0", + "@aws-sdk/node-http-handler": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/smithy-client": "3.209.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/url-parser": "3.208.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.209.0", + "@aws-sdk/util-defaults-mode-node": "3.209.0", + "@aws-sdk/util-endpoints": "3.209.0", + "@aws-sdk/util-user-agent-browser": "3.208.0", + "@aws-sdk/util-user-agent-node": "3.209.0", + "@aws-sdk/util-utf8-browser": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/client-sso": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.209.0.tgz", + "integrity": "sha512-rh9QktLCOVTbvDzCb0ikSe4Q1I35Wxcx5XZ7k1J+2ze54FOBfCr3vOwcQpo5tpYWEe1Ysbt3gvA8RAqj9oDFdw==", + "optional": true, + "requires": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/config-resolver": "3.209.0", + "@aws-sdk/fetch-http-handler": "3.208.0", + "@aws-sdk/hash-node": "3.208.0", + "@aws-sdk/invalid-dependency": "3.208.0", + "@aws-sdk/middleware-content-length": "3.208.0", + "@aws-sdk/middleware-endpoint": "3.208.0", + "@aws-sdk/middleware-host-header": "3.208.0", + "@aws-sdk/middleware-logger": "3.208.0", + "@aws-sdk/middleware-recursion-detection": "3.208.0", + "@aws-sdk/middleware-retry": "3.209.0", + "@aws-sdk/middleware-serde": "3.208.0", + "@aws-sdk/middleware-stack": "3.208.0", + "@aws-sdk/middleware-user-agent": "3.208.0", + "@aws-sdk/node-config-provider": "3.209.0", + "@aws-sdk/node-http-handler": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/smithy-client": "3.209.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/url-parser": "3.208.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.209.0", + "@aws-sdk/util-defaults-mode-node": "3.209.0", + "@aws-sdk/util-endpoints": "3.209.0", + "@aws-sdk/util-user-agent-browser": "3.208.0", + "@aws-sdk/util-user-agent-node": "3.209.0", + "@aws-sdk/util-utf8-browser": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/client-sso-oidc": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.209.0.tgz", + "integrity": "sha512-KSmT181IcE32lqoZsS0h400qiL/BSQ84DS1iPOqP0NkLcgnvmOkKygVpYjTql2xSUWLQBwPNFihYJ+jmAj3HtQ==", + "optional": true, + "requires": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/config-resolver": "3.209.0", + "@aws-sdk/fetch-http-handler": "3.208.0", + "@aws-sdk/hash-node": "3.208.0", + "@aws-sdk/invalid-dependency": "3.208.0", + "@aws-sdk/middleware-content-length": "3.208.0", + "@aws-sdk/middleware-endpoint": "3.208.0", + "@aws-sdk/middleware-host-header": "3.208.0", + "@aws-sdk/middleware-logger": "3.208.0", + "@aws-sdk/middleware-recursion-detection": "3.208.0", + "@aws-sdk/middleware-retry": "3.209.0", + "@aws-sdk/middleware-serde": "3.208.0", + "@aws-sdk/middleware-stack": "3.208.0", + "@aws-sdk/middleware-user-agent": "3.208.0", + "@aws-sdk/node-config-provider": "3.209.0", + "@aws-sdk/node-http-handler": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/smithy-client": "3.209.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/url-parser": "3.208.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.209.0", + "@aws-sdk/util-defaults-mode-node": "3.209.0", + "@aws-sdk/util-endpoints": "3.209.0", + "@aws-sdk/util-user-agent-browser": "3.208.0", + "@aws-sdk/util-user-agent-node": "3.209.0", + "@aws-sdk/util-utf8-browser": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/client-sts": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.209.0.tgz", + "integrity": "sha512-zWlM+9/JbshEgrG79KZlqYusUziKiKqe8vRlvQ9wcuEHNbQnAri4UvObEKik+7YpTBeP3mR+US1T71G0PqJByw==", + "optional": true, + "requires": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/config-resolver": "3.209.0", + "@aws-sdk/credential-provider-node": "3.209.0", + "@aws-sdk/fetch-http-handler": "3.208.0", + "@aws-sdk/hash-node": "3.208.0", + "@aws-sdk/invalid-dependency": "3.208.0", + "@aws-sdk/middleware-content-length": "3.208.0", + "@aws-sdk/middleware-endpoint": "3.208.0", + "@aws-sdk/middleware-host-header": "3.208.0", + "@aws-sdk/middleware-logger": "3.208.0", + "@aws-sdk/middleware-recursion-detection": "3.208.0", + "@aws-sdk/middleware-retry": "3.209.0", + "@aws-sdk/middleware-sdk-sts": "3.208.0", + "@aws-sdk/middleware-serde": "3.208.0", + "@aws-sdk/middleware-signing": "3.208.0", + "@aws-sdk/middleware-stack": "3.208.0", + "@aws-sdk/middleware-user-agent": "3.208.0", + "@aws-sdk/node-config-provider": "3.209.0", + "@aws-sdk/node-http-handler": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/smithy-client": "3.209.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/url-parser": "3.208.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.209.0", + "@aws-sdk/util-defaults-mode-node": "3.209.0", + "@aws-sdk/util-endpoints": "3.209.0", + "@aws-sdk/util-user-agent-browser": "3.208.0", + "@aws-sdk/util-user-agent-node": "3.209.0", + "@aws-sdk/util-utf8-browser": "3.188.0", + "@aws-sdk/util-utf8-node": "3.208.0", + "fast-xml-parser": "4.0.11", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/config-resolver": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.209.0.tgz", + "integrity": "sha512-wLXI1Jg9xx9wE8vdIfOgSKnoBWbn9j3IvW4+7PnM/nf5xC30/Jp4j+JndEG/BKyDQF7HJQTIeRpSkwKaqJhCRA==", + "optional": true, + "requires": { + "@aws-sdk/signature-v4": "3.208.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/util-config-provider": "3.208.0", + "@aws-sdk/util-middleware": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-cognito-identity": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.209.0.tgz", + "integrity": "sha512-31OAwgElZlJyPoV0WwerRSIrrlMlbXX6rpoBceHu9m+wACu18P+GwqKjMCjTL04Q+z7zr699pLCLp5lbLYJe3w==", + "optional": true, + "requires": { + "@aws-sdk/client-cognito-identity": "3.209.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-env": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.208.0.tgz", + "integrity": "sha512-FB+KUSpZc03wVTXxGnMmgtaP0sJOv0D7oyogHb7wcf5b7RjjwqoaeUcJHTdKRZaW6e1foLk3/L9uebxiWefDbQ==", + "optional": true, + "requires": { + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-imds": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.209.0.tgz", + "integrity": "sha512-EjA1nWduIHjALjNF6O2lpKVOoTIlfGHgvqCxjFf7XNqBTTKWCxEflcmUgqXwo9A7TU0mTTyr7nLGMAsNE2CR3w==", + "optional": true, + "requires": { + "@aws-sdk/node-config-provider": "3.209.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/url-parser": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-ini": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.209.0.tgz", + "integrity": "sha512-aszuzkKIg7V+tCcq8RNpr1dAyECXWvJRAvzlmE5ZBYtjHMIX/qVAqSP4sfLNeI/Qagyj7W0TeVA1XVRjkivjYA==", + "optional": true, + "requires": { + "@aws-sdk/credential-provider-env": "3.208.0", + "@aws-sdk/credential-provider-imds": "3.209.0", + "@aws-sdk/credential-provider-sso": "3.209.0", + "@aws-sdk/credential-provider-web-identity": "3.208.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/shared-ini-file-loader": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-node": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.209.0.tgz", + "integrity": "sha512-R0kV6B+GxbfdSowf/6eeEAHZC6X7P/IxJ/o/gCuMmAOixge0e6AWVgCvrd0cg0togJHWbmoYSuUyqWPIMxM1Yg==", + "optional": true, + "requires": { + "@aws-sdk/credential-provider-env": "3.208.0", + "@aws-sdk/credential-provider-imds": "3.209.0", + "@aws-sdk/credential-provider-ini": "3.209.0", + "@aws-sdk/credential-provider-process": "3.209.0", + "@aws-sdk/credential-provider-sso": "3.209.0", + "@aws-sdk/credential-provider-web-identity": "3.208.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/shared-ini-file-loader": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-process": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.209.0.tgz", + "integrity": "sha512-G0urC5p1kgUfgpK8lncdisSewa8onnoQAVdf2Uh51hOqc7UufGce+ouvLH8J2iMkMaL1MSyu8fqwfZNyDtH37g==", + "optional": true, + "requires": { + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/shared-ini-file-loader": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-sso": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.209.0.tgz", + "integrity": "sha512-SKzUYOn2EFx58+iU1KihGLtBz9s1jolWUQ6HYxOy4AkWnZVGUt9Vb4mIo6wB07nSSUgYRxOSYn21SKvvBzpc2g==", + "optional": true, + "requires": { + "@aws-sdk/client-sso": "3.209.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/shared-ini-file-loader": "3.209.0", + "@aws-sdk/token-providers": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-web-identity": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.208.0.tgz", + "integrity": "sha512-7wtrdEr8uvDr5t0stimrXGsW4G+TQyluZ9OucCCY0HXgNihmnk1BIu+COuOSxRtFXHwCh4rIPaVE1ABG2Mq24g==", + "optional": true, + "requires": { + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-providers": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.209.0.tgz", + "integrity": "sha512-/oQJwzTedZC5TbQJ2pwHcpbcZS7O1RzP/3+cICw73WrIjlrpS1JGmTCvTGrIfGE8RUk5GKdLN3fjgTpVCS82cA==", + "optional": true, + "requires": { + "@aws-sdk/client-cognito-identity": "3.209.0", + "@aws-sdk/client-sso": "3.209.0", + "@aws-sdk/client-sts": "3.209.0", + "@aws-sdk/credential-provider-cognito-identity": "3.209.0", + "@aws-sdk/credential-provider-env": "3.208.0", + "@aws-sdk/credential-provider-imds": "3.209.0", + "@aws-sdk/credential-provider-ini": "3.209.0", + "@aws-sdk/credential-provider-node": "3.209.0", + "@aws-sdk/credential-provider-process": "3.209.0", + "@aws-sdk/credential-provider-sso": "3.209.0", + "@aws-sdk/credential-provider-web-identity": "3.208.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/shared-ini-file-loader": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/fetch-http-handler": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.208.0.tgz", + "integrity": "sha512-GuwkwOeyLKCbSbnFlyHdlKd7u54cnQUI8NfVDAxpZvomY3PV476Tzg8XEyOYE67r5rR6XMqn6IK1PmFAACY+ew==", + "optional": true, + "requires": { + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/querystring-builder": "3.208.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/util-base64": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/hash-node": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.208.0.tgz", + "integrity": "sha512-X5u6nD9+wzaA6qhqbobxsIgiyDJMW8NgqjZgHoc5x1wz4unHUCEuSBZy1kbIZ6+EPZ9bQHQZ21gKgf1j5vhsvQ==", + "optional": true, + "requires": { + "@aws-sdk/types": "3.208.0", + "@aws-sdk/util-buffer-from": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/invalid-dependency": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.208.0.tgz", + "integrity": "sha512-mUpbtijk14KntYy+w5FSvmsfj/Dqa8HylYeCKniKBKkQ1avjEz7CdizVoxyZrR3rldnLE3gItr0FEDRUhtfkAA==", + "optional": true, + "requires": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/is-array-buffer": { + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", + "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", + "optional": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-content-length": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.208.0.tgz", + "integrity": "sha512-8bLh7lHtmKQQ2fk0fGiP7pcVJglB/dz7Q9OooxFYK+eybqxfIDDUgKphA8AFT5W34tJRh5nhT3QTJ6zrOTQM3w==", + "optional": true, + "requires": { + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-endpoint": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.208.0.tgz", + "integrity": "sha512-pVa/cyB6ronfTVAoKUUTFbAPslDPU43DWOKXY/bACC3ys1lFo1CWjz4dLSQARxEEW3iZ1yZTy0zoHXnNrw5CFQ==", + "optional": true, + "requires": { + "@aws-sdk/middleware-serde": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/signature-v4": "3.208.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/url-parser": "3.208.0", + "@aws-sdk/util-config-provider": "3.208.0", + "@aws-sdk/util-middleware": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-host-header": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.208.0.tgz", + "integrity": "sha512-3oyXK81TLWOZ2T/9Ltpbj/Z7R4QWSf+FCQRpY48ND2im/ALkgFRk/tmDTOshv+TQzW1q2lOSEeq4vK6yOCar7g==", + "optional": true, + "requires": { + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-logger": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.208.0.tgz", + "integrity": "sha512-mwSpuWruB8RrgUAAW7w/lvadnMDesl/bZ2IELBgJri+2rIqLGbAtygJBiG0Y3e8/IeOHuKuGkN1rFYZ4SKr7/A==", + "optional": true, + "requires": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-recursion-detection": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.208.0.tgz", + "integrity": "sha512-Dgpf5NEOYXvkQuGcbxvDovTh4HwO4ULJReGko67NJjgdZZyFS1fNykVPncxenRpsN9SJBigswYs3lwPVpqijzA==", + "optional": true, + "requires": { + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-retry": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.209.0.tgz", + "integrity": "sha512-PGHbpGw74HxmtqsMEH+xn2oC5/BPdHVyapB66x83n+sywt1ejTiarbQhNs70YzcSsTrJfbhbrFP1V9AzRmMaQA==", + "optional": true, + "requires": { + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/service-error-classification": "3.208.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/util-middleware": "3.208.0", + "tslib": "^2.3.1", + "uuid": "^8.3.2" + } + }, + "@aws-sdk/middleware-sdk-sts": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.208.0.tgz", + "integrity": "sha512-lFVodZHYLF7puXgNZ1m5ycKbyCPp79nqI+pkRXl066ZtZWzCW8+JKCaLjF3jfXlnvg6foPDJdxUvt0VU5EddGg==", + "optional": true, + "requires": { + "@aws-sdk/middleware-signing": "3.208.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/signature-v4": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-serde": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.208.0.tgz", + "integrity": "sha512-3h2yP6qyf/IhfdvyFeNX7w4BF37vOZvfUDBq+wb1QEc7DCAskoUKWtCCKJ9HDq3IJQp8hzqY82eawUir6flqlQ==", + "optional": true, + "requires": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-signing": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.208.0.tgz", + "integrity": "sha512-cMSWhg8xOrxZw04EYKEQQQ7RT+03rigS4KS3Uy6x/M+jFyoM+sRiY/7376sJCwlpvKH2xJIVpwPbKk/uz4j4DA==", + "optional": true, + "requires": { + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/signature-v4": "3.208.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/util-middleware": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-stack": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.208.0.tgz", + "integrity": "sha512-bvFPUa+RTB7PSRCUsO6bRlEtiEadrDES+dpNmInMNQ9kmbd4OhNOCb664hhtiglIIXX5cd8mSPEo+w/RV0kEEQ==", + "optional": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-user-agent": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.208.0.tgz", + "integrity": "sha512-6RNf+TOZpiCy7xUcDSh8ji/x8ht1oAM+qIhm6hsEPLdI1cTvbPZrwowO9Y6L0J68V9OkEgLYiq77KKKYT7QQSw==", + "optional": true, + "requires": { + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/node-config-provider": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.209.0.tgz", + "integrity": "sha512-jNrUn8qTN9BIxHCcLTv2s2h8Riaz4kjwDhubVQNyI0WGZ+PYKATnZjA+Guzbnq2WMzZmwrMIE5GoOiVsPD8xYQ==", + "optional": true, + "requires": { + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/shared-ini-file-loader": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/node-http-handler": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.208.0.tgz", + "integrity": "sha512-2t0b9Id7WekluqxQdPugAZhe/wdzW0L53rfMEfDS3R0INNSq1sEfddIfCzJrmfWDCrCOGIDNyxo/w7Ki3NclzQ==", + "optional": true, + "requires": { + "@aws-sdk/abort-controller": "3.208.0", + "@aws-sdk/protocol-http": "3.208.0", + "@aws-sdk/querystring-builder": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/property-provider": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.208.0.tgz", + "integrity": "sha512-aUhfuwXjZ5TGzLhBstuAMmbnxHXeSGhzoIS8yy465ifgc95p6cHFZf+ZibgwgCMaGrKlTDCia2zwwpKQHN+4cw==", + "optional": true, + "requires": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/protocol-http": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.208.0.tgz", + "integrity": "sha512-Sr9dmaW0Z9X9s16NHZn94efLRpaqLyLqABFPgjqE8cYP6eLX/VrmZGNR62GFVxCiyEEpVxy4Ddk1YkbRwnuonA==", + "optional": true, + "requires": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/querystring-builder": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.208.0.tgz", + "integrity": "sha512-1Rpauh5hWlK++KjsHQjHcSN7yE05hj1FVb0HaeLrFIJB5rQYWXK7DpOUhmv5SOmU+q6cIM2kNCrSxH31+WglMw==", + "optional": true, + "requires": { + "@aws-sdk/types": "3.208.0", + "@aws-sdk/util-uri-escape": "3.201.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/querystring-parser": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.208.0.tgz", + "integrity": "sha512-dVVLdP3il9bJX74/BNBjFn59XrEVBUZ4xSKYH6t7dgSz9uSu8DcT4pPzwaq+/94dVewCW3zq2jVA1iw1rK7JVQ==", + "optional": true, + "requires": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/service-error-classification": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.208.0.tgz", + "integrity": "sha512-ZZWV3AOTd8UDcfXCNoQ8v4sHaTgFxGaXWO0NHHgqFbVYr1d+8EXQiOy/v8JsY1jrfoXBWXptTOcioCTeM0xBpw==", + "optional": true + }, + "@aws-sdk/shared-ini-file-loader": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.209.0.tgz", + "integrity": "sha512-hji3B/q3zFuElaUQM/ZZUFbCFBsaVjpWATgiDTnSYP+MShWvvwm/WigeC2aCNos1bs/8HVizOy9cmvK63vLZbw==", + "optional": true, + "requires": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/signature-v4": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.208.0.tgz", + "integrity": "sha512-+c5A8RsN4Lk3TXFiQ3ZsW7sJ4zYPPmYQ55ITSfjock5hzgM1vW43Mgvjjq6foW5L7SNfdhLH+NrhpgFwSF/GeA==", + "optional": true, + "requires": { + "@aws-sdk/is-array-buffer": "3.201.0", + "@aws-sdk/types": "3.208.0", + "@aws-sdk/util-hex-encoding": "3.201.0", + "@aws-sdk/util-middleware": "3.208.0", + "@aws-sdk/util-uri-escape": "3.201.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/smithy-client": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.209.0.tgz", + "integrity": "sha512-+d9lPAFOu3hZdLfyzMurRU6xZ+eqwKbF6HY7mDL4hGafRb/uw28HBncSwyUk5s7MIND9+RnvY4F/MwBq9wznXg==", + "optional": true, + "requires": { + "@aws-sdk/middleware-stack": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/token-providers": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.209.0.tgz", + "integrity": "sha512-MMtL/yD98SxjejcZYghLN4qhC1TDNeHjnzb+zBcXANxgh5m+QdhERsZkDGU8QiEo+DL6M2HKbwyXu82z89sqnQ==", + "optional": true, + "requires": { + "@aws-sdk/client-sso-oidc": "3.209.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/shared-ini-file-loader": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/types": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.208.0.tgz", + "integrity": "sha512-5AuOPtY1Hdf4xoEo+voRijl3OnFm8IB+oITXl+SN2iASJv+XPnRNw/QVbIxfGeWgWhmK31F+XdjTYsjT2rx8Qw==", + "optional": true + }, + "@aws-sdk/url-parser": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.208.0.tgz", + "integrity": "sha512-zhU231xkZbUh68Z/TGNRW30MGTZQVigGuMiJU6eOtL2aOulnKqI1Yjs/QejrTtPWsqSihWvxOUZ2cVRPyeOvrA==", + "optional": true, + "requires": { + "@aws-sdk/querystring-parser": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-base64": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz", + "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==", + "optional": true, + "requires": { + "@aws-sdk/util-buffer-from": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-body-length-browser": { + "version": "3.188.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz", + "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==", + "optional": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-body-length-node": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz", + "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==", + "optional": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-buffer-from": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", + "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", + "optional": true, + "requires": { + "@aws-sdk/is-array-buffer": "3.201.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-config-provider": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz", + "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==", + "optional": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-defaults-mode-browser": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.209.0.tgz", + "integrity": "sha512-c+AlHqsgeDr9+87fS1wfnyVzEH3myt56GvNt0puzIv0QQqfpobMnfN8/Fy0cqMpf1eQNYY4a6lFlkComsXi5dw==", + "optional": true, + "requires": { + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/types": "3.208.0", + "bowser": "^2.11.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-defaults-mode-node": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.209.0.tgz", + "integrity": "sha512-RljPVLog6EX052DQjx4XQ95n7ZiAbmn7Vd6YSn1x93U797umaC5CnrT7a/WusTQACtxBDFWcosRgO1ZGDXuRKQ==", + "optional": true, + "requires": { + "@aws-sdk/config-resolver": "3.209.0", + "@aws-sdk/credential-provider-imds": "3.209.0", + "@aws-sdk/node-config-provider": "3.209.0", + "@aws-sdk/property-provider": "3.208.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-endpoints": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.209.0.tgz", + "integrity": "sha512-jwraCtWjQ0P4LyIg4qoQRF94mTUg0zFPmicy4v+Dq1V8BBRf6YWa9B10SoIdGIKQXmQvoyahK5OuH5SWKkY2pw==", + "optional": true, + "requires": { + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-hex-encoding": { + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz", + "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==", + "optional": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-locate-window": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz", + "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==", + "optional": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-middleware": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.208.0.tgz", + "integrity": "sha512-oXilrYpXwaPyMw1uNjL1wmR54zeFzIWx2ve1MSMheIYr26deFP3RpMfKkGXwiOvXzZ9pzTcA8shNLhg1frO/zg==", + "optional": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-uri-escape": { + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", + "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==", + "optional": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-user-agent-browser": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.208.0.tgz", + "integrity": "sha512-Z5n9Kg2pBstzzQgRymQRgb4pM0bNPLGQejB3ZmCAphaxvuTBfu2E6KO55h5WwkFHUuh0i5u2wn1BI9R66S8CgQ==", + "optional": true, + "requires": { + "@aws-sdk/types": "3.208.0", + "bowser": "^2.11.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-user-agent-node": { + "version": "3.209.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.209.0.tgz", + "integrity": "sha512-lWfvnSX8rckMGaalrKZmBlPW7F0QOviG7XbLffwToN4HnYUyXcZXIE4EzOQzuOvDsOUlos/xLkUj6krdIAApcA==", + "optional": true, + "requires": { + "@aws-sdk/node-config-provider": "3.209.0", + "@aws-sdk/types": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-utf8-browser": { + "version": "3.188.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz", + "integrity": "sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==", + "optional": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-utf8-node": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz", + "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==", + "optional": true, + "requires": { + "@aws-sdk/util-buffer-from": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@derhuerst/http-basic": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/@derhuerst/http-basic/-/http-basic-8.2.4.tgz", + "integrity": "sha512-F9rL9k9Xjf5blCz8HsJRO4diy111cayL2vkY2XE4r4t3n0yPXVYy3KD3nJ1qbrSn9743UWSXH4IwuCa/HWlGFw==", + "requires": { + "caseless": "^0.12.0", + "concat-stream": "^2.0.0", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + } + }, + "@discordjs/builders": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.3.0.tgz", + "integrity": "sha512-Pvca6Nw8Hp+n3N+Wp17xjygXmMvggbh5ywUsOYE2Et4xkwwVRwgzxDJiMUuYapPtnYt4w/8aKlf5khc8ipLvhg==", + "requires": { + "@discordjs/util": "^0.1.0", + "@sapphire/shapeshift": "^3.7.0", + "discord-api-types": "^0.37.12", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.1", + "tslib": "^2.4.0" + } + }, + "@discordjs/collection": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.2.0.tgz", + "integrity": "sha512-VvrrtGb7vbfPHzbhGq9qZB5o8FOB+kfazrxdt0OtxzSkoBuw9dURMkCwWizZ00+rDpiK2HmLHBZX+y6JsG9khw==" + }, + "@discordjs/rest": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-1.3.0.tgz", + "integrity": "sha512-U6X5J+r/MxYpPTlHFuPxXEf92aKsBaD2teBC7sWkKILIr30O8c9+XshfL7KFBCavnAqS/qE+PF9fgRilO3N44g==", + "requires": { + "@discordjs/collection": "^1.2.0", + "@discordjs/util": "^0.1.0", + "@sapphire/async-queue": "^1.5.0", + "@sapphire/snowflake": "^3.2.2", + "discord-api-types": "^0.37.12", + "file-type": "^18.0.0", + "tslib": "^2.4.0", + "undici": "^5.11.0" + } + }, + "@discordjs/util": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@discordjs/util/-/util-0.1.0.tgz", + "integrity": "sha512-e7d+PaTLVQav6rOc2tojh2y6FE8S7REkqLldq1XF4soCx74XB/DIjbVbVLtBemf0nLW77ntz0v+o5DytKwFNLQ==" + }, + "@discordjs/voice": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.13.0.tgz", + "integrity": "sha512-ZzwDmVINaLgkoDUeTJfpN9TkjINMLfTVoLMtEygm0YC5jTTw7AvKGqhc+Ae/2kNLywd0joyFVNrLp94yCkQ9SA==", + "requires": { + "@types/ws": "^8.5.3", + "discord-api-types": "^0.37.12", + "prism-media": "^1.3.4", + "tslib": "^2.4.0", + "ws": "^8.9.0" + } + }, + "@sapphire/async-queue": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.0.tgz", + "integrity": "sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==" + }, + "@sapphire/shapeshift": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.7.0.tgz", + "integrity": "sha512-A6vI1zJoxhjWo4grsxpBRBgk96SqSdjLX5WlzKp9H+bJbkM07mvwcbtbVAmUZHbi/OG3HLfiZ1rlw4BhH6tsBQ==", + "requires": { + "fast-deep-equal": "^3.1.3", + "lodash.uniqwith": "^4.5.0" + } + }, + "@sapphire/snowflake": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.2.2.tgz", + "integrity": "sha512-ula2O0kpSZtX9rKXNeQMrHwNd7E4jPDJYUXmEGTFdMRfyfMw+FPyh04oKMjAiDuOi64bYgVkOV3MjK+loImFhQ==" + }, + "@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + }, + "@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + }, + "@types/node": { + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" + }, + "@types/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==" + }, + "@types/whatwg-url": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", + "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "requires": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "requires": { + "@types/node": "*" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "async.parallellimit": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.parallellimit/-/async.parallellimit-0.5.2.tgz", + "integrity": "sha512-4Di2nFsb3jL7aUIICvRSvtw/oynpMIx0JrwYn5hqJI661Dd+mYBi2ElOukOQgRHihU1SCTapb86Vx/Snva5M1w==", + "requires": { + "async.util.eachoflimit": "0.5.2", + "async.util.parallel": "0.5.2" + } + }, + "async.util.eachoflimit": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.eachoflimit/-/async.util.eachoflimit-0.5.2.tgz", + "integrity": "sha512-oZksH0sBW0AEOJKgBCQ79io9DZruoRBLTAea/Ik36pejR7pDpByvtXeuJsoZdPwSVslsrQcsUfucbUaiXYBnAQ==", + "requires": { + "async.util.keyiterator": "0.5.2", + "async.util.noop": "0.5.2", + "async.util.once": "0.5.2", + "async.util.onlyonce": "0.5.2" + } + }, + "async.util.isarray": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.isarray/-/async.util.isarray-0.5.2.tgz", + "integrity": "sha512-wbUzlrwON8RUgi+v/rhF0U99Ce8Osjcn+JP/mFNg6ymvShcobAOvE6cvLajSY5dPqKCOE1xfdhefgBif11zZgw==" + }, + "async.util.isarraylike": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.isarraylike/-/async.util.isarraylike-0.5.2.tgz", + "integrity": "sha512-DbFpsz3ZFNkohAW8IpGTlm8gotU32zpqe3Y2XkEA/G3XNO6rmUTKPpo7XgXUruoI+AsGi8+0zWpJHe7t1sLiAg==", + "requires": { + "async.util.isarray": "0.5.2" + } + }, + "async.util.keyiterator": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.keyiterator/-/async.util.keyiterator-0.5.2.tgz", + "integrity": "sha512-cktrETawCwgu13y3KZs2uMGFnNHc+IjKPZsavtRaoCjLELkePb2co4zrr+ghPvEqLXZIJPTKqC2HFZgJTssMVw==", + "requires": { + "async.util.isarraylike": "0.5.2", + "async.util.keys": "0.5.2" + } + }, + "async.util.keys": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.keys/-/async.util.keys-0.5.2.tgz", + "integrity": "sha512-umCOCRCRYwIC2Ho3fbuhKwIIe7OhQsVoVKGoF5GoQiGJUmjP4TG0Bmmcdpm7yW/znoIGKpnjKzVQz0niH4tfqw==" + }, + "async.util.noop": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.noop/-/async.util.noop-0.5.2.tgz", + "integrity": "sha512-AdwShXwE0KoskgqVJAck8zcM32nIHj3AC8ZN62ZaR5srhrY235Nw18vOJZWxcOfhxdVM0hRVKM8kMx7lcl7cCQ==" + }, + "async.util.once": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.once/-/async.util.once-0.5.2.tgz", + "integrity": "sha512-YQ5WPzDTt2jlblUDkq2I5RV/KiAJErJ4/0cEFhYPaZzqIuF/xDzdGvnEKe7UeuoMszsVPeajzcpKgkbwdb9MUA==" + }, + "async.util.onlyonce": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.onlyonce/-/async.util.onlyonce-0.5.2.tgz", + "integrity": "sha512-UgQvkU9JZ+I0Cm1f56XyGXcII+J3d/5XWUuHpcevlItuA3WFSJcqZrsyAUck2FkRSD8BwYQX1zUTDp3SJMVESg==" + }, + "async.util.parallel": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.parallel/-/async.util.parallel-0.5.2.tgz", + "integrity": "sha512-0bEvwmQ8fxsTYNwacw5iq0i3PvGryRkXxZ01Rvox21izdMdls9IH2rAZjfunbgI8j6nFRyIdCmMINQ9kka99ow==", + "requires": { + "async.util.isarraylike": "0.5.2", + "async.util.noop": "0.5.2", + "async.util.restparam": "0.5.2" + } + }, + "async.util.restparam": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.restparam/-/async.util.restparam-0.5.2.tgz", + "integrity": "sha512-Q9Z+zgmtMxFX5i7CnBvNOkgrL5hptztCqwarQluyNudUUk4iCmyjmsQl8MuQEjNh3gGqP5ayvDaextL1VXXgIg==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", + "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "boolstring": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/boolstring/-/boolstring-1.0.2.tgz", + "integrity": "sha512-0JLNSmZUv1m/O8sVayFm2t0naiOXwQ9O2Gq9u1eoIkhvu6U5NQER/e3k4BGpjZ33G775lWMT7TzJ7r5VtmEnbQ==" + }, + "bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "bson": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", + "integrity": "sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==", + "requires": { + "buffer": "^5.6.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "requires": { + "streamsearch": "^1.1.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "requires": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + } + }, + "cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "requires": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cli-color": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.2.0.tgz", + "integrity": "sha512-AqfwItf/UqGif3FBErI3NHX04v5ywJtGYlL5z4OqWR50u7g+Fz3Xw2qcCIbKVPrqtJCBwSOkDgnSlHbcpwDKHw==", + "requires": { + "ansi-regex": "^2.1.1", + "d": "1", + "es5-ext": "^0.10.12", + "es6-iterator": "2", + "memoizee": "^0.4.3", + "timers-ext": "0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dasu": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/dasu/-/dasu-0.4.3.tgz", + "integrity": "sha512-AFwspl5k7V8MW8H7tyIGJ0gtOauUg7JC+DgiRFUIXvPNNDFXTMtvnCkZY0macN6JLGqBjNP38WVnQN7Iv3RSlg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "discord-api-types": { + "version": "0.37.17", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.17.tgz", + "integrity": "sha512-5ZIw1VtkmToBy8ziketjHkZnW1FoLevyXdK/TslNFLozijug2RnB3MyBNtSGzML1c72koU3neeGkvFZ8OiU0tQ==" + }, + "discord-ytdl-core": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/discord-ytdl-core/-/discord-ytdl-core-5.0.4.tgz", + "integrity": "sha512-O+G9wuCw5TERR9iHZFMYnYQbs/ZGudDc9cxa1OKSV5TdcBYrHGS1JqvE90ZvSQ6SmS4XvqtOf/Okls6yiGJ3sg==", + "requires": { + "prism-media": "^1.2.9" + } + }, + "discord.js": { + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.6.0.tgz", + "integrity": "sha512-On1K7xpJZRe0KsziIaDih2ksYPhgxym/ZqV45i1f3yig4vUotikqs7qp5oXiTzQ/UTiNRCixUWFTh7vA1YBCqw==", + "requires": { + "@discordjs/builders": "^1.3.0", + "@discordjs/collection": "^1.2.0", + "@discordjs/rest": "^1.3.0", + "@discordjs/util": "^0.1.0", + "@sapphire/snowflake": "^3.2.2", + "@types/ws": "^8.5.3", + "discord-api-types": "^0.37.12", + "fast-deep-equal": "^3.1.3", + "lodash.snakecase": "^4.1.1", + "tslib": "^2.4.0", + "undici": "^5.11.0", + "ws": "^8.9.0" + } + }, + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "requires": { + "domelementtype": "^2.3.0" + } + }, + "domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "requires": { + "jake": "^10.8.5" + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "engine.io": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "dependencies": { + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "requires": {} + } + } + }, + "engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==" + }, + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" + }, + "erlpack": { + "version": "git+ssh://git@github.com/discord/erlpack.git#cbe76be04c2210fc9cb6ff95910f0937c1011d04", + "from": "erlpack@github:discord/erlpack", + "requires": { + "bindings": "^1.5.0", + "nan": "^2.15.0" + } + }, + "es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "requires": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "requires": { + "type": "^2.7.2" + }, + "dependencies": { + "type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-xml-parser": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz", + "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==", + "optional": true, + "requires": { + "strnum": "^1.0.5" + } + }, + "ffmpeg-static": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ffmpeg-static/-/ffmpeg-static-5.1.0.tgz", + "integrity": "sha512-eEWOiGdbf7HKPeJI5PoJ0oCwkL0hckL2JdS4JOuB/gUETppwkEpq8nF0+e6VEQnDCo/iuoipbTUsn9QJmtpNkg==", + "requires": { + "@derhuerst/http-basic": "^8.2.0", + "env-paths": "^2.2.0", + "https-proxy-agent": "^5.0.0", + "progress": "^2.0.3" + } + }, + "file-type": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.0.0.tgz", + "integrity": "sha512-jjMwFpnW8PKofLE/4ohlhqwDk5k0NC6iy0UHAJFKoY1fQeGMN0GDdLgHQrvCbSpMwbqzoCZhRI5dETCZna5qVA==", + "requires": { + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0", + "token-types": "^5.0.1" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + } + }, + "findit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findit/-/findit-2.0.0.tgz", + "integrity": "sha512-ENZS237/Hr8bjczn5eKuBohLgaD0JyUd0arxretR1f9RO46vZHA1b2y0VorgGV3WaOT3c+78P8h7v4JGJ1i/rg==" + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "htmlparser2": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" + } + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "requires": { + "@types/node": "^10.0.3" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + } + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "human-time": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/human-time/-/human-time-0.0.2.tgz", + "integrity": "sha512-sbYI90YhYmstslPTb70BLGjy6mdESa0lxL7uDR4fIVAx9Iobz8fLEqi7FqF4Q/6vblrzZALg//MsYJlIPBU8SA==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, + "jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + } + }, + "jsonpath-plus": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-5.0.7.tgz", + "integrity": "sha512-7TS6wsiw1s2UMK/A6nA4n0aUJuirCVhJ87nWX5je5MPOl0z5VTr2qs7nMP8NZ2ed3rlt6kePTqddgVPE9F0i0w==" + }, + "kareem": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.4.1.tgz", + "integrity": "sha512-aJ9opVoXroQUPfovYP5kaj2lM7Jn02Gw13bL0lg9v0V7SaUc0qavPs0Eue7d2DcC3NjqI6QAUElXNsuZSeM+EA==" + }, + "keypress": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", + "integrity": "sha512-HjorDJFNhnM4SicvaUXac0X77NiskggxJdesG72+O5zBKpSqKFCrqmndKVqpu3pFqkla0St6uGk8Ju0sCurrmg==" + }, + "lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" + }, + "lodash.uniqwith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniqwith/-/lodash.uniqwith-4.5.0.tgz", + "integrity": "sha512-7lYL8bLopMoy4CTICbxygAUq6CdRJ36vFc80DucPueUee+d5NBRxz3FdT9Pes/HEx5mPoT9jwnsEJWz1N7uq7Q==" + }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", + "requires": { + "es5-ext": "~0.10.2" + } + }, + "m3u8stream": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/m3u8stream/-/m3u8stream-0.8.6.tgz", + "integrity": "sha512-LZj8kIVf9KCphiHmH7sbFQTVe4tOemb202fWwvJwR9W5ENW/1hxJN6ksAWGhQgSBSa3jyWhnjKU1Fw1GaOdbyA==", + "requires": { + "miniget": "^4.2.2", + "sax": "^1.2.4" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memoizee": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + } + }, + "memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "miniget": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/miniget/-/miniget-4.2.2.tgz", + "integrity": "sha512-a7voNL1N5lDMxvTMExOkg+Fq89jM2vY8pAi9ZEWzZtfNmdfP6RXkvUtFnCAXoCv2T9k1v/fUJVaAEuepGcvLYA==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + }, + "mongodb": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.11.0.tgz", + "integrity": "sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg==", + "requires": { + "@aws-sdk/credential-providers": "^3.186.0", + "bson": "^4.7.0", + "denque": "^2.1.0", + "mongodb-connection-string-url": "^2.5.4", + "saslprep": "^1.0.3", + "socks": "^2.7.1" + } + }, + "mongodb-connection-string-url": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.4.tgz", + "integrity": "sha512-SeAxuWs0ez3iI3vvmLk/j2y+zHwigTDKQhtdxTgt5ZCOQQS5+HW4g45/Xw5vzzbn7oQXCNQ24Z40AkJsizEy7w==", + "requires": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "mongoose": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.7.2.tgz", + "integrity": "sha512-lrP2V5U1qhaf+z33fiIn7aYAZZ1fVDly+TkFRjTujNBF/FIHESATj2RbgAOSlWqv32fsZXkXejXzeVfjbv35Ow==", + "requires": { + "bson": "^4.7.0", + "kareem": "2.4.1", + "mongodb": "4.11.0", + "mpath": "0.9.0", + "mquery": "4.0.3", + "ms": "2.1.3", + "sift": "16.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==" + }, + "mquery": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.3.tgz", + "integrity": "sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA==", + "requires": { + "debug": "4.x" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node-fzf": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/node-fzf/-/node-fzf-0.5.3.tgz", + "integrity": "sha512-crN8rRfApu/GUrtKq+zJ6LueUyNAOJpFHxoT2Ru1Q+OYRa/F/H7CXvzcMrFc7D964yakYZEZ9XR3YbdSHXgyCw==", + "requires": { + "cli-color": "~1.2.0", + "keypress": "~0.2.1", + "minimist": "~1.2.0", + "redstar": "0.0.2", + "string-width": "~2.1.1", + "ttys": "0.0.3" + } + }, + "node-gyp-build": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==" + }, + "nodemon": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", + "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "requires": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "requires": { + "boolbase": "^1.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + }, + "parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "requires": { + "entities": "^4.4.0" + } + }, + "parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "requires": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "peek-readable": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "prism-media": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.4.tgz", + "integrity": "sha512-eW7LXORkTCQznZs+eqe9VjGOrLBxcBPXgNyHXMTSRVhphvd/RrxgIR7WaWt4fkLuhshcdT5KHL88LAfcvS3f5g==", + "requires": {} + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readable-web-to-node-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", + "requires": { + "readable-stream": "^3.6.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "redstar": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/redstar/-/redstar-0.0.2.tgz", + "integrity": "sha512-VNvLaLxMJMYiAasJX5Q/GC+Os7FXL0yPWFDuTodhR7Na9wqzrXsePPWC+EtIv4t3q5DyAK00w423xi5mQN2fqg==", + "requires": { + "minimatch": "~3.0.4" + }, + "dependencies": { + "minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sift": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", + "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" + }, + "simple-update-notifier": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz", + "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==", + "requires": { + "semver": "~7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" + }, + "socket.io": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.3.tgz", + "integrity": "sha512-zdpnnKU+H6mOp7nYRXH4GNv1ux6HL6+lHL8g7Ds7Lj8CkdK1jJK/dlwsKDculbyOHifcJ0Pr/yeXnZQ5GeFrcg==", + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.2.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" + }, + "socket.io-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", + "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "requires": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + } + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "optional": true, + "requires": { + "memory-pager": "^1.0.2" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "requires": { + "ansi-regex": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" + } + } + }, + "strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "optional": true + }, + "strtok3": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", + "requires": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "requires": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "token-types": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", + "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", + "requires": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + } + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "requires": { + "nopt": "~1.0.10" + } + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "requires": { + "punycode": "^2.1.1" + } + }, + "ts-mixer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.2.tgz", + "integrity": "sha512-zvHx3VM83m2WYCE8XL99uaM7mFwYSkjR2OZti98fabHrwkjsCvgwChda5xctein3xGOyaQhtTeDq/1H/GNvF3A==" + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "ttys": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/ttys/-/ttys-0.0.3.tgz", + "integrity": "sha512-UCqXRZS2S7U4aVB7Salj3ChPRSsb57ogJpJ1eMCvyowxFOBGsaHKcRU8bovcDwajX1mRbv0IpUnYkoG7Ieo5Zg==" + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "dev": true + }, + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + }, + "undici": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.12.0.tgz", + "integrity": "sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg==", + "requires": { + "busboy": "^1.6.0" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" + }, + "whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + }, + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "requires": {} + }, + "yt-search": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/yt-search/-/yt-search-2.10.3.tgz", + "integrity": "sha512-msITxMhn+1f3RIlS2R0d5/275grX0nUgaD570Fap3gvPmwfvR9w31JG8B9++4Xtm6BLAzhdITK7kAWRInef8QQ==", + "requires": { + "async.parallellimit": "~0.5.2", + "boolstring": "~1.0.2", + "cheerio": "^1.0.0-rc.10", + "dasu": "~0.4.3", + "human-time": "0.0.2", + "jsonpath-plus": "~5.0.2", + "minimist": "~1.2.5", + "node-fzf": "~0.5.1" + } + }, + "ytdl-core": { + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.11.2.tgz", + "integrity": "sha512-D939t9b4ZzP3v0zDvehR2q+KgG97UTgrTKju3pOPGQcXtl4W6W5z0EpznzcJFu+OOpl7S7Ge8hv8zU65QnxYug==", + "requires": { + "m3u8stream": "^0.8.6", + "miniget": "^4.2.2", + "sax": "^1.1.3" + } + }, + "zlib-sync": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/zlib-sync/-/zlib-sync-0.1.7.tgz", + "integrity": "sha512-UmciU6ZrIwtwPC8noMzq+kGMdiWwNRZ3wC0SbED4Ew5Ikqx14MqDPRs/Pbk+3rZPh5SzsOgUBs1WRE0iieddpg==", + "requires": { + "nan": "^2.14.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..71bbcc5 --- /dev/null +++ b/package.json @@ -0,0 +1,38 @@ +{ + "name": "remchanv2", + "version": "1.0.0", + "description": "", + "main": "musicWorker.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node server.js", + "devStart": "nodemon server.js", + "_test": "nodemon test.js", + "musicWorker": "nodemon musicWorker.js 334456736633323520 Legendary" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@discordjs/voice": "^0.13.0", + "axios": "^1.1.3", + "bufferutil": "^4.0.7", + "discord-ytdl-core": "^5.0.4", + "discord.js": "^14.6.0", + "ejs": "^3.1.8", + "erlpack": "github:discord/erlpack", + "express": "^4.18.2", + "ffmpeg-static": "^5.1.0", + "findit": "^2.0.0", + "mongoose": "^6.7.2", + "nodemon": "^2.0.20", + "socket.io": "^4.5.3", + "tweetnacl": "^1.0.3", + "utf-8-validate": "^5.0.10", + "yt-search": "^2.10.3", + "ytdl-core": "^4.11.2", + "zlib-sync": "^0.1.7" + }, + "devDependencies": { + "typescript": "^4.9.3" + } +} diff --git a/public/css/addtodiscord.css b/public/css/addtodiscord.css new file mode 100644 index 0000000..204af6a --- /dev/null +++ b/public/css/addtodiscord.css @@ -0,0 +1,103 @@ + +@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@1,900&display=swap'); + +body +{ + margin:0; + background-image: url("../images/wallhaven-650953.png"); + height:100%; + width:100%; + position:absolute; + top:0%; + left:0%; + background-repeat: no-repeat; + background-attachment: fixed; + background-position: center; +} + +.Footer +{ + font-family:Verdana, sans-serif; + color:rgb(14, 19, 19); + position: fixed; + left: 0; + bottom: 0; + width: 100%; + text-align: center; +} +button +{ + display:inline-block; + padding:0%; + margin:0; + height:10%; + width:30%; +} +.Discordbtn +{ + position:static; +} +.DiscordAddBtn +{ + height: 70%; + width:70%; + +} +.githublogo +{ + height:5%; + width:5%; +} +.github +{ + display:inline-block; + padding:3%; + font-family:Verdana, sans-serif; + font-size:100%; + font-weight:bolder; + color:black; + text-align: center; +} +h1 +{ + display:block; + padding-bottom: 30%; + color:rgb(0, 183, 255); + font-size: 50px; + font-family: 'Lato', sans-serif; + font-weight: bolder; + text-align: center; +} +a, +a:link, +a:visited, +a:hover, +a:active +{ + text-decoration: none; + color:black; +} +.center +{ + text-align: center; + margin: auto; + width: 50%; + padding: 10px; +} + + +.verticalCenter +{ + position: absolute; + margin: 0; + top: 50%; + left: 50%; + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} +.container +{ + height: 100%; + position: relative; + +} \ No newline at end of file diff --git a/public/css/index.css b/public/css/index.css new file mode 100644 index 0000000..da05f53 --- /dev/null +++ b/public/css/index.css @@ -0,0 +1,276 @@ +@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@1,900&display=swap'); + +body +{ + margin:0; + background-image: url("../images/wallhaven-650953.jpg"); + height:100%; + width:100%; + position:absolute; + top:0%; + left:0%; + background-repeat: no-repeat; + background-attachment: fixed; + background-position: center; + +} + +.Footer +{ + font-family:Verdana, sans-serif; + color:rgb(14, 19, 19); + position: fixed; + left: 0; + bottom: 0; + width: 100%; + text-align: center; +} +button +{ + display:inline-block; + padding:0%; + margin:0; + height:10%; + width:30%; +} + +.DiscordAddBtn +{ + position:absolute; + top:45%; + left:calc(50% - 17.5%); + height: 10%; + width:35%; + +} +.githublogo +{ + height:5%; + width:5%; +} +.github +{ + display:inline-block; + padding:3%; + font-family:Verdana, sans-serif; + font-size:100%; + font-weight:bolder; + color:black; + position: absolute; + top:55%; + left:40vw; +} +h1 +{ + display:block; + padding-bottom: 30%; + color:rgb(0, 183, 255); + font-size: 50px; + font-family: 'Lato', sans-serif; + font-weight: bolder; + text-align: center; +} + +.h3 +{ + text-align: center; + position: relative; + top: 60%; + padding-top: 1%; +} +.bottom +{ + position: absolute; + top:98%; + width: 85%; + border-bottom: 2px solid #010f14; +} +a, +a:link, +a:visited, +a:hover, +a:active +{ + text-decoration: none; + color:black; +} +.center +{ + text-align: center; + margin: auto; + width: 50%; + padding: 10px; +} + + +.verticalCenter +{ + position: absolute; + margin: 0; + top: 50%; + left: 50%; + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} +.container +{ + height: 100%; + position: relative; + +} + +.SideNav +{ + overflow: hidden; + background-color: #071c24; + margin: 0 0 0 0; + padding:0; + width: 15%; + height: 100%; + position: fixed; + right: 0%; + z-index: 1; + border-left: 2px solid #010f14; + +} + +.SideNav ul +{ + list-style: none; + position: absolute; + top:30%; + margin-right: auto; +} + +.SideNav a +{ + color: #ffffff; + text-align: center; + font-size: 17px; + text-decoration: none; +} +.btLogin +{ + float: left; + color: #ffffff; + background-color: #010f14; + height: 30px; + border-style: none; + margin-left: 10%; +} +.btRegister +{ + float: right; + color: #ffffff; + background-color: #010f14; + height: 30px; + border-style: none; + margin-right: 10%; +} +button:hover +{ + background-color: #7c949c ; +} +#iName +{ + color: rgba(0, 0, 0, 0.377); +} +#iPassword +{ + color: rgba(0, 0, 0, 0.377); +} +#iName:focus::placeholder +{ + color:transparent; +} +#iPassword:focus::placeholder +{ + color:transparent; +} + +#iName:focus +{ + color: black +} +#iPassword:focus +{ + color: black +} +#pLogin +{ + color: ivory; + text-align: Left; + font: helvetica; + font-size: 17px; + text-decoration: none; + margin-bottom: 45%; +} +div#password-constraints +{ + margin: 5px 0 0 0; + font-size: 16px; + z-index: 0; +} +button#toggle-password +{ + background: none; + border: none; + cursor: pointer; + font-weight: 300; + padding-left: 2%; + position: relative !important; + color: rgb(0, 183, 255); + top: -2.25vh !important; + right: -10.5vw !important; + margin-right: 3%; +} +label +{ + color:ivory; +} +button#toggle-password { + background: none; + border: none; + cursor: pointer; + font-weight: 300; + padding: 0; + /* Display at the top right of the password section */ + position: absolute; + top: -4px; + right: -2px; + } + + div#password-constraints { + display:none; + margin: 5px 0 0 0; + font-size: 16px; + } + input[type=password]:hover div#password-constraints +{ + background-color: black; + display: block; +} +@media (min-width: 450px) { + + button { + font-size: 14px; /* fallback */ + font-size: var(--desktop-font-size); + } + button#signin { + margin: 40px 0 0 0; + } + div#password-constraints { + font-size: 14px; + } + input { + font-size: 14px; /* fallback */ + } + label { + font-size: 14px; /* fallback */ + } + } +#Forgot +{ + font-size: 12px; + margin-left: 3%; +} \ No newline at end of file diff --git a/public/images/297223b974b01cc567b25a200d1e3229.png b/public/images/297223b974b01cc567b25a200d1e3229.png new file mode 100644 index 0000000000000000000000000000000000000000..80a25f9b129f8ad9c5f63ef97eee83352da7c88e GIT binary patch literal 27434 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 lH92-r4{+F_Bh>(#G~y5BOs4DSM|P4 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 b@L_V%TR}Kl6c(>^A4XQ{t7L_^f#3fDXt!SS literal 0 HcmV?d00001 diff --git a/public/images/favicon.ico b/public/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7c5292e6c2cbfe113f0cd25376e0a2f68eefaa8f GIT binary patch literal 17470 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 KF_osCH~t5h4ON@~ literal 0 HcmV?d00001 diff --git a/public/images/wallhaven-650953.jpg b/public/images/wallhaven-650953.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0dd761875bf039d3cfab0fc3a689721ef67ad13f GIT binary patch literal 261599 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

-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ℜQv9y6A^X~AA2DH7(A49Og@hR#NiuBOBXp^WoB2+0 z_`ud7&c4URUnWS%UCnSOPnHT$=G|yTAZmHU7v2pR*N>wo!3-25b~n? zs_F!4zHvwViO9+L5%-nQULNHMpp`8F-n`rIUmc!481tRCwAW%c%{Tf%v)E9T$)GRn zi#+0EN!Mo&TfMO<2vtDp0?qH@$lXH0Qg$6OjG)2ATg=qCUsZI8_w}!_nX%*7UriCW zQPI@cE_b>dw~wc&>ZtW4@lSUBcu+HZo2jil(XJ2h9PZ;oy!oGC{d2)0*(gvR?Fp;N_=MX{Tzg=kb=$cq}%o$xgd2TrNY4lUez3~*M&%$hW`;A9n z(omFL1~R>ZWPP?S5$C>kX+8OEWjCLy*S;UK!CvBt^o@Tlw#Z#bnSuh_q?57s`c?-> z3_Mpa4^JM#*hFePvcTbmF%m(f0I?K4**4fm2ytvRG`{%|wn()4sAFtWX3tz)-act} zN{;f-6;E3Ox&na^QAsqdEL2MuMr$F=U=#J@>SgK~?0*mOCEidRwiG=tkuYYE8;*N{tDPR^Q1`Q*<8ozSQe zDOp@&>1#4)Pz8vS7lr#;T)6a8H_dfQJGHsHS{99$9+W-oQ=2kICVTAq_x+^L zNZA>`nui!rDNAgeF`2Aqk3rOPu(Ya@63$K;=jtr3(^yYU4tvHQ7xo(~^kRlGZ6Ulv zY>&~ZwM$Q)bu(mnW9t3|bw%l#tNWHF#=P8DS#UkG^B#uID%Z_*8z+->79JK@3 z`A5TwU3J4)ldBmSkqDz$B|`uwf=(0>9VrWWa&KEns4E!d297)WGEov82|x@16%~N1 zxjZM})dPkDpd0@G+vMlOi07~fz|&Bo7$ha6!E6f%Ytiv@fZX)|rC|m-=DGj1W5$2( zmQxEgfP@F7RLS5}Bw%SRMM1+N`ERdWj0^a?|0%7&l>is`CnTjX0B{aOL?|AX8#1ai z6Gtm<#{w*nMy=M-KEB}RPWIV%gNx2e}BS#%|_Kpyo zP3$awFJA|CgJ`mEE^+~gc{+2>n~lFbY8Nm&PyE3YwydnhDLTg4r@aK`JOVNFx2LBF z&iW{RQEDcu?$R~fzWb}ztg(*yE(iV;{CZ`p7XmvmXGNKq{yz7P-nD-tEDJLD1~o^D zfAabhKI7HJZd%l$In<;ry&Np|ZKD6TO(&->0C*8Y(9J_%5OiRSV~(PN;-=L{P{#^6 z&s=Kp|5hrksJl;{UN1UhVa-{Qq3~zCaPj7pO`hiQ6_jALHDnsEvC>R#K}Sm8qjdty1Lx&>hM+pOy@Q&T7Ln{5e&a}{t{_x(U-xxE{LE1iJJ!)2RTOhN zVO#Xcu)Ky)=ANI>F&ZYeu2B6LXw#NX&C_Ylv8^>dCYEPZ0*NPIDVW=&i26OD%Qvl!&MU}{W2TyXnB$*1Ia z5UsX;N?pU=o?^H%bd4r{Hn%uhRG*o_8?WERNG9eTyaWZ;Ctcly3YrV9I44@vr%gty zuqmy|@|9JM%S2quLmr~ZK?!jqG}OkOxBGzectZZvc(00)FcCt^Fw}L>{*&-@#MTdR zbo{3HaQzS){B=u(5qGH*jIlCsG;Jo} zi&VUSg4uXumlkYj=iV`2Lo;#~OTAb;M1Ejrw9P4QBouZTvyKHONB&-0D7ORchkMY3 zQdZQaKGX<%wCgC+0UUXoOyS&t@M;8iPWLgxK^Uhi7KL(58Ex3{TNx9+%jA;EF9}<} z9mTjuUQqy1P0szZh)sz5lma_hb+CLdr`G)-=_wZW9!tegWD1pG8}aDTC~a9Q77a zJeyr2b!5hQyu7Rs#p&CPx$#FmpqLf8QkcELKW6)f*a~sbADBIX}++^F(%;^ z&+~C|!5b&ji+uaTHZGq2GX;o!`6%+E-u(1Nxhe;D*79k_3fZBHy;R@chd)viqVLvS zk&um8t$veKBqs_qA+l~?3%x}3y%n1j@}a3A#FgD>XsDq=V3GEIY2o55MuEde$Z7>^ zOnluWB;@FigO^61-c4xu4(wFcWMUT90pG&_Sh!8e*6}OxF#7D+cQWq%!LS1Y_A{7| zZ<>5=+Y0ocWs^0GzaUBNI5*NCPMQ##pbVx~%hjulpZ0C(ZP1w+=pF>R;j}zaQWFKJ| zxEvITw@}(Lq_*;tFxaV7pa2;BIei|1z6pf{`|6o{a_C3ow zclo!Q^zhJYHb?k3JlS`iEhfCBHLHF@$c1sF^l`!q1S5k=hl!VPJN3zAz2qZ;y(TY7 zMB7+lwn}SfkU!Xif95j1d*R*rLobmhI5xZMGQh=2*d-V?9AEsc=U}9bf^bkiwUzYH z-D`-NwD>+C(pO@DMQsp;3o~VRZ#?ZK3k6y)DH_K>SL(fUbr3#)1#QR^Pr3^b&xy${ zJjX@Mkz>305_x*5{OshBmc5lr%J;`PSffbXpyds;&#i#6sX<$OaO2G$2#OUl! z-8B)L6l`PrE?c9YCfl1o_$+@Be7!qPJQ*@XrcLZXDF27buO8qU2XkFvmDs?$fRoD zk(Qadf+eBoE9wHLW%7p!53>WxH-f2per1_obmpbN>Wr!~{T_Gc9?8SL{Bd^f(KiVA zwY`OR2D3yGO-+p#1b$x>lWh;mCjHvYeS4;SJggF^Q)(#NY4R~WGWmu1Ql6{SRQDndFJtE_aZ56^&bE_OuAMJ*%bpJ+B=$I8u z)ym^=SKu0|Z=QIYDjd$8<8Ek{_+1j}YI@vpZt-EYvr4Wpfnuz(^9_x!+# zpAzkE0^*pQuJFE+8-p7w;(&HrBA!y}tzgG1oHr@1_sSV#pfUU1W1y#wD)9EuAO%^Y3H=3$Os*N%vMb1~Y?{Ofxd3dPOeiy@% z$#TtrLne+2luMd6u5gVC7zawtXAkQW5o}4{JQpt*Lyj*?lostMCC6PIr1B_l%p!Ly z7~Hb%Bm?3PFWcX{a%5NcJ}Zkpzg5{P8vQ)c_8|5LjZzWtB>405xeaL|wtMaP_$$D{ zk{UIeYjb+wRKrlE={1jocTAsUm)1>4Y44`{SD*z%TkYTHSq4tvu$V zqo-R+@q5{UBu@5SA<|n7hP7Dy;%vRMCfIeyUT3~A-NrKo$MT3PaE=IBi*~0l<#^&R zOSM6YzMg#{bXI%t;0LUyNh8LIC#{m7G_|%>&FNH>{$xng348J6Jy-4~yEW>_%|ob~ zy0aQk3@iwi_CiE#dgGXcw>ur_8}sbdBrvEjyiq$-PK z^gDTwltujKO@^jzUb-5{P&d!oUU$Kd6W*bW^6r=tQ}szpO;*L0a=(2Wp-y*D<1SVX z_hYl>bQ1#WM;HeVF_+*S8*kbw8UPH8`lMoD@?QQg!&LZB3dG3ut9F%A1N5~(A`fv@ zOO8B_NR-d0W_>9UzCyso&YO;k=o&tw)ATT=TUHRoeb*R+{%DzeZ1WcX$R=M;(2`&X z-y%6WXK`t(X1k1~62M4Hx*}NSycqvDusCvp<&RUoZInRAol2QI{rh4mFScpHf6|Ii zB}DuFBs%P9s{YkO4a;&&bIY$9BFQv5X`Lu5B=jU!Et)9F3M2r-BuyBNri-77O!M4$ zgwQ&NW`S&p5IT~i1`|-So*SwEX9=+a0Ik6K5zzF~k)^+!Z;P03%i)*n zzd)~0dl~%SPbY!@_V4k z01kM`XR_9RD(-V1_-_vuru@vni4EZk3&#(Z{Rpfbm37E2JIj+r2|dO||3X`w)%Xkx zG`?+8d}~GGuAaok`g(*1JMp)dV|a64;W!~$u{|{5-g|cREorAXK;Lji zwO}m%UFxljC);@<1A@}N@W&EF>?4)G5#Fg?p*-Tu>cor!nSl!JD4(CmDvv}o)QeCF z2t;$F?i+S?cI!NAN5|ZYi^KCWX~LKHrS=jq*;a^sBTHmB8|P;Re_sSNr6q};D2VeK zY^^VSJ*+5V9}28#3~wp#6q&IL^v|MHB?VP8XVWK@1n=FvGs>@2{ydR{TgG_kZzG?Y zjxK+nHq|;e;2h_=1<_g@Ky=;uR)_TCrGGlgil3iu;m?9oKffugNq?P{@289WCv2TAXFK#~u2SBhVRM7&v9d0Ltzc>EH zMz`)yRAeI!_3LqCxup(^DEfsrW97-`w5IK!Eb1U6MB7L?+vZPa5qTa`1J+(XoWQ8$ z6cM=@%N4WsBVAs0N~PJWjufNVdSxzNN^P(Hvdm1S)hUO6K%nZgfo(Y(G9+(KnT?$5 zfDt02fG=hqg@WrVKB=^-X7Yx=q9CLI<`BAg^=Inn5S{J*Pqd$Lb!mBV{i#Tf&L=!W zXDzDnq7=K+==~c}?opq&p(c^0nb8}fLUlD4$x-n)SaJxb13Id$?{*HFng{0RlC~Cx zk7SM2{MsX@wMmu8GaDr~?<;l6(ko5-R!53mVEL|tmfk1{5@N2KFQc=iyhJsixx63G zRjf>OTpW=aYA?VXFvcmLIIqpe&*>B{4Bu!tQlmPvo}^Bczg2advdA1eH0HzNI`8Ea zsbTIu0&mesSB9!hMwpzZv)8nh>MrpbVJLk~iM&M*xbDs9}YRI`Va$1j}O!|bX_ zx|)ENk-rgE;Z$``-)bIrq-Ux|&j;8V46{BCIG(PZscg@jA3`crgkP6bO?P>OY7;tb zC|SfeaVHIr`@35#?=|ID7Fyplt9rpJYg2X54Wn7ZjRWN@%zaI>I4)OcNN}8dg3k9g z3*=A*tif1v91-ZFdM!|;wVp|4e1HIv-Z*0*m4XysPPmrRtd zF%>RI3wH{r3NyG*PzS2^PHYjVUsqZSDN5a!x{GG$Km_wb++c5%QQ1hN0Hubh@sdon z+Ll&jT7q|Wk+0eBs;p9ihCGdk_E~{!>yqimDpu0u%CtW)1#Uiz>Zk2OuKpgJFNnur(cgwF zILQoCwVQn1D(c8Ty8!_w{2g1WY%6!8ozPfxL*{MSI) zd<~)dP)p0uAzS0rxit?FZu>{4wav21d$~_)29>qxq+uG`@|H>1Om%i39c~S%IQ`5{RIT-ZfSS=!&7U9Z2&HtIe_xzWI&pEh~0P zV&ZJLQZ_C6ji|91FEegxuyZVfd+>(i68vb#-=l4)tQ~fiHuU_S7lG0*1-UKh&LbF$ zH^`H0(H$Y1oU9BS=8i%DRR-F}WO)S!K%NyTzY~IvV{klGa$L^3SAUwh&YH6&U)uSl zX|tjaE2b=S3|plA7Xr>fYV>Z`)xgD*x<=n$4SlZBy~_cqvt7l+9m?Jrn}$wLe8Gc40C#SI4hPeTMdwOHqh=o-pLRCd@kxGlPJsKZ> z`G7H(fEZ5IllTO(;X`79Z{Fo~_TbWVK_0#TsK+ zfkZM5Yw=UjjZtOPJn|Ae7$#c-?MMW+t4&ru4wSF)AD{-Ga+fNKP}`z*qCbmAMmB2_ zojKDgM|}kD#BpshKYujqV3Y7l@9k1e^gWED@dOT|38k2|Qz!v_Mz;IAg1@41^g1@@o-$L-#>?>A^12j%eh`q!7X`yp8`amOK*?OPq2z+7{B^@ZJ@j$?D*~NGcMoNAPw?fjl8A2haEuXW zBfQ-qm_t$|PW)b1g1xcu9)=;bBLy=w3u?w)jcX>Wr&;gVXfQQ4Rp+N#1 zYdRJXO9&RELxlwo*pL6u&tLx=RvcG06L>W&slfRLguNi50dyB6z*I)-f`s?XyP}B! z#yih`I{*{~Jpa)j{QDxMfbSp#F3SpO7+*t2`NH}1f$ZrJG??rcO1ExtcMI-r!6mpu1HmC^aCg@P zcemiKjRn$pNP;^AC%C)2gv>i+?%aF-_o`m~GaKrhhH6^q^X+fT+H3W_C5d&F(*l_# zMPQf*EoR;1?efG1msJcAYw(357QY6N$X|r$uA0y#VkK0CIJE->g9cO9EJn6|*>9#- zmeowHr1q?iqo2x6>0R9v&pf0TN#JqyD=kk7VM`x}>wVZdvoqKv$=_JtC^8dFt{N@e zSf;;9(Wp707U2J+qAnJ|O^#})!MMhd)G=bcj%Jm3+~P=szc|r~uUs@SwP(|*$TNTh zec5-nQ=ZtZ1-r<`b9|jigRvvvheW=jz!deV?1+qO0sM-yVy00@*R`p6qN?WGO^0w? zJ#TToj!rG<{@+bthP4jA-Yn9Uy&syCm>UR911EiDm5|) z_(({hZ4e`cyD*aOM3!}RCPp*~?JPcNj>_*eN0{u^#^!U)t>x2|k@wYSC3Nwn>-q{h zXdoZ#vEzLjLu89*k6{=PJQg*W!ZopaC2-EdCkwCx0Azrqw*}Wm!M@sMlO9|)!&}SR zc{QnnQrai1C6$Rc8JCyF88;yvZ%W6Gc(+GG4>uROua>LUrnAN;_I4eVYsXvUcwS>f z>s5+)HFk$&lemx=a3L>;ap(JRr}9unM#?XALVgvOX8m9xT-Yxz1DEH!lqU{( za$fL$_LAL&Azu9=zW zhnTMy&{ap5^Nk5o7s0@w@VYo1kgcNCyl;muKXFCbgH6Uzy;D|ywLEFyVQ;Mp?WA^X-_HGkwksH zk)0|O7b@6z2BwO*iYv|XQ}CDt(;{(9)D80zaHl`jQGkU>6$Zpygg}GP1gH-K4kaEC zEeKKz(pIkk3IhM!#QxD}58y?9OF#wF0<05&b`&)bOA-R()f`dS&p}Q!CE!PXyOICl zMV@_$1RTKOAXBJ3L=c8pEH5AP9DZThF4NucR92jp)D~3Sa@7hy^;A@uGU%l@w0#*b zJAJ|UOD{c712LzTgqmVD-gei0WZQGS)V{iYzsj&M5L2Qw`UUpN%}2!ch28D`k=lxg zG;W`EMm0dy>Q9T57+XcQEu>2bx>pQUChy}Nnz0YhCOvLFW=rNLP{a*QlAns;JrcAF z+CieB4AWJogJ{_;%YhluMTRQAMARIXmf1;>u-?J?7k*_Vf!N!%Q=a!}nL0K4?hMme zngT?>&~Syt?7}hiEf~`Az*nF=+&NT^n*`TyZoD;tl)&H^aG}#Xm1JZxZ54!O@)??f zcW97LaV)+qU$?5*sS@v_z4iJjfS_^c&Y?0kFBc5?Nt~dx%!>OncPtC!{4Qomlx<~p zfH+`iMrNIzDO|5j{Q)#fFr(fvea$M2Y7y0&fVhIvM>s=}*3G=`^$s(OO1Bm<32{Ey zT#_-78WAlRlOQQrIGPTDv)b4U%1#a;XaEiu`1h34R>xZOBQZ_1*&gP?<1^kpL|2%F z-kuynBQD35l;t|^P07?k`Xt6}*77;FZJWw!?2Ev_%7fkr45mU9{>knT%kyA*fas8- zIVpU5oD`Q-d~Eh*26=v$ml2>9v8ME|?UsWcUG9DqMdET6AIJ`W9QTpXf=k)0qNQAY zK;AdlCnDSQ}8$_!pf4G42oDo`l;$AZ0xX>vcS%>i*p%dd^?~`;B3E)&Y@UEA&?LeTib-5=QN2@g_Ya+PUd9T_FK4@?m=kDIfh=Vd`XeD<1FJWo#9 z?dbi|7gow?Z9gBREtMsT)y8o4x+XzQy+7t%!LL+;c(l5xj?Z@<=RuU`ZbtQBHW5)R z+lW+AE6CW;XD*PqLKWKv7$*7)8zRj#h-WNbuOd^tL_~kjRMVs}HInw3c`U15HFI zVa0~z4UClbqY>o8k@rvZtK5>n^YRvJOFzb?BSaRqb)kay=LMj-#ok7R>~e2P`9yJ) zG1uF*Va$0puCRSKIM#B}(Lc~{L#ZGo@5i*>lB1rA;Mu}LS;=hsgc^*W_-BCtAo>QT zG{m9BE4~-Wi1+G8rqlJb<7`kxxd_BEFEjN>$bPIC_@b29u%hjps|qu1h1RpshspeQ`6F0q2%-Eh#Dfx3d$lCUNfY3TE^LlPXd9*&1W zMak~vp$yOMVQR3Sb$SuStY9rHjK4t;>CMoE^ZxX0`FMa*iC@-?-c6V7^!e1FR<=;Z z)ng6b4e|UNeFg7kK-#c9TYxY#-;o?KBvo4fYu0sFEH0lc?CJ_$1sE703PvK5W*pY+ zb0!6FbIj!TSq9!#$tc$&%LwnH5SLeiXZf}&K{rTgML1XQLLnNw7&Sj>w8$Stf=2U< z19Vw138^p9?yVB&VMqDKr9dWAaLEe7F%X*8dJ!rJ)3mBDqod)}B58BN!_}781bb;=1)D%1U~=Te!1*oSPGEd& ztl|>|t2Z;97Hm=)5(t|S@P&X8%<#e&9$WG8d}!~Ecxm&P3YsAA2DiN`#3M%ORE#B< z=%@JuiurA<*UEMccJjr7^)AQQ9HuX%uzk@HJ&P}bd{%%0Kc_1NEg1a#aEJoDrTvLS zi~@`0?YHY+QcmbeG_GmK);!cxc&%sn7c- zr3-1I<&|aAbQ|;5!Lk^O5^l?@b*qegnM$%<*e%QcDsBY7Jkk|pB75cAw)f&!apfKz zH8Y;guZY|H`8MscVTv+$Tfh09w4);91{g=UU1V%{#fgdmq#+ZZ! zPy++#g8$2a9tVIYNG&q?9VuSQeoVuOf2JZe#ztDlx>WYjR|CHk`&>%Y8~%gU%{Dry zM}@_OR(r<_JGWsbPe{Lkrgsd*H2ca)+iL!*-u-6(@c5zmwQ3T+2c3bJki-^Ey7NK? zU;IvVb&0zmpdG24@q;<<#ERKIn{8=Bvvj>fOr>3I z!RE4ynTR4mkiP#0KTY3nph{zy_MYDd_CA%{@7gobv3##+R0<2duDr0kqUrOk()^Ru zHX~icNXSx+-4v-wGk0gkJ>h1eSyE`@kuX4K8Nri)C5uu;!k%ex#<8A?FJo_&K?N7U zPJxHh*2Fnr0slFTOYAG`H_9RqECwlN7Ft#2tn5wzU(!t>DvCyHvG6_ijsQi666^SU zbu-J%Wb(LetfEV;ClHcqL-$?`_!URB`XwYEt z(r(PW!k^}uznp|4My>7Spz4%#Kk<~pAcZk{i*-p(*o1FewD-<`)`?;Q&#$OYO*ONo z0WB|np(>2~QO`*~Dl1K^$r`;p1|dXzUGq=gs-e-pFBo{Dl6Sr>cLL{bUm~AYp^CI) z9Mt@c#c%lc@@;6{M1fDqOK-1j&+f`2z5z2iD;y0IrVl~DFK4o`+)TkTXrsiUrm-{- z?LsRM6f_$TiZncWu^{E1TO(=6gbwapnSiE0h*Pi!Ln77kj<^K()}c>u5G+G zHHnB1gWc_3wlAosO#$`IY&>lqv=W<=K!Xr@ecPN0Q-gsmJHG1|-}I(r`|D(Z)|F4< z>p2+0!O|cL(>wBh!348R8d6;vQdEOEp0&nr=NNFtAwA@_TI%lBl%0@@7it5AD94_v zO23!z!Gu@)5B96uDmI1UcJ;G(dy52<>%z>OlCYmSQ^T`17*Iu~zPV}>&GI)L4pzJz z5Ou>!=f%?McJ{E{lpia1w7aAk>j&)^@J=#b`-gK`DFhCsopykv0SIdd(8m)5h+{dJ zadH9ji6h-1tt@<6t$ujTQYv`|ML^#KN#Z3Ppq2-f2BWSSrC9)Y19i&hR|U8hW`JJ_ z=NZHFOz#a4FFm`{e`f!L== z8SG|WfbNA#lQ|&*@~HAuEnQjEPhQCjkfVk8^TzY=`|DZY&`64a&HPc46Z(MBueet05C)+9>_N0VkBkN5fH~C-4am7(^{-5Nq z-f{SE>s2=SHD72~d?lYt;b|Pju)(m|K-!W7McSq@>W zH?6tKU9vw1>v`U1ZXS2uR>oD?`@Qe1jb>u^4d2>g~%8A`KUh zd8RDqJ(mZFw#s@l8SBvP+|meSvWmgxGkUYkd_i;{l;s!Ni^mBRT-ZkGI8MBZVQei( zrHo8%Hp;S`M0~fmnX~1Dn`@iimYqUs6E_1MmKQ^w5-?c0@s3m?p%FqF*%S8B*!$x=;^333r^nU2< zR8Gvmhfc+9OwQK|eS}uyhAB49aABqNIn&B2WUfi4Kl6{Zx%89U*BvQU)mCfHm6p13 zc$&!>($d$JKS9sq@`ufS1Q!*!VKTs;N}wN82m}<$BNNI>1(8#R;<_Qx3jP{Ikw!Q@ zN(`nIdZdHV0eS2~N@E0cTcjDW z0sR;#@h(8OAQ+ew{L9h({qsNI_r{VAgF}I#{VN81E~rZHzJ0*yLUk36m*e$J`Q!a5p9T! z*>nO7g*HbmwG95f>$UnUhssJ#G3~ne4{?Q;NOy7?$N~1Oy}4L|4q_wPUA{v7|-degJZgNJvZo*RvGuH4akcnpsJn4k>S} z@osbA?mHL70<98c#e0H>w*h{=~^!nY=Ziqj>iJ9L{sYW(Nbkiu}B-xw- z=uVfSOn3L)Ll%znPRkjWX5NO_&T7hQs~=Z7MBRd?xu zCkSa8_Jc8>BaH*)sJTSKw6fqRQ$r;+(F$4%68zf}z+DAW)j-C6H$B3r8$9zh_4T)fIQVqK^lzE;wsr| zd%bYLPCQCh!G+w0ujROPNiS$eLAd+XY&vX6Yp$y#?_mOGs<3c*=}pBz>9tCx=RXot2DX zLsWq*dpG@}!sd}b^~a-3Ohl3KN8B!I@TI;xh_Jf9cXQK4|B*T+be%QZmb)_Y^<%)8 zPV~Cv9Nb7ACmT;}MdU^D3uKZTNMenP0R^v8_Zd6-ht_nN3Sxze;SUg@kvA}!1n=&|~Lczu`N${5CzknG$%9gz0Ft8EEXH#@)tOWI4L4@`mjORhR&b z-bd*53V@lV+vIsE3fJCG4qX^*9$Bx!EJQn?Svn3>F-J0FtVv>0?!PZAH{8nCu(1~Z zob+Ya){%JOJ0g+k7Kt_@XJ;d9P)`N}%6^l}Tpa}}$o7Yb<2zQn1$j6uMFT*?h<8-L z&0s2c4gzrL0_yZyK4I;fU7@sy@LDMK9g_G9uEFLwt%co)$*?qL2!!8PjU~8Xkd1C2 zKxLYZ7VL8E4fmo=MfV_p&WoQ+h@~)HQiMHe8LXEczh686w;AZ?d~=C$A`dpRs+`MO zGOE)#OPk^96GPlTV3tede+BlT@2>AhH#Y9`G2bPf{S>G3R?U#m82sS2uU?X4P|28m zWn)8>^vI+XaiTd_Rr^kJfl#kD=|KTJZV0Xw5bjZl$A0qctN8pOZp1?74=4@IKcGNP z%}jqlvDZ2sv7>PB7#g3mMsQ6}52*MZFo@;un}IZQWk8!Bcv|jSPsMU7>Ps1Y;a_Y7 z-R3VVzDSk9XWW=IzQr;S17*L^Jm`1ZA|Irs$Q%TCo`tQlw?)NB7=Eh95UU54grXtJ zBL=3cie)Jht0xqHYE!6RpHuz=3NJkbq#|dvN&lEK)cR63sgfre z>jt~U4s<#elOpzb-#5gDjj`z*$2D+g(2F0_c}lCIiDeVtbae>|#=FViU`ZgGUfk9O zTiaaoWmFfny>&d-Tws1^8Q~|63<|bH>_b{|gPfADB_V$(<1bPs5+fdTp z0Fdk0Wt!uI#=yM@_Q{wbln-{xZh}oQo5=Bk-%O=+1EA@QL|q__2V#Z;q$+|!pGAZJ zu4eFadHY|6`S)Q<&*I+yr55~GeFP30kkq9~;z$Hq?FL2mfb@`wS}7>G0)_csTt9z3 zB@hdM0M%ds_gbMOnX(kq!$b~r0jS{Apd`w!O5oCm$%GOt^=F9O-X(^L+WW+f*ogLW zHtL?P78-B1;P}*}>Q8G(X~98KVmsCQyBQync^X$;B;FP;?At=(;It5V)0c0CMlKJn zb4e9SM z8i3QLAJ$P);yq+9O0LjQTi&oh-zcIVhJE9vtliHe6u>gh9kLj-NI zWpY;H+6@9IOJSFxU*E zJvn?7;s@RMHo})vBPEPQVrNneZXq8NNaH zq@n$=J*KOyu*ufYa7_Ey;>hkut|$7@hBhDvZ$ZP7s+MTY`xa;yXbiLB@)hODO-=L9 zWW9LBpYVexxM*1VM@EZXjg^{BMYE<6Ltc1guClcHk&7ELk>gW)pWlF|OE(k09<#{} z@PY%^N;ONUaqw`cu_V$d}$d)&rqQ{-!+@Rv5 z5F^=GS#WKZ#D>kVg~`n^BKbAX>v!~!HXr*oMkIQq2oCpcITeLThw)0ns}?5PZHjK% z*v9_V8OWoy-*n|JZhKagCB$a~94;IGp~`U=GuCTKSmX;Mdm>0x2H{l`dcw-Yyw{Sd z9?&rntVq0tf{8n{*EAj%r2^HYygpQ%NklU9u4>N1EXvt#d5DN|`ZRN)9bKJ~?g;u4 zTjzAhOp`wR=G5?r(DJ=mYs9^3In!27YJwczbwM`oO?-XCjCl#-ySZCDK+6&%{<^pR z$pX#Egw*T%bjIaw;LbY>;&7WMmQq`k7UpHPsYxcOFyRJF`Geb7fo5lKxOkEdduKSt znLL}xG)woW$qqr9DO-fs^2tf@o2RBZqjXGdy8Ddv=WQo@Tb*l^QSszvYy%feKC&t0 z4|MUXPl(#D+L$dhUafu!C?`em6Yl}L+Vq9H{bbgS zN{d^rjPUnq6$LG{)J8}h=gh>|a*7n?&K%^au$#@f(}r@}%CC;&Q&K2Ck~~>(p;nKR zDhtdr-!rXWQ|xU4Bx%g8K~*O8^gZr3?}FBN0uJX#RZXCC$MI)HYG_eSrn*e#?`A+m<8Uogw;fF7GM*eo zqp$mM+C5IBHr*DbO8C34FaopgKA34(&kT{|2W`t4SukSoSk`tEJD$c@KADAPHT|NO zU-z@prN@nGr)V6pp#)oc;5;bJqIzD^jN0H|FZ9cO-WuLN)+qNNqpGT3qN)pvurH!H zPik?quW!eZK41AkJckKy4W`qL3RlyG3F2T({jEm<_beFqf0cv(_dg>3ZE)1HBYy6| z{@Wz}e74`7__rQAqY*&l4TA%oj0P1jYbpIdt{4dzlq&!|i%%%`N}fM!k?r%BJk8U0E+>SarpqeUtg zdKHW>uQ5`eBqBTS%d>_ot$wiZI=<0$mwDLfe5uaJsK<5CRu^MzeQNg_`7t63qF$4k z-|g$BD1FECDARYerq8yZmd<@Qe@d?W?VL_|1J{q^>eVj5jPlC*aGCEilR5{PP~k$f z?#Q`VPt8;5;F#Nu=IlBs*X0_#w_Lw6Da3Hf9E&U5rRJij?K?zcNR-Wyeusk zBwnT{p)Jb(-iV6!NNR#ZK=1)N5rae4C7x`XKBM9L)cSi}RN6k&2<$b#U)S=|@hDmv zj7+JL8{uS^jx?VrDBgRW6bu1swGvr-2Vc)rKzfet0`W!F8YAx$IC|bKk3QmXrKc*^ zMp7pF#G@91fzBRf5ozmGjY3K(NrhPT)TFe?gyXNChFq}rWt3r>u4SbZ!aZ6oSvo0? zcl-Tnt|SrGbNMv1L3ZvV^Ygv_r0kpVq8VPYg7c0Ut1Vt! zGDs5-TYLza^xGCf&qO~GL)U)-v;W+}w7lb;Y@N}It|H4#{SJE_lk+nmQuwx{tq!!0 zt2Tn6yI&g@F~k@CE|hoy({c}Gu2Kxf=tLXL?7L@C6^|&vb5iEx&Ur!?kCqhbZ%pX9 zB6266cA7G6+GYoGMSBpftQmiyF{d_q`$Bf}2L9E+V7;CbZzG|DOjBFZ3O+U@VY}F` zE2iiTx|7(t-8OrAWk#ocdfH4Qq?^sdPwy!>x9+E=_o`+e*@<1TNsp7KTTlAWyvWRP z%d&TUP+U;Y22A`zkwalXF{`eo9$5tS(|OUn{k&%=;$HKUo;slIW+L3k;pED;j^gan681GNn|XmM8PF(a zclHEZGJsE5t}v@>oaxni^6 z*#Eo)_V)pA&s~Q9-XH$j9)8O<=;19DTFa|(d_ZcPKxd38LyCHhlBN+H*&rwlKr4#? zVIx3r8MrhH{%k$~{M8`!sL(LUAz+hW!ZQ$moBu z4zZWC3deD+@@MC338DhXZ49+ui-Np8KXmU}WlhqRC@N~Z>P2{ln~i0gRQ3bQwEnu#K^=w#JPk?D*BWOofdE-a z@>`)qM`6jWvX|^5pc-T-J1DaNZK&BtVh+)@_9Y;89}9R1+I3HJ%}sD)2uhvk7j|S# zDot!oS&$0n-l(q<)V3TADXOukt!;}+*R8|MOJ@dU)m(En*g%yslzYJ09d z{C=fQQMYeY&>CkK72@9T&E6y{cwZd&=IT^+nr%9?_EO$awu`TibH4 zo$MAK$*^C7CNtTy<-+EPk?{*d-*GJ=6`Y6*KHggS++oCX5 zj^vFXPr%aw+#V7<|AL8a?NC#W)!BbbshH%V|8orv*e zL6M#J*Qm1-33mi6-}vSfGI;AZmxsgc11 zK5J-~SJgI2A~6AS;w2zZQq**tZGWW$m!6Y*O;xea(s(wlx|afKzpWt2(#|6((ts8? zvXWD?JM)$NUfX?9DKCz|63@^0MHNpw=Qk>h2U!9#495U#>c35?A`1Wu{g>?(i>GpAcjHVMW*c%J=NROV%LI_@b>lROv zCbeBv88zzNUFO3^64^=3F(yOhQ)cu@v7)+B2}eS6u6{{xJqLTshpC~-s8>UUVQ^^f z9uZDTYhOG5#ooeV1~p4uTG^&O_X#nbpC_BSwMa4W6%bR(Ih%JH}pNsFsi-^z7 zCVqOGME9lLbYD)4w&O6y)WAd*UW~z%YiANw%U6oZ{vSGc)meRmcHJ-P+bda+?$aP^ zjSahrx!KG#WBOFEHW_jsn((W$K5ObU4f~b-#H_gaz!!J2ims?X1`<4*9UF0RQ06P4aA^l7B^m#5J zUZzmKs1J`0t4C%Efl1~&o8%s&JZV@GhI$PBQe=HADh*D*Va@Wo&ngY8SJ> zqgEwBz1*9IYKX=R2QrPI-FZK`+-Llfm*|#F!O>;>{oHPNqwX60mj;6fbBGuQQJYJp zmZgQ%En1U&$L_h;uHWVs?JtC(XTEEEHIs)8N)9L(ep!7s8!v^D;of7}sHN0YS`?MR zFTmdu80EUtSjSKH)~^~ET{o|>+UoPfY^_34@36U&iC%v{eKi{s;M1h3+0U=5$8Yhm zF`p3127WPUv6+(ee62hn+Vn7vM23!_rUKF+IjA=@gfKKVxH8+qIeIpng>Wm{!S=e)LdZ{!`1__de4Xwl9s$L0J~l{)A?@$H1VYq~`LbyMCc_wHKoBNAIx z@iNBAjms_NM<*W8CpBh=Bh8MENr=2i&D!aAEw7qaNiN!23Ikz!0=|PmqE+7c-yUV$5!21)+fKax|?Cv5G>IP{^ z%h(o7+)z@D+CzAw_UT48LHjvSGG@x#=0}v>&B>t-dk;9jk`*8R4~=-{5wt*S35_zf zprP*CZ7l>7>Il>4aaz)Lw$(P39+0Ng3C_HrK)6jMLMk+O=$3;NR0LxP*oeL@L@akt zB|(&FLrC=!zjyf=`R)Vd@+*#1uIyriys4vR0mEar&7|TZ6XtoB9FLVo-@K-_`2x*I zfU1QOpc4aWMr(AVohhiO;WCtGmZnJ10Q$?M9C|xB5j^q6p&3!6*OLhnS_J9Jev_PE zz|%{EI#wI^mDwY0`I+eimz+6+Bmst_q=K9rWqkIBvnv>SGCCXQqu&B|azc9WBdf?X zGIxTdc#_3vxAG(qWC`r8$)5ID{)`Ns@v%UF@O%;k;)H+yGAQ+T>_C_F_+~?(ofI+O z6(iwGYa2tsx-7;}p%fX7P*g?D#^o`|YQ8De7~3~HJyGi}IxlO8=E^A^pRKCW9I~`7 zsiN5~%~PDQ%XmDttr@?D`u=!KJb^lYMO0ioeMjJWEQy{#$Py3;c!KhJwNPQH%g~Lt zW}y)0If~9=s`yq7y7LOx?gBrs&w-U+7qzQM2>0LSHB56h@{|jKt1{q%lC2`k%js%= zJRG%*TVx2|H9ESlnXHPI9h+~^y9m<8f>rZ0>XUWco@Yh7?oAutvYiyRexnaeyjwyx zPm*8NepBK|fmbc8PlM!q-lu98*RkRr8&^JqoAo3tZ^2%^0GDVLV%EypVkaSBXJ=*| z)lcR}&EQvuud7@3)618nm~@UuutcyHs`1+vmJgO+=Lz!x1HhyM)Il}>@-ct=jQKYq zr!dbNUV#0#U;8uM1L^`LuJkxqF_hR$oidiV!PuI$8&RR5)PwS>5IQ5*+H_0%_{#NO+uJ+TWJ~C5V0yHHj0MbQ@KgDLJMDP)T_%RLDSM^)8209WvQF z=MV=ovn=PUCo=@g#qXD(M}5_)7ULz_(6SsW4W8Y0D6cDbS8r|%nHgM}+7OdJ)xb5S z+kW*afG&Bn}B9pQA)|vdMM|Gxo&F!OMfYjdn?UX_By`7;Mx`>&`$FCU94@ixtXV^_7e<14%cRrt`H6+QZn!mgG861cIX&M1=Sgy`-Bxd?r`uVeV}A-_VE^A|h#y+1lBH6$UFR z^VHw7>j+)ddYfrCfs#cMn|qf)%q`Dx3OpPNm5IARsm~cao%L*Q9|vM0GE$mzFcti< z2+=q99AT2jikEud#a!S9kmyo>>L(=q91xK!L*tjXe$#5YWcVlxN7e2wQht(lQ^Vv} z6RECWeY4x|WbN&qrlDz3o6-20CMi;w!-sk_X(O8lss%Mf1@1Q%K$k17WUEE zl>J#N;(fus0om7?$TnX3${VM?oo^)7Sd#5s6SSi|h7n$aYlfyQIo|4S<;` zsI07T*pOEkYI`gx0@6Ps-VYu5ZF51p?B$NpY=nfWEs_QGtMqG}yg#6_RQ7Hwvotd- zf)FFOeDF1?L%M3Uo+x|49wL@$4h=;sj<4fp9|O|`DOfrBN$bpyg!E85p=+HuUTZO6 z>hr%QXPrXNFLto;YSo-ovqd$tpNlr_rX!&}%y{q-kQ1WlW?Lccht4fQyF?XI=FZkD zf1T&;E2!fNq@jUO%p6ZFmc*I_DIhr|QJMuhMrbE$>Q6-XYIg2*J@ z<%kr<&j@7RFs}sn z^C2oEWwI&d%%e6u>^tX%Z2gJb_BU@>k=&B|_2hk*gRpb-!cBOq{6h= z3&{3mne4s`ia2&l*w6Ec|qvsBUn(Y8x>cjYeGaN`2x*HLRFv=*8;}^D|`!m z2-X$JNqi-k%oOoW&@81#B$+7^aIi%pQdRfgZG}f1*c>S+*$>=8O$a0c2(Q@>B3!MF zANm=NNJXzkhNCeejlbx8;4MhWgN;a3q(6zwT$_3(*Y(k^A z`&F0-)um%;i6o7Hhw#t?P7}|*%xslA$Ze-0aYw--srN$ua@cJ}F_IL)SpdF7Cf%&= z^3@LwnMzX|`q@pgZ~WQEmx&Cdf*A%xs;lVn=eiqH-g`D-TIDe_$7#xyC1wj}KcV=W zBc1#7*8EAAu>5CvhB$2?m#>}M)PagMfSQ&UB>irahSe^mqu^Q;n@gcfm3%Bi$Z+O9 zF6d#-Mp|j4!0W=}uMt%l>%h&kK)>v}6%})Se4{_2F30MS&X3r4M%oVv2KIqqBw!x^ zb^>k7?Eg^(`I|q8{SDSgV3G>p0mG*H3lb>*yw;xWUr=m-LlT7^2PcNIkV!$hOL?F% zg?At-ba6ueIjlutg~K($f(rI*1bt%qCgWH^9KDQ%jZ_2_09p6!p#heU2OP1312+Fzz}} z@sghVGX64X3+8j5ArT}t&##Vsc6hAj^U|?n(iMIKGNtdoB;Oj2(!__ z^q08^|0cco`)h^nq48ENv>vr4J_H_q782z5~3gY;}ma(HL* zV*h}$kakSCOf2K;y0Y_F-;oR6v!$HzeN)Y2NM!4qo+H?F|7L2Jp5|9irNNdU%rZHx z@dF!0rs=MQBvL4l_ru}HAJ@h63J(xo;s7MZP+Ow^1_2E(NKVfJatxYbxTXxOL@?~z1}L~5#1GO$d9$lrh$7eK;Y`~1z$gUeeX4D8Bt}L2~3H2!S4Y`6l72;Wr+kd zeCfit&FAk5j_nh@ZzW#VsR&6e9y|Gw3gt|a3Psmw0w0-j-pi_Y=mmn;dZM3sT*QJM zF=+j$E1?pF0yAq*j%#f{((`%T81W?;IQWE}O4~jnoObj1X375;D+Y=-5JmDGvysGx znT$j4v+5omUI0ixtU@giT+ko{qJqH!CZr^QxnO3vQaEI3fcw0(S3LaUw~tqqsuq7K zK_w{hd?!MQHg~%T*~+=JY7aQ-^kLl2%Fmh~GoWq8<}<%diyc5B`wtUfgJJ*3;5Wy&1 z>KY0?AFX@}w_Xdmw?XO-upYZ!mg)8w1xn(uSq-&C5c!Yk<)d$ak;ukEy$ ze7nbzXP#g&R4Hc3Nu@7W*81FLCzXw-;<8DH*UFQ8pAKcS;+IP}&O5AWJ2N;XN=ABi zWm-BCjLghTRaTx}x+b2ACfoWfgrME4b? z1P*MF4OC=2x1d!ulpug#Kk|5T!FMMSEDn^idl9}Vrh zY9*8j<{9$w()KFGeeli> zU_H(S3PaEnL10^XSQQGYoCl&3+ZS&)jlB8)5=1 zEwpSe*`2^AQvnf?hRVqmi&ZA0I zRLn^D)aoSw(;FkDW|SKA^SD;9ppc@^pX)@VhaAoa9~ar0xT;VD^PPJd-dWqAOX3Ny zCZWBfS8VFZUAfg)YqR!?`YHqlOGDq2(;EEo7m2p<;f=HTn0c?%e4F_hCTrH(WFcOI zuTSHgFf4M7-^@t&8#SNuL`7L2xx1S4oZECScng+yjta1eO2brSQ=4g+)3K_VFqysq zy$M$D!AY->l$^%FDv+0?Vp64Jq)J5tDxQ%N9(Ij}?6*h`O<)DPT6{#T$*$#bQQBMH z;_SQ);)$NrHd8W+iSo{@ACd#LzKa%pUqdpjO-51zGr5Fw4PI%BW^Pe(f)(RkfmZ?<8P+hB zPhCTNv-rrGnhDuQjW-_cw~!5YZ1RYN{Gr}Q$G-XeHpHL!SlB4ZzS=^I#b_>K4P)`O zR1lF}L`s$f;;4nvQg6}J=&KIYQr6iy5S5{QRgo~bFd6q}QrOp0I!?Y1sqR*FCwvbq zBH0>=v^92>$2y{FnuD)5N%k$qk*dsC1#G&ljE9B98?A7yv^0ASJQe2(vjj89yA$7i z_s0aR$1P$98%V4xh;`LGxx4=7g8RU9K{UYNwP48BO60< z%6N)ZlYtGp=Yf74$-@w6AX69z<3|4bPCiXYj~6-0(FexA86^JK-NpX5z}G)L;Qz-7 zK2Pl7B7^9dR8zyAb9Oazfaa8u8sMgqbdHq4%3zXojvlfvLMy@sN~1X8sxolM0NZ%# zQjDY=KB}ZNh)}vX6iz${@PNP=zXU>+aUt(A%W9p>ZY4y&(*C<#Jem2})!=eIr&O|Shc`+01&urehvkG4Bl6f_?tS*FZ z;i6|{tTK5Dx>jFw7VUWHnuwT5G+cr5s*71o0PMnoTpL*r%-tf%G6`xHxdPO=*4`mH z`&E^dA{lwNii(t$7F%jhUoXDMY@VJZ@i$_Gdtz!~1Oed+E1vNd2fWMub_jy6O{JYN ztV{Zf|3lhaK*hDKU81HOwwxP<-M9u_2W=3MJcyPzYz<&u%pDNXDOsmSN}$?Ruo z>gVX7WyV7}`wP2ralwW(T6tSXgiweU*MjylC(v3C@yEEwspVdxDE&2B)VUGA| z`}YpyDm%Hm%{F+ymD<4?M>JF0gBh4AU_$Iww_DiRj*J>9oNxdxbR$Zw^8340zWa*Q zd5Di97gZ`}Xflf5w+o7z*Ni~b{0hPrV!CZ$wthK`*-guSsl@8;G_9~&t0aK$$$fV` z@pa?ZcZ2zcPKKI@qz`mwU;S}50T$@0Q|#f$Xuhsr-}KC{PNnp7e~4{J@9$|l>HuR= zfGY(J!!odxddq>FRE3nDi_PS)x?8?1e`+X#ze`1;0xT&s=+yswzvJx;E}0{zq)I~q z`HHG@H}NKQdf%*rzN@*FlTbnwz}qdl6gXzPj;e)e!VF2yNh?AING*`?Uzl&b(D;vhn6wV>eaTE&~q6C!4}@QunIs>&Ynx7#MG6uzRUO!dY7j|F_R#qALZ zXU;**Mx7s?h$63>oJJpfoXR1#q%T0PN? z$PDKtyR@_tqnXp0Vo#nk(umGcFi-|CG7;j1*_>9s=gaVpe&)kfWbOxLh|4QuOu;Jm;=2qc7F)U*p zM(rH3chlQz-vV^oB*=ixG}p&StjJN=ngS+x9=ti`b*(>b&p9!;+T4^229ywb=?CzV>_)6p;&@U5k#Jo?kxQYg@0%onu@T zF_zfn;vA-( zqamu%g)rtuSpAyx$x8=vB@^cL(5%o2Gm&40)DWYv_atgbBH6Fu-eUS@vtrpVTP{RW zo0*Iz-{dE@u0b^(F(tM)<&`+Yu}`|+BA`FpYgK2yr2etT z6t92mU)9q;?hWpbY@d1zEko*O@liQRuw*10TKLY-+7@n$ZLR3!#(XeRZ*GIfX3d` zoZy)(9JCakPv}Mop;5Y!pe$#p*XO>3uV6<|?;Y7%HtYS1&`)Ie9UIN_Atf$j6+|03 zTTcy-763*`Zy(AHZE(J6RPB_6}X?V)3#*0pIgX=E+)rISrHwRW(|4Z z(Yb4cjECh(^mivnbAqV5$f&y&7h#7!VrPF*F=6nW&{oLfnWE%Toa;!}9{qyd4B0{? zNJ$CWLEigPTam+TT%I<^ht)bAT|#U62Wi8oc)^Fns=|$DKQvDsHAd@_D#0kWp^?BT zPwD<=|6$UQ#Rd43dP0|#9@$>q^#(@N{8}JZ5lcUd$uDS-wHV|H>DYT-z`c)&F^?+A zqK5!#O9)LERt6Ys-5x0$C}-wnhqmJ4r65^~kUz|MNpJuc%70~O!zK?~1q_gnjgsN%>t!U+FVRWf8x9QkkbunLW_zi4u90| zuVIYKdc5^rlcsU1g58lHh1AF7R`r*y@|m#0!V&bISdQ z;0h|%z&iOI{Tp2~6%uk=tGkvxg(G2Uw+Sbc$<^kXwco>WD|WxV34eJSaNstK=NQe) z%U=Rr6IaLsv3&~#4UCTfU+Q72|I-Kq6%uSDo=XP+)5~g>dKazGO%hTyZxWknuXmOb zPsbNK%;hJ@haJ01_l`h6yDY0?S;{_qi?yUKc5Yc?KF*0SO$l&^m4SdX(jhN z@nE#tdM$rF)vOA)#;L+*jcU8%Xr^=g6=6Y}xs+R6WEqH>{LRv1?@v!_J|Usa+^QIb zR)lW;;6tfr8-yZ49YeRLaDQa;9ZBl$&ENw_vsfA`)>aoYxqrk= zCX_mO*%CXw6u&WWz?{T?fN;)s{jxJV-@Rvv^`SSh^!sv>XaBNTys2Zes7P55!Xy}d zKOz{?)I#X7C8_Sk6~DXK`L$A}poKWPlLN@*{%0~YfKp115!aMU#R4E7hj1WCI;61PV(fpcv1=qSVSp2&uEu~9CBcvi zM7d0V;$a3nIUqv{K?=i`qz;psp!7h>>1s7Txl|xkTDw*<5g+HCbjVwdGEh? zmNsYo5L$ylfn^9fKrtTk*?U}Bd%IL`86GsFB1*zvX`Y3U@8s$8J2B5Az37V!*qpnm zNi1|xN2{SxLG|caq-iRiL5>72h2UPTTZq4f@e;-(V?p6!hTbTcVf*Ewz)hpZ zPFQG{5s#ol0X~@!ExxWYxut{xO-go#h~I~h7IC9mOJ}^NN!eH?a>Nx`WJ6Ah__3(J zZ}uXsme}fpy5{$c$<^4v9M`7UBHx8O!Jt3_(BwLaO4gA4q)gKXDm&^kZmTgY!RR$C zy@Y*^+>e%7D?LNJ!wT3ZIM?bQ0sZrcFT|g`losp)&w%3($P2eq* zyo6unE|_S!&yCinhxsP|Dw3y7Wni@sDA)?Qe0_fHLC8?)E$CbXbG@YPBsyHh$k?K^ zroyx+yh_)u*F!RNZ=ZG4TTXzV=1#kq(+M}_!V#WdtSupRf)9?e z+?1T~DAU4_Y(}!@sS-$~5`wL+A)&l4MU#f`cAe1Avpe}$p)&;xv;hB3rKUARKRcEh zyLF{VO6=8Zs~RY}t11xl3BY$xhutJp9pYpzG^>Xjr@W|;H^5t>6#}*okN77p@(XNb z*sT{qp+iJsT291za_Fom+M?pegs#~H{q(bE>_cG|-yeMdp@YG)Ve4nS4G5B~Rv5}F zJQI-nP!+2bN0I#FZT{S-)fE-BsSC#MD&ad3|MIsF=hdCQFhrWp+!Knfna9b@5gu0i zNnV3*P(GiQtY^I^MN+sho3aC&V1V>9q7CDy#=dWNxh|ln)ZE3-y7c7S&~Ee25TcSE zm-`86=BTQGjBQ15fu&PB=)73Sv}zsQ^OnuMH{74=Ev)GMpJDQJH3~^N>&uXuG`{i|MnLk+c<& zgVe#STZ9Ja%9JgSCaEaSZ&P<}CTP<>ysrQd-67fswB7ZZ&xq<*>3TtNkAR`|nT zjA1`=@k(@LJ`O688o&Hvwy#QwZPbvarH?mW3h(-{fvo+R-hdta--cZM>jnQVhvxqt z`T``fz*Y1o_K;wB4Tga*7p^eaoo>`U3XsQ?mj|k(?sOw>s2meh^#C_2j|9|I0k#TB zib%;A}_~NK+#P9ResLkRg?ZC;cg5*npxx|MUujp` z=R59p*SZ7*liT(e*GZki8tXp3lkq1DA^hu8y0mEap|t+a$pDq3QzCy{on;Ql&W^^N z0!z!eXVm00B1#Z(VbIQtsA? z9PHjzSxK4cuk_=BDSW0ih>~AV#S?=XC$Kq@gpyHx&{FZutr1i$oa2A#LA}(f32Dcv z7j1#HjZ+Q?FF?Afc#4-(FenfPV5B3|XO4Z`?PT7-fYRNe1 z-%z0~b&adFt>;#A4XJVMyy<0ebCw*_rXO73d$BgSo02cMF|72XA&i+_uAbUQ?M1J$ z3h=dda9FBkyPN0*9oJce1#tX=mUyZNnCiWR6x?{p9PR`2C1XK=^KiugYM+Q zn&VVvST! zewn4_A`P&U{`J*@I;&SROMfcjq-5t_#l`c@rVTMuEj1?i%gqNYGP8LyD!Yi;eOye| z<0j^2T%nGwMc0<~D{fp>o%vxc3Dp6Tg}Ww!c(W^tn5n0vB%JfHBW@XyynkXiCHv# zMgzQ_R__?t_<#`KL6ayr#d+x-8n2Fj1fAiWeV3&{d&HXSKXTNs1=;&g|2!`s)$$GA7lAY>>7rr0dNib|`Oh@mb^}{$?Ir?Iu z+}u3k9gm!+-#~v&ggTO^jO;p#39JpNZTL|dACJsL%SxKKvS#T1;WoiPhmP{A`r@>K z@Z%#aKF_?I7T=-r-Oqqv*o|tqb0-nf^>v=HvYp#oPsg*B{Si@62Kh>T;JG{{chjYg zFJHhfBL`(uj5E7WaWcK+t0bLU)tpi3Gz{Xo-_Y%DTz`y3>1R~iuKA44#5Z{ONx7G# zZ4EWqJTPj3eSokr7>UM%$S(}96l~E>f``MtAnv-`op0EW5?)4yNkR@giNIt``P=lj zW$I9q>3e*_8(Uf0O!|fb7C^)gOimbe1N!)CTjc~OhNpZBxBO9RyhK|oLPes-kP$D6 z0*poXH0PWBy+nZa@c_?DLJCF4)VJZq3JW^&faq?a7wwFQha9z2QW|3wPnBrwpYe1F zQ(y8L!HTX@YOj?H=I<0qkWrAvTO{^puAEp=MW2&DR<%r^QY)iu7gi*aad815F6dTx zItawdjlmxi5>&Pqv< zWuNvJFYLgR>g=NGI<&=d?CEBEY(|cMKw{#95DuqZuHhiFHu;bWP`7dp8qjdlQoj1s@Q-^HfYcP!fcv+OBSDZkaECAC5_Vnutp@bF#0>@}1 zITqCcntR!m!YJ_FBz36nP`tB8JgnF)t#)Okf@Dm&5-RIffE96-{h`GtRTVg^*`?`R ze-VM5tNKpp+5iLMI|ZZg+v8l{^W{4H2in$?O=>-Si$`fN_IMRDarht^8aGyFWO>-n z;~+N?(D;$J7!^Cran@f(F&;kYdyyLWc!xjW;@CubD~Za2{gOMiWpAV6?!4Q`0;t33 zqys-gM()&*^Wxfy0WtB{HHL_X)epEf1l3paRXA0LmvWi8t!*VEw6c)zpcI$(A?N^! zZd)rCM!SPU8s(ip>+~)}q|A;59quV5dxPe=oOb9~VZ%{2L+8L~qjrBu92(t4_&c$%8ul1>quc?`4f`M9BG zb9!kJsc~#~*F4lqa|-yd8nOzN9B0<)&qZxD@eMCPKQh_v`o4FQ&7Ie@BDr1ZIoabI zuy60ZUUGiM+P0`Ny!|=XEJU~rX|87a6ZropH~%Ke_5al#f?!``RiN)#te!#TSaw`I zi;TL!idA-s?F)uFV96A~wnR;AgdfQPFsxzik|n9wV*nj6QX$Y1qm!hH#8SjYZj6** z&?6~kvBCicO936k@ITO3;KIVg2C$4Mlq7{#aJ|Juh_d?rJr0|!TiM#fq*CNNQLu83 zzZ@6QlhJcIBJwUg8c8Ou2=^qn#(tzbDA~pFo}YWMg6~B0nQUg}a9NVS{+dHnU`E}z zIA~~yfNfqkl$J*3%1Yl26VIIrj$_N3bU?&y3le=GQ<*<%YMp-waBWfT^nB)%kyvUn zD{AByR3y*!Z)wBgH@(-;v}}@IX4TSap-bG(7Wf8Lq`hTt)o7a?pv7z=TGV~GmyD2Q z<6w2PH-so`F3i&o8%5u)Z#_HL-Kan3Nji6E)jD6&sDav|^`}`Y0>v)$3o3ZJ`V$8SC6&+6P;SWq_+5Q=TVoPj^ZF2Ku+)8jx zs04U-1^z3y^N?J>ViK;;7tas7jwkQ*v=^ZlHf$dB**|)A0+BEY|L=urhI{D{SkMs^ zJkWMRK_=M|C@eh-kKa?3bAV{*HzK*8^1lV5Q5*^DFJ^jtW=h^qua;Mqrx;u};y|0%G+NpTF5yZF+n? zX3gZo)o-g9*|nBoQTx$uYJ=@^5{X)zrhvB+pTtMyAHhmCFbJ%E~n(W~%+apm;V7!yGe* zDPr@w+{%gQ9J}Uib9Qek$HMJgba*mq=k%Ep&z;}0} zYr1(B@UTL5Zx>Xr7qIsmNN&@kWe|Oozim=m+I&!qJBCABSY6ow`i_8q2?pXEJb-#Z z73##$YtT2X*f{W0e2Ieb zWk$5@7gI0qvy&D6*`69NjqZ|;{1TRA=~!NY6*6`*?YB)X@jprsaaL6%)|?t2Qz3AN z6Bj8LhtEtJ0?ctrRr@)*#W10z2KU1VI_fjZw|n|DG4CzJo@pk*_Kb5S`Gk3tJlr97 z6pt1inmm6)rRxuOUc1j_u)5hfqKriX7VbY<|27Ww|7luZYq4;gK z6Xm$1j>pl`c9Bo#fb;Y>UN`Y9{~Q;cIiosp0;|j0ToVxHc4-R*+r|yOQ+87p{)p>) zYJKFUWNy{M=l{i!X+OsHmP3p-WwR|nb3577)J5iHY)_)jzo>ydw+GdU-EKI-NT}4O zi#-6wK|bK@o89>qw=`ity2YlXnA@wvSP$3l;)D9?deZ$rDOb^ngLA67M& z2t!uKv;0py#y%_Qx^7W$@4@JFFtWe@NGDJjr=8uGDoEo>dF7^1Rs`l?d(Khs1>C`L+S=yG9srvsQi+Z3GSz8MjPw|(5T`z`rqXNJA!9*5HbZCgjaA< z19<%%B48DC;M#9sKm~27`gzXDZF@O}D^*!{UJY6X2O=B13sOG^di9l8jHdA2y_R#r zHeSZoB5c-~(_O*(%d&+blz@6YaFSt15pX(ROvn#99~ibW7t-VjQRMd4sE39zK7O=) z2mOz5WC(_>hXOE5rt04Vo~k-gpZxS#t8cF&UP~QyCQVKA-RZ30DfMj}VHN%F(3c7onYD2Vi*99`nup$Wl#X&HrEggRtLjpex6wP>4115BK~AKfTcrD7$zzy zq$H$HU*z^Hxk4$C_oU8XieW?F?7--(TE4nc-+gQ&YeR# zS$K8xX)9;=wG1(By&M^}BR=}gy6VEX@|ZD1piZ-PeWsS*KyH0IOK$^Z=r%{r#r&?Jm#OPs(B_m9T-VNcF#r$_eS;h zMu|g&F=W_7NkZQj@mP4)mX~)ZFDuw(U>P&6=62)_9}*$*^~C6sp)n zsO*Fk%t~6WIHvdX-tK*NbY1 zYKx&0n(F*te|~S{em}vFKT4>Sr<(*;RKEIER%TZQ(CY;SyaD=IdbFz0tOHFRHQ~XfS6Ui`i zPY$8FJv;kk8O;kOvNS|X1oJa60>3LW!rFdgjRsbF(c@76^+~Xz(KF6usOnn6GV=Eq zkg`2^I5@vF+|nn#F9B{ccaKhl-0)zZx3TAqPiBD()(?0A1?F<$k&m~6#W`^Z4G=ey zEZ1^yHNc~1i3z~p^;PVB7AmoqxrNz0xm#@`1amAVaQ45>YvRm(C@BzyeiLi_vaI=L z-N;Fz(k#cy!?!2gJJVh!VNfmtOEkrYuWyiO&`spWcO767fB*{s=VAkKHZ(vlkKIqn zjuhq^35dtArxp(ZyoI3vo)Hj8{AW=D9_Muf0c}2bERm#<%|@O&v!i9G-GL0)#OMho zL=p>OVWHG?0PV|z%@m9$mMV(^@ElkPj=k7337p%PV$aPDeJ@YEb98HJpAzjwmQ)nj zF1r*rn7xEYYqR=T(uSI*Y0+N5u=H(@Ka54-dmkO=sZ!10q9(CU-&%Oy-%zX{+XQa8 zf4_sgqxm?*9(YnR-U(PR{Wbou)S*@}`+zd;&*8u4BQ&%O?4Q5! zDsrm0IgBtpD(g59ZJ`p7YB5L9k5dm{FowAP z79MqENN$Lk{LHlg^52riJrf7tj46o`1OrB*V0_Jw0Z}l1$uelMNc)%==FOu`%jQXs zwh=ugq+SQdEPD zi)~F+o%bG3W5p_fB5EwC_|?%cQ7CZEr!?6d->0FgkcRapVx7ZUJP%MS3#mn$iM@2c5l@QDh&+ z2%DZ7DnB1P(f+{qR6dwBfc2gxKUBi9guF;4TfgmY#Ba)B-(UOAicG>-rXtWhs^+52FLBi7;V%n&!!Qj;l^02CsH zP>^~t5Es9)RSaF5eK9u0GGf@TitExf7IGA2@f}#Xt{LY3UWA60ZKA&JyHfi*Ls7th z?MIm{8TKL5&yaE#{RgIp@5Z%oL@-H*D}dspl_E6r-dhO8bXOL1*a;1ph&~eh(w(V z95P`2Q39a=w1r-a!<1NR$Vq^z2RlO;ND?4#)D%lqq#dK#i29;>YAu-61V6>#MWp=28MT(Vz|oltb*&z*o)>T7oqvFj3Vnnn1%XZe zho-E%VauK+qXTtP;M@9#i(E{Crl<8Ebbvb`ZdK9$n0bcelKN@hx&rK^sNR}kycDvZ ze@u|MeF=}0(cx)Pg;74^9a9sJP~Xp33q`V5Rj>!1J|u|vL5Asn(w{SI+@)2;<#=dY zC0+ycuKq;0Kut9g1d9TUGKuvgeTFf`qvc0IV0)~fXb~0Ett@NbVnVQE#S0=Vc-%6S zpa>(^_fybCtZrYi8|#t{8|0HwJn5KsOHe->9@eYKUgnKX$Jv*1iu$=<=Fre%gMq8n z-R+pGKUK@tcbJv6HXqUME2ESR%rWzv*FCM$6oT8k77VH@M-!?lUBAv;IYW7ja3YZ5 z@JvCG*20u5bYLzxE-dY8Xg_tFI=g7;k)vhgqi2v|x{$;}uab`43((onS65ZJ6W)Lh zFc*1680QA3m8Yp$)5jNC_ze79sqz*(bH|D&3!BTNn-fxk97^GboA%`FVg^QDOlEIZ zyojB7cb0YQ3KwR2s7Q&ej#->sN7hr8xDXe;5oxrFDcV{#&n{Z!6&Byp6>rn))qiZq z-er*)y`Twj4M?)LTFRCmmkMZ^+mh^8uyRz)Pix43XEC(fm7qhorq6#sMrrJ@lU3O< zKMzvEH7k#6kla!YG8P>L;SiuqG_1g1I}mqORmA&en?-`67uLL!|Aw+n-d24U zzcXNEHT=W~cbhjmN%*4ZL*ni_u3|Mv$CjBD)x}Lbd9~}%vY=nr(lM5kyKpCdtUBLg zuit+}a20nkl29|k7H?D=n=GURJ&Z2b*}+j+#bxBlV|YH`>{D@i2rgSyaN^L6OL=@i z^Pt0#N!HahUP9k$;lqGqWr*MvQR5=;*Z=<$K`;LslVE@92d}XpAh|>ZXt2D}M^cDM z{!w-ohe3E9>Y`4vRd;`fA|-wkfhP}4_SNYa)jkV;XIZnbunN0qH=(gj&QE+ECic_R z+BvSC*1-T}t$uaps%o)OI#p0E2se{mp48L4YV0{wy=ti{QvtJ-M-5M!u9H}VIoj@& zQKn9=hKc_ZlmcX0t`2MZJ0#0!0_Bku_i#R8M3>s1o1)0oY|{hqE#miCyZe&b{)R#; zcMTK{9p-R;FH6S6(xk=W*ytH-y{{*MP+H_7SnY?GR@B1=PR*o!KU5w!+`(=4Ht+EV z(^H&H*;Sh8XLOSiBSgft>dZ6wp#qFD(`BK%lCAlTJ?v7gEv|4MI1=p89W}-vpq>px zzi{Hf1REA5PHLFErtGV3T|dB!94Q09JH!DF2mty9fb8JZkP3mG;44}V+j5d2N~K-C zMZ!I76-JH03ZZk3uG%_n*2iE=rWAy1g-aSjuJO*CVCSBA1DRYBPdng2AfYJkJ-l)Y zxEeB0agj9c-8La(!ydAu;<`z>!;e9N*O-o}x^>*M?fj;4l+%#@!+^*Hef{=IJvYVh zYtjeInvV@6BKxh*9DQ#$rA)QDh3V9SZZ+Vm&5-dOlOx5)4hYmtP@iKX9NZh$J*kAg{JHQ>Rt@F~PU`?jk4;QWM8~ll}1>I@!w0$S;U3$Y5u=@-xrVG5FvkMaK{u?^D5< zBn7W`>*TFt3K>UR_3mVOY3_b#VWbfg4W&E|Rt+tsYzB(tD}qd{pYm078lVhhkbjrV zU;JUNyJ6t%CQTh>je`v5F$qHOo-E22UIIKXt=6L?D>~GGHsX!gi?&ZVL$|l({Wif! z01q$iv@sw2UfwUo#{?Dqi+WMPx6^uDt&3Xn`!x6OyYEIW+K+qvAtY~?T0{C+(pB}g zSeB|MI~<&r(goL0!Y{M)tpOc7aw>rcV9&yB8_zB{DlMZarR|{h0qZTMwu!h7ywdkg0ZR9EjfVP9 zJs<41k1fCW$d10>z}*lsJvBJ+GUSD&x~z&#Ap zEzNOXCr3N__wBOW^N@8Y#i%Kx&1%_X{4+d89dqhHWqHGYBSho8o3tVAD&q#n z7_8eZ8~%Xx4g?r~*%DS+Bo>=m*lwldVHLvBg!n`zYEk(zs`yl{< zH$V~kA`sdeBp&YY=MsLsjQ_if{Qm|7#scC}0FdxnA_fAz*P8LG+N?MOKz#O3(J=CL znk`Z+OkM^~pH^;Cs#u+%!uZsi$~p8&hPX7TFRA{G$Q1<-1ePY*6$&~s5JB{@yhdltMY>BBWP-G}G&R)K^sQmIX*kdtYj;C^ zz|cEx!8?8_qg&u%^3icQ@6q$ym7^BnLj@EGf{BpKOmBb8JNzG+vXdV0a5ZI%o}8y+ z8Hp>$dHoI_!tPe}`xcw>k2H}?4%E*Fb&fBuw`qk_I8R z#UnMzn}(PIRrgftFmX5rd2wu8K%0HC!f@^LY(E7h4xrc@!Y>Jo@?ityJ*ltEJ%9){ z2v3}%7#o;hA&_yW8aiOHf^!co_>C)AsN&vqDr>R=cG(pQm0`V_@SO0e_e!>y1QRZb z#+N~y;?{hM&f_L~hfS)_3?yXzgl2Ze!LBcLlmioH3Va3M|7$m(0m+q};lyxf@2?RK zjoi1}55`;<}K7rh;~PtjE2m4IzS*0 zeh-?$8tNg=-;lqde4RCwM;)ZgI+2IA-P09zN1@>vO@hPl_V*6nPy(Ke%oPQVIR0!j zZ-;1muEgJ)?F7MwtRIY)41*~H5XVZ`)oq!7(RYY%5rU#Z{eYd(e8=Bumx*9@wZ9rw zvNVwI4h5pCJW1At46B`V%vLf5YNo2EIqLbV#jm(~NbtC5SOuCLMgAV@m z`4P@%uF9N3jnz7QE(+U2LAsdLw|~(b`|&Cje&>It7=B1H%aL{%O9z50+e&+4w^k*^ zeUjM$>Q?^#+tJ&n6=?W!VnZZ;HO4X{Oc{XtH6Tz#8*J95OCOb@?tp^yENPZhG~pG< z%qN<)F8eN@;>F@zsB&)>%-^!UTxURKx4E!Eoy=%%*&xz5$Skp!7A6pH5w3sKW=YV7 z1ww>l%S^+f)I&y6rw~tKM56pm@hWSc2rU+mWx=MiQfa^LR1%_)b|xJm<5W)Vq5sJ+ zUt*;^=6uBcO3@(!KF+s+HA)yHCkTDOAcO3;$??g~H|>v4o9{%|9R_`_j_U z_krjv#;2r%PVLOzIyPgjc^hAQdbi2hjg4G1x675q*<6FTBcF1>>Otpzi7*qhdwmdt8Q^0usdVrt39j zWK%U}^^0G$WvuDU-i&m~E&g3fS{`|QcMJTn5pU4A*Fv^Zn-yVbBsU>-% zWm5+&jcwXB-S)uL?)Gf$W^3;!lahNJgN1D^U$#SJ3hrAYF>Ps4{vnkF^;<< zZr(9k(t#vI;P%p=is3&2jl90*|H7R6r_xUG52hLPzl!<*_yCxD1!PJo0K>>9dsIBj zh^oeC@$MyL-mKV3YfQb5I!trnwrN!Ou5&T^ZBE80bpq5O z6rgs$xv%$B1$`guMOS*)e34A~?ZBAnx;eYHt9MdB$FFr9-;hInTtkW58AtM-#MvW2 zi3Up+YUf*+(u%I5{#1NO^0`%~Xiu%I9&7)!mtUZW#MaEQ7cP`#i7!n!LKMZ&QU_(+ z&a_{c;-gGV zm8W(`Rh7Q+`FZi_b^x_W9GlxSl$xHK)6u!x5>Z*>3DL2($vG4_Cd<)Akz?s2> z#7X#w-yVdbsw02?c7!0)86Bl0xM)6bX7_>Q=DOaBmZLdG9T-s!frsbhFU%_mLALo$ zAAlw2SbfHD?dm*SHYbBkF3aiNmEeu1AWtxxKl99JJ%S-iu^*gDko=w&-j;ZPff?Ax z$rj;4E1}4kxXiy(rZ@W}>2#KEZ%e;3N>GG~6g8#3v}(?-?6XR`cMxiMnxLz`aW!K%E=@hZ=IaG;7F2v+;T726Cm0fCjp(}a@kck1bzlX7**=9i zdWmS{%9N_Vr^|O0b&S2e0VLm^@yOzTkbOQ?Yt%k{{-SiQ+W*oi+4kTcVG*-}z?JfH zVBz}9oof;?)8yguUd0f-<5~KJsSBs~iY2M!Sc+oY(&dxoflp8<32+#IBL|h9@8o)f zw1;$$n2f2rTt_re{Da_&?Y3JJdEaxgz&<7TtFKoMc>yvC`t{Cu)#m|OEj#~=2raws zf^9^5$XoBl7+i-bn?SRHus;z^V!l1S>b{RnvBcu1EDk^Bv@9$Pyj zE2#O;SWC?%Q8f8L6D=QFax$DS#e|3O%n^h4huki2VNzDWaDc73??8eNSYEK~J}NmW zX)-G2LrI+pqWrB=^CNEzMnSV~MK{hSwyE2;@U>gAU8!hOiu^^79EooRe*tuO5CWs+ zA94&hRS(R5K8az=h18DhrD^F9fIx52oFiy#Wa?;wqgP-D=DPIgIEx{p&@*uE(YUr{ z6mAl))gFOenV{-Dg6pU=iQ==p2G&CiDXsFhd?nk~?X8oKFkmL0;Zo(F z&O!J?t2!<@2h|kG`6{DnpChiAD*Sl1hUpql!ci0vHz~mmr+Hh<49HOf-|4lV3P{H& z@|+zoHfG#H{6Z(lZaxfCm5R%*vN*@>0}=zZWRj+Z=b}Mg%-7v-^9W8jXz`mtwjnzhWZq4hAAAl%InvtKOpbqx}(iqV1W70|o84fJ`b`!C=C$nj*j!B2Y1zXtr z?~F*5xVn9rsD{-*IEf-+5f4PtU z-aX>~HxL~r1Q_E1N^5^ABY+zP7C^EM{2mOXX8^3H5YWkR}~{Ol~5piy-LVn0_~DYPUsoE?!nJdpon3Gq_f|`A8GTn!L~K-9ks^ zram~>bn|T1{vr1;V45~6zw9d*XkdkvFsT>nhOnBW+{RMW6#XmvdUXlFuqWu)h}N!C zgtgYr@lMHZ!N=X!mb$f#quFC>Zu850qG>vB$SGaY1!g>N`<`?n7cQ!Xh|){+oB7#3 zxOmJDY7Gg#JID@VGy$?>X}XgNV3v;fe1>yC8K}}|Np-`nU{Pys^kFBfyG-a5gT?n^ zWVn@;F@$dNgFW-_G@p|5cZ)4acSN<>EF6XIPW=crv)ez_u(+p>cA*Cp-{D?~pjl^~ z9+$*CTBd$1_{Lc(e^NR4kt(_nHoS+h(cIOy58We&9(z>*@-d^RK7yyt4g(0^0qS5s zEEyQgNOdEAd#W>6Ewu$v+tcHCJI2k$1x~)^tGJ&}T`&qp@yDjcY}H|G!S-|~PLi8g z3sSRdksU&+9XV?;l9l`nb|{uqqw;^GhJmyhXrdForhH4M9)-;Y$LzOKr

Yppoa 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

c*5Cf*9 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%0DJek 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 +{ + router.route('/').get(homeController.home(io)) + return router; +}; \ No newline at end of file diff --git a/server.js b/server.js new file mode 100644 index 0000000..be9d1a0 --- /dev/null +++ b/server.js @@ -0,0 +1,145 @@ +console.time('StartUp'); +const express = require('express'); +var app = express(); +const path = require('path'); +const http = require('http'); +const {Server} = require('socket.io'); +const mongoose = require('mongoose'); +const port = process.env.PORT || 5000; +const {Client, GatewayIntentBits,Partials, ActivityType} = require('./lib.js'); +const Spawner = require('child_process'); +const guildsM = require('./models/guilds') + +app.use(express.static(path.join(__dirname, "public"))); +app.set("view engine", "ejs"); +app.use(require('cors')()) +app.use(express.json()); +app.use(express.urlencoded({extended:true})); + +const mongoDB = process.env.mongoDB; + +const server = http.createServer(app); +const io = new Server(server); + +var Childs = []; + +server.listen(port, () => +{ + app.use('/', require('./routes/routes')(io)); + console.log(`Http-Server UP`); +}); + +const bot = new Client({ intents: [ + GatewayIntentBits.Guilds, + GatewayIntentBits.GuildMembers, + GatewayIntentBits.GuildBans, + GatewayIntentBits.GuildEmojisAndStickers, + GatewayIntentBits.GuildIntegrations , + GatewayIntentBits.GuildWebhooks , + GatewayIntentBits.GuildInvites , + GatewayIntentBits.GuildVoiceStates, + GatewayIntentBits.GuildPresences, + GatewayIntentBits.GuildMessages, + GatewayIntentBits.GuildMessageReactions, + GatewayIntentBits.GuildMessageTyping, + GatewayIntentBits.DirectMessages, + GatewayIntentBits.DirectMessageReactions, + GatewayIntentBits.DirectMessageTyping, + GatewayIntentBits.MessageContent, + GatewayIntentBits.GuildScheduledEvents, + GatewayIntentBits.AutoModerationConfiguration, + GatewayIntentBits.AutoModerationExecution], + partials: [ + Partials.Reaction, + Partials.Message + ] +}); +bot.login(process.env.discord_token); + +bot.on('ready', () => +{ + mongoose.Promise = global.Promise; + mongoose.connect(mongoDB).catch(err=>console.log(err)); + console.log(`--------------------------\n ${bot.user.tag.split('#')[0]} \n Ready \n on `+bot.guilds.cache.size+" guilds \n serving "+bot.users.cache.size+" users \n--------------------------") + bot.user.setPresence({ + activities: [{ name: `!help`, type: ActivityType.Listening }], + status: 'online', + }); + console.timeEnd('StartUp'); + + /* spawining a singe music worker for legendary + + Spawner.fork('./musicWorker.js',['334456736633323520', 'Legendary']) + + */ + + music(); + setInterval(() => + { + music(); + }, 60000); + setInterval(() => { + moveAFKs(); + }, 5*60*1000); +}); +bot.on('guildCreate', guild=> +{ + console.log('Added To guild', guild); + var guild = new GuildM() +}); +bot.on('guildDelete', guild => +{ + +}); +async function music() +{ + //console.log('Music: Looking for Servers.') + const ServersWithMusicOn = await serversWithMusicOn(bot.guilds.cache); + if(!ServersWithMusicOn) return + for(var server of ServersWithMusicOn) + { + if(!Childs[server.name]) + { + console.log('Index: Starting Music Worker:', server.name,`(${server.gID})`) + Childs[server.name] = Spawner.fork('./musicWorker.js',[server.gID, server.name]); + } + else + { //Health check + (function (server) + { + Childs[server.name].on('exit', ()=> + { + console.log('Child DIED, spawning another.') + Childs[server.name] = Spawner.fork('./musicWorker.js',[server.gID, server.name]); + }) + })(server); + } + + } +} + +function moveAFKs(){ + //Gets the members inside the AFK channel + let auxmembers = bot.channels.cache.get("335494006890823680").members + //console.log("MoveAFK: Member list with "+ auxmembers.size+" members.") + //Sorts through them looking for those who have the SS - Secret Services Role + if(auxmembers.size >0) + { + //console.log("hosting:"); + } + for(var [key, values] of auxmembers){ + //console.log(values.id);; + if(values.roles.cache.has('693413934715240498')){ + //Upon fiding someoe that has said role. + //Moves it to the correct Channel. + values.voice.setChannel('839266096401874974') + .then(() => console.log(`MoveAFK: Moved ${values.displayName}.`)) + .catch(console.error); + } + } +} + +async function serversWithMusicOn() +{ + return await guildsM.find({music:true}).then(g=>{return g}) +} \ No newline at end of file diff --git a/test.js b/test.js new file mode 100644 index 0000000..cb8aeed --- /dev/null +++ b/test.js @@ -0,0 +1,42 @@ +const {Client, GatewayIntentBits,Partials, AtivityType} = require('./lib.js'); +const mongoose = require('mongoose'); +const mongoDB = process.env.mongoDB; + +const bot = new Client( + { + intents: + [ + GatewayIntentBits.Guilds, + GatewayIntentBits.GuildMembers, + GatewayIntentBits.GuildBans, + GatewayIntentBits.GuildEmojisAndStickers, + GatewayIntentBits.GuildIntegrations , + GatewayIntentBits.GuildWebhooks , + GatewayIntentBits.GuildInvites , + GatewayIntentBits.GuildVoiceStates, + GatewayIntentBits.GuildPresences, + GatewayIntentBits.GuildMessages, + GatewayIntentBits.GuildMessageReactions, + GatewayIntentBits.GuildMessageTyping, + GatewayIntentBits.DirectMessages, + GatewayIntentBits.DirectMessageReactions, + GatewayIntentBits.DirectMessageTyping, + GatewayIntentBits.MessageContent, + GatewayIntentBits.GuildScheduledEvents, + GatewayIntentBits.AutoModerationConfiguration, + GatewayIntentBits.AutoModerationExecution + ], + partials: + [ + Partials.Reaction, + Partials.Message + ] + } +) +bot.login(process.env.discord_token); +bot.on('ready', ()=> +{ + mongoose.Promise = global.Promise; + mongoose.connect(mongoDB).catch(err=>console.log(err)); + console.log('Ready'); +}); \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..aeabf61 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,22 @@ +{ + // Change this to match your project + "include": ["*"], + "exclude": ["node_modules/**"], + "compilerOptions": { + // Tells TypeScript to read JS files, as + // normally they are ignored as source files + "allowJs": true, + // Generate d.ts files + "declaration": true, + // This compiler run should + // only output d.ts files + "emitDeclarationOnly": true, + // Types should go into this directory. + // Removing this would place the .d.ts files + // next to the .js files + "outDir": "dist", + // go to js file when using IDE functions like + // "Go to Definition" in VSCode + "declarationMap": true + } + } \ No newline at end of file diff --git a/views/addtodiscord.ejs b/views/addtodiscord.ejs new file mode 100644 index 0000000..da234fc --- /dev/null +++ b/views/addtodiscord.ejs @@ -0,0 +1,40 @@ + + + + + + + + Rem-chan at your service + + + + +

+ + + + + diff --git a/views/home.ejs b/views/home.ejs new file mode 100644 index 0000000..679cf88 --- /dev/null +++ b/views/home.ejs @@ -0,0 +1,65 @@ + + + + + + + + Rem-chan at your service + + + + + +
+

Rem-chan

+
+
+
+ +

Sign in

+ +
+ + +
+ +
+ + + + Forgot the password? +
Eight or more characters, with at least one lowercase and one uppercase letter.
+
+ +
+
+ + DiscordAddButton + +
+ +

+ Rem themed discord bot. Everything you want in a bot, with a weabo twist. +

+
+ + +
+ + + + +
+

Rem-chan

+
+ +

+ Rem themed discord bot. Everything you want in a bot, with a weabo twist. +

+
+ +
+ +