├── .DS_Store ├── app ├── controllers │ └── app.controller.js ├── model │ └── app.model.js └── routes │ └── app.routes.js ├── package-lock.json ├── package.json ├── server.js └── yarn.lock /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suhailkakar/Node-Express-MongoDB-Restful-CRUD-API/283d6ceb2ea75768ee19b0d7c2f2f1b7d69a8402/.DS_Store -------------------------------------------------------------------------------- /app/controllers/app.controller.js: -------------------------------------------------------------------------------- 1 | const App = require("../model/app.model.js"); 2 | 3 | // Create and Save a new Message 4 | exports.create = (req, res) => { 5 | const message = new App({ 6 | message: req.body.message, 7 | }); 8 | message 9 | .save() 10 | .then((data) => { 11 | res.send(data); 12 | }) 13 | .catch((err) => { 14 | res.status(500).send({ 15 | message: 16 | err.message || "Some error occurred while creating the Message.", 17 | }); 18 | }); 19 | }; 20 | 21 | // Retrieve all messages from the database. 22 | exports.findAll = (req, res) => { 23 | App.find() 24 | .then((data) => { 25 | res.send(data); 26 | }) 27 | .catch((err) => { 28 | res.status(500).send({ 29 | message: 30 | err.message || "Some error occurred while retrieving messages.", 31 | }); 32 | }); 33 | }; 34 | 35 | // Find a single message with a messageId 36 | exports.findOne = (req, res) => { 37 | App.findById(req.params.messageId) 38 | .then((data) => { 39 | if (!data) { 40 | return res.status(404).send({ 41 | message: "Message not found with id " + req.params.messageId, 42 | }); 43 | } 44 | res.send(data); 45 | }) 46 | .catch((err) => { 47 | if (err.kind === "ObjectId") { 48 | return res.status(404).send({ 49 | message: "Message not found with id " + req.params.messageId, 50 | }); 51 | } 52 | return res.status(500).send({ 53 | message: "Error retrieving message with id " + req.params.messageId, 54 | }); 55 | }); 56 | }; 57 | 58 | // Update a message identified by the messageId in the request 59 | exports.update = (req, res) => { 60 | App.findByIdAndUpdate( 61 | req.params.messageId, 62 | { 63 | message: req.body.message, 64 | }, 65 | { new: true } 66 | ) 67 | .then((data) => { 68 | if (!data) { 69 | return res.status(404).send({ 70 | message: "Message not found with id " + req.params.messageId, 71 | }); 72 | } 73 | res.send(data); 74 | }) 75 | .catch((err) => { 76 | if (err.kind === "ObjectId") { 77 | return res.status(404).send({ 78 | message: "Message not found with id " + req.params.messageId, 79 | }); 80 | } 81 | return res.status(500).send({ 82 | message: "Error updating message with id " + req.params.messageId, 83 | }); 84 | }); 85 | }; 86 | 87 | // Delete a message with the specified messageId in the request 88 | exports.delete = (req, res) => { 89 | App.findByIdAndRemove(req.params.messageId) 90 | .then((data) => { 91 | if (!data) { 92 | return res.status(404).send({ 93 | message: "Message not found with id " + req.params.messageId, 94 | }); 95 | } 96 | res.send({ message: "Message deleted successfully!" }); 97 | }) 98 | .catch((err) => { 99 | if (err.kind === "ObjectId" || err.name === "NotFound") { 100 | return res.status(404).send({ 101 | message: "Message not found with id " + req.params.messageId, 102 | }); 103 | } 104 | return res.status(500).send({ 105 | message: "Could not delete message with id " + req.params.messageId, 106 | }); 107 | }); 108 | }; 109 | -------------------------------------------------------------------------------- /app/model/app.model.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | 3 | const AppSchema = mongoose.Schema({ 4 | message: String, 5 | }); 6 | 7 | module.exports = mongoose.model("App", AppSchema); 8 | -------------------------------------------------------------------------------- /app/routes/app.routes.js: -------------------------------------------------------------------------------- 1 | module.exports = (app) => { 2 | const App = require("../controllers/app.controller.js"); 3 | 4 | app.post("/create", App.create); 5 | 6 | app.get("/get-all", App.findAll); 7 | 8 | app.get("/message/:messageId", App.findOne); 9 | 10 | app.put("/message/:messageId", App.update); 11 | 12 | app.delete("/message/:messageId", App.delete); 13 | }; 14 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 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 | "body-parser": "^1.19.0", 12 | "express": "^4.17.1", 13 | "mongoose": "^6.0.0" 14 | } 15 | }, 16 | "node_modules/@types/node": { 17 | "version": "16.7.1", 18 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.1.tgz", 19 | "integrity": "sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A==" 20 | }, 21 | "node_modules/@types/webidl-conversions": { 22 | "version": "6.1.1", 23 | "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", 24 | "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" 25 | }, 26 | "node_modules/@types/whatwg-url": { 27 | "version": "8.2.1", 28 | "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz", 29 | "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==", 30 | "dependencies": { 31 | "@types/node": "*", 32 | "@types/webidl-conversions": "*" 33 | } 34 | }, 35 | "node_modules/accepts": { 36 | "version": "1.3.7", 37 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 38 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 39 | "dependencies": { 40 | "mime-types": "~2.1.24", 41 | "negotiator": "0.6.2" 42 | }, 43 | "engines": { 44 | "node": ">= 0.6" 45 | } 46 | }, 47 | "node_modules/array-flatten": { 48 | "version": "1.1.1", 49 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 50 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 51 | }, 52 | "node_modules/base64-js": { 53 | "version": "1.5.1", 54 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 55 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 56 | "funding": [ 57 | { 58 | "type": "github", 59 | "url": "https://github.com/sponsors/feross" 60 | }, 61 | { 62 | "type": "patreon", 63 | "url": "https://www.patreon.com/feross" 64 | }, 65 | { 66 | "type": "consulting", 67 | "url": "https://feross.org/support" 68 | } 69 | ] 70 | }, 71 | "node_modules/body-parser": { 72 | "version": "1.19.0", 73 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 74 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 75 | "dependencies": { 76 | "bytes": "3.1.0", 77 | "content-type": "~1.0.4", 78 | "debug": "2.6.9", 79 | "depd": "~1.1.2", 80 | "http-errors": "1.7.2", 81 | "iconv-lite": "0.4.24", 82 | "on-finished": "~2.3.0", 83 | "qs": "6.7.0", 84 | "raw-body": "2.4.0", 85 | "type-is": "~1.6.17" 86 | }, 87 | "engines": { 88 | "node": ">= 0.8" 89 | } 90 | }, 91 | "node_modules/bson": { 92 | "version": "4.5.1", 93 | "resolved": "https://registry.npmjs.org/bson/-/bson-4.5.1.tgz", 94 | "integrity": "sha512-XqFP74pbTVLyLy5KFxVfTUyRrC1mgOlmu/iXHfXqfCKT59jyP9lwbotGfbN59cHBRbJSamZNkrSopjv+N0SqAA==", 95 | "dependencies": { 96 | "buffer": "^5.6.0" 97 | }, 98 | "engines": { 99 | "node": ">=6.9.0" 100 | } 101 | }, 102 | "node_modules/buffer": { 103 | "version": "5.7.1", 104 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 105 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 106 | "funding": [ 107 | { 108 | "type": "github", 109 | "url": "https://github.com/sponsors/feross" 110 | }, 111 | { 112 | "type": "patreon", 113 | "url": "https://www.patreon.com/feross" 114 | }, 115 | { 116 | "type": "consulting", 117 | "url": "https://feross.org/support" 118 | } 119 | ], 120 | "dependencies": { 121 | "base64-js": "^1.3.1", 122 | "ieee754": "^1.1.13" 123 | } 124 | }, 125 | "node_modules/bytes": { 126 | "version": "3.1.0", 127 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 128 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", 129 | "engines": { 130 | "node": ">= 0.8" 131 | } 132 | }, 133 | "node_modules/content-disposition": { 134 | "version": "0.5.3", 135 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 136 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 137 | "dependencies": { 138 | "safe-buffer": "5.1.2" 139 | }, 140 | "engines": { 141 | "node": ">= 0.6" 142 | } 143 | }, 144 | "node_modules/content-type": { 145 | "version": "1.0.4", 146 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 147 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", 148 | "engines": { 149 | "node": ">= 0.6" 150 | } 151 | }, 152 | "node_modules/cookie": { 153 | "version": "0.4.0", 154 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 155 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", 156 | "engines": { 157 | "node": ">= 0.6" 158 | } 159 | }, 160 | "node_modules/cookie-signature": { 161 | "version": "1.0.6", 162 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 163 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 164 | }, 165 | "node_modules/debug": { 166 | "version": "2.6.9", 167 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 168 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 169 | "dependencies": { 170 | "ms": "2.0.0" 171 | } 172 | }, 173 | "node_modules/denque": { 174 | "version": "1.5.1", 175 | "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", 176 | "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", 177 | "engines": { 178 | "node": ">=0.10" 179 | } 180 | }, 181 | "node_modules/depd": { 182 | "version": "1.1.2", 183 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 184 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", 185 | "engines": { 186 | "node": ">= 0.6" 187 | } 188 | }, 189 | "node_modules/destroy": { 190 | "version": "1.0.4", 191 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 192 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 193 | }, 194 | "node_modules/ee-first": { 195 | "version": "1.1.1", 196 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 197 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 198 | }, 199 | "node_modules/encodeurl": { 200 | "version": "1.0.2", 201 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 202 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", 203 | "engines": { 204 | "node": ">= 0.8" 205 | } 206 | }, 207 | "node_modules/escape-html": { 208 | "version": "1.0.3", 209 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 210 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 211 | }, 212 | "node_modules/etag": { 213 | "version": "1.8.1", 214 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 215 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", 216 | "engines": { 217 | "node": ">= 0.6" 218 | } 219 | }, 220 | "node_modules/express": { 221 | "version": "4.17.1", 222 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 223 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 224 | "dependencies": { 225 | "accepts": "~1.3.7", 226 | "array-flatten": "1.1.1", 227 | "body-parser": "1.19.0", 228 | "content-disposition": "0.5.3", 229 | "content-type": "~1.0.4", 230 | "cookie": "0.4.0", 231 | "cookie-signature": "1.0.6", 232 | "debug": "2.6.9", 233 | "depd": "~1.1.2", 234 | "encodeurl": "~1.0.2", 235 | "escape-html": "~1.0.3", 236 | "etag": "~1.8.1", 237 | "finalhandler": "~1.1.2", 238 | "fresh": "0.5.2", 239 | "merge-descriptors": "1.0.1", 240 | "methods": "~1.1.2", 241 | "on-finished": "~2.3.0", 242 | "parseurl": "~1.3.3", 243 | "path-to-regexp": "0.1.7", 244 | "proxy-addr": "~2.0.5", 245 | "qs": "6.7.0", 246 | "range-parser": "~1.2.1", 247 | "safe-buffer": "5.1.2", 248 | "send": "0.17.1", 249 | "serve-static": "1.14.1", 250 | "setprototypeof": "1.1.1", 251 | "statuses": "~1.5.0", 252 | "type-is": "~1.6.18", 253 | "utils-merge": "1.0.1", 254 | "vary": "~1.1.2" 255 | }, 256 | "engines": { 257 | "node": ">= 0.10.0" 258 | } 259 | }, 260 | "node_modules/finalhandler": { 261 | "version": "1.1.2", 262 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 263 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 264 | "dependencies": { 265 | "debug": "2.6.9", 266 | "encodeurl": "~1.0.2", 267 | "escape-html": "~1.0.3", 268 | "on-finished": "~2.3.0", 269 | "parseurl": "~1.3.3", 270 | "statuses": "~1.5.0", 271 | "unpipe": "~1.0.0" 272 | }, 273 | "engines": { 274 | "node": ">= 0.8" 275 | } 276 | }, 277 | "node_modules/forwarded": { 278 | "version": "0.2.0", 279 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 280 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", 281 | "engines": { 282 | "node": ">= 0.6" 283 | } 284 | }, 285 | "node_modules/fresh": { 286 | "version": "0.5.2", 287 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 288 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", 289 | "engines": { 290 | "node": ">= 0.6" 291 | } 292 | }, 293 | "node_modules/http-errors": { 294 | "version": "1.7.2", 295 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 296 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 297 | "dependencies": { 298 | "depd": "~1.1.2", 299 | "inherits": "2.0.3", 300 | "setprototypeof": "1.1.1", 301 | "statuses": ">= 1.5.0 < 2", 302 | "toidentifier": "1.0.0" 303 | }, 304 | "engines": { 305 | "node": ">= 0.6" 306 | } 307 | }, 308 | "node_modules/iconv-lite": { 309 | "version": "0.4.24", 310 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 311 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 312 | "dependencies": { 313 | "safer-buffer": ">= 2.1.2 < 3" 314 | }, 315 | "engines": { 316 | "node": ">=0.10.0" 317 | } 318 | }, 319 | "node_modules/ieee754": { 320 | "version": "1.2.1", 321 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 322 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 323 | "funding": [ 324 | { 325 | "type": "github", 326 | "url": "https://github.com/sponsors/feross" 327 | }, 328 | { 329 | "type": "patreon", 330 | "url": "https://www.patreon.com/feross" 331 | }, 332 | { 333 | "type": "consulting", 334 | "url": "https://feross.org/support" 335 | } 336 | ] 337 | }, 338 | "node_modules/inherits": { 339 | "version": "2.0.3", 340 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 341 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 342 | }, 343 | "node_modules/ipaddr.js": { 344 | "version": "1.9.1", 345 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 346 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 347 | "engines": { 348 | "node": ">= 0.10" 349 | } 350 | }, 351 | "node_modules/kareem": { 352 | "version": "2.3.2", 353 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", 354 | "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" 355 | }, 356 | "node_modules/media-typer": { 357 | "version": "0.3.0", 358 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 359 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", 360 | "engines": { 361 | "node": ">= 0.6" 362 | } 363 | }, 364 | "node_modules/memory-pager": { 365 | "version": "1.5.0", 366 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", 367 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", 368 | "optional": true 369 | }, 370 | "node_modules/merge-descriptors": { 371 | "version": "1.0.1", 372 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 373 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 374 | }, 375 | "node_modules/methods": { 376 | "version": "1.1.2", 377 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 378 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", 379 | "engines": { 380 | "node": ">= 0.6" 381 | } 382 | }, 383 | "node_modules/mime": { 384 | "version": "1.6.0", 385 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 386 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 387 | "bin": { 388 | "mime": "cli.js" 389 | }, 390 | "engines": { 391 | "node": ">=4" 392 | } 393 | }, 394 | "node_modules/mime-db": { 395 | "version": "1.49.0", 396 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", 397 | "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", 398 | "engines": { 399 | "node": ">= 0.6" 400 | } 401 | }, 402 | "node_modules/mime-types": { 403 | "version": "2.1.32", 404 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", 405 | "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", 406 | "dependencies": { 407 | "mime-db": "1.49.0" 408 | }, 409 | "engines": { 410 | "node": ">= 0.6" 411 | } 412 | }, 413 | "node_modules/mongodb": { 414 | "version": "4.1.1", 415 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.1.1.tgz", 416 | "integrity": "sha512-fbACrWEyvr6yl0sSiCGV0sqEiBwTtDJ8iSojmkDjAfw9JnOZSAkUyv9seFSPYhPPKwxp1PDtyjvBNfMDz0WBLQ==", 417 | "dependencies": { 418 | "bson": "^4.5.1", 419 | "denque": "^1.5.0", 420 | "mongodb-connection-string-url": "^2.0.0" 421 | }, 422 | "engines": { 423 | "node": ">=12.9.0" 424 | }, 425 | "optionalDependencies": { 426 | "saslprep": "^1.0.0" 427 | } 428 | }, 429 | "node_modules/mongodb-connection-string-url": { 430 | "version": "2.0.0", 431 | "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.0.0.tgz", 432 | "integrity": "sha512-M0I1vyLoq5+HQTuPSJWbt+hIXsMCfE8sS1fS5mvP9R2DOMoi2ZD32yWqgBIITyu0dFu4qtS50erxKjvUeBiyog==", 433 | "dependencies": { 434 | "@types/whatwg-url": "^8.2.1", 435 | "whatwg-url": "^9.1.0" 436 | } 437 | }, 438 | "node_modules/mongoose": { 439 | "version": "6.0.0", 440 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.0.0.tgz", 441 | "integrity": "sha512-aS1y1xEjFLz8wYVvJiI9T/ut/BssC2Q4K/XtG1oqHcyiMuV+qPOpRpklSmC2Z/Q7A2fE2NlBZatQGf7FnoAlrA==", 442 | "dependencies": { 443 | "bson": "^4.2.2", 444 | "kareem": "2.3.2", 445 | "mongodb": "4.1.1", 446 | "mpath": "0.8.3", 447 | "mquery": "4.0.0", 448 | "ms": "2.1.2", 449 | "regexp-clone": "1.0.0", 450 | "sift": "13.5.2", 451 | "sliced": "1.0.1" 452 | }, 453 | "engines": { 454 | "node": ">=12.0.0" 455 | }, 456 | "funding": { 457 | "type": "opencollective", 458 | "url": "https://opencollective.com/mongoose" 459 | } 460 | }, 461 | "node_modules/mongoose/node_modules/ms": { 462 | "version": "2.1.2", 463 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 464 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 465 | }, 466 | "node_modules/mpath": { 467 | "version": "0.8.3", 468 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz", 469 | "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==", 470 | "engines": { 471 | "node": ">=4.0.0" 472 | } 473 | }, 474 | "node_modules/mquery": { 475 | "version": "4.0.0", 476 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.0.tgz", 477 | "integrity": "sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==", 478 | "dependencies": { 479 | "debug": "4.x", 480 | "regexp-clone": "^1.0.0", 481 | "sliced": "1.0.1" 482 | }, 483 | "engines": { 484 | "node": ">=12.0.0" 485 | } 486 | }, 487 | "node_modules/mquery/node_modules/debug": { 488 | "version": "4.3.2", 489 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", 490 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", 491 | "dependencies": { 492 | "ms": "2.1.2" 493 | }, 494 | "engines": { 495 | "node": ">=6.0" 496 | }, 497 | "peerDependenciesMeta": { 498 | "supports-color": { 499 | "optional": true 500 | } 501 | } 502 | }, 503 | "node_modules/mquery/node_modules/ms": { 504 | "version": "2.1.2", 505 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 506 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 507 | }, 508 | "node_modules/ms": { 509 | "version": "2.0.0", 510 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 511 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 512 | }, 513 | "node_modules/negotiator": { 514 | "version": "0.6.2", 515 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 516 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", 517 | "engines": { 518 | "node": ">= 0.6" 519 | } 520 | }, 521 | "node_modules/on-finished": { 522 | "version": "2.3.0", 523 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 524 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 525 | "dependencies": { 526 | "ee-first": "1.1.1" 527 | }, 528 | "engines": { 529 | "node": ">= 0.8" 530 | } 531 | }, 532 | "node_modules/parseurl": { 533 | "version": "1.3.3", 534 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 535 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", 536 | "engines": { 537 | "node": ">= 0.8" 538 | } 539 | }, 540 | "node_modules/path-to-regexp": { 541 | "version": "0.1.7", 542 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 543 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 544 | }, 545 | "node_modules/proxy-addr": { 546 | "version": "2.0.7", 547 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 548 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 549 | "dependencies": { 550 | "forwarded": "0.2.0", 551 | "ipaddr.js": "1.9.1" 552 | }, 553 | "engines": { 554 | "node": ">= 0.10" 555 | } 556 | }, 557 | "node_modules/punycode": { 558 | "version": "2.1.1", 559 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 560 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 561 | "engines": { 562 | "node": ">=6" 563 | } 564 | }, 565 | "node_modules/qs": { 566 | "version": "6.7.0", 567 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 568 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", 569 | "engines": { 570 | "node": ">=0.6" 571 | } 572 | }, 573 | "node_modules/range-parser": { 574 | "version": "1.2.1", 575 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 576 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", 577 | "engines": { 578 | "node": ">= 0.6" 579 | } 580 | }, 581 | "node_modules/raw-body": { 582 | "version": "2.4.0", 583 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 584 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 585 | "dependencies": { 586 | "bytes": "3.1.0", 587 | "http-errors": "1.7.2", 588 | "iconv-lite": "0.4.24", 589 | "unpipe": "1.0.0" 590 | }, 591 | "engines": { 592 | "node": ">= 0.8" 593 | } 594 | }, 595 | "node_modules/regexp-clone": { 596 | "version": "1.0.0", 597 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", 598 | "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" 599 | }, 600 | "node_modules/safe-buffer": { 601 | "version": "5.1.2", 602 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 603 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 604 | }, 605 | "node_modules/safer-buffer": { 606 | "version": "2.1.2", 607 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 608 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 609 | }, 610 | "node_modules/saslprep": { 611 | "version": "1.0.3", 612 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", 613 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", 614 | "optional": true, 615 | "dependencies": { 616 | "sparse-bitfield": "^3.0.3" 617 | }, 618 | "engines": { 619 | "node": ">=6" 620 | } 621 | }, 622 | "node_modules/send": { 623 | "version": "0.17.1", 624 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 625 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 626 | "dependencies": { 627 | "debug": "2.6.9", 628 | "depd": "~1.1.2", 629 | "destroy": "~1.0.4", 630 | "encodeurl": "~1.0.2", 631 | "escape-html": "~1.0.3", 632 | "etag": "~1.8.1", 633 | "fresh": "0.5.2", 634 | "http-errors": "~1.7.2", 635 | "mime": "1.6.0", 636 | "ms": "2.1.1", 637 | "on-finished": "~2.3.0", 638 | "range-parser": "~1.2.1", 639 | "statuses": "~1.5.0" 640 | }, 641 | "engines": { 642 | "node": ">= 0.8.0" 643 | } 644 | }, 645 | "node_modules/send/node_modules/ms": { 646 | "version": "2.1.1", 647 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 648 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 649 | }, 650 | "node_modules/serve-static": { 651 | "version": "1.14.1", 652 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 653 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 654 | "dependencies": { 655 | "encodeurl": "~1.0.2", 656 | "escape-html": "~1.0.3", 657 | "parseurl": "~1.3.3", 658 | "send": "0.17.1" 659 | }, 660 | "engines": { 661 | "node": ">= 0.8.0" 662 | } 663 | }, 664 | "node_modules/setprototypeof": { 665 | "version": "1.1.1", 666 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 667 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 668 | }, 669 | "node_modules/sift": { 670 | "version": "13.5.2", 671 | "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", 672 | "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" 673 | }, 674 | "node_modules/sliced": { 675 | "version": "1.0.1", 676 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", 677 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" 678 | }, 679 | "node_modules/sparse-bitfield": { 680 | "version": "3.0.3", 681 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", 682 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", 683 | "optional": true, 684 | "dependencies": { 685 | "memory-pager": "^1.0.2" 686 | } 687 | }, 688 | "node_modules/statuses": { 689 | "version": "1.5.0", 690 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 691 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", 692 | "engines": { 693 | "node": ">= 0.6" 694 | } 695 | }, 696 | "node_modules/toidentifier": { 697 | "version": "1.0.0", 698 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 699 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", 700 | "engines": { 701 | "node": ">=0.6" 702 | } 703 | }, 704 | "node_modules/tr46": { 705 | "version": "2.1.0", 706 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", 707 | "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", 708 | "dependencies": { 709 | "punycode": "^2.1.1" 710 | }, 711 | "engines": { 712 | "node": ">=8" 713 | } 714 | }, 715 | "node_modules/type-is": { 716 | "version": "1.6.18", 717 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 718 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 719 | "dependencies": { 720 | "media-typer": "0.3.0", 721 | "mime-types": "~2.1.24" 722 | }, 723 | "engines": { 724 | "node": ">= 0.6" 725 | } 726 | }, 727 | "node_modules/unpipe": { 728 | "version": "1.0.0", 729 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 730 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", 731 | "engines": { 732 | "node": ">= 0.8" 733 | } 734 | }, 735 | "node_modules/utils-merge": { 736 | "version": "1.0.1", 737 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 738 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", 739 | "engines": { 740 | "node": ">= 0.4.0" 741 | } 742 | }, 743 | "node_modules/vary": { 744 | "version": "1.1.2", 745 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 746 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", 747 | "engines": { 748 | "node": ">= 0.8" 749 | } 750 | }, 751 | "node_modules/webidl-conversions": { 752 | "version": "6.1.0", 753 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", 754 | "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", 755 | "engines": { 756 | "node": ">=10.4" 757 | } 758 | }, 759 | "node_modules/whatwg-url": { 760 | "version": "9.1.0", 761 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-9.1.0.tgz", 762 | "integrity": "sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==", 763 | "dependencies": { 764 | "tr46": "^2.1.0", 765 | "webidl-conversions": "^6.1.0" 766 | }, 767 | "engines": { 768 | "node": ">=12" 769 | } 770 | } 771 | }, 772 | "dependencies": { 773 | "@types/node": { 774 | "version": "16.7.1", 775 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.1.tgz", 776 | "integrity": "sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A==" 777 | }, 778 | "@types/webidl-conversions": { 779 | "version": "6.1.1", 780 | "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", 781 | "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" 782 | }, 783 | "@types/whatwg-url": { 784 | "version": "8.2.1", 785 | "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz", 786 | "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==", 787 | "requires": { 788 | "@types/node": "*", 789 | "@types/webidl-conversions": "*" 790 | } 791 | }, 792 | "accepts": { 793 | "version": "1.3.7", 794 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 795 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 796 | "requires": { 797 | "mime-types": "~2.1.24", 798 | "negotiator": "0.6.2" 799 | } 800 | }, 801 | "array-flatten": { 802 | "version": "1.1.1", 803 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 804 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 805 | }, 806 | "base64-js": { 807 | "version": "1.5.1", 808 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 809 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 810 | }, 811 | "body-parser": { 812 | "version": "1.19.0", 813 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 814 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 815 | "requires": { 816 | "bytes": "3.1.0", 817 | "content-type": "~1.0.4", 818 | "debug": "2.6.9", 819 | "depd": "~1.1.2", 820 | "http-errors": "1.7.2", 821 | "iconv-lite": "0.4.24", 822 | "on-finished": "~2.3.0", 823 | "qs": "6.7.0", 824 | "raw-body": "2.4.0", 825 | "type-is": "~1.6.17" 826 | } 827 | }, 828 | "bson": { 829 | "version": "4.5.1", 830 | "resolved": "https://registry.npmjs.org/bson/-/bson-4.5.1.tgz", 831 | "integrity": "sha512-XqFP74pbTVLyLy5KFxVfTUyRrC1mgOlmu/iXHfXqfCKT59jyP9lwbotGfbN59cHBRbJSamZNkrSopjv+N0SqAA==", 832 | "requires": { 833 | "buffer": "^5.6.0" 834 | } 835 | }, 836 | "buffer": { 837 | "version": "5.7.1", 838 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 839 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 840 | "requires": { 841 | "base64-js": "^1.3.1", 842 | "ieee754": "^1.1.13" 843 | } 844 | }, 845 | "bytes": { 846 | "version": "3.1.0", 847 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 848 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 849 | }, 850 | "content-disposition": { 851 | "version": "0.5.3", 852 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 853 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 854 | "requires": { 855 | "safe-buffer": "5.1.2" 856 | } 857 | }, 858 | "content-type": { 859 | "version": "1.0.4", 860 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 861 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 862 | }, 863 | "cookie": { 864 | "version": "0.4.0", 865 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 866 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 867 | }, 868 | "cookie-signature": { 869 | "version": "1.0.6", 870 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 871 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 872 | }, 873 | "debug": { 874 | "version": "2.6.9", 875 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 876 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 877 | "requires": { 878 | "ms": "2.0.0" 879 | } 880 | }, 881 | "denque": { 882 | "version": "1.5.1", 883 | "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", 884 | "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" 885 | }, 886 | "depd": { 887 | "version": "1.1.2", 888 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 889 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 890 | }, 891 | "destroy": { 892 | "version": "1.0.4", 893 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 894 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 895 | }, 896 | "ee-first": { 897 | "version": "1.1.1", 898 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 899 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 900 | }, 901 | "encodeurl": { 902 | "version": "1.0.2", 903 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 904 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 905 | }, 906 | "escape-html": { 907 | "version": "1.0.3", 908 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 909 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 910 | }, 911 | "etag": { 912 | "version": "1.8.1", 913 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 914 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 915 | }, 916 | "express": { 917 | "version": "4.17.1", 918 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 919 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 920 | "requires": { 921 | "accepts": "~1.3.7", 922 | "array-flatten": "1.1.1", 923 | "body-parser": "1.19.0", 924 | "content-disposition": "0.5.3", 925 | "content-type": "~1.0.4", 926 | "cookie": "0.4.0", 927 | "cookie-signature": "1.0.6", 928 | "debug": "2.6.9", 929 | "depd": "~1.1.2", 930 | "encodeurl": "~1.0.2", 931 | "escape-html": "~1.0.3", 932 | "etag": "~1.8.1", 933 | "finalhandler": "~1.1.2", 934 | "fresh": "0.5.2", 935 | "merge-descriptors": "1.0.1", 936 | "methods": "~1.1.2", 937 | "on-finished": "~2.3.0", 938 | "parseurl": "~1.3.3", 939 | "path-to-regexp": "0.1.7", 940 | "proxy-addr": "~2.0.5", 941 | "qs": "6.7.0", 942 | "range-parser": "~1.2.1", 943 | "safe-buffer": "5.1.2", 944 | "send": "0.17.1", 945 | "serve-static": "1.14.1", 946 | "setprototypeof": "1.1.1", 947 | "statuses": "~1.5.0", 948 | "type-is": "~1.6.18", 949 | "utils-merge": "1.0.1", 950 | "vary": "~1.1.2" 951 | } 952 | }, 953 | "finalhandler": { 954 | "version": "1.1.2", 955 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 956 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 957 | "requires": { 958 | "debug": "2.6.9", 959 | "encodeurl": "~1.0.2", 960 | "escape-html": "~1.0.3", 961 | "on-finished": "~2.3.0", 962 | "parseurl": "~1.3.3", 963 | "statuses": "~1.5.0", 964 | "unpipe": "~1.0.0" 965 | } 966 | }, 967 | "forwarded": { 968 | "version": "0.2.0", 969 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 970 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 971 | }, 972 | "fresh": { 973 | "version": "0.5.2", 974 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 975 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 976 | }, 977 | "http-errors": { 978 | "version": "1.7.2", 979 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 980 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 981 | "requires": { 982 | "depd": "~1.1.2", 983 | "inherits": "2.0.3", 984 | "setprototypeof": "1.1.1", 985 | "statuses": ">= 1.5.0 < 2", 986 | "toidentifier": "1.0.0" 987 | } 988 | }, 989 | "iconv-lite": { 990 | "version": "0.4.24", 991 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 992 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 993 | "requires": { 994 | "safer-buffer": ">= 2.1.2 < 3" 995 | } 996 | }, 997 | "ieee754": { 998 | "version": "1.2.1", 999 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 1000 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 1001 | }, 1002 | "inherits": { 1003 | "version": "2.0.3", 1004 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1005 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1006 | }, 1007 | "ipaddr.js": { 1008 | "version": "1.9.1", 1009 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 1010 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 1011 | }, 1012 | "kareem": { 1013 | "version": "2.3.2", 1014 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", 1015 | "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" 1016 | }, 1017 | "media-typer": { 1018 | "version": "0.3.0", 1019 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 1020 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 1021 | }, 1022 | "memory-pager": { 1023 | "version": "1.5.0", 1024 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", 1025 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", 1026 | "optional": true 1027 | }, 1028 | "merge-descriptors": { 1029 | "version": "1.0.1", 1030 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 1031 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 1032 | }, 1033 | "methods": { 1034 | "version": "1.1.2", 1035 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 1036 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 1037 | }, 1038 | "mime": { 1039 | "version": "1.6.0", 1040 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1041 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 1042 | }, 1043 | "mime-db": { 1044 | "version": "1.49.0", 1045 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", 1046 | "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" 1047 | }, 1048 | "mime-types": { 1049 | "version": "2.1.32", 1050 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", 1051 | "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", 1052 | "requires": { 1053 | "mime-db": "1.49.0" 1054 | } 1055 | }, 1056 | "mongodb": { 1057 | "version": "4.1.1", 1058 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.1.1.tgz", 1059 | "integrity": "sha512-fbACrWEyvr6yl0sSiCGV0sqEiBwTtDJ8iSojmkDjAfw9JnOZSAkUyv9seFSPYhPPKwxp1PDtyjvBNfMDz0WBLQ==", 1060 | "requires": { 1061 | "bson": "^4.5.1", 1062 | "denque": "^1.5.0", 1063 | "mongodb-connection-string-url": "^2.0.0", 1064 | "saslprep": "^1.0.0" 1065 | } 1066 | }, 1067 | "mongodb-connection-string-url": { 1068 | "version": "2.0.0", 1069 | "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.0.0.tgz", 1070 | "integrity": "sha512-M0I1vyLoq5+HQTuPSJWbt+hIXsMCfE8sS1fS5mvP9R2DOMoi2ZD32yWqgBIITyu0dFu4qtS50erxKjvUeBiyog==", 1071 | "requires": { 1072 | "@types/whatwg-url": "^8.2.1", 1073 | "whatwg-url": "^9.1.0" 1074 | } 1075 | }, 1076 | "mongoose": { 1077 | "version": "6.0.0", 1078 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.0.0.tgz", 1079 | "integrity": "sha512-aS1y1xEjFLz8wYVvJiI9T/ut/BssC2Q4K/XtG1oqHcyiMuV+qPOpRpklSmC2Z/Q7A2fE2NlBZatQGf7FnoAlrA==", 1080 | "requires": { 1081 | "bson": "^4.2.2", 1082 | "kareem": "2.3.2", 1083 | "mongodb": "4.1.1", 1084 | "mpath": "0.8.3", 1085 | "mquery": "4.0.0", 1086 | "ms": "2.1.2", 1087 | "regexp-clone": "1.0.0", 1088 | "sift": "13.5.2", 1089 | "sliced": "1.0.1" 1090 | }, 1091 | "dependencies": { 1092 | "ms": { 1093 | "version": "2.1.2", 1094 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1095 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1096 | } 1097 | } 1098 | }, 1099 | "mpath": { 1100 | "version": "0.8.3", 1101 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz", 1102 | "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==" 1103 | }, 1104 | "mquery": { 1105 | "version": "4.0.0", 1106 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.0.tgz", 1107 | "integrity": "sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==", 1108 | "requires": { 1109 | "debug": "4.x", 1110 | "regexp-clone": "^1.0.0", 1111 | "sliced": "1.0.1" 1112 | }, 1113 | "dependencies": { 1114 | "debug": { 1115 | "version": "4.3.2", 1116 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", 1117 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", 1118 | "requires": { 1119 | "ms": "2.1.2" 1120 | } 1121 | }, 1122 | "ms": { 1123 | "version": "2.1.2", 1124 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1125 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1126 | } 1127 | } 1128 | }, 1129 | "ms": { 1130 | "version": "2.0.0", 1131 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1132 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1133 | }, 1134 | "negotiator": { 1135 | "version": "0.6.2", 1136 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 1137 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 1138 | }, 1139 | "on-finished": { 1140 | "version": "2.3.0", 1141 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 1142 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 1143 | "requires": { 1144 | "ee-first": "1.1.1" 1145 | } 1146 | }, 1147 | "parseurl": { 1148 | "version": "1.3.3", 1149 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 1150 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 1151 | }, 1152 | "path-to-regexp": { 1153 | "version": "0.1.7", 1154 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1155 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 1156 | }, 1157 | "proxy-addr": { 1158 | "version": "2.0.7", 1159 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 1160 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 1161 | "requires": { 1162 | "forwarded": "0.2.0", 1163 | "ipaddr.js": "1.9.1" 1164 | } 1165 | }, 1166 | "punycode": { 1167 | "version": "2.1.1", 1168 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1169 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 1170 | }, 1171 | "qs": { 1172 | "version": "6.7.0", 1173 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 1174 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 1175 | }, 1176 | "range-parser": { 1177 | "version": "1.2.1", 1178 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 1179 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 1180 | }, 1181 | "raw-body": { 1182 | "version": "2.4.0", 1183 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 1184 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 1185 | "requires": { 1186 | "bytes": "3.1.0", 1187 | "http-errors": "1.7.2", 1188 | "iconv-lite": "0.4.24", 1189 | "unpipe": "1.0.0" 1190 | } 1191 | }, 1192 | "regexp-clone": { 1193 | "version": "1.0.0", 1194 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", 1195 | "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" 1196 | }, 1197 | "safe-buffer": { 1198 | "version": "5.1.2", 1199 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1200 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1201 | }, 1202 | "safer-buffer": { 1203 | "version": "2.1.2", 1204 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1205 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1206 | }, 1207 | "saslprep": { 1208 | "version": "1.0.3", 1209 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", 1210 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", 1211 | "optional": true, 1212 | "requires": { 1213 | "sparse-bitfield": "^3.0.3" 1214 | } 1215 | }, 1216 | "send": { 1217 | "version": "0.17.1", 1218 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 1219 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 1220 | "requires": { 1221 | "debug": "2.6.9", 1222 | "depd": "~1.1.2", 1223 | "destroy": "~1.0.4", 1224 | "encodeurl": "~1.0.2", 1225 | "escape-html": "~1.0.3", 1226 | "etag": "~1.8.1", 1227 | "fresh": "0.5.2", 1228 | "http-errors": "~1.7.2", 1229 | "mime": "1.6.0", 1230 | "ms": "2.1.1", 1231 | "on-finished": "~2.3.0", 1232 | "range-parser": "~1.2.1", 1233 | "statuses": "~1.5.0" 1234 | }, 1235 | "dependencies": { 1236 | "ms": { 1237 | "version": "2.1.1", 1238 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 1239 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 1240 | } 1241 | } 1242 | }, 1243 | "serve-static": { 1244 | "version": "1.14.1", 1245 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 1246 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 1247 | "requires": { 1248 | "encodeurl": "~1.0.2", 1249 | "escape-html": "~1.0.3", 1250 | "parseurl": "~1.3.3", 1251 | "send": "0.17.1" 1252 | } 1253 | }, 1254 | "setprototypeof": { 1255 | "version": "1.1.1", 1256 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 1257 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 1258 | }, 1259 | "sift": { 1260 | "version": "13.5.2", 1261 | "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", 1262 | "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" 1263 | }, 1264 | "sliced": { 1265 | "version": "1.0.1", 1266 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", 1267 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" 1268 | }, 1269 | "sparse-bitfield": { 1270 | "version": "3.0.3", 1271 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", 1272 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", 1273 | "optional": true, 1274 | "requires": { 1275 | "memory-pager": "^1.0.2" 1276 | } 1277 | }, 1278 | "statuses": { 1279 | "version": "1.5.0", 1280 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 1281 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 1282 | }, 1283 | "toidentifier": { 1284 | "version": "1.0.0", 1285 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 1286 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 1287 | }, 1288 | "tr46": { 1289 | "version": "2.1.0", 1290 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", 1291 | "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", 1292 | "requires": { 1293 | "punycode": "^2.1.1" 1294 | } 1295 | }, 1296 | "type-is": { 1297 | "version": "1.6.18", 1298 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 1299 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 1300 | "requires": { 1301 | "media-typer": "0.3.0", 1302 | "mime-types": "~2.1.24" 1303 | } 1304 | }, 1305 | "unpipe": { 1306 | "version": "1.0.0", 1307 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1308 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 1309 | }, 1310 | "utils-merge": { 1311 | "version": "1.0.1", 1312 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 1313 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 1314 | }, 1315 | "vary": { 1316 | "version": "1.1.2", 1317 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1318 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 1319 | }, 1320 | "webidl-conversions": { 1321 | "version": "6.1.0", 1322 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", 1323 | "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" 1324 | }, 1325 | "whatwg-url": { 1326 | "version": "9.1.0", 1327 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-9.1.0.tgz", 1328 | "integrity": "sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==", 1329 | "requires": { 1330 | "tr46": "^2.1.0", 1331 | "webidl-conversions": "^6.1.0" 1332 | } 1333 | } 1334 | } 1335 | } 1336 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "body-parser": "^1.19.0", 14 | "express": "^4.17.1", 15 | "mongoose": "^6.0.0" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | const express = require("express"); 2 | const bodyParser = require("body-parser"); 3 | const mongoose = require("mongoose"); 4 | 5 | mongoose.Promise = global.Promise; 6 | mongoose 7 | .connect(YOUR_MONGODB_URL, { 8 | useNewUrlParser: true, 9 | }) 10 | .then(() => { 11 | console.log("Successfully connected to the database"); 12 | }) 13 | .catch((err) => { 14 | console.log("Could not connect to the database. Error...", err); 15 | process.exit(); 16 | }); 17 | 18 | const app = express(); 19 | 20 | app.use(bodyParser.urlencoded({ extended: true })); 21 | 22 | app.use(bodyParser.json()); 23 | 24 | app.get("/", (req, res) => { 25 | res.json({ message: "Server is running :D" }); 26 | }); 27 | 28 | let PORT = 8080; 29 | 30 | require("./app/routes/app.routes.js")(app); 31 | app.listen(PORT, () => { 32 | console.log(`Server is listening on port ${PORT}`); 33 | }); 34 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/node@*": 6 | "integrity" "sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A==" 7 | "resolved" "https://registry.npmjs.org/@types/node/-/node-16.7.1.tgz" 8 | "version" "16.7.1" 9 | 10 | "@types/webidl-conversions@*": 11 | "integrity" "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" 12 | "resolved" "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz" 13 | "version" "6.1.1" 14 | 15 | "@types/whatwg-url@^8.2.1": 16 | "integrity" "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==" 17 | "resolved" "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz" 18 | "version" "8.2.1" 19 | dependencies: 20 | "@types/node" "*" 21 | "@types/webidl-conversions" "*" 22 | 23 | "accepts@~1.3.7": 24 | "integrity" "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==" 25 | "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" 26 | "version" "1.3.7" 27 | dependencies: 28 | "mime-types" "~2.1.24" 29 | "negotiator" "0.6.2" 30 | 31 | "array-flatten@1.1.1": 32 | "integrity" "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 33 | "resolved" "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" 34 | "version" "1.1.1" 35 | 36 | "base64-js@^1.3.1": 37 | "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 38 | "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" 39 | "version" "1.5.1" 40 | 41 | "body-parser@^1.19.0", "body-parser@1.19.0": 42 | "integrity" "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==" 43 | "resolved" "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz" 44 | "version" "1.19.0" 45 | dependencies: 46 | "bytes" "3.1.0" 47 | "content-type" "~1.0.4" 48 | "debug" "2.6.9" 49 | "depd" "~1.1.2" 50 | "http-errors" "1.7.2" 51 | "iconv-lite" "0.4.24" 52 | "on-finished" "~2.3.0" 53 | "qs" "6.7.0" 54 | "raw-body" "2.4.0" 55 | "type-is" "~1.6.17" 56 | 57 | "bson@^4.2.2", "bson@^4.5.1": 58 | "integrity" "sha512-XqFP74pbTVLyLy5KFxVfTUyRrC1mgOlmu/iXHfXqfCKT59jyP9lwbotGfbN59cHBRbJSamZNkrSopjv+N0SqAA==" 59 | "resolved" "https://registry.npmjs.org/bson/-/bson-4.5.1.tgz" 60 | "version" "4.5.1" 61 | dependencies: 62 | "buffer" "^5.6.0" 63 | 64 | "buffer@^5.6.0": 65 | "integrity" "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==" 66 | "resolved" "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" 67 | "version" "5.7.1" 68 | dependencies: 69 | "base64-js" "^1.3.1" 70 | "ieee754" "^1.1.13" 71 | 72 | "bytes@3.1.0": 73 | "integrity" "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 74 | "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" 75 | "version" "3.1.0" 76 | 77 | "content-disposition@0.5.3": 78 | "integrity" "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==" 79 | "resolved" "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz" 80 | "version" "0.5.3" 81 | dependencies: 82 | "safe-buffer" "5.1.2" 83 | 84 | "content-type@~1.0.4": 85 | "integrity" "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 86 | "resolved" "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" 87 | "version" "1.0.4" 88 | 89 | "cookie-signature@1.0.6": 90 | "integrity" "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 91 | "resolved" "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" 92 | "version" "1.0.6" 93 | 94 | "cookie@0.4.0": 95 | "integrity" "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 96 | "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz" 97 | "version" "0.4.0" 98 | 99 | "debug@2.6.9": 100 | "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" 101 | "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" 102 | "version" "2.6.9" 103 | dependencies: 104 | "ms" "2.0.0" 105 | 106 | "debug@4.x": 107 | "integrity" "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==" 108 | "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" 109 | "version" "4.3.2" 110 | dependencies: 111 | "ms" "2.1.2" 112 | 113 | "denque@^1.5.0": 114 | "integrity" "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" 115 | "resolved" "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz" 116 | "version" "1.5.1" 117 | 118 | "depd@~1.1.2": 119 | "integrity" "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 120 | "resolved" "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" 121 | "version" "1.1.2" 122 | 123 | "destroy@~1.0.4": 124 | "integrity" "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 125 | "resolved" "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" 126 | "version" "1.0.4" 127 | 128 | "ee-first@1.1.1": 129 | "integrity" "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 130 | "resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" 131 | "version" "1.1.1" 132 | 133 | "encodeurl@~1.0.2": 134 | "integrity" "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 135 | "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" 136 | "version" "1.0.2" 137 | 138 | "escape-html@~1.0.3": 139 | "integrity" "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 140 | "resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" 141 | "version" "1.0.3" 142 | 143 | "etag@~1.8.1": 144 | "integrity" "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 145 | "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" 146 | "version" "1.8.1" 147 | 148 | "express@^4.17.1": 149 | "integrity" "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==" 150 | "resolved" "https://registry.npmjs.org/express/-/express-4.17.1.tgz" 151 | "version" "4.17.1" 152 | dependencies: 153 | "accepts" "~1.3.7" 154 | "array-flatten" "1.1.1" 155 | "body-parser" "1.19.0" 156 | "content-disposition" "0.5.3" 157 | "content-type" "~1.0.4" 158 | "cookie" "0.4.0" 159 | "cookie-signature" "1.0.6" 160 | "debug" "2.6.9" 161 | "depd" "~1.1.2" 162 | "encodeurl" "~1.0.2" 163 | "escape-html" "~1.0.3" 164 | "etag" "~1.8.1" 165 | "finalhandler" "~1.1.2" 166 | "fresh" "0.5.2" 167 | "merge-descriptors" "1.0.1" 168 | "methods" "~1.1.2" 169 | "on-finished" "~2.3.0" 170 | "parseurl" "~1.3.3" 171 | "path-to-regexp" "0.1.7" 172 | "proxy-addr" "~2.0.5" 173 | "qs" "6.7.0" 174 | "range-parser" "~1.2.1" 175 | "safe-buffer" "5.1.2" 176 | "send" "0.17.1" 177 | "serve-static" "1.14.1" 178 | "setprototypeof" "1.1.1" 179 | "statuses" "~1.5.0" 180 | "type-is" "~1.6.18" 181 | "utils-merge" "1.0.1" 182 | "vary" "~1.1.2" 183 | 184 | "finalhandler@~1.1.2": 185 | "integrity" "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==" 186 | "resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" 187 | "version" "1.1.2" 188 | dependencies: 189 | "debug" "2.6.9" 190 | "encodeurl" "~1.0.2" 191 | "escape-html" "~1.0.3" 192 | "on-finished" "~2.3.0" 193 | "parseurl" "~1.3.3" 194 | "statuses" "~1.5.0" 195 | "unpipe" "~1.0.0" 196 | 197 | "forwarded@0.2.0": 198 | "integrity" "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 199 | "resolved" "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" 200 | "version" "0.2.0" 201 | 202 | "fresh@0.5.2": 203 | "integrity" "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 204 | "resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" 205 | "version" "0.5.2" 206 | 207 | "http-errors@~1.7.2", "http-errors@1.7.2": 208 | "integrity" "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==" 209 | "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz" 210 | "version" "1.7.2" 211 | dependencies: 212 | "depd" "~1.1.2" 213 | "inherits" "2.0.3" 214 | "setprototypeof" "1.1.1" 215 | "statuses" ">= 1.5.0 < 2" 216 | "toidentifier" "1.0.0" 217 | 218 | "iconv-lite@0.4.24": 219 | "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" 220 | "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" 221 | "version" "0.4.24" 222 | dependencies: 223 | "safer-buffer" ">= 2.1.2 < 3" 224 | 225 | "ieee754@^1.1.13": 226 | "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 227 | "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" 228 | "version" "1.2.1" 229 | 230 | "inherits@2.0.3": 231 | "integrity" "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 232 | "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" 233 | "version" "2.0.3" 234 | 235 | "ipaddr.js@1.9.1": 236 | "integrity" "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 237 | "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" 238 | "version" "1.9.1" 239 | 240 | "kareem@2.3.2": 241 | "integrity" "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" 242 | "resolved" "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz" 243 | "version" "2.3.2" 244 | 245 | "media-typer@0.3.0": 246 | "integrity" "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 247 | "resolved" "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" 248 | "version" "0.3.0" 249 | 250 | "memory-pager@^1.0.2": 251 | "integrity" "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" 252 | "resolved" "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz" 253 | "version" "1.5.0" 254 | 255 | "merge-descriptors@1.0.1": 256 | "integrity" "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 257 | "resolved" "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" 258 | "version" "1.0.1" 259 | 260 | "methods@~1.1.2": 261 | "integrity" "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 262 | "resolved" "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" 263 | "version" "1.1.2" 264 | 265 | "mime-db@1.49.0": 266 | "integrity" "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" 267 | "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz" 268 | "version" "1.49.0" 269 | 270 | "mime-types@~2.1.24": 271 | "integrity" "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==" 272 | "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz" 273 | "version" "2.1.32" 274 | dependencies: 275 | "mime-db" "1.49.0" 276 | 277 | "mime@1.6.0": 278 | "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 279 | "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" 280 | "version" "1.6.0" 281 | 282 | "mongodb-connection-string-url@^2.0.0": 283 | "integrity" "sha512-M0I1vyLoq5+HQTuPSJWbt+hIXsMCfE8sS1fS5mvP9R2DOMoi2ZD32yWqgBIITyu0dFu4qtS50erxKjvUeBiyog==" 284 | "resolved" "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.0.0.tgz" 285 | "version" "2.0.0" 286 | dependencies: 287 | "@types/whatwg-url" "^8.2.1" 288 | "whatwg-url" "^9.1.0" 289 | 290 | "mongodb@4.1.1": 291 | "integrity" "sha512-fbACrWEyvr6yl0sSiCGV0sqEiBwTtDJ8iSojmkDjAfw9JnOZSAkUyv9seFSPYhPPKwxp1PDtyjvBNfMDz0WBLQ==" 292 | "resolved" "https://registry.npmjs.org/mongodb/-/mongodb-4.1.1.tgz" 293 | "version" "4.1.1" 294 | dependencies: 295 | "bson" "^4.5.1" 296 | "denque" "^1.5.0" 297 | "mongodb-connection-string-url" "^2.0.0" 298 | optionalDependencies: 299 | "saslprep" "^1.0.0" 300 | 301 | "mongoose@^6.0.0": 302 | "integrity" "sha512-aS1y1xEjFLz8wYVvJiI9T/ut/BssC2Q4K/XtG1oqHcyiMuV+qPOpRpklSmC2Z/Q7A2fE2NlBZatQGf7FnoAlrA==" 303 | "resolved" "https://registry.npmjs.org/mongoose/-/mongoose-6.0.0.tgz" 304 | "version" "6.0.0" 305 | dependencies: 306 | "bson" "^4.2.2" 307 | "kareem" "2.3.2" 308 | "mongodb" "4.1.1" 309 | "mpath" "0.8.3" 310 | "mquery" "4.0.0" 311 | "ms" "2.1.2" 312 | "regexp-clone" "1.0.0" 313 | "sift" "13.5.2" 314 | "sliced" "1.0.1" 315 | 316 | "mpath@0.8.3": 317 | "integrity" "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==" 318 | "resolved" "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz" 319 | "version" "0.8.3" 320 | 321 | "mquery@4.0.0": 322 | "integrity" "sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==" 323 | "resolved" "https://registry.npmjs.org/mquery/-/mquery-4.0.0.tgz" 324 | "version" "4.0.0" 325 | dependencies: 326 | "debug" "4.x" 327 | "regexp-clone" "^1.0.0" 328 | "sliced" "1.0.1" 329 | 330 | "ms@2.0.0": 331 | "integrity" "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 332 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" 333 | "version" "2.0.0" 334 | 335 | "ms@2.1.1": 336 | "integrity" "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 337 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" 338 | "version" "2.1.1" 339 | 340 | "ms@2.1.2": 341 | "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 342 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 343 | "version" "2.1.2" 344 | 345 | "negotiator@0.6.2": 346 | "integrity" "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 347 | "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" 348 | "version" "0.6.2" 349 | 350 | "on-finished@~2.3.0": 351 | "integrity" "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=" 352 | "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" 353 | "version" "2.3.0" 354 | dependencies: 355 | "ee-first" "1.1.1" 356 | 357 | "parseurl@~1.3.3": 358 | "integrity" "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 359 | "resolved" "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" 360 | "version" "1.3.3" 361 | 362 | "path-to-regexp@0.1.7": 363 | "integrity" "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 364 | "resolved" "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" 365 | "version" "0.1.7" 366 | 367 | "proxy-addr@~2.0.5": 368 | "integrity" "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==" 369 | "resolved" "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" 370 | "version" "2.0.7" 371 | dependencies: 372 | "forwarded" "0.2.0" 373 | "ipaddr.js" "1.9.1" 374 | 375 | "punycode@^2.1.1": 376 | "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 377 | "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" 378 | "version" "2.1.1" 379 | 380 | "qs@6.7.0": 381 | "integrity" "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 382 | "resolved" "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz" 383 | "version" "6.7.0" 384 | 385 | "range-parser@~1.2.1": 386 | "integrity" "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 387 | "resolved" "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" 388 | "version" "1.2.1" 389 | 390 | "raw-body@2.4.0": 391 | "integrity" "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==" 392 | "resolved" "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz" 393 | "version" "2.4.0" 394 | dependencies: 395 | "bytes" "3.1.0" 396 | "http-errors" "1.7.2" 397 | "iconv-lite" "0.4.24" 398 | "unpipe" "1.0.0" 399 | 400 | "regexp-clone@^1.0.0", "regexp-clone@1.0.0": 401 | "integrity" "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" 402 | "resolved" "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz" 403 | "version" "1.0.0" 404 | 405 | "safe-buffer@5.1.2": 406 | "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 407 | "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" 408 | "version" "5.1.2" 409 | 410 | "safer-buffer@>= 2.1.2 < 3": 411 | "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 412 | "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" 413 | "version" "2.1.2" 414 | 415 | "saslprep@^1.0.0": 416 | "integrity" "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==" 417 | "resolved" "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz" 418 | "version" "1.0.3" 419 | dependencies: 420 | "sparse-bitfield" "^3.0.3" 421 | 422 | "send@0.17.1": 423 | "integrity" "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==" 424 | "resolved" "https://registry.npmjs.org/send/-/send-0.17.1.tgz" 425 | "version" "0.17.1" 426 | dependencies: 427 | "debug" "2.6.9" 428 | "depd" "~1.1.2" 429 | "destroy" "~1.0.4" 430 | "encodeurl" "~1.0.2" 431 | "escape-html" "~1.0.3" 432 | "etag" "~1.8.1" 433 | "fresh" "0.5.2" 434 | "http-errors" "~1.7.2" 435 | "mime" "1.6.0" 436 | "ms" "2.1.1" 437 | "on-finished" "~2.3.0" 438 | "range-parser" "~1.2.1" 439 | "statuses" "~1.5.0" 440 | 441 | "serve-static@1.14.1": 442 | "integrity" "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==" 443 | "resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz" 444 | "version" "1.14.1" 445 | dependencies: 446 | "encodeurl" "~1.0.2" 447 | "escape-html" "~1.0.3" 448 | "parseurl" "~1.3.3" 449 | "send" "0.17.1" 450 | 451 | "setprototypeof@1.1.1": 452 | "integrity" "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 453 | "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" 454 | "version" "1.1.1" 455 | 456 | "sift@13.5.2": 457 | "integrity" "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" 458 | "resolved" "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz" 459 | "version" "13.5.2" 460 | 461 | "sliced@1.0.1": 462 | "integrity" "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" 463 | "resolved" "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz" 464 | "version" "1.0.1" 465 | 466 | "sparse-bitfield@^3.0.3": 467 | "integrity" "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=" 468 | "resolved" "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz" 469 | "version" "3.0.3" 470 | dependencies: 471 | "memory-pager" "^1.0.2" 472 | 473 | "statuses@>= 1.5.0 < 2", "statuses@~1.5.0": 474 | "integrity" "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 475 | "resolved" "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" 476 | "version" "1.5.0" 477 | 478 | "toidentifier@1.0.0": 479 | "integrity" "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 480 | "resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" 481 | "version" "1.0.0" 482 | 483 | "tr46@^2.1.0": 484 | "integrity" "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==" 485 | "resolved" "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz" 486 | "version" "2.1.0" 487 | dependencies: 488 | "punycode" "^2.1.1" 489 | 490 | "type-is@~1.6.17", "type-is@~1.6.18": 491 | "integrity" "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==" 492 | "resolved" "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" 493 | "version" "1.6.18" 494 | dependencies: 495 | "media-typer" "0.3.0" 496 | "mime-types" "~2.1.24" 497 | 498 | "unpipe@~1.0.0", "unpipe@1.0.0": 499 | "integrity" "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 500 | "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" 501 | "version" "1.0.0" 502 | 503 | "utils-merge@1.0.1": 504 | "integrity" "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 505 | "resolved" "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" 506 | "version" "1.0.1" 507 | 508 | "vary@~1.1.2": 509 | "integrity" "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 510 | "resolved" "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" 511 | "version" "1.1.2" 512 | 513 | "webidl-conversions@^6.1.0": 514 | "integrity" "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" 515 | "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz" 516 | "version" "6.1.0" 517 | 518 | "whatwg-url@^9.1.0": 519 | "integrity" "sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==" 520 | "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-9.1.0.tgz" 521 | "version" "9.1.0" 522 | dependencies: 523 | "tr46" "^2.1.0" 524 | "webidl-conversions" "^6.1.0" 525 | --------------------------------------------------------------------------------