├── .env.example ├── .gitignore ├── CNAME ├── Images └── undraw_Faq_re_31cw.svg ├── README.md ├── index.js ├── middleware └── checkAuth.js ├── package-lock.json ├── package.json ├── public └── css │ ├── main.css │ └── premium.css ├── router ├── index.js ├── invite.js ├── login.js ├── logout.js ├── premium.js └── support.js └── views ├── layout ├── footer.ejs ├── head.ejs ├── navbar.ejs └── script.ejs └── pages ├── index.ejs └── premium.ejs /.env.example: -------------------------------------------------------------------------------- 1 | clientID= 2 | token= 3 | callback=http://localhost:3000/login 4 | secret= 5 | port=3000 6 | SCOPES=identify,guilds 7 | SUPPORT=probot 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env 3 | sessions -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | fnrdev.me 2 | -------------------------------------------------------------------------------- /Images/undraw_Faq_re_31cw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Note: this project forked from [xCuzSkillz](https://github.com/xCuzSkillz) i just created server side 2 | 3 | 4 | ## Installation 5 | 6 | ```sh 7 | npm install 8 | ``` 9 | --- 10 | 11 | ### You need to rename .env file 12 | 13 | - .env 14 | ```sh 15 | clientID= 16 | token= 17 | callback=http://localhost:3000/login 18 | secret= 19 | port=3000 20 | SCOPES=identify,guilds 21 | SUPPORT=pornhub 22 | ``` 23 | --- 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | // import packages 2 | const express = require('express'); 3 | const app = express(); 4 | const Discord = require('discord.js'); 5 | const client = new Discord.Client({ intents: ["GUILDS"] }) 6 | app.set('view engine', 'ejs'); 7 | app.use(express.urlencoded({ extended: true })); 8 | const passport = require('passport'); 9 | const DiscordStrategy = require('passport-discord').Strategy; 10 | const session = require('express-session'); 11 | const fileStore = require('session-file-store')(session); 12 | app.use(express.json()); 13 | app.use(express.static('public')) 14 | require('dotenv').config(); 15 | require('colors'); 16 | 17 | // strategy for discord 18 | passport.use(new DiscordStrategy({ 19 | clientID: process.env.clientID, 20 | clientSecret: process.env.secret, 21 | callbackURL: process.env.callback, 22 | scope: process.env.SCOPES.split(',') 23 | }, function(accessToken, refreshToken, profile, done) { 24 | process.nextTick(function() { 25 | return done(null, profile) 26 | }) 27 | })) 28 | 29 | // setup session 30 | app.use(session({ 31 | secret: 'fnr12345624', 32 | resave: false, 33 | saveUninitialized: false, 34 | store: new fileStore({ 35 | logFn: () => true 36 | }), 37 | cookie: { maxAge: 3600000 * 24 * 30 } 38 | })); 39 | 40 | // serializeUser & deserializeUser 41 | app.use(passport.initialize()); 42 | app.use(passport.session()); 43 | passport.serializeUser(function(user, done) { 44 | done(null, user); 45 | }); 46 | passport.deserializeUser(function(obj, done) { 47 | done(null, obj); 48 | }); 49 | 50 | // locals 51 | app.use(async function(req, res, next) { 52 | let user; 53 | if (req.isAuthenticated()) { 54 | user = await client.users.fetch(req.user.id) 55 | } 56 | req.bot = client; 57 | res.locals.login = req.isAuthenticated(); 58 | res.locals.client = client; 59 | res.locals.user = user; 60 | res.locals.loggedUser = req.user; 61 | res.locals.route = req.originalUrl; 62 | next(); 63 | }) 64 | 65 | // routes 66 | app.use('/', require('./router/index')) 67 | app.use('/invite', require('./router/invite')) 68 | app.use('/premium', require('./router/premium')) 69 | app.use('/login', require('./router/login')) 70 | app.use('/logout', require('./router/logout')) 71 | app.use('/support', require('./router/support')) 72 | 73 | // end of routes 74 | 75 | // start backend server 76 | app.listen(process.env.port, () => console.log(`App is ready in port ${process.env.port}`)) 77 | 78 | client.on('ready', () => { 79 | console.log(`[Discord API] Logged in as ${client.user.username}`.cyan); 80 | }) 81 | 82 | client.login(process.env.token); -------------------------------------------------------------------------------- /middleware/checkAuth.js: -------------------------------------------------------------------------------- 1 | function checkAuth(req, res, next) { 2 | if (req.isAuthenticated()) return next(); 3 | res.redirect('/login') 4 | } 5 | 6 | module.exports = checkAuth; -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "version": "1.0.0", 9 | "license": "ISC", 10 | "dependencies": { 11 | "colors": "^1.4.0", 12 | "discord.js": "^13.2.0", 13 | "dotenv": "^10.0.0", 14 | "ejs": "^2.6.1", 15 | "express": "^4.17.1", 16 | "express-session": "^1.17.2", 17 | "passport": "^0.4.1", 18 | "passport-discord": "^0.1.4", 19 | "session-file-store": "^1.5.0" 20 | } 21 | }, 22 | "node_modules/@discordjs/builders": { 23 | "version": "0.6.0", 24 | "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.6.0.tgz", 25 | "integrity": "sha512-mH3Gx61LKk2CD05laCI9K5wp+a3NyASHDUGx83DGJFkqJlRlSV5WMJNY6RS37A5SjqDtGMF4wVR9jzFaqShe6Q==", 26 | "dependencies": { 27 | "@sindresorhus/is": "^4.0.1", 28 | "discord-api-types": "^0.22.0", 29 | "ow": "^0.27.0", 30 | "ts-mixer": "^6.0.0", 31 | "tslib": "^2.3.1" 32 | }, 33 | "engines": { 34 | "node": ">=14.0.0", 35 | "npm": ">=7.0.0" 36 | } 37 | }, 38 | "node_modules/@discordjs/builders/node_modules/discord-api-types": { 39 | "version": "0.22.0", 40 | "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz", 41 | "integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg==", 42 | "engines": { 43 | "node": ">=12" 44 | } 45 | }, 46 | "node_modules/@discordjs/collection": { 47 | "version": "0.2.1", 48 | "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.2.1.tgz", 49 | "integrity": "sha512-vhxqzzM8gkomw0TYRF3tgx7SwElzUlXT/Aa41O7mOcyN6wIJfj5JmDWaO5XGKsGSsNx7F3i5oIlrucCCWV1Nog==", 50 | "engines": { 51 | "node": ">=14.0.0" 52 | } 53 | }, 54 | "node_modules/@discordjs/form-data": { 55 | "version": "3.0.1", 56 | "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", 57 | "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", 58 | "dependencies": { 59 | "asynckit": "^0.4.0", 60 | "combined-stream": "^1.0.8", 61 | "mime-types": "^2.1.12" 62 | }, 63 | "engines": { 64 | "node": ">= 6" 65 | } 66 | }, 67 | "node_modules/@sapphire/async-queue": { 68 | "version": "1.1.7", 69 | "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.7.tgz", 70 | "integrity": "sha512-EBRERa9NqK/EV6DIPBVtjjdHBsu/DSdMuYAydmoIyIPONzp0UAxf2G6JGJ52WkiONtPRx6KNuqB5Q8dm14fwyw==", 71 | "engines": { 72 | "node": ">=v14.0.0", 73 | "npm": ">=7.0.0" 74 | } 75 | }, 76 | "node_modules/@sindresorhus/is": { 77 | "version": "4.2.0", 78 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", 79 | "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", 80 | "engines": { 81 | "node": ">=10" 82 | }, 83 | "funding": { 84 | "url": "https://github.com/sindresorhus/is?sponsor=1" 85 | } 86 | }, 87 | "node_modules/@types/node": { 88 | "version": "16.11.1", 89 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.1.tgz", 90 | "integrity": "sha512-PYGcJHL9mwl1Ek3PLiYgyEKtwTMmkMw4vbiyz/ps3pfdRYLVv+SN7qHVAImrjdAXxgluDEw6Ph4lyv+m9UpRmA==" 91 | }, 92 | "node_modules/@types/ws": { 93 | "version": "8.2.0", 94 | "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.0.tgz", 95 | "integrity": "sha512-cyeefcUCgJlEk+hk2h3N+MqKKsPViQgF5boi9TTHSK+PoR9KWBb/C5ccPcDyAqgsbAYHTwulch725DV84+pSpg==", 96 | "dependencies": { 97 | "@types/node": "*" 98 | } 99 | }, 100 | "node_modules/accepts": { 101 | "version": "1.3.7", 102 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 103 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 104 | "dependencies": { 105 | "mime-types": "~2.1.24", 106 | "negotiator": "0.6.2" 107 | }, 108 | "engines": { 109 | "node": ">= 0.6" 110 | } 111 | }, 112 | "node_modules/array-flatten": { 113 | "version": "1.1.1", 114 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 115 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 116 | }, 117 | "node_modules/asn1.js": { 118 | "version": "5.4.1", 119 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", 120 | "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", 121 | "dependencies": { 122 | "bn.js": "^4.0.0", 123 | "inherits": "^2.0.1", 124 | "minimalistic-assert": "^1.0.0", 125 | "safer-buffer": "^2.1.0" 126 | } 127 | }, 128 | "node_modules/asynckit": { 129 | "version": "0.4.0", 130 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 131 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 132 | }, 133 | "node_modules/bagpipe": { 134 | "version": "0.3.5", 135 | "resolved": "https://registry.npmjs.org/bagpipe/-/bagpipe-0.3.5.tgz", 136 | "integrity": "sha1-40HRZPyyTN8E6n4Ft2XsEMiupqE=" 137 | }, 138 | "node_modules/base64url": { 139 | "version": "3.0.1", 140 | "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", 141 | "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", 142 | "engines": { 143 | "node": ">=6.0.0" 144 | } 145 | }, 146 | "node_modules/bn.js": { 147 | "version": "4.12.0", 148 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 149 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" 150 | }, 151 | "node_modules/body-parser": { 152 | "version": "1.19.0", 153 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 154 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 155 | "dependencies": { 156 | "bytes": "3.1.0", 157 | "content-type": "~1.0.4", 158 | "debug": "2.6.9", 159 | "depd": "~1.1.2", 160 | "http-errors": "1.7.2", 161 | "iconv-lite": "0.4.24", 162 | "on-finished": "~2.3.0", 163 | "qs": "6.7.0", 164 | "raw-body": "2.4.0", 165 | "type-is": "~1.6.17" 166 | }, 167 | "engines": { 168 | "node": ">= 0.8" 169 | } 170 | }, 171 | "node_modules/bytes": { 172 | "version": "3.1.0", 173 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 174 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", 175 | "engines": { 176 | "node": ">= 0.8" 177 | } 178 | }, 179 | "node_modules/callsites": { 180 | "version": "3.1.0", 181 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 182 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 183 | "engines": { 184 | "node": ">=6" 185 | } 186 | }, 187 | "node_modules/colors": { 188 | "version": "1.4.0", 189 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", 190 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", 191 | "engines": { 192 | "node": ">=0.1.90" 193 | } 194 | }, 195 | "node_modules/combined-stream": { 196 | "version": "1.0.8", 197 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 198 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 199 | "dependencies": { 200 | "delayed-stream": "~1.0.0" 201 | }, 202 | "engines": { 203 | "node": ">= 0.8" 204 | } 205 | }, 206 | "node_modules/content-disposition": { 207 | "version": "0.5.3", 208 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 209 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 210 | "dependencies": { 211 | "safe-buffer": "5.1.2" 212 | }, 213 | "engines": { 214 | "node": ">= 0.6" 215 | } 216 | }, 217 | "node_modules/content-type": { 218 | "version": "1.0.4", 219 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 220 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", 221 | "engines": { 222 | "node": ">= 0.6" 223 | } 224 | }, 225 | "node_modules/cookie": { 226 | "version": "0.4.0", 227 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 228 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", 229 | "engines": { 230 | "node": ">= 0.6" 231 | } 232 | }, 233 | "node_modules/cookie-signature": { 234 | "version": "1.0.6", 235 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 236 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 237 | }, 238 | "node_modules/debug": { 239 | "version": "2.6.9", 240 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 241 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 242 | "dependencies": { 243 | "ms": "2.0.0" 244 | } 245 | }, 246 | "node_modules/delayed-stream": { 247 | "version": "1.0.0", 248 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 249 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 250 | "engines": { 251 | "node": ">=0.4.0" 252 | } 253 | }, 254 | "node_modules/depd": { 255 | "version": "1.1.2", 256 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 257 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", 258 | "engines": { 259 | "node": ">= 0.6" 260 | } 261 | }, 262 | "node_modules/destroy": { 263 | "version": "1.0.4", 264 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 265 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 266 | }, 267 | "node_modules/discord-api-types": { 268 | "version": "0.23.1", 269 | "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.23.1.tgz", 270 | "integrity": "sha512-igWmn+45mzXRWNEPU25I/pr8MwxHb767wAr51oy3VRLRcTlp5ADBbrBR0lq3SA1Rfw3MtM4TQu1xo3kxscfVdQ==", 271 | "engines": { 272 | "node": ">=12" 273 | } 274 | }, 275 | "node_modules/discord.js": { 276 | "version": "13.2.0", 277 | "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.2.0.tgz", 278 | "integrity": "sha512-nyxUvL8wuQG38zx13wUMkpcA8koFszyiXdkSLwwM9opKW2LC2H5gD0cTZxImeJ6GtEnKPWT8xBiE8lLBmbNIhw==", 279 | "dependencies": { 280 | "@discordjs/builders": "^0.6.0", 281 | "@discordjs/collection": "^0.2.1", 282 | "@discordjs/form-data": "^3.0.1", 283 | "@sapphire/async-queue": "^1.1.5", 284 | "@types/ws": "^8.2.0", 285 | "discord-api-types": "^0.23.1", 286 | "node-fetch": "^2.6.1", 287 | "ws": "^8.2.3" 288 | }, 289 | "engines": { 290 | "node": ">=16.6.0", 291 | "npm": ">=7.0.0" 292 | } 293 | }, 294 | "node_modules/dot-prop": { 295 | "version": "6.0.1", 296 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", 297 | "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", 298 | "dependencies": { 299 | "is-obj": "^2.0.0" 300 | }, 301 | "engines": { 302 | "node": ">=10" 303 | }, 304 | "funding": { 305 | "url": "https://github.com/sponsors/sindresorhus" 306 | } 307 | }, 308 | "node_modules/dotenv": { 309 | "version": "10.0.0", 310 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", 311 | "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", 312 | "engines": { 313 | "node": ">=10" 314 | } 315 | }, 316 | "node_modules/ee-first": { 317 | "version": "1.1.1", 318 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 319 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 320 | }, 321 | "node_modules/ejs": { 322 | "version": "2.6.1", 323 | "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", 324 | "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", 325 | "engines": { 326 | "node": ">=0.10.0" 327 | } 328 | }, 329 | "node_modules/encodeurl": { 330 | "version": "1.0.2", 331 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 332 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", 333 | "engines": { 334 | "node": ">= 0.8" 335 | } 336 | }, 337 | "node_modules/escape-html": { 338 | "version": "1.0.3", 339 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 340 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 341 | }, 342 | "node_modules/etag": { 343 | "version": "1.8.1", 344 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 345 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", 346 | "engines": { 347 | "node": ">= 0.6" 348 | } 349 | }, 350 | "node_modules/express": { 351 | "version": "4.17.1", 352 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 353 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 354 | "dependencies": { 355 | "accepts": "~1.3.7", 356 | "array-flatten": "1.1.1", 357 | "body-parser": "1.19.0", 358 | "content-disposition": "0.5.3", 359 | "content-type": "~1.0.4", 360 | "cookie": "0.4.0", 361 | "cookie-signature": "1.0.6", 362 | "debug": "2.6.9", 363 | "depd": "~1.1.2", 364 | "encodeurl": "~1.0.2", 365 | "escape-html": "~1.0.3", 366 | "etag": "~1.8.1", 367 | "finalhandler": "~1.1.2", 368 | "fresh": "0.5.2", 369 | "merge-descriptors": "1.0.1", 370 | "methods": "~1.1.2", 371 | "on-finished": "~2.3.0", 372 | "parseurl": "~1.3.3", 373 | "path-to-regexp": "0.1.7", 374 | "proxy-addr": "~2.0.5", 375 | "qs": "6.7.0", 376 | "range-parser": "~1.2.1", 377 | "safe-buffer": "5.1.2", 378 | "send": "0.17.1", 379 | "serve-static": "1.14.1", 380 | "setprototypeof": "1.1.1", 381 | "statuses": "~1.5.0", 382 | "type-is": "~1.6.18", 383 | "utils-merge": "1.0.1", 384 | "vary": "~1.1.2" 385 | }, 386 | "engines": { 387 | "node": ">= 0.10.0" 388 | } 389 | }, 390 | "node_modules/express-session": { 391 | "version": "1.17.2", 392 | "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.2.tgz", 393 | "integrity": "sha512-mPcYcLA0lvh7D4Oqr5aNJFMtBMKPLl++OKKxkHzZ0U0oDq1rpKBnkR5f5vCHR26VeArlTOEF9td4x5IjICksRQ==", 394 | "dependencies": { 395 | "cookie": "0.4.1", 396 | "cookie-signature": "1.0.6", 397 | "debug": "2.6.9", 398 | "depd": "~2.0.0", 399 | "on-headers": "~1.0.2", 400 | "parseurl": "~1.3.3", 401 | "safe-buffer": "5.2.1", 402 | "uid-safe": "~2.1.5" 403 | }, 404 | "engines": { 405 | "node": ">= 0.8.0" 406 | } 407 | }, 408 | "node_modules/express-session/node_modules/cookie": { 409 | "version": "0.4.1", 410 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", 411 | "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", 412 | "engines": { 413 | "node": ">= 0.6" 414 | } 415 | }, 416 | "node_modules/express-session/node_modules/depd": { 417 | "version": "2.0.0", 418 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", 419 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", 420 | "engines": { 421 | "node": ">= 0.8" 422 | } 423 | }, 424 | "node_modules/express-session/node_modules/safe-buffer": { 425 | "version": "5.2.1", 426 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 427 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 428 | "funding": [ 429 | { 430 | "type": "github", 431 | "url": "https://github.com/sponsors/feross" 432 | }, 433 | { 434 | "type": "patreon", 435 | "url": "https://www.patreon.com/feross" 436 | }, 437 | { 438 | "type": "consulting", 439 | "url": "https://feross.org/support" 440 | } 441 | ] 442 | }, 443 | "node_modules/finalhandler": { 444 | "version": "1.1.2", 445 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 446 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 447 | "dependencies": { 448 | "debug": "2.6.9", 449 | "encodeurl": "~1.0.2", 450 | "escape-html": "~1.0.3", 451 | "on-finished": "~2.3.0", 452 | "parseurl": "~1.3.3", 453 | "statuses": "~1.5.0", 454 | "unpipe": "~1.0.0" 455 | }, 456 | "engines": { 457 | "node": ">= 0.8" 458 | } 459 | }, 460 | "node_modules/forwarded": { 461 | "version": "0.2.0", 462 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 463 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", 464 | "engines": { 465 | "node": ">= 0.6" 466 | } 467 | }, 468 | "node_modules/fresh": { 469 | "version": "0.5.2", 470 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 471 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", 472 | "engines": { 473 | "node": ">= 0.6" 474 | } 475 | }, 476 | "node_modules/fs-extra": { 477 | "version": "8.1.0", 478 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", 479 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", 480 | "dependencies": { 481 | "graceful-fs": "^4.2.0", 482 | "jsonfile": "^4.0.0", 483 | "universalify": "^0.1.0" 484 | }, 485 | "engines": { 486 | "node": ">=6 <7 || >=8" 487 | } 488 | }, 489 | "node_modules/graceful-fs": { 490 | "version": "4.2.8", 491 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", 492 | "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" 493 | }, 494 | "node_modules/http-errors": { 495 | "version": "1.7.2", 496 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 497 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 498 | "dependencies": { 499 | "depd": "~1.1.2", 500 | "inherits": "2.0.3", 501 | "setprototypeof": "1.1.1", 502 | "statuses": ">= 1.5.0 < 2", 503 | "toidentifier": "1.0.0" 504 | }, 505 | "engines": { 506 | "node": ">= 0.6" 507 | } 508 | }, 509 | "node_modules/iconv-lite": { 510 | "version": "0.4.24", 511 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 512 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 513 | "dependencies": { 514 | "safer-buffer": ">= 2.1.2 < 3" 515 | }, 516 | "engines": { 517 | "node": ">=0.10.0" 518 | } 519 | }, 520 | "node_modules/imurmurhash": { 521 | "version": "0.1.4", 522 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 523 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 524 | "engines": { 525 | "node": ">=0.8.19" 526 | } 527 | }, 528 | "node_modules/inherits": { 529 | "version": "2.0.3", 530 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 531 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 532 | }, 533 | "node_modules/ipaddr.js": { 534 | "version": "1.9.1", 535 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 536 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 537 | "engines": { 538 | "node": ">= 0.10" 539 | } 540 | }, 541 | "node_modules/is-obj": { 542 | "version": "2.0.0", 543 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", 544 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", 545 | "engines": { 546 | "node": ">=8" 547 | } 548 | }, 549 | "node_modules/is-typedarray": { 550 | "version": "1.0.0", 551 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 552 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 553 | }, 554 | "node_modules/jsonfile": { 555 | "version": "4.0.0", 556 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 557 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 558 | "optionalDependencies": { 559 | "graceful-fs": "^4.1.6" 560 | } 561 | }, 562 | "node_modules/kruptein": { 563 | "version": "2.2.3", 564 | "resolved": "https://registry.npmjs.org/kruptein/-/kruptein-2.2.3.tgz", 565 | "integrity": "sha512-BTwprBPTzkFT9oTugxKd3WnWrX630MqUDsnmBuoa98eQs12oD4n4TeI0GbpdGcYn/73Xueg2rfnw+oK4dovnJg==", 566 | "dependencies": { 567 | "asn1.js": "^5.4.1" 568 | }, 569 | "engines": { 570 | "node": ">6" 571 | } 572 | }, 573 | "node_modules/lodash.isequal": { 574 | "version": "4.5.0", 575 | "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", 576 | "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" 577 | }, 578 | "node_modules/media-typer": { 579 | "version": "0.3.0", 580 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 581 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", 582 | "engines": { 583 | "node": ">= 0.6" 584 | } 585 | }, 586 | "node_modules/merge-descriptors": { 587 | "version": "1.0.1", 588 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 589 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 590 | }, 591 | "node_modules/methods": { 592 | "version": "1.1.2", 593 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 594 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", 595 | "engines": { 596 | "node": ">= 0.6" 597 | } 598 | }, 599 | "node_modules/mime": { 600 | "version": "1.6.0", 601 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 602 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 603 | "bin": { 604 | "mime": "cli.js" 605 | }, 606 | "engines": { 607 | "node": ">=4" 608 | } 609 | }, 610 | "node_modules/mime-db": { 611 | "version": "1.49.0", 612 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", 613 | "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", 614 | "engines": { 615 | "node": ">= 0.6" 616 | } 617 | }, 618 | "node_modules/mime-types": { 619 | "version": "2.1.32", 620 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", 621 | "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", 622 | "dependencies": { 623 | "mime-db": "1.49.0" 624 | }, 625 | "engines": { 626 | "node": ">= 0.6" 627 | } 628 | }, 629 | "node_modules/minimalistic-assert": { 630 | "version": "1.0.1", 631 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", 632 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" 633 | }, 634 | "node_modules/ms": { 635 | "version": "2.0.0", 636 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 637 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 638 | }, 639 | "node_modules/negotiator": { 640 | "version": "0.6.2", 641 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 642 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", 643 | "engines": { 644 | "node": ">= 0.6" 645 | } 646 | }, 647 | "node_modules/node-fetch": { 648 | "version": "2.6.2", 649 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.2.tgz", 650 | "integrity": "sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA==", 651 | "engines": { 652 | "node": "4.x || >=6.0.0" 653 | } 654 | }, 655 | "node_modules/oauth": { 656 | "version": "0.9.15", 657 | "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", 658 | "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" 659 | }, 660 | "node_modules/object-assign": { 661 | "version": "4.1.1", 662 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 663 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 664 | "engines": { 665 | "node": ">=0.10.0" 666 | } 667 | }, 668 | "node_modules/on-finished": { 669 | "version": "2.3.0", 670 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 671 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 672 | "dependencies": { 673 | "ee-first": "1.1.1" 674 | }, 675 | "engines": { 676 | "node": ">= 0.8" 677 | } 678 | }, 679 | "node_modules/on-headers": { 680 | "version": "1.0.2", 681 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", 682 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", 683 | "engines": { 684 | "node": ">= 0.8" 685 | } 686 | }, 687 | "node_modules/ow": { 688 | "version": "0.27.0", 689 | "resolved": "https://registry.npmjs.org/ow/-/ow-0.27.0.tgz", 690 | "integrity": "sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ==", 691 | "dependencies": { 692 | "@sindresorhus/is": "^4.0.1", 693 | "callsites": "^3.1.0", 694 | "dot-prop": "^6.0.1", 695 | "lodash.isequal": "^4.5.0", 696 | "type-fest": "^1.2.1", 697 | "vali-date": "^1.0.0" 698 | }, 699 | "engines": { 700 | "node": ">=12" 701 | }, 702 | "funding": { 703 | "url": "https://github.com/sponsors/sindresorhus" 704 | } 705 | }, 706 | "node_modules/parseurl": { 707 | "version": "1.3.3", 708 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 709 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", 710 | "engines": { 711 | "node": ">= 0.8" 712 | } 713 | }, 714 | "node_modules/passport": { 715 | "version": "0.4.1", 716 | "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.1.tgz", 717 | "integrity": "sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==", 718 | "dependencies": { 719 | "passport-strategy": "1.x.x", 720 | "pause": "0.0.1" 721 | }, 722 | "engines": { 723 | "node": ">= 0.4.0" 724 | } 725 | }, 726 | "node_modules/passport-discord": { 727 | "version": "0.1.4", 728 | "resolved": "https://registry.npmjs.org/passport-discord/-/passport-discord-0.1.4.tgz", 729 | "integrity": "sha512-VJWPYqSOmh7SaCLw/C+k1ZqCzJnn2frrmQRx1YrcPJ3MQ+Oa31XclbbmqFICSvl8xv3Fqd6YWQ4H4p1MpIN9rA==", 730 | "dependencies": { 731 | "passport-oauth2": "^1.5.0" 732 | } 733 | }, 734 | "node_modules/passport-oauth2": { 735 | "version": "1.6.0", 736 | "resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.6.0.tgz", 737 | "integrity": "sha512-emXPLqLcVEcLFR/QvQXZcwLmfK8e9CqvMgmOFJxcNT3okSFMtUbRRKpY20x5euD+01uHsjjCa07DYboEeLXYiw==", 738 | "dependencies": { 739 | "base64url": "3.x.x", 740 | "oauth": "0.9.x", 741 | "passport-strategy": "1.x.x", 742 | "uid2": "0.0.x", 743 | "utils-merge": "1.x.x" 744 | }, 745 | "engines": { 746 | "node": ">= 0.4.0" 747 | }, 748 | "funding": { 749 | "type": "github", 750 | "url": "https://github.com/sponsors/jaredhanson" 751 | } 752 | }, 753 | "node_modules/passport-strategy": { 754 | "version": "1.0.0", 755 | "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", 756 | "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=", 757 | "engines": { 758 | "node": ">= 0.4.0" 759 | } 760 | }, 761 | "node_modules/path-to-regexp": { 762 | "version": "0.1.7", 763 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 764 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 765 | }, 766 | "node_modules/pause": { 767 | "version": "0.0.1", 768 | "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", 769 | "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" 770 | }, 771 | "node_modules/proxy-addr": { 772 | "version": "2.0.7", 773 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 774 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 775 | "dependencies": { 776 | "forwarded": "0.2.0", 777 | "ipaddr.js": "1.9.1" 778 | }, 779 | "engines": { 780 | "node": ">= 0.10" 781 | } 782 | }, 783 | "node_modules/qs": { 784 | "version": "6.7.0", 785 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 786 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", 787 | "engines": { 788 | "node": ">=0.6" 789 | } 790 | }, 791 | "node_modules/random-bytes": { 792 | "version": "1.0.0", 793 | "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", 794 | "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", 795 | "engines": { 796 | "node": ">= 0.8" 797 | } 798 | }, 799 | "node_modules/range-parser": { 800 | "version": "1.2.1", 801 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 802 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", 803 | "engines": { 804 | "node": ">= 0.6" 805 | } 806 | }, 807 | "node_modules/raw-body": { 808 | "version": "2.4.0", 809 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 810 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 811 | "dependencies": { 812 | "bytes": "3.1.0", 813 | "http-errors": "1.7.2", 814 | "iconv-lite": "0.4.24", 815 | "unpipe": "1.0.0" 816 | }, 817 | "engines": { 818 | "node": ">= 0.8" 819 | } 820 | }, 821 | "node_modules/retry": { 822 | "version": "0.12.0", 823 | "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", 824 | "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", 825 | "engines": { 826 | "node": ">= 4" 827 | } 828 | }, 829 | "node_modules/safe-buffer": { 830 | "version": "5.1.2", 831 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 832 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 833 | }, 834 | "node_modules/safer-buffer": { 835 | "version": "2.1.2", 836 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 837 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 838 | }, 839 | "node_modules/send": { 840 | "version": "0.17.1", 841 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 842 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 843 | "dependencies": { 844 | "debug": "2.6.9", 845 | "depd": "~1.1.2", 846 | "destroy": "~1.0.4", 847 | "encodeurl": "~1.0.2", 848 | "escape-html": "~1.0.3", 849 | "etag": "~1.8.1", 850 | "fresh": "0.5.2", 851 | "http-errors": "~1.7.2", 852 | "mime": "1.6.0", 853 | "ms": "2.1.1", 854 | "on-finished": "~2.3.0", 855 | "range-parser": "~1.2.1", 856 | "statuses": "~1.5.0" 857 | }, 858 | "engines": { 859 | "node": ">= 0.8.0" 860 | } 861 | }, 862 | "node_modules/send/node_modules/ms": { 863 | "version": "2.1.1", 864 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 865 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 866 | }, 867 | "node_modules/serve-static": { 868 | "version": "1.14.1", 869 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 870 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 871 | "dependencies": { 872 | "encodeurl": "~1.0.2", 873 | "escape-html": "~1.0.3", 874 | "parseurl": "~1.3.3", 875 | "send": "0.17.1" 876 | }, 877 | "engines": { 878 | "node": ">= 0.8.0" 879 | } 880 | }, 881 | "node_modules/session-file-store": { 882 | "version": "1.5.0", 883 | "resolved": "https://registry.npmjs.org/session-file-store/-/session-file-store-1.5.0.tgz", 884 | "integrity": "sha512-60IZaJNzyu2tIeHutkYE8RiXVx3KRvacOxfLr2Mj92SIsRIroDsH0IlUUR6fJAjoTW4RQISbaOApa2IZpIwFdQ==", 885 | "dependencies": { 886 | "bagpipe": "^0.3.5", 887 | "fs-extra": "^8.0.1", 888 | "kruptein": "^2.0.4", 889 | "object-assign": "^4.1.1", 890 | "retry": "^0.12.0", 891 | "write-file-atomic": "3.0.3" 892 | }, 893 | "engines": { 894 | "node": ">= 6" 895 | } 896 | }, 897 | "node_modules/setprototypeof": { 898 | "version": "1.1.1", 899 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 900 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 901 | }, 902 | "node_modules/signal-exit": { 903 | "version": "3.0.3", 904 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 905 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 906 | }, 907 | "node_modules/statuses": { 908 | "version": "1.5.0", 909 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 910 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", 911 | "engines": { 912 | "node": ">= 0.6" 913 | } 914 | }, 915 | "node_modules/toidentifier": { 916 | "version": "1.0.0", 917 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 918 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", 919 | "engines": { 920 | "node": ">=0.6" 921 | } 922 | }, 923 | "node_modules/ts-mixer": { 924 | "version": "6.0.0", 925 | "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz", 926 | "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ==" 927 | }, 928 | "node_modules/tslib": { 929 | "version": "2.3.1", 930 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", 931 | "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" 932 | }, 933 | "node_modules/type-fest": { 934 | "version": "1.4.0", 935 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", 936 | "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", 937 | "engines": { 938 | "node": ">=10" 939 | }, 940 | "funding": { 941 | "url": "https://github.com/sponsors/sindresorhus" 942 | } 943 | }, 944 | "node_modules/type-is": { 945 | "version": "1.6.18", 946 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 947 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 948 | "dependencies": { 949 | "media-typer": "0.3.0", 950 | "mime-types": "~2.1.24" 951 | }, 952 | "engines": { 953 | "node": ">= 0.6" 954 | } 955 | }, 956 | "node_modules/typedarray-to-buffer": { 957 | "version": "3.1.5", 958 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", 959 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", 960 | "dependencies": { 961 | "is-typedarray": "^1.0.0" 962 | } 963 | }, 964 | "node_modules/uid-safe": { 965 | "version": "2.1.5", 966 | "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", 967 | "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", 968 | "dependencies": { 969 | "random-bytes": "~1.0.0" 970 | }, 971 | "engines": { 972 | "node": ">= 0.8" 973 | } 974 | }, 975 | "node_modules/uid2": { 976 | "version": "0.0.4", 977 | "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz", 978 | "integrity": "sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==" 979 | }, 980 | "node_modules/universalify": { 981 | "version": "0.1.2", 982 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", 983 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", 984 | "engines": { 985 | "node": ">= 4.0.0" 986 | } 987 | }, 988 | "node_modules/unpipe": { 989 | "version": "1.0.0", 990 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 991 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", 992 | "engines": { 993 | "node": ">= 0.8" 994 | } 995 | }, 996 | "node_modules/utils-merge": { 997 | "version": "1.0.1", 998 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 999 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", 1000 | "engines": { 1001 | "node": ">= 0.4.0" 1002 | } 1003 | }, 1004 | "node_modules/vali-date": { 1005 | "version": "1.0.0", 1006 | "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", 1007 | "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", 1008 | "engines": { 1009 | "node": ">=0.10.0" 1010 | } 1011 | }, 1012 | "node_modules/vary": { 1013 | "version": "1.1.2", 1014 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1015 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", 1016 | "engines": { 1017 | "node": ">= 0.8" 1018 | } 1019 | }, 1020 | "node_modules/write-file-atomic": { 1021 | "version": "3.0.3", 1022 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", 1023 | "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", 1024 | "dependencies": { 1025 | "imurmurhash": "^0.1.4", 1026 | "is-typedarray": "^1.0.0", 1027 | "signal-exit": "^3.0.2", 1028 | "typedarray-to-buffer": "^3.1.5" 1029 | } 1030 | }, 1031 | "node_modules/ws": { 1032 | "version": "8.2.3", 1033 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", 1034 | "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", 1035 | "engines": { 1036 | "node": ">=10.0.0" 1037 | }, 1038 | "peerDependencies": { 1039 | "bufferutil": "^4.0.1", 1040 | "utf-8-validate": "^5.0.2" 1041 | }, 1042 | "peerDependenciesMeta": { 1043 | "bufferutil": { 1044 | "optional": true 1045 | }, 1046 | "utf-8-validate": { 1047 | "optional": true 1048 | } 1049 | } 1050 | } 1051 | }, 1052 | "dependencies": { 1053 | "@discordjs/builders": { 1054 | "version": "0.6.0", 1055 | "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.6.0.tgz", 1056 | "integrity": "sha512-mH3Gx61LKk2CD05laCI9K5wp+a3NyASHDUGx83DGJFkqJlRlSV5WMJNY6RS37A5SjqDtGMF4wVR9jzFaqShe6Q==", 1057 | "requires": { 1058 | "@sindresorhus/is": "^4.0.1", 1059 | "discord-api-types": "^0.22.0", 1060 | "ow": "^0.27.0", 1061 | "ts-mixer": "^6.0.0", 1062 | "tslib": "^2.3.1" 1063 | }, 1064 | "dependencies": { 1065 | "discord-api-types": { 1066 | "version": "0.22.0", 1067 | "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz", 1068 | "integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg==" 1069 | } 1070 | } 1071 | }, 1072 | "@discordjs/collection": { 1073 | "version": "0.2.1", 1074 | "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.2.1.tgz", 1075 | "integrity": "sha512-vhxqzzM8gkomw0TYRF3tgx7SwElzUlXT/Aa41O7mOcyN6wIJfj5JmDWaO5XGKsGSsNx7F3i5oIlrucCCWV1Nog==" 1076 | }, 1077 | "@discordjs/form-data": { 1078 | "version": "3.0.1", 1079 | "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", 1080 | "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", 1081 | "requires": { 1082 | "asynckit": "^0.4.0", 1083 | "combined-stream": "^1.0.8", 1084 | "mime-types": "^2.1.12" 1085 | } 1086 | }, 1087 | "@sapphire/async-queue": { 1088 | "version": "1.1.7", 1089 | "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.7.tgz", 1090 | "integrity": "sha512-EBRERa9NqK/EV6DIPBVtjjdHBsu/DSdMuYAydmoIyIPONzp0UAxf2G6JGJ52WkiONtPRx6KNuqB5Q8dm14fwyw==" 1091 | }, 1092 | "@sindresorhus/is": { 1093 | "version": "4.2.0", 1094 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", 1095 | "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" 1096 | }, 1097 | "@types/node": { 1098 | "version": "16.11.1", 1099 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.1.tgz", 1100 | "integrity": "sha512-PYGcJHL9mwl1Ek3PLiYgyEKtwTMmkMw4vbiyz/ps3pfdRYLVv+SN7qHVAImrjdAXxgluDEw6Ph4lyv+m9UpRmA==" 1101 | }, 1102 | "@types/ws": { 1103 | "version": "8.2.0", 1104 | "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.0.tgz", 1105 | "integrity": "sha512-cyeefcUCgJlEk+hk2h3N+MqKKsPViQgF5boi9TTHSK+PoR9KWBb/C5ccPcDyAqgsbAYHTwulch725DV84+pSpg==", 1106 | "requires": { 1107 | "@types/node": "*" 1108 | } 1109 | }, 1110 | "accepts": { 1111 | "version": "1.3.7", 1112 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 1113 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 1114 | "requires": { 1115 | "mime-types": "~2.1.24", 1116 | "negotiator": "0.6.2" 1117 | } 1118 | }, 1119 | "array-flatten": { 1120 | "version": "1.1.1", 1121 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 1122 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 1123 | }, 1124 | "asn1.js": { 1125 | "version": "5.4.1", 1126 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", 1127 | "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", 1128 | "requires": { 1129 | "bn.js": "^4.0.0", 1130 | "inherits": "^2.0.1", 1131 | "minimalistic-assert": "^1.0.0", 1132 | "safer-buffer": "^2.1.0" 1133 | } 1134 | }, 1135 | "asynckit": { 1136 | "version": "0.4.0", 1137 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 1138 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 1139 | }, 1140 | "bagpipe": { 1141 | "version": "0.3.5", 1142 | "resolved": "https://registry.npmjs.org/bagpipe/-/bagpipe-0.3.5.tgz", 1143 | "integrity": "sha1-40HRZPyyTN8E6n4Ft2XsEMiupqE=" 1144 | }, 1145 | "base64url": { 1146 | "version": "3.0.1", 1147 | "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", 1148 | "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==" 1149 | }, 1150 | "bn.js": { 1151 | "version": "4.12.0", 1152 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 1153 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" 1154 | }, 1155 | "body-parser": { 1156 | "version": "1.19.0", 1157 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 1158 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 1159 | "requires": { 1160 | "bytes": "3.1.0", 1161 | "content-type": "~1.0.4", 1162 | "debug": "2.6.9", 1163 | "depd": "~1.1.2", 1164 | "http-errors": "1.7.2", 1165 | "iconv-lite": "0.4.24", 1166 | "on-finished": "~2.3.0", 1167 | "qs": "6.7.0", 1168 | "raw-body": "2.4.0", 1169 | "type-is": "~1.6.17" 1170 | } 1171 | }, 1172 | "bytes": { 1173 | "version": "3.1.0", 1174 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 1175 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 1176 | }, 1177 | "callsites": { 1178 | "version": "3.1.0", 1179 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 1180 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" 1181 | }, 1182 | "colors": { 1183 | "version": "1.4.0", 1184 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", 1185 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" 1186 | }, 1187 | "combined-stream": { 1188 | "version": "1.0.8", 1189 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 1190 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 1191 | "requires": { 1192 | "delayed-stream": "~1.0.0" 1193 | } 1194 | }, 1195 | "content-disposition": { 1196 | "version": "0.5.3", 1197 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 1198 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 1199 | "requires": { 1200 | "safe-buffer": "5.1.2" 1201 | } 1202 | }, 1203 | "content-type": { 1204 | "version": "1.0.4", 1205 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 1206 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 1207 | }, 1208 | "cookie": { 1209 | "version": "0.4.0", 1210 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 1211 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 1212 | }, 1213 | "cookie-signature": { 1214 | "version": "1.0.6", 1215 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 1216 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 1217 | }, 1218 | "debug": { 1219 | "version": "2.6.9", 1220 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1221 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1222 | "requires": { 1223 | "ms": "2.0.0" 1224 | } 1225 | }, 1226 | "delayed-stream": { 1227 | "version": "1.0.0", 1228 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1229 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 1230 | }, 1231 | "depd": { 1232 | "version": "1.1.2", 1233 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 1234 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 1235 | }, 1236 | "destroy": { 1237 | "version": "1.0.4", 1238 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 1239 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 1240 | }, 1241 | "discord-api-types": { 1242 | "version": "0.23.1", 1243 | "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.23.1.tgz", 1244 | "integrity": "sha512-igWmn+45mzXRWNEPU25I/pr8MwxHb767wAr51oy3VRLRcTlp5ADBbrBR0lq3SA1Rfw3MtM4TQu1xo3kxscfVdQ==" 1245 | }, 1246 | "discord.js": { 1247 | "version": "13.2.0", 1248 | "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.2.0.tgz", 1249 | "integrity": "sha512-nyxUvL8wuQG38zx13wUMkpcA8koFszyiXdkSLwwM9opKW2LC2H5gD0cTZxImeJ6GtEnKPWT8xBiE8lLBmbNIhw==", 1250 | "requires": { 1251 | "@discordjs/builders": "^0.6.0", 1252 | "@discordjs/collection": "^0.2.1", 1253 | "@discordjs/form-data": "^3.0.1", 1254 | "@sapphire/async-queue": "^1.1.5", 1255 | "@types/ws": "^8.2.0", 1256 | "discord-api-types": "^0.23.1", 1257 | "node-fetch": "^2.6.1", 1258 | "ws": "^8.2.3" 1259 | } 1260 | }, 1261 | "dot-prop": { 1262 | "version": "6.0.1", 1263 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", 1264 | "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", 1265 | "requires": { 1266 | "is-obj": "^2.0.0" 1267 | } 1268 | }, 1269 | "dotenv": { 1270 | "version": "10.0.0", 1271 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", 1272 | "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" 1273 | }, 1274 | "ee-first": { 1275 | "version": "1.1.1", 1276 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 1277 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 1278 | }, 1279 | "ejs": { 1280 | "version": "2.6.1", 1281 | "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", 1282 | "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==" 1283 | }, 1284 | "encodeurl": { 1285 | "version": "1.0.2", 1286 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 1287 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 1288 | }, 1289 | "escape-html": { 1290 | "version": "1.0.3", 1291 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 1292 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 1293 | }, 1294 | "etag": { 1295 | "version": "1.8.1", 1296 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 1297 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 1298 | }, 1299 | "express": { 1300 | "version": "4.17.1", 1301 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 1302 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 1303 | "requires": { 1304 | "accepts": "~1.3.7", 1305 | "array-flatten": "1.1.1", 1306 | "body-parser": "1.19.0", 1307 | "content-disposition": "0.5.3", 1308 | "content-type": "~1.0.4", 1309 | "cookie": "0.4.0", 1310 | "cookie-signature": "1.0.6", 1311 | "debug": "2.6.9", 1312 | "depd": "~1.1.2", 1313 | "encodeurl": "~1.0.2", 1314 | "escape-html": "~1.0.3", 1315 | "etag": "~1.8.1", 1316 | "finalhandler": "~1.1.2", 1317 | "fresh": "0.5.2", 1318 | "merge-descriptors": "1.0.1", 1319 | "methods": "~1.1.2", 1320 | "on-finished": "~2.3.0", 1321 | "parseurl": "~1.3.3", 1322 | "path-to-regexp": "0.1.7", 1323 | "proxy-addr": "~2.0.5", 1324 | "qs": "6.7.0", 1325 | "range-parser": "~1.2.1", 1326 | "safe-buffer": "5.1.2", 1327 | "send": "0.17.1", 1328 | "serve-static": "1.14.1", 1329 | "setprototypeof": "1.1.1", 1330 | "statuses": "~1.5.0", 1331 | "type-is": "~1.6.18", 1332 | "utils-merge": "1.0.1", 1333 | "vary": "~1.1.2" 1334 | } 1335 | }, 1336 | "express-session": { 1337 | "version": "1.17.2", 1338 | "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.2.tgz", 1339 | "integrity": "sha512-mPcYcLA0lvh7D4Oqr5aNJFMtBMKPLl++OKKxkHzZ0U0oDq1rpKBnkR5f5vCHR26VeArlTOEF9td4x5IjICksRQ==", 1340 | "requires": { 1341 | "cookie": "0.4.1", 1342 | "cookie-signature": "1.0.6", 1343 | "debug": "2.6.9", 1344 | "depd": "~2.0.0", 1345 | "on-headers": "~1.0.2", 1346 | "parseurl": "~1.3.3", 1347 | "safe-buffer": "5.2.1", 1348 | "uid-safe": "~2.1.5" 1349 | }, 1350 | "dependencies": { 1351 | "cookie": { 1352 | "version": "0.4.1", 1353 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", 1354 | "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" 1355 | }, 1356 | "depd": { 1357 | "version": "2.0.0", 1358 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", 1359 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" 1360 | }, 1361 | "safe-buffer": { 1362 | "version": "5.2.1", 1363 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1364 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 1365 | } 1366 | } 1367 | }, 1368 | "finalhandler": { 1369 | "version": "1.1.2", 1370 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 1371 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 1372 | "requires": { 1373 | "debug": "2.6.9", 1374 | "encodeurl": "~1.0.2", 1375 | "escape-html": "~1.0.3", 1376 | "on-finished": "~2.3.0", 1377 | "parseurl": "~1.3.3", 1378 | "statuses": "~1.5.0", 1379 | "unpipe": "~1.0.0" 1380 | } 1381 | }, 1382 | "forwarded": { 1383 | "version": "0.2.0", 1384 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 1385 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 1386 | }, 1387 | "fresh": { 1388 | "version": "0.5.2", 1389 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 1390 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 1391 | }, 1392 | "fs-extra": { 1393 | "version": "8.1.0", 1394 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", 1395 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", 1396 | "requires": { 1397 | "graceful-fs": "^4.2.0", 1398 | "jsonfile": "^4.0.0", 1399 | "universalify": "^0.1.0" 1400 | } 1401 | }, 1402 | "graceful-fs": { 1403 | "version": "4.2.8", 1404 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", 1405 | "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" 1406 | }, 1407 | "http-errors": { 1408 | "version": "1.7.2", 1409 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 1410 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 1411 | "requires": { 1412 | "depd": "~1.1.2", 1413 | "inherits": "2.0.3", 1414 | "setprototypeof": "1.1.1", 1415 | "statuses": ">= 1.5.0 < 2", 1416 | "toidentifier": "1.0.0" 1417 | } 1418 | }, 1419 | "iconv-lite": { 1420 | "version": "0.4.24", 1421 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 1422 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 1423 | "requires": { 1424 | "safer-buffer": ">= 2.1.2 < 3" 1425 | } 1426 | }, 1427 | "imurmurhash": { 1428 | "version": "0.1.4", 1429 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1430 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" 1431 | }, 1432 | "inherits": { 1433 | "version": "2.0.3", 1434 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1435 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1436 | }, 1437 | "ipaddr.js": { 1438 | "version": "1.9.1", 1439 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 1440 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 1441 | }, 1442 | "is-obj": { 1443 | "version": "2.0.0", 1444 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", 1445 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" 1446 | }, 1447 | "is-typedarray": { 1448 | "version": "1.0.0", 1449 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1450 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 1451 | }, 1452 | "jsonfile": { 1453 | "version": "4.0.0", 1454 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 1455 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 1456 | "requires": { 1457 | "graceful-fs": "^4.1.6" 1458 | } 1459 | }, 1460 | "kruptein": { 1461 | "version": "2.2.3", 1462 | "resolved": "https://registry.npmjs.org/kruptein/-/kruptein-2.2.3.tgz", 1463 | "integrity": "sha512-BTwprBPTzkFT9oTugxKd3WnWrX630MqUDsnmBuoa98eQs12oD4n4TeI0GbpdGcYn/73Xueg2rfnw+oK4dovnJg==", 1464 | "requires": { 1465 | "asn1.js": "^5.4.1" 1466 | } 1467 | }, 1468 | "lodash.isequal": { 1469 | "version": "4.5.0", 1470 | "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", 1471 | "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" 1472 | }, 1473 | "media-typer": { 1474 | "version": "0.3.0", 1475 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 1476 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 1477 | }, 1478 | "merge-descriptors": { 1479 | "version": "1.0.1", 1480 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 1481 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 1482 | }, 1483 | "methods": { 1484 | "version": "1.1.2", 1485 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 1486 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 1487 | }, 1488 | "mime": { 1489 | "version": "1.6.0", 1490 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1491 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 1492 | }, 1493 | "mime-db": { 1494 | "version": "1.49.0", 1495 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", 1496 | "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" 1497 | }, 1498 | "mime-types": { 1499 | "version": "2.1.32", 1500 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", 1501 | "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", 1502 | "requires": { 1503 | "mime-db": "1.49.0" 1504 | } 1505 | }, 1506 | "minimalistic-assert": { 1507 | "version": "1.0.1", 1508 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", 1509 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" 1510 | }, 1511 | "ms": { 1512 | "version": "2.0.0", 1513 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1514 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1515 | }, 1516 | "negotiator": { 1517 | "version": "0.6.2", 1518 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 1519 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 1520 | }, 1521 | "node-fetch": { 1522 | "version": "2.6.2", 1523 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.2.tgz", 1524 | "integrity": "sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA==" 1525 | }, 1526 | "oauth": { 1527 | "version": "0.9.15", 1528 | "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", 1529 | "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" 1530 | }, 1531 | "object-assign": { 1532 | "version": "4.1.1", 1533 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1534 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 1535 | }, 1536 | "on-finished": { 1537 | "version": "2.3.0", 1538 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 1539 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 1540 | "requires": { 1541 | "ee-first": "1.1.1" 1542 | } 1543 | }, 1544 | "on-headers": { 1545 | "version": "1.0.2", 1546 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", 1547 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" 1548 | }, 1549 | "ow": { 1550 | "version": "0.27.0", 1551 | "resolved": "https://registry.npmjs.org/ow/-/ow-0.27.0.tgz", 1552 | "integrity": "sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ==", 1553 | "requires": { 1554 | "@sindresorhus/is": "^4.0.1", 1555 | "callsites": "^3.1.0", 1556 | "dot-prop": "^6.0.1", 1557 | "lodash.isequal": "^4.5.0", 1558 | "type-fest": "^1.2.1", 1559 | "vali-date": "^1.0.0" 1560 | } 1561 | }, 1562 | "parseurl": { 1563 | "version": "1.3.3", 1564 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 1565 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 1566 | }, 1567 | "passport": { 1568 | "version": "0.4.1", 1569 | "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.1.tgz", 1570 | "integrity": "sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==", 1571 | "requires": { 1572 | "passport-strategy": "1.x.x", 1573 | "pause": "0.0.1" 1574 | } 1575 | }, 1576 | "passport-discord": { 1577 | "version": "0.1.4", 1578 | "resolved": "https://registry.npmjs.org/passport-discord/-/passport-discord-0.1.4.tgz", 1579 | "integrity": "sha512-VJWPYqSOmh7SaCLw/C+k1ZqCzJnn2frrmQRx1YrcPJ3MQ+Oa31XclbbmqFICSvl8xv3Fqd6YWQ4H4p1MpIN9rA==", 1580 | "requires": { 1581 | "passport-oauth2": "^1.5.0" 1582 | } 1583 | }, 1584 | "passport-oauth2": { 1585 | "version": "1.6.0", 1586 | "resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.6.0.tgz", 1587 | "integrity": "sha512-emXPLqLcVEcLFR/QvQXZcwLmfK8e9CqvMgmOFJxcNT3okSFMtUbRRKpY20x5euD+01uHsjjCa07DYboEeLXYiw==", 1588 | "requires": { 1589 | "base64url": "3.x.x", 1590 | "oauth": "0.9.x", 1591 | "passport-strategy": "1.x.x", 1592 | "uid2": "0.0.x", 1593 | "utils-merge": "1.x.x" 1594 | } 1595 | }, 1596 | "passport-strategy": { 1597 | "version": "1.0.0", 1598 | "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", 1599 | "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=" 1600 | }, 1601 | "path-to-regexp": { 1602 | "version": "0.1.7", 1603 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1604 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 1605 | }, 1606 | "pause": { 1607 | "version": "0.0.1", 1608 | "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", 1609 | "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" 1610 | }, 1611 | "proxy-addr": { 1612 | "version": "2.0.7", 1613 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 1614 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 1615 | "requires": { 1616 | "forwarded": "0.2.0", 1617 | "ipaddr.js": "1.9.1" 1618 | } 1619 | }, 1620 | "qs": { 1621 | "version": "6.7.0", 1622 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 1623 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 1624 | }, 1625 | "random-bytes": { 1626 | "version": "1.0.0", 1627 | "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", 1628 | "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" 1629 | }, 1630 | "range-parser": { 1631 | "version": "1.2.1", 1632 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 1633 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 1634 | }, 1635 | "raw-body": { 1636 | "version": "2.4.0", 1637 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 1638 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 1639 | "requires": { 1640 | "bytes": "3.1.0", 1641 | "http-errors": "1.7.2", 1642 | "iconv-lite": "0.4.24", 1643 | "unpipe": "1.0.0" 1644 | } 1645 | }, 1646 | "retry": { 1647 | "version": "0.12.0", 1648 | "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", 1649 | "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" 1650 | }, 1651 | "safe-buffer": { 1652 | "version": "5.1.2", 1653 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1654 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1655 | }, 1656 | "safer-buffer": { 1657 | "version": "2.1.2", 1658 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1659 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1660 | }, 1661 | "send": { 1662 | "version": "0.17.1", 1663 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 1664 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 1665 | "requires": { 1666 | "debug": "2.6.9", 1667 | "depd": "~1.1.2", 1668 | "destroy": "~1.0.4", 1669 | "encodeurl": "~1.0.2", 1670 | "escape-html": "~1.0.3", 1671 | "etag": "~1.8.1", 1672 | "fresh": "0.5.2", 1673 | "http-errors": "~1.7.2", 1674 | "mime": "1.6.0", 1675 | "ms": "2.1.1", 1676 | "on-finished": "~2.3.0", 1677 | "range-parser": "~1.2.1", 1678 | "statuses": "~1.5.0" 1679 | }, 1680 | "dependencies": { 1681 | "ms": { 1682 | "version": "2.1.1", 1683 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 1684 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 1685 | } 1686 | } 1687 | }, 1688 | "serve-static": { 1689 | "version": "1.14.1", 1690 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 1691 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 1692 | "requires": { 1693 | "encodeurl": "~1.0.2", 1694 | "escape-html": "~1.0.3", 1695 | "parseurl": "~1.3.3", 1696 | "send": "0.17.1" 1697 | } 1698 | }, 1699 | "session-file-store": { 1700 | "version": "1.5.0", 1701 | "resolved": "https://registry.npmjs.org/session-file-store/-/session-file-store-1.5.0.tgz", 1702 | "integrity": "sha512-60IZaJNzyu2tIeHutkYE8RiXVx3KRvacOxfLr2Mj92SIsRIroDsH0IlUUR6fJAjoTW4RQISbaOApa2IZpIwFdQ==", 1703 | "requires": { 1704 | "bagpipe": "^0.3.5", 1705 | "fs-extra": "^8.0.1", 1706 | "kruptein": "^2.0.4", 1707 | "object-assign": "^4.1.1", 1708 | "retry": "^0.12.0", 1709 | "write-file-atomic": "3.0.3" 1710 | } 1711 | }, 1712 | "setprototypeof": { 1713 | "version": "1.1.1", 1714 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 1715 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 1716 | }, 1717 | "signal-exit": { 1718 | "version": "3.0.3", 1719 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 1720 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 1721 | }, 1722 | "statuses": { 1723 | "version": "1.5.0", 1724 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 1725 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 1726 | }, 1727 | "toidentifier": { 1728 | "version": "1.0.0", 1729 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 1730 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 1731 | }, 1732 | "ts-mixer": { 1733 | "version": "6.0.0", 1734 | "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz", 1735 | "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ==" 1736 | }, 1737 | "tslib": { 1738 | "version": "2.3.1", 1739 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", 1740 | "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" 1741 | }, 1742 | "type-fest": { 1743 | "version": "1.4.0", 1744 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", 1745 | "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==" 1746 | }, 1747 | "type-is": { 1748 | "version": "1.6.18", 1749 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 1750 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 1751 | "requires": { 1752 | "media-typer": "0.3.0", 1753 | "mime-types": "~2.1.24" 1754 | } 1755 | }, 1756 | "typedarray-to-buffer": { 1757 | "version": "3.1.5", 1758 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", 1759 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", 1760 | "requires": { 1761 | "is-typedarray": "^1.0.0" 1762 | } 1763 | }, 1764 | "uid-safe": { 1765 | "version": "2.1.5", 1766 | "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", 1767 | "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", 1768 | "requires": { 1769 | "random-bytes": "~1.0.0" 1770 | } 1771 | }, 1772 | "uid2": { 1773 | "version": "0.0.4", 1774 | "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz", 1775 | "integrity": "sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==" 1776 | }, 1777 | "universalify": { 1778 | "version": "0.1.2", 1779 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", 1780 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" 1781 | }, 1782 | "unpipe": { 1783 | "version": "1.0.0", 1784 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1785 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 1786 | }, 1787 | "utils-merge": { 1788 | "version": "1.0.1", 1789 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 1790 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 1791 | }, 1792 | "vali-date": { 1793 | "version": "1.0.0", 1794 | "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", 1795 | "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=" 1796 | }, 1797 | "vary": { 1798 | "version": "1.1.2", 1799 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1800 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 1801 | }, 1802 | "write-file-atomic": { 1803 | "version": "3.0.3", 1804 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", 1805 | "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", 1806 | "requires": { 1807 | "imurmurhash": "^0.1.4", 1808 | "is-typedarray": "^1.0.0", 1809 | "signal-exit": "^3.0.2", 1810 | "typedarray-to-buffer": "^3.1.5" 1811 | } 1812 | }, 1813 | "ws": { 1814 | "version": "8.2.3", 1815 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", 1816 | "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", 1817 | "requires": {} 1818 | } 1819 | } 1820 | } 1821 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "npm i; node ." 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "colors": "^1.4.0", 14 | "discord.js": "^13.2.0", 15 | "dotenv": "^10.0.0", 16 | "ejs": "^2.6.1", 17 | "express": "^4.17.1", 18 | "express-session": "^1.17.2", 19 | "passport": "^0.4.1", 20 | "passport-discord": "^0.1.4", 21 | "session-file-store": "^1.5.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /public/css/main.css: -------------------------------------------------------------------------------- 1 | *{ 2 | margin: 0; 3 | padding: 0; 4 | box-sizing: border-box; 5 | } 6 | body{ 7 | background-color: #0a0a19; 8 | color: #f7f7f7; 9 | font-family: 'Cairo', sans-serif; 10 | } 11 | .nav-c{ 12 | position: relative; 13 | top: 1.1px; 14 | left: 12px; 15 | } 16 | .navbar-brand{ 17 | text-transform: uppercase; 18 | font-size: 1.5rem; 19 | } 20 | .dropdown-toggle{ 21 | background-color: #161625; 22 | } 23 | .dropdown-toggle:focus, .dropdown-toggle:active{ 24 | outline: none; 25 | border: none; 26 | box-shadow: none; 27 | } 28 | .dropdown-item{ 29 | background-color: #f04747; 30 | border-radius: 5px; 31 | width: 90%; 32 | margin-left: 5%; 33 | } 34 | .dr-tg{ 35 | background-color: transparent; 36 | border: none; 37 | } 38 | .dr-tg:focus, .dr-tg:hover, .dr-tg:active{ 39 | background-color: transparent; 40 | box-shadow: none; 41 | } 42 | .btn-custom1{ 43 | background-color: #5e5ac9; 44 | color: #f7f7f7; 45 | padding: 10px 18px; 46 | border: none; 47 | border-radius: 4px; 48 | display: inline-block; 49 | font-size: 16px; 50 | } 51 | .dropdown-menu{ 52 | background-color: #161625; 53 | } 54 | .btn-custom:hover{ 55 | color: #bbbbbb; 56 | } 57 | .dropdown-item:hover{ 58 | background-color: #1c1c2e; 59 | } 60 | .br-cs{ 61 | width: 10px; 62 | height: 30px; 63 | } 64 | .cont{ 65 | margin-top: 12%; 66 | } 67 | .col-cus{ 68 | color: #bbbbbb; 69 | } 70 | .par1{ 71 | font-weight: 700; 72 | font-size: 2em; 73 | } 74 | .btn-invite{ 75 | background-color: #5e5ac9; 76 | color: #f7f7f7; 77 | font-weight: 500; 78 | padding: 10px 20px; 79 | } 80 | .btn-outline-prem{ 81 | border: 1px solid #bbbbbb; 82 | padding: 10px 20px; 83 | color: #f7f7f7; 84 | margin-left: .5em; 85 | } 86 | 87 | .btn-invite:hover, .btn-outline-prem:hover{ 88 | color: #f7f7f7; 89 | } 90 | .btn-outline-prem:hover{ 91 | background-color: #dfdfdf; 92 | color: #0a0a19; 93 | text-decoration: underline; 94 | } 95 | .logo-main{ 96 | width: 21rem; 97 | height: 21rem; 98 | position: relative; 99 | bottom: 5rem; 100 | } 101 | .about-title{ 102 | color: #ebebeb; 103 | letter-spacing: 1px; 104 | text-transform: uppercase; 105 | } 106 | 107 | .par-info{ 108 | background-color: #161625; 109 | position: relative; 110 | top: 5px; 111 | right: 4px; 112 | padding: 9px 14px; 113 | border-radius: 8px; 114 | border: 2px solid #5e5ac9; 115 | } 116 | 117 | .accordion-collapse{ 118 | background-color: #161625; 119 | outline: none; 120 | } 121 | footer{ 122 | background-color: #161625; 123 | height: 9vh; 124 | padding-top: 2rem; 125 | } 126 | footer p{ 127 | font-weight: 700; 128 | } 129 | .wave-footer{ 130 | position: relative; 131 | top: 3rem; 132 | } 133 | 134 | /* width */ 135 | ::-webkit-scrollbar { 136 | width: 10px; 137 | } 138 | 139 | /* Track */ 140 | ::-webkit-scrollbar-track { 141 | background: #1c1c2e; 142 | } 143 | 144 | /* Handle */ 145 | ::-webkit-scrollbar-thumb { 146 | background: #5e5ac9; 147 | border-radius: 30px; 148 | } 149 | 150 | /* Handle on hover */ 151 | ::-webkit-scrollbar-thumb:hover { 152 | background: #4b48a8; 153 | } 154 | @media screen and (max-width: 700px){ 155 | .logo-main{ 156 | width: 16rem; 157 | height: 16rem; 158 | position: relative; 159 | bottom: 1rem; 160 | margin-top: 6%; 161 | margin-right: 22%; 162 | } 163 | } -------------------------------------------------------------------------------- /public/css/premium.css: -------------------------------------------------------------------------------- 1 | 2 | .col-prem{ 3 | background-color: #161625; 4 | margin: 1rem; 5 | border-radius: 5px; 6 | padding: 18px 22px; 7 | border: 2px solid #5e5ac9; 8 | transition: 0.2s all; 9 | } 10 | .col-prem:hover{ 11 | background-color: #5e5ac9; 12 | transition: 0.2s all; 13 | cursor: pointer; 14 | transform: translateY(-10px); 15 | } 16 | .num-count{ 17 | font-size: 22px; 18 | color: #bbbbbb; 19 | } 20 | .fa-crown, .fa-money-bill-wave, .fa-hourglass-end{ 21 | font-size: 3rem; 22 | position: relative; 23 | top: 3px; 24 | } 25 | .fa-crown{ 26 | color: rgb(224, 203, 84); 27 | } 28 | .fa-money-bill-wave{ 29 | color: #43b581; 30 | } 31 | .fa-hourglass-end{ 32 | color: #f04747; 33 | } 34 | .col-ic{ 35 | margin-left: 10%; 36 | } 37 | .card{ 38 | background-color: transparent; 39 | } 40 | .card-head{ 41 | padding: 16px 18px; 42 | background-color: #161625; 43 | border-top-left-radius: 10px; 44 | border-top-right-radius: 10px; 45 | } 46 | .card-body{ 47 | background-color: #242438; 48 | border-bottom-left-radius: 10px; 49 | border-bottom-right-radius: 10px; 50 | } 51 | .btn-add{ 52 | border: 2px solid #43b581; 53 | color: #fff; 54 | padding: 8px 22px; 55 | border-radius: 30px; 56 | } 57 | .btn-add:hover{ 58 | background-color: #43b581; 59 | color: #fff; 60 | } 61 | .main-bot-sec{ 62 | background-color: #161625; 63 | padding: 12px; 64 | border-radius: 5px; 65 | margin-bottom: 1%; 66 | } 67 | .typorgraphy-prem{ 68 | margin-left: 2%; 69 | } 70 | .bot-img{ 71 | position: relative; 72 | bottom: 11px; 73 | } 74 | .bot-name{ 75 | font-size: 22px; 76 | letter-spacing: 1px; 77 | } 78 | .bot-tag{ 79 | color: #c0c0c0; 80 | font-size: 18px; 81 | } 82 | .exp-time{ 83 | font-size: 16px; 84 | color: #bbbbbb; 85 | position: relative; 86 | top: 7px; 87 | } 88 | .btn-invite-prem{ 89 | background-color: #5e5ac9; 90 | color: #f7f7f7; 91 | font-weight: 500; 92 | padding: 9px 18px; 93 | position: relative; 94 | top: 10px; 95 | margin-right: 3%; 96 | border: 2px solid #5e5ac9; 97 | } 98 | .btn-invite-prem:hover{ 99 | color: #fff; 100 | background-color: transparent; 101 | border: 2px solid #5e5ac9; 102 | } 103 | #overlay { 104 | position: fixed; 105 | display: none; 106 | width: 100%; 107 | height: 100%; 108 | top: 0; 109 | left: 0; 110 | right: 0; 111 | bottom: 0; 112 | background-color: rgba(0,0,0,0.5); 113 | z-index: 2; 114 | cursor: pointer; 115 | } 116 | .credits-charge{ 117 | width: 40%; 118 | margin: 0px auto; 119 | margin-top: 10%; 120 | } 121 | .leave-overlay{ 122 | color: #f04747; 123 | font-size: 24px; 124 | } 125 | .btn-close{ 126 | color: #f04747; 127 | font-size: 22px; 128 | } 129 | 130 | .chose-am-t{ 131 | position: relative; 132 | top: 12px; 133 | } 134 | .btn-mount{ 135 | border: 2px solid #5e5ac9; 136 | font-size: 18px; 137 | margin-left: 2%; 138 | margin-bottom: 2%; 139 | } 140 | .btn-mount:hover{ 141 | background-color: #5e5ac9; 142 | } 143 | @media screen and (max-width: 375px){ 144 | .bot-name{ 145 | font-size: 14px; 146 | } 147 | .bot-tag, .exp-time{ 148 | font-size: 14px; 149 | } 150 | .btn-invite-prem{ 151 | padding: 9px 5px; 152 | top: 3px; 153 | left: 7px; 154 | font-size: 15px; 155 | } 156 | .bot-img{ 157 | width: 50px; 158 | height: 50px; 159 | } 160 | .main-bot-sec{ 161 | width: 110%; 162 | position: relative; 163 | right: 16px; 164 | } 165 | } 166 | @media screen and (max-width: 411px){ 167 | .bot-name{ 168 | font-size: 14px; 169 | } 170 | .bot-tag, .exp-time{ 171 | font-size: 14px; 172 | } 173 | .btn-invite-prem{ 174 | padding: 9px 5px; 175 | top: 3px; 176 | left: 7px; 177 | font-size: 15px; 178 | } 179 | .bot-img{ 180 | width: 50px; 181 | height: 50px; 182 | } 183 | .main-bot-sec{ 184 | width: 109%; 185 | position: relative; 186 | right: 15px; 187 | } 188 | .credits-charge{ 189 | width: 90%; 190 | } 191 | } -------------------------------------------------------------------------------- /router/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const router = express.Router(); 3 | 4 | router.get('/', async (req, res) => { 5 | const client = req.bot; 6 | const fetchApplication = await client.application.fetch(); 7 | res.render('pages/index', { 8 | description: fetchApplication.description || `I can\'t find about me in ${client.user.username} bot` 9 | }) 10 | }) 11 | 12 | module.exports = router; -------------------------------------------------------------------------------- /router/invite.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const router = express.Router(); 3 | 4 | router.get('/', (req, res) => { 5 | let client = req.bot 6 | res.redirect(`https://discord.com/api/oauth2/authorize?client_id=${client.user.id}&permissions=8&scope=bot%20applications.commands`) 7 | }) 8 | 9 | module.exports = router; -------------------------------------------------------------------------------- /router/login.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const router = express.Router(); 3 | const passport = require('passport') 4 | 5 | router.get('/', passport.authenticate('discord', { 6 | failureRedirect: '/' 7 | }), (req, res) => { 8 | res.redirect('/') 9 | }) 10 | 11 | module.exports = router; -------------------------------------------------------------------------------- /router/logout.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const router = express.Router(); 3 | 4 | router.get('/', async (req, res) => { 5 | await req.logout(); 6 | res.redirect('/') 7 | }) 8 | 9 | module.exports = router; -------------------------------------------------------------------------------- /router/premium.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const router = express.Router(); 3 | const checkAuth = require('../middleware/checkAuth') 4 | 5 | router.get('/', checkAuth, async(req, res) => { 6 | res.render('pages/premium') 7 | }) 8 | 9 | module.exports = router; -------------------------------------------------------------------------------- /router/support.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const router = express.Router(); 3 | 4 | router.get('/', (req, res) => { 5 | res.redirect(`https://discord.gg/${process.env.SUPPORT}`) 6 | }) 7 | 8 | module.exports = router; -------------------------------------------------------------------------------- /views/layout/footer.ejs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /views/layout/head.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <% if (route.includes('premium')) { %> 9 | 10 | <% } %> 11 | <%= client.user.username %> 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /views/layout/navbar.ejs: -------------------------------------------------------------------------------- 1 |
2 | 43 |
-------------------------------------------------------------------------------- /views/layout/script.ejs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /views/pages/index.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | <% include ../layout/head %> 4 | 5 | <% include ../layout/navbar %> 6 |
7 |
8 |
9 |

Listen to your favourite music with your friends 😉

10 |

11 | <%= client.user.username %> offer the best qullity to listen to your music with 24/7 uptime 12 |
13 | Invite <%= client.user.username %> to your server now! 14 |

15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 |
23 | Logo-bot 24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |

About Us

32 |

33 | <%= description %> 34 |

35 |
36 |
37 | Logo-bot 38 |
39 |
40 |
41 |
42 |
43 |

All Commands

44 |
45 |
46 |

47 | 50 |

51 |
52 |
53 | Explan: 54 |

55 | Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and 56 | scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic 57 |

58 | Usage: 59 |

60 | #play helloWorld [Args] 61 |

62 |
63 |
64 |
65 |
66 |

67 | 70 |

71 |
72 |
73 | Explan: 74 |

75 | Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and 76 | scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic 77 |

78 | Usage: 79 |

80 | #play helloWorld [Args] 81 |

82 |
83 |
84 |
85 |
86 |

87 | 90 |

91 |
92 |
93 | Explan: 94 |

95 | Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and 96 | scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic 97 |

98 | Usage: 99 |

100 | #play helloWorld [Args] 101 |

102 |
103 |
104 |
105 |
106 |

107 | 110 |

111 |
112 |
113 | Explan: 114 |

115 | Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and 116 | scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic 117 |

118 | Usage: 119 |

120 | #play helloWorld [Args] 121 |

122 |
123 |
124 |
125 |
126 |

127 | 130 |

131 |
132 |
133 | Explan: 134 |

135 | Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and 136 | scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic 137 |

138 | Usage: 139 |

140 | #play helloWorld [Args] 141 |

142 |
143 |
144 |
145 |
146 |
147 | <% include ../layout/footer %> 148 | 149 | <% include ../layout/script %> 150 | 151 | -------------------------------------------------------------------------------- /views/pages/premium.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | <% include ../layout/head %> 4 | 5 | <% include ../layout/navbar %> 6 |
7 |
8 |
9 |
10 |
11 | 12 |
13 |
14 |
Bots Owned
15 | 14 16 |
17 |
18 |
19 |
20 |
21 |
22 | 23 |
24 |
25 |
Bots Expired
26 | 3 27 |
28 |
29 |
30 |
31 |
32 |
33 | 34 |
35 |
36 |
Your Credits
37 | 64$ USD 38 |
39 |
40 |
41 |
42 |
43 |
44 |

45 | Bots Owned 46 | 47 |

48 |
49 |
50 |
51 | 52 |
53 |

54 | ServerBot#4433 55 |

Ends on 27 days

56 |

57 |
58 | 59 |
60 |
61 | 62 |
63 |

64 | ServerBot#4433 65 |

Ends on 27 days

66 |

67 |
68 | 69 |
70 |
71 | 72 |
73 |

74 | ServerBot#4433 75 |

Ends on 27 days

76 |

77 |
78 | 79 |
80 |
81 |
82 | 83 |
84 |
85 |

86 | Bots Expired 87 | 88 |

89 |
90 |
91 |
92 | 93 |
94 |

95 | ServerBot#4433 96 |

Expired since 12 days

97 |

98 |
99 | 100 |
101 |
102 | 103 |
104 |

105 | ServerBot#4433 106 |

Expired since 7 days

107 |

108 |
109 | 110 |
111 |
112 | 113 |
114 |

115 | ServerBot#4433 116 |

Expired since 7days

117 |

118 |
119 | 120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |

128 | Choose Amount (Will be added to your balance) 129 | 132 |

133 |
134 |
135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 |
144 |
145 |
146 | <% include ../layout/footer %> 147 | 148 | <% include ../layout/script %> 149 | 150 | --------------------------------------------------------------------------------