
54 | ServerBot#4433 55 |
Ends on 27 days
56 | 57 |├── .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 |
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 |
33 | <%= description %> 34 |
35 |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 |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 |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 |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 |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 |Ends on 27 days
56 | 57 |Ends on 27 days
66 | 67 |Ends on 27 days
76 | 77 |Expired since 12 days
97 | 98 |Expired since 7 days
107 | 108 |Expired since 7days
117 | 118 |