├── .gitignore
├── README.md
├── config.json
├── index.js
├── models
└── redirect.js
├── mongoose.js
├── package-lock.json
├── package.json
└── views
├── exist.ejs
├── index.ejs
├── redirect.ejs
└── save.ejs
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | env.json
3 | *.exe
4 | dist/
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Visit [here](https://url.nandhu.me) to see this app in action.
2 | > I currently used config.json for storage as i will implement mongoose later.
3 | > Remove the lines which require mongoose and any mongo schemas to prevent errors if not connected.
4 |
--------------------------------------------------------------------------------
/config.json:
--------------------------------------------------------------------------------
1 | {"rickroll":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","dc":"https://discord.com"}
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | const express = require('express');
2 | const mongoose = require('mongoose');
3 | const bodyParser = require('body-parser');
4 | process.env = global.env = require('./env.json')
5 | const ejs = require('ejs')
6 | const config = global.config = require('./config.json')
7 | const Redirect = require('./models/redirect');
8 | require('./mongoose.js');
9 | const fs = require('fs');
10 | const app = express();
11 | app.set('view engine', 'ejs');
12 | app.use(bodyParser.urlencoded({ extended: false }));
13 |
14 | app.get('/', (req, res) => {
15 | res.render('index');
16 | });
17 |
18 |
19 | app.get("/save", (req, res) => {
20 | res.send('.');
21 | });
22 |
23 | app.post('/save', (req, res) => {
24 | if (Object.keys(config).includes(req.body.extension)) {
25 | res.render('exist', { extension: req.body.extension });
26 | } else {
27 | const newObj = JSON.parse(JSON.stringify(config));
28 | newObj[req.body?.extension] = req.body?.url;
29 | fs.writeFileSync('./config.json', JSON.stringify(newObj));
30 | res.render('save', { extension: req.body?.extension, url: req.body?.url });
31 | }
32 | })
33 |
34 | app.get('/:extension', (req, res) => {
35 | if (config[req.params.extension]) {
36 | const extension = req.params.extension;
37 | res.render('redirect', { extension: req.params.extension, url: config[extension] });
38 | } else {
39 | res.send("No such extension exists in the database.")
40 | }
41 | });
42 |
43 | app.listen(3000, () => {
44 | console.log('Server started on port 3000.');
45 | });
46 |
--------------------------------------------------------------------------------
/models/redirect.js:
--------------------------------------------------------------------------------
1 | const { Schema, model } = require('mongoose');
2 |
3 | const Sc = new Schema({
4 | Extension: String,
5 | Url: String
6 | })
7 |
8 | module.exports = model("redirectmodel", Sc)
--------------------------------------------------------------------------------
/mongoose.js:
--------------------------------------------------------------------------------
1 | const mongoose = require('mongoose');
2 |
3 | mongoose.connect(`${process.env.mongostring}`, {
4 | useNewUrlParser: true,
5 | useUnifiedTopology: true,
6 | }).then(() => {
7 | console.log('Connected to MongoDB 💚');
8 | }).catch(err => {
9 | console.log('Error ➡', err.message);
10 | });
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tinyurls",
3 | "version": "1.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "tinyurls",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "body-parser": "^1.20.0",
13 | "ejs": "^3.1.7",
14 | "express": "^4.17.3",
15 | "mongoose": "^6.3.0"
16 | }
17 | },
18 | "node_modules/@types/node": {
19 | "version": "17.0.25",
20 | "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz",
21 | "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w=="
22 | },
23 | "node_modules/@types/webidl-conversions": {
24 | "version": "6.1.1",
25 | "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz",
26 | "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
27 | },
28 | "node_modules/@types/whatwg-url": {
29 | "version": "8.2.1",
30 | "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz",
31 | "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==",
32 | "dependencies": {
33 | "@types/node": "*",
34 | "@types/webidl-conversions": "*"
35 | }
36 | },
37 | "node_modules/accepts": {
38 | "version": "1.3.8",
39 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
40 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
41 | "dependencies": {
42 | "mime-types": "~2.1.34",
43 | "negotiator": "0.6.3"
44 | },
45 | "engines": {
46 | "node": ">= 0.6"
47 | }
48 | },
49 | "node_modules/ansi-styles": {
50 | "version": "4.3.0",
51 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
52 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
53 | "dependencies": {
54 | "color-convert": "^2.0.1"
55 | },
56 | "engines": {
57 | "node": ">=8"
58 | },
59 | "funding": {
60 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
61 | }
62 | },
63 | "node_modules/array-flatten": {
64 | "version": "1.1.1",
65 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
66 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
67 | },
68 | "node_modules/async": {
69 | "version": "3.2.3",
70 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
71 | "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
72 | },
73 | "node_modules/balanced-match": {
74 | "version": "1.0.2",
75 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
76 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
77 | },
78 | "node_modules/base64-js": {
79 | "version": "1.5.1",
80 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
81 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
82 | "funding": [
83 | {
84 | "type": "github",
85 | "url": "https://github.com/sponsors/feross"
86 | },
87 | {
88 | "type": "patreon",
89 | "url": "https://www.patreon.com/feross"
90 | },
91 | {
92 | "type": "consulting",
93 | "url": "https://feross.org/support"
94 | }
95 | ]
96 | },
97 | "node_modules/body-parser": {
98 | "version": "1.20.0",
99 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
100 | "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
101 | "dependencies": {
102 | "bytes": "3.1.2",
103 | "content-type": "~1.0.4",
104 | "debug": "2.6.9",
105 | "depd": "2.0.0",
106 | "destroy": "1.2.0",
107 | "http-errors": "2.0.0",
108 | "iconv-lite": "0.4.24",
109 | "on-finished": "2.4.1",
110 | "qs": "6.10.3",
111 | "raw-body": "2.5.1",
112 | "type-is": "~1.6.18",
113 | "unpipe": "1.0.0"
114 | },
115 | "engines": {
116 | "node": ">= 0.8",
117 | "npm": "1.2.8000 || >= 1.4.16"
118 | }
119 | },
120 | "node_modules/brace-expansion": {
121 | "version": "1.1.11",
122 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
123 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
124 | "dependencies": {
125 | "balanced-match": "^1.0.0",
126 | "concat-map": "0.0.1"
127 | }
128 | },
129 | "node_modules/bson": {
130 | "version": "4.6.3",
131 | "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.3.tgz",
132 | "integrity": "sha512-rAqP5hcUVJhXP2MCSNVsf0oM2OGU1So6A9pVRDYayvJ5+hygXHQApf87wd5NlhPM1J9RJnbqxIG/f8QTzRoQ4A==",
133 | "dependencies": {
134 | "buffer": "^5.6.0"
135 | },
136 | "engines": {
137 | "node": ">=6.9.0"
138 | }
139 | },
140 | "node_modules/buffer": {
141 | "version": "5.7.1",
142 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
143 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
144 | "funding": [
145 | {
146 | "type": "github",
147 | "url": "https://github.com/sponsors/feross"
148 | },
149 | {
150 | "type": "patreon",
151 | "url": "https://www.patreon.com/feross"
152 | },
153 | {
154 | "type": "consulting",
155 | "url": "https://feross.org/support"
156 | }
157 | ],
158 | "dependencies": {
159 | "base64-js": "^1.3.1",
160 | "ieee754": "^1.1.13"
161 | }
162 | },
163 | "node_modules/bytes": {
164 | "version": "3.1.2",
165 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
166 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
167 | "engines": {
168 | "node": ">= 0.8"
169 | }
170 | },
171 | "node_modules/call-bind": {
172 | "version": "1.0.2",
173 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
174 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
175 | "dependencies": {
176 | "function-bind": "^1.1.1",
177 | "get-intrinsic": "^1.0.2"
178 | },
179 | "funding": {
180 | "url": "https://github.com/sponsors/ljharb"
181 | }
182 | },
183 | "node_modules/chalk": {
184 | "version": "4.1.2",
185 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
186 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
187 | "dependencies": {
188 | "ansi-styles": "^4.1.0",
189 | "supports-color": "^7.1.0"
190 | },
191 | "engines": {
192 | "node": ">=10"
193 | },
194 | "funding": {
195 | "url": "https://github.com/chalk/chalk?sponsor=1"
196 | }
197 | },
198 | "node_modules/color-convert": {
199 | "version": "2.0.1",
200 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
201 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
202 | "dependencies": {
203 | "color-name": "~1.1.4"
204 | },
205 | "engines": {
206 | "node": ">=7.0.0"
207 | }
208 | },
209 | "node_modules/color-name": {
210 | "version": "1.1.4",
211 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
212 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
213 | },
214 | "node_modules/concat-map": {
215 | "version": "0.0.1",
216 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
217 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
218 | },
219 | "node_modules/content-disposition": {
220 | "version": "0.5.4",
221 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
222 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
223 | "dependencies": {
224 | "safe-buffer": "5.2.1"
225 | },
226 | "engines": {
227 | "node": ">= 0.6"
228 | }
229 | },
230 | "node_modules/content-type": {
231 | "version": "1.0.4",
232 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
233 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
234 | "engines": {
235 | "node": ">= 0.6"
236 | }
237 | },
238 | "node_modules/cookie": {
239 | "version": "0.4.2",
240 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
241 | "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
242 | "engines": {
243 | "node": ">= 0.6"
244 | }
245 | },
246 | "node_modules/cookie-signature": {
247 | "version": "1.0.6",
248 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
249 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
250 | },
251 | "node_modules/debug": {
252 | "version": "2.6.9",
253 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
254 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
255 | "dependencies": {
256 | "ms": "2.0.0"
257 | }
258 | },
259 | "node_modules/denque": {
260 | "version": "2.0.1",
261 | "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
262 | "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==",
263 | "engines": {
264 | "node": ">=0.10"
265 | }
266 | },
267 | "node_modules/depd": {
268 | "version": "2.0.0",
269 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
270 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
271 | "engines": {
272 | "node": ">= 0.8"
273 | }
274 | },
275 | "node_modules/destroy": {
276 | "version": "1.2.0",
277 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
278 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
279 | "engines": {
280 | "node": ">= 0.8",
281 | "npm": "1.2.8000 || >= 1.4.16"
282 | }
283 | },
284 | "node_modules/ee-first": {
285 | "version": "1.1.1",
286 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
287 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
288 | },
289 | "node_modules/ejs": {
290 | "version": "3.1.7",
291 | "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz",
292 | "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==",
293 | "dependencies": {
294 | "jake": "^10.8.5"
295 | },
296 | "bin": {
297 | "ejs": "bin/cli.js"
298 | },
299 | "engines": {
300 | "node": ">=0.10.0"
301 | }
302 | },
303 | "node_modules/encodeurl": {
304 | "version": "1.0.2",
305 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
306 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
307 | "engines": {
308 | "node": ">= 0.8"
309 | }
310 | },
311 | "node_modules/escape-html": {
312 | "version": "1.0.3",
313 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
314 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
315 | },
316 | "node_modules/etag": {
317 | "version": "1.8.1",
318 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
319 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
320 | "engines": {
321 | "node": ">= 0.6"
322 | }
323 | },
324 | "node_modules/express": {
325 | "version": "4.17.3",
326 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz",
327 | "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==",
328 | "dependencies": {
329 | "accepts": "~1.3.8",
330 | "array-flatten": "1.1.1",
331 | "body-parser": "1.19.2",
332 | "content-disposition": "0.5.4",
333 | "content-type": "~1.0.4",
334 | "cookie": "0.4.2",
335 | "cookie-signature": "1.0.6",
336 | "debug": "2.6.9",
337 | "depd": "~1.1.2",
338 | "encodeurl": "~1.0.2",
339 | "escape-html": "~1.0.3",
340 | "etag": "~1.8.1",
341 | "finalhandler": "~1.1.2",
342 | "fresh": "0.5.2",
343 | "merge-descriptors": "1.0.1",
344 | "methods": "~1.1.2",
345 | "on-finished": "~2.3.0",
346 | "parseurl": "~1.3.3",
347 | "path-to-regexp": "0.1.7",
348 | "proxy-addr": "~2.0.7",
349 | "qs": "6.9.7",
350 | "range-parser": "~1.2.1",
351 | "safe-buffer": "5.2.1",
352 | "send": "0.17.2",
353 | "serve-static": "1.14.2",
354 | "setprototypeof": "1.2.0",
355 | "statuses": "~1.5.0",
356 | "type-is": "~1.6.18",
357 | "utils-merge": "1.0.1",
358 | "vary": "~1.1.2"
359 | },
360 | "engines": {
361 | "node": ">= 0.10.0"
362 | }
363 | },
364 | "node_modules/express/node_modules/body-parser": {
365 | "version": "1.19.2",
366 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz",
367 | "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==",
368 | "dependencies": {
369 | "bytes": "3.1.2",
370 | "content-type": "~1.0.4",
371 | "debug": "2.6.9",
372 | "depd": "~1.1.2",
373 | "http-errors": "1.8.1",
374 | "iconv-lite": "0.4.24",
375 | "on-finished": "~2.3.0",
376 | "qs": "6.9.7",
377 | "raw-body": "2.4.3",
378 | "type-is": "~1.6.18"
379 | },
380 | "engines": {
381 | "node": ">= 0.8"
382 | }
383 | },
384 | "node_modules/express/node_modules/depd": {
385 | "version": "1.1.2",
386 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
387 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
388 | "engines": {
389 | "node": ">= 0.6"
390 | }
391 | },
392 | "node_modules/express/node_modules/http-errors": {
393 | "version": "1.8.1",
394 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
395 | "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
396 | "dependencies": {
397 | "depd": "~1.1.2",
398 | "inherits": "2.0.4",
399 | "setprototypeof": "1.2.0",
400 | "statuses": ">= 1.5.0 < 2",
401 | "toidentifier": "1.0.1"
402 | },
403 | "engines": {
404 | "node": ">= 0.6"
405 | }
406 | },
407 | "node_modules/express/node_modules/on-finished": {
408 | "version": "2.3.0",
409 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
410 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
411 | "dependencies": {
412 | "ee-first": "1.1.1"
413 | },
414 | "engines": {
415 | "node": ">= 0.8"
416 | }
417 | },
418 | "node_modules/express/node_modules/qs": {
419 | "version": "6.9.7",
420 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
421 | "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
422 | "engines": {
423 | "node": ">=0.6"
424 | },
425 | "funding": {
426 | "url": "https://github.com/sponsors/ljharb"
427 | }
428 | },
429 | "node_modules/express/node_modules/raw-body": {
430 | "version": "2.4.3",
431 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz",
432 | "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==",
433 | "dependencies": {
434 | "bytes": "3.1.2",
435 | "http-errors": "1.8.1",
436 | "iconv-lite": "0.4.24",
437 | "unpipe": "1.0.0"
438 | },
439 | "engines": {
440 | "node": ">= 0.8"
441 | }
442 | },
443 | "node_modules/filelist": {
444 | "version": "1.0.3",
445 | "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz",
446 | "integrity": "sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==",
447 | "dependencies": {
448 | "minimatch": "^5.0.1"
449 | }
450 | },
451 | "node_modules/filelist/node_modules/brace-expansion": {
452 | "version": "2.0.1",
453 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
454 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
455 | "dependencies": {
456 | "balanced-match": "^1.0.0"
457 | }
458 | },
459 | "node_modules/filelist/node_modules/minimatch": {
460 | "version": "5.0.1",
461 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
462 | "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
463 | "dependencies": {
464 | "brace-expansion": "^2.0.1"
465 | },
466 | "engines": {
467 | "node": ">=10"
468 | }
469 | },
470 | "node_modules/finalhandler": {
471 | "version": "1.1.2",
472 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
473 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
474 | "dependencies": {
475 | "debug": "2.6.9",
476 | "encodeurl": "~1.0.2",
477 | "escape-html": "~1.0.3",
478 | "on-finished": "~2.3.0",
479 | "parseurl": "~1.3.3",
480 | "statuses": "~1.5.0",
481 | "unpipe": "~1.0.0"
482 | },
483 | "engines": {
484 | "node": ">= 0.8"
485 | }
486 | },
487 | "node_modules/finalhandler/node_modules/on-finished": {
488 | "version": "2.3.0",
489 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
490 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
491 | "dependencies": {
492 | "ee-first": "1.1.1"
493 | },
494 | "engines": {
495 | "node": ">= 0.8"
496 | }
497 | },
498 | "node_modules/forwarded": {
499 | "version": "0.2.0",
500 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
501 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
502 | "engines": {
503 | "node": ">= 0.6"
504 | }
505 | },
506 | "node_modules/fresh": {
507 | "version": "0.5.2",
508 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
509 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
510 | "engines": {
511 | "node": ">= 0.6"
512 | }
513 | },
514 | "node_modules/function-bind": {
515 | "version": "1.1.1",
516 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
517 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
518 | },
519 | "node_modules/get-intrinsic": {
520 | "version": "1.1.1",
521 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
522 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
523 | "dependencies": {
524 | "function-bind": "^1.1.1",
525 | "has": "^1.0.3",
526 | "has-symbols": "^1.0.1"
527 | },
528 | "funding": {
529 | "url": "https://github.com/sponsors/ljharb"
530 | }
531 | },
532 | "node_modules/has": {
533 | "version": "1.0.3",
534 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
535 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
536 | "dependencies": {
537 | "function-bind": "^1.1.1"
538 | },
539 | "engines": {
540 | "node": ">= 0.4.0"
541 | }
542 | },
543 | "node_modules/has-flag": {
544 | "version": "4.0.0",
545 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
546 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
547 | "engines": {
548 | "node": ">=8"
549 | }
550 | },
551 | "node_modules/has-symbols": {
552 | "version": "1.0.3",
553 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
554 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
555 | "engines": {
556 | "node": ">= 0.4"
557 | },
558 | "funding": {
559 | "url": "https://github.com/sponsors/ljharb"
560 | }
561 | },
562 | "node_modules/http-errors": {
563 | "version": "2.0.0",
564 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
565 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
566 | "dependencies": {
567 | "depd": "2.0.0",
568 | "inherits": "2.0.4",
569 | "setprototypeof": "1.2.0",
570 | "statuses": "2.0.1",
571 | "toidentifier": "1.0.1"
572 | },
573 | "engines": {
574 | "node": ">= 0.8"
575 | }
576 | },
577 | "node_modules/http-errors/node_modules/statuses": {
578 | "version": "2.0.1",
579 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
580 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
581 | "engines": {
582 | "node": ">= 0.8"
583 | }
584 | },
585 | "node_modules/iconv-lite": {
586 | "version": "0.4.24",
587 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
588 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
589 | "dependencies": {
590 | "safer-buffer": ">= 2.1.2 < 3"
591 | },
592 | "engines": {
593 | "node": ">=0.10.0"
594 | }
595 | },
596 | "node_modules/ieee754": {
597 | "version": "1.2.1",
598 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
599 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
600 | "funding": [
601 | {
602 | "type": "github",
603 | "url": "https://github.com/sponsors/feross"
604 | },
605 | {
606 | "type": "patreon",
607 | "url": "https://www.patreon.com/feross"
608 | },
609 | {
610 | "type": "consulting",
611 | "url": "https://feross.org/support"
612 | }
613 | ]
614 | },
615 | "node_modules/inherits": {
616 | "version": "2.0.4",
617 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
618 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
619 | },
620 | "node_modules/ip": {
621 | "version": "1.1.5",
622 | "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
623 | "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
624 | },
625 | "node_modules/ipaddr.js": {
626 | "version": "1.9.1",
627 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
628 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
629 | "engines": {
630 | "node": ">= 0.10"
631 | }
632 | },
633 | "node_modules/jake": {
634 | "version": "10.8.5",
635 | "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz",
636 | "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==",
637 | "dependencies": {
638 | "async": "^3.2.3",
639 | "chalk": "^4.0.2",
640 | "filelist": "^1.0.1",
641 | "minimatch": "^3.0.4"
642 | },
643 | "bin": {
644 | "jake": "bin/cli.js"
645 | },
646 | "engines": {
647 | "node": ">=10"
648 | }
649 | },
650 | "node_modules/kareem": {
651 | "version": "2.3.5",
652 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.5.tgz",
653 | "integrity": "sha512-qxCyQtp3ioawkiRNQr/v8xw9KIviMSSNmy+63Wubj7KmMn3g7noRXIZB4vPCAP+ETi2SR8eH6CvmlKZuGpoHOg=="
654 | },
655 | "node_modules/media-typer": {
656 | "version": "0.3.0",
657 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
658 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
659 | "engines": {
660 | "node": ">= 0.6"
661 | }
662 | },
663 | "node_modules/memory-pager": {
664 | "version": "1.5.0",
665 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
666 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
667 | "optional": true
668 | },
669 | "node_modules/merge-descriptors": {
670 | "version": "1.0.1",
671 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
672 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
673 | },
674 | "node_modules/methods": {
675 | "version": "1.1.2",
676 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
677 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
678 | "engines": {
679 | "node": ">= 0.6"
680 | }
681 | },
682 | "node_modules/mime": {
683 | "version": "1.6.0",
684 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
685 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
686 | "bin": {
687 | "mime": "cli.js"
688 | },
689 | "engines": {
690 | "node": ">=4"
691 | }
692 | },
693 | "node_modules/mime-db": {
694 | "version": "1.52.0",
695 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
696 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
697 | "engines": {
698 | "node": ">= 0.6"
699 | }
700 | },
701 | "node_modules/mime-types": {
702 | "version": "2.1.35",
703 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
704 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
705 | "dependencies": {
706 | "mime-db": "1.52.0"
707 | },
708 | "engines": {
709 | "node": ">= 0.6"
710 | }
711 | },
712 | "node_modules/minimatch": {
713 | "version": "3.1.2",
714 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
715 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
716 | "dependencies": {
717 | "brace-expansion": "^1.1.7"
718 | },
719 | "engines": {
720 | "node": "*"
721 | }
722 | },
723 | "node_modules/mongodb": {
724 | "version": "4.5.0",
725 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.5.0.tgz",
726 | "integrity": "sha512-A2l8MjEpKojnhbCM0MK3+UOGUSGvTNNSv7AkP1fsT7tkambrkkqN/5F2y+PhzsV0Nbv58u04TETpkaSEdI2zKA==",
727 | "dependencies": {
728 | "bson": "^4.6.2",
729 | "denque": "^2.0.1",
730 | "mongodb-connection-string-url": "^2.5.2",
731 | "socks": "^2.6.2"
732 | },
733 | "engines": {
734 | "node": ">=12.9.0"
735 | },
736 | "optionalDependencies": {
737 | "saslprep": "^1.0.3"
738 | }
739 | },
740 | "node_modules/mongodb-connection-string-url": {
741 | "version": "2.5.2",
742 | "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz",
743 | "integrity": "sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA==",
744 | "dependencies": {
745 | "@types/whatwg-url": "^8.2.1",
746 | "whatwg-url": "^11.0.0"
747 | }
748 | },
749 | "node_modules/mongoose": {
750 | "version": "6.3.0",
751 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.3.0.tgz",
752 | "integrity": "sha512-3x2pEGlZ5SorqcL0/hmUIAzzHIh6a/VIAEv3zAmc93qDtSz3WBbF8PwYYHcXm6Awfck9/zFOV9KIUEE+HjVepA==",
753 | "dependencies": {
754 | "bson": "^4.2.2",
755 | "kareem": "2.3.5",
756 | "mongodb": "4.5.0",
757 | "mpath": "0.8.4",
758 | "mquery": "4.0.2",
759 | "ms": "2.1.3",
760 | "sift": "16.0.0"
761 | },
762 | "engines": {
763 | "node": ">=12.0.0"
764 | },
765 | "funding": {
766 | "type": "opencollective",
767 | "url": "https://opencollective.com/mongoose"
768 | }
769 | },
770 | "node_modules/mongoose/node_modules/ms": {
771 | "version": "2.1.3",
772 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
773 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
774 | },
775 | "node_modules/mpath": {
776 | "version": "0.8.4",
777 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz",
778 | "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==",
779 | "engines": {
780 | "node": ">=4.0.0"
781 | }
782 | },
783 | "node_modules/mquery": {
784 | "version": "4.0.2",
785 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.2.tgz",
786 | "integrity": "sha512-oAVF0Nil1mT3rxty6Zln4YiD6x6QsUWYz927jZzjMxOK2aqmhEz5JQ7xmrKK7xRFA2dwV+YaOpKU/S+vfNqKxA==",
787 | "dependencies": {
788 | "debug": "4.x"
789 | },
790 | "engines": {
791 | "node": ">=12.0.0"
792 | }
793 | },
794 | "node_modules/mquery/node_modules/debug": {
795 | "version": "4.3.4",
796 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
797 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
798 | "dependencies": {
799 | "ms": "2.1.2"
800 | },
801 | "engines": {
802 | "node": ">=6.0"
803 | },
804 | "peerDependenciesMeta": {
805 | "supports-color": {
806 | "optional": true
807 | }
808 | }
809 | },
810 | "node_modules/mquery/node_modules/ms": {
811 | "version": "2.1.2",
812 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
813 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
814 | },
815 | "node_modules/ms": {
816 | "version": "2.0.0",
817 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
818 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
819 | },
820 | "node_modules/negotiator": {
821 | "version": "0.6.3",
822 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
823 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
824 | "engines": {
825 | "node": ">= 0.6"
826 | }
827 | },
828 | "node_modules/object-inspect": {
829 | "version": "1.12.0",
830 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
831 | "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
832 | "funding": {
833 | "url": "https://github.com/sponsors/ljharb"
834 | }
835 | },
836 | "node_modules/on-finished": {
837 | "version": "2.4.1",
838 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
839 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
840 | "dependencies": {
841 | "ee-first": "1.1.1"
842 | },
843 | "engines": {
844 | "node": ">= 0.8"
845 | }
846 | },
847 | "node_modules/parseurl": {
848 | "version": "1.3.3",
849 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
850 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
851 | "engines": {
852 | "node": ">= 0.8"
853 | }
854 | },
855 | "node_modules/path-to-regexp": {
856 | "version": "0.1.7",
857 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
858 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
859 | },
860 | "node_modules/proxy-addr": {
861 | "version": "2.0.7",
862 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
863 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
864 | "dependencies": {
865 | "forwarded": "0.2.0",
866 | "ipaddr.js": "1.9.1"
867 | },
868 | "engines": {
869 | "node": ">= 0.10"
870 | }
871 | },
872 | "node_modules/punycode": {
873 | "version": "2.1.1",
874 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
875 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
876 | "engines": {
877 | "node": ">=6"
878 | }
879 | },
880 | "node_modules/qs": {
881 | "version": "6.10.3",
882 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
883 | "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
884 | "dependencies": {
885 | "side-channel": "^1.0.4"
886 | },
887 | "engines": {
888 | "node": ">=0.6"
889 | },
890 | "funding": {
891 | "url": "https://github.com/sponsors/ljharb"
892 | }
893 | },
894 | "node_modules/range-parser": {
895 | "version": "1.2.1",
896 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
897 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
898 | "engines": {
899 | "node": ">= 0.6"
900 | }
901 | },
902 | "node_modules/raw-body": {
903 | "version": "2.5.1",
904 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
905 | "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
906 | "dependencies": {
907 | "bytes": "3.1.2",
908 | "http-errors": "2.0.0",
909 | "iconv-lite": "0.4.24",
910 | "unpipe": "1.0.0"
911 | },
912 | "engines": {
913 | "node": ">= 0.8"
914 | }
915 | },
916 | "node_modules/safe-buffer": {
917 | "version": "5.2.1",
918 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
919 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
920 | "funding": [
921 | {
922 | "type": "github",
923 | "url": "https://github.com/sponsors/feross"
924 | },
925 | {
926 | "type": "patreon",
927 | "url": "https://www.patreon.com/feross"
928 | },
929 | {
930 | "type": "consulting",
931 | "url": "https://feross.org/support"
932 | }
933 | ]
934 | },
935 | "node_modules/safer-buffer": {
936 | "version": "2.1.2",
937 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
938 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
939 | },
940 | "node_modules/saslprep": {
941 | "version": "1.0.3",
942 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
943 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
944 | "optional": true,
945 | "dependencies": {
946 | "sparse-bitfield": "^3.0.3"
947 | },
948 | "engines": {
949 | "node": ">=6"
950 | }
951 | },
952 | "node_modules/send": {
953 | "version": "0.17.2",
954 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz",
955 | "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==",
956 | "dependencies": {
957 | "debug": "2.6.9",
958 | "depd": "~1.1.2",
959 | "destroy": "~1.0.4",
960 | "encodeurl": "~1.0.2",
961 | "escape-html": "~1.0.3",
962 | "etag": "~1.8.1",
963 | "fresh": "0.5.2",
964 | "http-errors": "1.8.1",
965 | "mime": "1.6.0",
966 | "ms": "2.1.3",
967 | "on-finished": "~2.3.0",
968 | "range-parser": "~1.2.1",
969 | "statuses": "~1.5.0"
970 | },
971 | "engines": {
972 | "node": ">= 0.8.0"
973 | }
974 | },
975 | "node_modules/send/node_modules/depd": {
976 | "version": "1.1.2",
977 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
978 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
979 | "engines": {
980 | "node": ">= 0.6"
981 | }
982 | },
983 | "node_modules/send/node_modules/destroy": {
984 | "version": "1.0.4",
985 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
986 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
987 | },
988 | "node_modules/send/node_modules/http-errors": {
989 | "version": "1.8.1",
990 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
991 | "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
992 | "dependencies": {
993 | "depd": "~1.1.2",
994 | "inherits": "2.0.4",
995 | "setprototypeof": "1.2.0",
996 | "statuses": ">= 1.5.0 < 2",
997 | "toidentifier": "1.0.1"
998 | },
999 | "engines": {
1000 | "node": ">= 0.6"
1001 | }
1002 | },
1003 | "node_modules/send/node_modules/ms": {
1004 | "version": "2.1.3",
1005 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1006 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1007 | },
1008 | "node_modules/send/node_modules/on-finished": {
1009 | "version": "2.3.0",
1010 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1011 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1012 | "dependencies": {
1013 | "ee-first": "1.1.1"
1014 | },
1015 | "engines": {
1016 | "node": ">= 0.8"
1017 | }
1018 | },
1019 | "node_modules/serve-static": {
1020 | "version": "1.14.2",
1021 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz",
1022 | "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==",
1023 | "dependencies": {
1024 | "encodeurl": "~1.0.2",
1025 | "escape-html": "~1.0.3",
1026 | "parseurl": "~1.3.3",
1027 | "send": "0.17.2"
1028 | },
1029 | "engines": {
1030 | "node": ">= 0.8.0"
1031 | }
1032 | },
1033 | "node_modules/setprototypeof": {
1034 | "version": "1.2.0",
1035 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1036 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1037 | },
1038 | "node_modules/side-channel": {
1039 | "version": "1.0.4",
1040 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
1041 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
1042 | "dependencies": {
1043 | "call-bind": "^1.0.0",
1044 | "get-intrinsic": "^1.0.2",
1045 | "object-inspect": "^1.9.0"
1046 | },
1047 | "funding": {
1048 | "url": "https://github.com/sponsors/ljharb"
1049 | }
1050 | },
1051 | "node_modules/sift": {
1052 | "version": "16.0.0",
1053 | "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.0.tgz",
1054 | "integrity": "sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ=="
1055 | },
1056 | "node_modules/smart-buffer": {
1057 | "version": "4.2.0",
1058 | "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
1059 | "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
1060 | "engines": {
1061 | "node": ">= 6.0.0",
1062 | "npm": ">= 3.0.0"
1063 | }
1064 | },
1065 | "node_modules/socks": {
1066 | "version": "2.6.2",
1067 | "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",
1068 | "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==",
1069 | "dependencies": {
1070 | "ip": "^1.1.5",
1071 | "smart-buffer": "^4.2.0"
1072 | },
1073 | "engines": {
1074 | "node": ">= 10.13.0",
1075 | "npm": ">= 3.0.0"
1076 | }
1077 | },
1078 | "node_modules/sparse-bitfield": {
1079 | "version": "3.0.3",
1080 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
1081 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
1082 | "optional": true,
1083 | "dependencies": {
1084 | "memory-pager": "^1.0.2"
1085 | }
1086 | },
1087 | "node_modules/statuses": {
1088 | "version": "1.5.0",
1089 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1090 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
1091 | "engines": {
1092 | "node": ">= 0.6"
1093 | }
1094 | },
1095 | "node_modules/supports-color": {
1096 | "version": "7.2.0",
1097 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1098 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1099 | "dependencies": {
1100 | "has-flag": "^4.0.0"
1101 | },
1102 | "engines": {
1103 | "node": ">=8"
1104 | }
1105 | },
1106 | "node_modules/toidentifier": {
1107 | "version": "1.0.1",
1108 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1109 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
1110 | "engines": {
1111 | "node": ">=0.6"
1112 | }
1113 | },
1114 | "node_modules/tr46": {
1115 | "version": "3.0.0",
1116 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
1117 | "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
1118 | "dependencies": {
1119 | "punycode": "^2.1.1"
1120 | },
1121 | "engines": {
1122 | "node": ">=12"
1123 | }
1124 | },
1125 | "node_modules/type-is": {
1126 | "version": "1.6.18",
1127 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1128 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1129 | "dependencies": {
1130 | "media-typer": "0.3.0",
1131 | "mime-types": "~2.1.24"
1132 | },
1133 | "engines": {
1134 | "node": ">= 0.6"
1135 | }
1136 | },
1137 | "node_modules/unpipe": {
1138 | "version": "1.0.0",
1139 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1140 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
1141 | "engines": {
1142 | "node": ">= 0.8"
1143 | }
1144 | },
1145 | "node_modules/utils-merge": {
1146 | "version": "1.0.1",
1147 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1148 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
1149 | "engines": {
1150 | "node": ">= 0.4.0"
1151 | }
1152 | },
1153 | "node_modules/vary": {
1154 | "version": "1.1.2",
1155 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1156 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
1157 | "engines": {
1158 | "node": ">= 0.8"
1159 | }
1160 | },
1161 | "node_modules/webidl-conversions": {
1162 | "version": "7.0.0",
1163 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
1164 | "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
1165 | "engines": {
1166 | "node": ">=12"
1167 | }
1168 | },
1169 | "node_modules/whatwg-url": {
1170 | "version": "11.0.0",
1171 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
1172 | "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
1173 | "dependencies": {
1174 | "tr46": "^3.0.0",
1175 | "webidl-conversions": "^7.0.0"
1176 | },
1177 | "engines": {
1178 | "node": ">=12"
1179 | }
1180 | }
1181 | },
1182 | "dependencies": {
1183 | "@types/node": {
1184 | "version": "17.0.25",
1185 | "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz",
1186 | "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w=="
1187 | },
1188 | "@types/webidl-conversions": {
1189 | "version": "6.1.1",
1190 | "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz",
1191 | "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
1192 | },
1193 | "@types/whatwg-url": {
1194 | "version": "8.2.1",
1195 | "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz",
1196 | "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==",
1197 | "requires": {
1198 | "@types/node": "*",
1199 | "@types/webidl-conversions": "*"
1200 | }
1201 | },
1202 | "accepts": {
1203 | "version": "1.3.8",
1204 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
1205 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
1206 | "requires": {
1207 | "mime-types": "~2.1.34",
1208 | "negotiator": "0.6.3"
1209 | }
1210 | },
1211 | "ansi-styles": {
1212 | "version": "4.3.0",
1213 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1214 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1215 | "requires": {
1216 | "color-convert": "^2.0.1"
1217 | }
1218 | },
1219 | "array-flatten": {
1220 | "version": "1.1.1",
1221 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
1222 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
1223 | },
1224 | "async": {
1225 | "version": "3.2.3",
1226 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
1227 | "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
1228 | },
1229 | "balanced-match": {
1230 | "version": "1.0.2",
1231 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1232 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
1233 | },
1234 | "base64-js": {
1235 | "version": "1.5.1",
1236 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
1237 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
1238 | },
1239 | "body-parser": {
1240 | "version": "1.20.0",
1241 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
1242 | "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
1243 | "requires": {
1244 | "bytes": "3.1.2",
1245 | "content-type": "~1.0.4",
1246 | "debug": "2.6.9",
1247 | "depd": "2.0.0",
1248 | "destroy": "1.2.0",
1249 | "http-errors": "2.0.0",
1250 | "iconv-lite": "0.4.24",
1251 | "on-finished": "2.4.1",
1252 | "qs": "6.10.3",
1253 | "raw-body": "2.5.1",
1254 | "type-is": "~1.6.18",
1255 | "unpipe": "1.0.0"
1256 | }
1257 | },
1258 | "brace-expansion": {
1259 | "version": "1.1.11",
1260 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1261 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1262 | "requires": {
1263 | "balanced-match": "^1.0.0",
1264 | "concat-map": "0.0.1"
1265 | }
1266 | },
1267 | "bson": {
1268 | "version": "4.6.3",
1269 | "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.3.tgz",
1270 | "integrity": "sha512-rAqP5hcUVJhXP2MCSNVsf0oM2OGU1So6A9pVRDYayvJ5+hygXHQApf87wd5NlhPM1J9RJnbqxIG/f8QTzRoQ4A==",
1271 | "requires": {
1272 | "buffer": "^5.6.0"
1273 | }
1274 | },
1275 | "buffer": {
1276 | "version": "5.7.1",
1277 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
1278 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
1279 | "requires": {
1280 | "base64-js": "^1.3.1",
1281 | "ieee754": "^1.1.13"
1282 | }
1283 | },
1284 | "bytes": {
1285 | "version": "3.1.2",
1286 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
1287 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
1288 | },
1289 | "call-bind": {
1290 | "version": "1.0.2",
1291 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
1292 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
1293 | "requires": {
1294 | "function-bind": "^1.1.1",
1295 | "get-intrinsic": "^1.0.2"
1296 | }
1297 | },
1298 | "chalk": {
1299 | "version": "4.1.2",
1300 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
1301 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
1302 | "requires": {
1303 | "ansi-styles": "^4.1.0",
1304 | "supports-color": "^7.1.0"
1305 | }
1306 | },
1307 | "color-convert": {
1308 | "version": "2.0.1",
1309 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1310 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1311 | "requires": {
1312 | "color-name": "~1.1.4"
1313 | }
1314 | },
1315 | "color-name": {
1316 | "version": "1.1.4",
1317 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1318 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
1319 | },
1320 | "concat-map": {
1321 | "version": "0.0.1",
1322 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1323 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
1324 | },
1325 | "content-disposition": {
1326 | "version": "0.5.4",
1327 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
1328 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
1329 | "requires": {
1330 | "safe-buffer": "5.2.1"
1331 | }
1332 | },
1333 | "content-type": {
1334 | "version": "1.0.4",
1335 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
1336 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
1337 | },
1338 | "cookie": {
1339 | "version": "0.4.2",
1340 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
1341 | "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
1342 | },
1343 | "cookie-signature": {
1344 | "version": "1.0.6",
1345 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
1346 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
1347 | },
1348 | "debug": {
1349 | "version": "2.6.9",
1350 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1351 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1352 | "requires": {
1353 | "ms": "2.0.0"
1354 | }
1355 | },
1356 | "denque": {
1357 | "version": "2.0.1",
1358 | "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
1359 | "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ=="
1360 | },
1361 | "depd": {
1362 | "version": "2.0.0",
1363 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
1364 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
1365 | },
1366 | "destroy": {
1367 | "version": "1.2.0",
1368 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
1369 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
1370 | },
1371 | "ee-first": {
1372 | "version": "1.1.1",
1373 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
1374 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
1375 | },
1376 | "ejs": {
1377 | "version": "3.1.7",
1378 | "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz",
1379 | "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==",
1380 | "requires": {
1381 | "jake": "^10.8.5"
1382 | }
1383 | },
1384 | "encodeurl": {
1385 | "version": "1.0.2",
1386 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
1387 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
1388 | },
1389 | "escape-html": {
1390 | "version": "1.0.3",
1391 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
1392 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
1393 | },
1394 | "etag": {
1395 | "version": "1.8.1",
1396 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
1397 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
1398 | },
1399 | "express": {
1400 | "version": "4.17.3",
1401 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz",
1402 | "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==",
1403 | "requires": {
1404 | "accepts": "~1.3.8",
1405 | "array-flatten": "1.1.1",
1406 | "body-parser": "1.19.2",
1407 | "content-disposition": "0.5.4",
1408 | "content-type": "~1.0.4",
1409 | "cookie": "0.4.2",
1410 | "cookie-signature": "1.0.6",
1411 | "debug": "2.6.9",
1412 | "depd": "~1.1.2",
1413 | "encodeurl": "~1.0.2",
1414 | "escape-html": "~1.0.3",
1415 | "etag": "~1.8.1",
1416 | "finalhandler": "~1.1.2",
1417 | "fresh": "0.5.2",
1418 | "merge-descriptors": "1.0.1",
1419 | "methods": "~1.1.2",
1420 | "on-finished": "~2.3.0",
1421 | "parseurl": "~1.3.3",
1422 | "path-to-regexp": "0.1.7",
1423 | "proxy-addr": "~2.0.7",
1424 | "qs": "6.9.7",
1425 | "range-parser": "~1.2.1",
1426 | "safe-buffer": "5.2.1",
1427 | "send": "0.17.2",
1428 | "serve-static": "1.14.2",
1429 | "setprototypeof": "1.2.0",
1430 | "statuses": "~1.5.0",
1431 | "type-is": "~1.6.18",
1432 | "utils-merge": "1.0.1",
1433 | "vary": "~1.1.2"
1434 | },
1435 | "dependencies": {
1436 | "body-parser": {
1437 | "version": "1.19.2",
1438 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz",
1439 | "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==",
1440 | "requires": {
1441 | "bytes": "3.1.2",
1442 | "content-type": "~1.0.4",
1443 | "debug": "2.6.9",
1444 | "depd": "~1.1.2",
1445 | "http-errors": "1.8.1",
1446 | "iconv-lite": "0.4.24",
1447 | "on-finished": "~2.3.0",
1448 | "qs": "6.9.7",
1449 | "raw-body": "2.4.3",
1450 | "type-is": "~1.6.18"
1451 | }
1452 | },
1453 | "depd": {
1454 | "version": "1.1.2",
1455 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
1456 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
1457 | },
1458 | "http-errors": {
1459 | "version": "1.8.1",
1460 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
1461 | "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
1462 | "requires": {
1463 | "depd": "~1.1.2",
1464 | "inherits": "2.0.4",
1465 | "setprototypeof": "1.2.0",
1466 | "statuses": ">= 1.5.0 < 2",
1467 | "toidentifier": "1.0.1"
1468 | }
1469 | },
1470 | "on-finished": {
1471 | "version": "2.3.0",
1472 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1473 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1474 | "requires": {
1475 | "ee-first": "1.1.1"
1476 | }
1477 | },
1478 | "qs": {
1479 | "version": "6.9.7",
1480 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
1481 | "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw=="
1482 | },
1483 | "raw-body": {
1484 | "version": "2.4.3",
1485 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz",
1486 | "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==",
1487 | "requires": {
1488 | "bytes": "3.1.2",
1489 | "http-errors": "1.8.1",
1490 | "iconv-lite": "0.4.24",
1491 | "unpipe": "1.0.0"
1492 | }
1493 | }
1494 | }
1495 | },
1496 | "filelist": {
1497 | "version": "1.0.3",
1498 | "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz",
1499 | "integrity": "sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==",
1500 | "requires": {
1501 | "minimatch": "^5.0.1"
1502 | },
1503 | "dependencies": {
1504 | "brace-expansion": {
1505 | "version": "2.0.1",
1506 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
1507 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
1508 | "requires": {
1509 | "balanced-match": "^1.0.0"
1510 | }
1511 | },
1512 | "minimatch": {
1513 | "version": "5.0.1",
1514 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
1515 | "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
1516 | "requires": {
1517 | "brace-expansion": "^2.0.1"
1518 | }
1519 | }
1520 | }
1521 | },
1522 | "finalhandler": {
1523 | "version": "1.1.2",
1524 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
1525 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
1526 | "requires": {
1527 | "debug": "2.6.9",
1528 | "encodeurl": "~1.0.2",
1529 | "escape-html": "~1.0.3",
1530 | "on-finished": "~2.3.0",
1531 | "parseurl": "~1.3.3",
1532 | "statuses": "~1.5.0",
1533 | "unpipe": "~1.0.0"
1534 | },
1535 | "dependencies": {
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 | }
1545 | },
1546 | "forwarded": {
1547 | "version": "0.2.0",
1548 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
1549 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
1550 | },
1551 | "fresh": {
1552 | "version": "0.5.2",
1553 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
1554 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
1555 | },
1556 | "function-bind": {
1557 | "version": "1.1.1",
1558 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1559 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1560 | },
1561 | "get-intrinsic": {
1562 | "version": "1.1.1",
1563 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
1564 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
1565 | "requires": {
1566 | "function-bind": "^1.1.1",
1567 | "has": "^1.0.3",
1568 | "has-symbols": "^1.0.1"
1569 | }
1570 | },
1571 | "has": {
1572 | "version": "1.0.3",
1573 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1574 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1575 | "requires": {
1576 | "function-bind": "^1.1.1"
1577 | }
1578 | },
1579 | "has-flag": {
1580 | "version": "4.0.0",
1581 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1582 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
1583 | },
1584 | "has-symbols": {
1585 | "version": "1.0.3",
1586 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
1587 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
1588 | },
1589 | "http-errors": {
1590 | "version": "2.0.0",
1591 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
1592 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
1593 | "requires": {
1594 | "depd": "2.0.0",
1595 | "inherits": "2.0.4",
1596 | "setprototypeof": "1.2.0",
1597 | "statuses": "2.0.1",
1598 | "toidentifier": "1.0.1"
1599 | },
1600 | "dependencies": {
1601 | "statuses": {
1602 | "version": "2.0.1",
1603 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1604 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
1605 | }
1606 | }
1607 | },
1608 | "iconv-lite": {
1609 | "version": "0.4.24",
1610 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1611 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1612 | "requires": {
1613 | "safer-buffer": ">= 2.1.2 < 3"
1614 | }
1615 | },
1616 | "ieee754": {
1617 | "version": "1.2.1",
1618 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
1619 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
1620 | },
1621 | "inherits": {
1622 | "version": "2.0.4",
1623 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1624 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1625 | },
1626 | "ip": {
1627 | "version": "1.1.5",
1628 | "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
1629 | "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
1630 | },
1631 | "ipaddr.js": {
1632 | "version": "1.9.1",
1633 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
1634 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
1635 | },
1636 | "jake": {
1637 | "version": "10.8.5",
1638 | "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz",
1639 | "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==",
1640 | "requires": {
1641 | "async": "^3.2.3",
1642 | "chalk": "^4.0.2",
1643 | "filelist": "^1.0.1",
1644 | "minimatch": "^3.0.4"
1645 | }
1646 | },
1647 | "kareem": {
1648 | "version": "2.3.5",
1649 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.5.tgz",
1650 | "integrity": "sha512-qxCyQtp3ioawkiRNQr/v8xw9KIviMSSNmy+63Wubj7KmMn3g7noRXIZB4vPCAP+ETi2SR8eH6CvmlKZuGpoHOg=="
1651 | },
1652 | "media-typer": {
1653 | "version": "0.3.0",
1654 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1655 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
1656 | },
1657 | "memory-pager": {
1658 | "version": "1.5.0",
1659 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
1660 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
1661 | "optional": true
1662 | },
1663 | "merge-descriptors": {
1664 | "version": "1.0.1",
1665 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1666 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
1667 | },
1668 | "methods": {
1669 | "version": "1.1.2",
1670 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1671 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
1672 | },
1673 | "mime": {
1674 | "version": "1.6.0",
1675 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1676 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
1677 | },
1678 | "mime-db": {
1679 | "version": "1.52.0",
1680 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1681 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
1682 | },
1683 | "mime-types": {
1684 | "version": "2.1.35",
1685 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1686 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1687 | "requires": {
1688 | "mime-db": "1.52.0"
1689 | }
1690 | },
1691 | "minimatch": {
1692 | "version": "3.1.2",
1693 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1694 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1695 | "requires": {
1696 | "brace-expansion": "^1.1.7"
1697 | }
1698 | },
1699 | "mongodb": {
1700 | "version": "4.5.0",
1701 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.5.0.tgz",
1702 | "integrity": "sha512-A2l8MjEpKojnhbCM0MK3+UOGUSGvTNNSv7AkP1fsT7tkambrkkqN/5F2y+PhzsV0Nbv58u04TETpkaSEdI2zKA==",
1703 | "requires": {
1704 | "bson": "^4.6.2",
1705 | "denque": "^2.0.1",
1706 | "mongodb-connection-string-url": "^2.5.2",
1707 | "saslprep": "^1.0.3",
1708 | "socks": "^2.6.2"
1709 | }
1710 | },
1711 | "mongodb-connection-string-url": {
1712 | "version": "2.5.2",
1713 | "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz",
1714 | "integrity": "sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA==",
1715 | "requires": {
1716 | "@types/whatwg-url": "^8.2.1",
1717 | "whatwg-url": "^11.0.0"
1718 | }
1719 | },
1720 | "mongoose": {
1721 | "version": "6.3.0",
1722 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.3.0.tgz",
1723 | "integrity": "sha512-3x2pEGlZ5SorqcL0/hmUIAzzHIh6a/VIAEv3zAmc93qDtSz3WBbF8PwYYHcXm6Awfck9/zFOV9KIUEE+HjVepA==",
1724 | "requires": {
1725 | "bson": "^4.2.2",
1726 | "kareem": "2.3.5",
1727 | "mongodb": "4.5.0",
1728 | "mpath": "0.8.4",
1729 | "mquery": "4.0.2",
1730 | "ms": "2.1.3",
1731 | "sift": "16.0.0"
1732 | },
1733 | "dependencies": {
1734 | "ms": {
1735 | "version": "2.1.3",
1736 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1737 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1738 | }
1739 | }
1740 | },
1741 | "mpath": {
1742 | "version": "0.8.4",
1743 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz",
1744 | "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g=="
1745 | },
1746 | "mquery": {
1747 | "version": "4.0.2",
1748 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.2.tgz",
1749 | "integrity": "sha512-oAVF0Nil1mT3rxty6Zln4YiD6x6QsUWYz927jZzjMxOK2aqmhEz5JQ7xmrKK7xRFA2dwV+YaOpKU/S+vfNqKxA==",
1750 | "requires": {
1751 | "debug": "4.x"
1752 | },
1753 | "dependencies": {
1754 | "debug": {
1755 | "version": "4.3.4",
1756 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1757 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1758 | "requires": {
1759 | "ms": "2.1.2"
1760 | }
1761 | },
1762 | "ms": {
1763 | "version": "2.1.2",
1764 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1765 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1766 | }
1767 | }
1768 | },
1769 | "ms": {
1770 | "version": "2.0.0",
1771 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1772 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1773 | },
1774 | "negotiator": {
1775 | "version": "0.6.3",
1776 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
1777 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
1778 | },
1779 | "object-inspect": {
1780 | "version": "1.12.0",
1781 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
1782 | "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g=="
1783 | },
1784 | "on-finished": {
1785 | "version": "2.4.1",
1786 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1787 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1788 | "requires": {
1789 | "ee-first": "1.1.1"
1790 | }
1791 | },
1792 | "parseurl": {
1793 | "version": "1.3.3",
1794 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1795 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
1796 | },
1797 | "path-to-regexp": {
1798 | "version": "0.1.7",
1799 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1800 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
1801 | },
1802 | "proxy-addr": {
1803 | "version": "2.0.7",
1804 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
1805 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1806 | "requires": {
1807 | "forwarded": "0.2.0",
1808 | "ipaddr.js": "1.9.1"
1809 | }
1810 | },
1811 | "punycode": {
1812 | "version": "2.1.1",
1813 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1814 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
1815 | },
1816 | "qs": {
1817 | "version": "6.10.3",
1818 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
1819 | "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
1820 | "requires": {
1821 | "side-channel": "^1.0.4"
1822 | }
1823 | },
1824 | "range-parser": {
1825 | "version": "1.2.1",
1826 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1827 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
1828 | },
1829 | "raw-body": {
1830 | "version": "2.5.1",
1831 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
1832 | "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
1833 | "requires": {
1834 | "bytes": "3.1.2",
1835 | "http-errors": "2.0.0",
1836 | "iconv-lite": "0.4.24",
1837 | "unpipe": "1.0.0"
1838 | }
1839 | },
1840 | "safe-buffer": {
1841 | "version": "5.2.1",
1842 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1843 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
1844 | },
1845 | "safer-buffer": {
1846 | "version": "2.1.2",
1847 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1848 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1849 | },
1850 | "saslprep": {
1851 | "version": "1.0.3",
1852 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
1853 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
1854 | "optional": true,
1855 | "requires": {
1856 | "sparse-bitfield": "^3.0.3"
1857 | }
1858 | },
1859 | "send": {
1860 | "version": "0.17.2",
1861 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz",
1862 | "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==",
1863 | "requires": {
1864 | "debug": "2.6.9",
1865 | "depd": "~1.1.2",
1866 | "destroy": "~1.0.4",
1867 | "encodeurl": "~1.0.2",
1868 | "escape-html": "~1.0.3",
1869 | "etag": "~1.8.1",
1870 | "fresh": "0.5.2",
1871 | "http-errors": "1.8.1",
1872 | "mime": "1.6.0",
1873 | "ms": "2.1.3",
1874 | "on-finished": "~2.3.0",
1875 | "range-parser": "~1.2.1",
1876 | "statuses": "~1.5.0"
1877 | },
1878 | "dependencies": {
1879 | "depd": {
1880 | "version": "1.1.2",
1881 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
1882 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
1883 | },
1884 | "destroy": {
1885 | "version": "1.0.4",
1886 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
1887 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
1888 | },
1889 | "http-errors": {
1890 | "version": "1.8.1",
1891 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
1892 | "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
1893 | "requires": {
1894 | "depd": "~1.1.2",
1895 | "inherits": "2.0.4",
1896 | "setprototypeof": "1.2.0",
1897 | "statuses": ">= 1.5.0 < 2",
1898 | "toidentifier": "1.0.1"
1899 | }
1900 | },
1901 | "ms": {
1902 | "version": "2.1.3",
1903 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1904 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1905 | },
1906 | "on-finished": {
1907 | "version": "2.3.0",
1908 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1909 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1910 | "requires": {
1911 | "ee-first": "1.1.1"
1912 | }
1913 | }
1914 | }
1915 | },
1916 | "serve-static": {
1917 | "version": "1.14.2",
1918 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz",
1919 | "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==",
1920 | "requires": {
1921 | "encodeurl": "~1.0.2",
1922 | "escape-html": "~1.0.3",
1923 | "parseurl": "~1.3.3",
1924 | "send": "0.17.2"
1925 | }
1926 | },
1927 | "setprototypeof": {
1928 | "version": "1.2.0",
1929 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1930 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1931 | },
1932 | "side-channel": {
1933 | "version": "1.0.4",
1934 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
1935 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
1936 | "requires": {
1937 | "call-bind": "^1.0.0",
1938 | "get-intrinsic": "^1.0.2",
1939 | "object-inspect": "^1.9.0"
1940 | }
1941 | },
1942 | "sift": {
1943 | "version": "16.0.0",
1944 | "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.0.tgz",
1945 | "integrity": "sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ=="
1946 | },
1947 | "smart-buffer": {
1948 | "version": "4.2.0",
1949 | "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
1950 | "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="
1951 | },
1952 | "socks": {
1953 | "version": "2.6.2",
1954 | "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",
1955 | "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==",
1956 | "requires": {
1957 | "ip": "^1.1.5",
1958 | "smart-buffer": "^4.2.0"
1959 | }
1960 | },
1961 | "sparse-bitfield": {
1962 | "version": "3.0.3",
1963 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
1964 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
1965 | "optional": true,
1966 | "requires": {
1967 | "memory-pager": "^1.0.2"
1968 | }
1969 | },
1970 | "statuses": {
1971 | "version": "1.5.0",
1972 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1973 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
1974 | },
1975 | "supports-color": {
1976 | "version": "7.2.0",
1977 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1978 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1979 | "requires": {
1980 | "has-flag": "^4.0.0"
1981 | }
1982 | },
1983 | "toidentifier": {
1984 | "version": "1.0.1",
1985 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1986 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
1987 | },
1988 | "tr46": {
1989 | "version": "3.0.0",
1990 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
1991 | "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
1992 | "requires": {
1993 | "punycode": "^2.1.1"
1994 | }
1995 | },
1996 | "type-is": {
1997 | "version": "1.6.18",
1998 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1999 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
2000 | "requires": {
2001 | "media-typer": "0.3.0",
2002 | "mime-types": "~2.1.24"
2003 | }
2004 | },
2005 | "unpipe": {
2006 | "version": "1.0.0",
2007 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
2008 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
2009 | },
2010 | "utils-merge": {
2011 | "version": "1.0.1",
2012 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
2013 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
2014 | },
2015 | "vary": {
2016 | "version": "1.1.2",
2017 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2018 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
2019 | },
2020 | "webidl-conversions": {
2021 | "version": "7.0.0",
2022 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
2023 | "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="
2024 | },
2025 | "whatwg-url": {
2026 | "version": "11.0.0",
2027 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
2028 | "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
2029 | "requires": {
2030 | "tr46": "^3.0.0",
2031 | "webidl-conversions": "^7.0.0"
2032 | }
2033 | }
2034 | }
2035 | }
2036 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tinyurls",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "start": "node index.js",
8 | "win-build": "pkg -t node16-win index.js -o dist/win",
9 | "mac-build": "pkg -t node16-macos index.js -o dist/mac",
10 | "linux-build": "pkg -t node16-linux index.js -o dist/linux",
11 | "test": "nodemon idnex.js -e js,ejs,json,html,css"
12 | },
13 | "keywords": [],
14 | "author": "",
15 | "license": "ISC",
16 | "dependencies": {
17 | "body-parser": "^1.20.0",
18 | "ejs": "^3.1.7",
19 | "express": "^4.17.3",
20 | "mongoose": "^6.3.0"
21 | }
22 | }
--------------------------------------------------------------------------------
/views/exist.ejs:
--------------------------------------------------------------------------------
1 | That extension <%= extension %>
already exists, try making a newer one.
--------------------------------------------------------------------------------
/views/index.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
<%= extension %>
have been saved for the url <%= url %>
--------------------------------------------------------------------------------