├── .gitignore ├── models └── Doc.js ├── package.json ├── server.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | -------------------------------------------------------------------------------- /models/Doc.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require('mongoose'); 2 | 3 | 4 | const Doc = new Schema({ 5 | _id: String, 6 | html: String, 7 | css: String, 8 | js: String, 9 | python: String, 10 | cpp: String, 11 | java: String, 12 | js: String, 13 | pascal: String, 14 | perl: String, 15 | php: String, 16 | ruby: String, 17 | input: String, 18 | output: String 19 | }); 20 | 21 | module.exports = model('Doc', Doc); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server", 3 | "version": "1.3.0", 4 | "description": "", 5 | "main": "server.js", 6 | "scripts": { 7 | "start": "node server.js", 8 | "deploy": "git push origin master && git push heroku master" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "cors": "^2.8.5", 15 | "dotenv": "^10.0.0", 16 | "express": "^4.17.1", 17 | "mongoose": "^5.12.14", 18 | "node-fetch": "^2.6.1", 19 | "peer": "^0.6.1", 20 | "pusher": "^5.0.0", 21 | "socket.io": "^4.1.2", 22 | "uuid": "^8.3.2" 23 | }, 24 | "devDependencies": { 25 | "nodemon": "^2.0.7" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | require('dotenv').config({ path: '.env' }); 2 | const express = require('express'); 3 | const fetch = require('node-fetch'); 4 | const cors = require('cors'); 5 | const app = express(); 6 | const server = require('http').Server(app); 7 | const PORT = process.env.PORT || 3002; 8 | const FRONTEND_ORIGIN = process.env.FRONTEND_ORIGIN 9 | const MONGOOSE_URL = process.env.MONGOOSE_URL 10 | const { PeerServer } = require('peer'); 11 | app.use(cors()) 12 | app.use(express.urlencoded()) 13 | app.use(express.json()) 14 | 15 | app.get('/', (req, res) => { 16 | res.send("CodeColab Backend!") 17 | }); 18 | 19 | const io = require('socket.io')(server, { 20 | cors: { 21 | origin: FRONTEND_ORIGIN, 22 | } 23 | }); 24 | 25 | const peerServer = PeerServer({ port: 9002, path: '/' }, (exp) => { 26 | console.log("Peerjs Server Running: " + exp.address().port); 27 | }); 28 | 29 | peerServer.on('connection', (client) => { console.log("Client Connected: ", client.id); }); 30 | 31 | const mongoose = require('mongoose'); 32 | const Doc = require('./models/Doc'); 33 | 34 | 35 | 36 | 37 | mongoose.connect(MONGOOSE_URL, { 38 | useNewUrlParser: true, 39 | useUnifiedTopology: true, 40 | useFindAndModify: false, 41 | useCreateIndex: true 42 | }) 43 | .then(() => console.log('connected to mongodb')) 44 | .catch((error) => console.error(error)); 45 | 46 | app.get('/runcode', (req, res) => { 47 | var url = req.query.url; 48 | const headers = { 49 | 'Content-Type': 'application/json', 50 | 'client-secret': process.env.REACT_APP_HACKEREARTH_SECRET 51 | } 52 | fetch(url, { 53 | method: 'get', 54 | headers, 55 | }) 56 | .then(res => res.json()) 57 | .then(json => { 58 | res.send(json) 59 | }).catch((err) => { 60 | res.send(err) 61 | }); 62 | }); 63 | 64 | app.post('/runcode', (req, res) => { 65 | // get post data from request 66 | 67 | var data = req.body; 68 | 69 | const url = "https://api.hackerearth.com/v4/partner/code-evaluation/submissions/"; 70 | fetch(url, { 71 | method: 'post', 72 | body: JSON.stringify(data), 73 | headers: { 74 | 'Content-Type': 'application/json', 75 | 'client-secret': process.env.REACT_APP_HACKEREARTH_SECRET 76 | }, 77 | }) 78 | .then(res => res.json()) 79 | .then(json => { 80 | res.send(json); 81 | }).catch((err) => { 82 | res.send(err) 83 | }); 84 | }); 85 | 86 | 87 | io.on('connection', (socket) => { 88 | console.log(`Connected to frontend!`); 89 | socket.on('get-document', async (DocId) => { 90 | const doc = await findOrCreateDocument(DocId); 91 | 92 | socket.join(DocId); 93 | 94 | 95 | socket.emit('load-document', doc) ; 96 | 97 | 98 | socket.on('changes', delta => { 99 | 100 | socket.broadcast.to(DocId).emit("receive-changes", delta); 101 | }); 102 | 103 | socket.on('drawing', (data) => { 104 | socket.broadcast.emit('drawing', data) 105 | }); 106 | 107 | socket.on('save-document', async (data) => { 108 | Doc.findByIdAndUpdate({ '_id': DocId }, { 'html': data.html, 'css': data.css, 'js': data.js, 'pascal': data.pascal, 'perl': data.perl, 'php': data.php, 'ruby': data.ruby, 'python': data.python, 'cpp': data.cpp, 'java': data.java, 'input': data.input, 'output': data.output }).then((d) => { 109 | }) 110 | .catch(err => { 111 | console.error(err); 112 | }) 113 | }) 114 | 115 | socket.on('pencil-color-change', color => { 116 | console.log(color); 117 | socket.broadcast.to(DocId).emit("pencil-color-change", color); 118 | }) 119 | }); 120 | 121 | 122 | socket.on('join-room', (roomId, userId, userName) => { 123 | socket.join(roomId) 124 | socket.to(roomId).emit('user-connected', userId) 125 | 126 | socket.on('toggled', (userId, video, audio) => { 127 | socket.to(roomId).emit('received-toggled-events', userId, video, audio); 128 | }); 129 | 130 | socket.on('disconnect', () => { 131 | socket.to(roomId).emit('user-disconnected', userId) 132 | }); 133 | }); 134 | }); 135 | 136 | 137 | 138 | var findOrCreateDocument = async (id) => { 139 | if (id === null) { 140 | return; 141 | } 142 | const document = await Doc.findById(id); 143 | if (document) return document; 144 | return await Doc.create({ _id: id, html: "", css: "", js: "", python: "", java: "", cpp: "", input: "", output: "", pascal: "", perl: "", php: "", ruby: "" }); 145 | }; 146 | 147 | server.listen(PORT, () => { 148 | console.log(`Express Server Listening to ${PORT}`); 149 | console.log(`Socket Listening to ${FRONTEND_ORIGIN}`); 150 | }) -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@sindresorhus/is@^0.14.0": 6 | version "0.14.0" 7 | resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" 8 | integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== 9 | 10 | "@szmarczak/http-timer@^1.1.2": 11 | version "1.1.2" 12 | resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" 13 | integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== 14 | dependencies: 15 | defer-to-connect "^1.0.1" 16 | 17 | "@types/body-parser@*": 18 | version "1.19.0" 19 | resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz" 20 | integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== 21 | dependencies: 22 | "@types/connect" "*" 23 | "@types/node" "*" 24 | 25 | "@types/bson@*": 26 | version "4.0.3" 27 | resolved "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz" 28 | integrity sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw== 29 | dependencies: 30 | "@types/node" "*" 31 | 32 | "@types/component-emitter@^1.2.10": 33 | version "1.2.10" 34 | resolved "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz" 35 | integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== 36 | 37 | "@types/connect@*": 38 | version "3.4.34" 39 | resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz" 40 | integrity sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ== 41 | dependencies: 42 | "@types/node" "*" 43 | 44 | "@types/cookie@^0.4.0": 45 | version "0.4.0" 46 | resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz" 47 | integrity sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg== 48 | 49 | "@types/cors@^2.8.6", "@types/cors@^2.8.8": 50 | version "2.8.10" 51 | resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz" 52 | integrity sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ== 53 | 54 | "@types/express-serve-static-core@^4.17.18": 55 | version "4.17.22" 56 | resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.22.tgz" 57 | integrity sha512-WdqmrUsRS4ootGha6tVwk/IVHM1iorU8tGehftQD2NWiPniw/sm7xdJOIlXLwqdInL9wBw/p7oO8vaYEF3NDmA== 58 | dependencies: 59 | "@types/node" "*" 60 | "@types/qs" "*" 61 | "@types/range-parser" "*" 62 | 63 | "@types/express@^4.17.3": 64 | version "4.17.12" 65 | resolved "https://registry.npmjs.org/@types/express/-/express-4.17.12.tgz" 66 | integrity sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q== 67 | dependencies: 68 | "@types/body-parser" "*" 69 | "@types/express-serve-static-core" "^4.17.18" 70 | "@types/qs" "*" 71 | "@types/serve-static" "*" 72 | 73 | "@types/mime@^1": 74 | version "1.3.2" 75 | resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz" 76 | integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== 77 | 78 | "@types/mongodb@^3.5.27": 79 | version "3.6.19" 80 | resolved "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.19.tgz" 81 | integrity sha512-krZbirw3ATb8EJySZdlDChX7A8WqTBPWWVjEAl9SUUL6QHJY/5+yCk7DjJv1BE0qmi5iShtd2meEi/Ru0F6c7g== 82 | dependencies: 83 | "@types/bson" "*" 84 | "@types/node" "*" 85 | 86 | "@types/node@*", "@types/node@>=10.0.0": 87 | version "15.14.0" 88 | resolved "https://registry.npmjs.org/@types/node/-/node-15.14.0.tgz" 89 | integrity sha512-um/+/ip3QZmwLfIkWZSNtQIJNVAqrJ92OkLMeuZrjZMTAJniI7fh8N8OICyDhAJ2mzgk/fmYFo72jRr5HyZ1EQ== 90 | 91 | "@types/qs@*": 92 | version "6.9.6" 93 | resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz" 94 | integrity sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA== 95 | 96 | "@types/range-parser@*": 97 | version "1.2.3" 98 | resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz" 99 | integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== 100 | 101 | "@types/serve-static@*": 102 | version "1.13.9" 103 | resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz" 104 | integrity sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA== 105 | dependencies: 106 | "@types/mime" "^1" 107 | "@types/node" "*" 108 | 109 | "@types/ws@^7.2.3": 110 | version "7.4.5" 111 | resolved "https://registry.npmjs.org/@types/ws/-/ws-7.4.5.tgz" 112 | integrity sha512-8mbDgtc8xpxDDem5Gwj76stBDJX35KQ3YBoayxlqUQcL5BZUthiqP/VQ4PQnLHqM4PmlbyO74t98eJpURO+gPA== 113 | dependencies: 114 | "@types/node" "*" 115 | 116 | abbrev@1: 117 | version "1.1.1" 118 | resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" 119 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 120 | 121 | abort-controller@^3.0.0: 122 | version "3.0.0" 123 | resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" 124 | integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== 125 | dependencies: 126 | event-target-shim "^5.0.0" 127 | 128 | accepts@~1.3.4, accepts@~1.3.7: 129 | version "1.3.7" 130 | resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" 131 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 132 | dependencies: 133 | mime-types "~2.1.24" 134 | negotiator "0.6.2" 135 | 136 | ansi-align@^3.0.0: 137 | version "3.0.0" 138 | resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz" 139 | integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== 140 | dependencies: 141 | string-width "^3.0.0" 142 | 143 | ansi-regex@^4.1.0: 144 | version "4.1.0" 145 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" 146 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 147 | 148 | ansi-regex@^5.0.0: 149 | version "5.0.0" 150 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" 151 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 152 | 153 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 154 | version "4.3.0" 155 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" 156 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 157 | dependencies: 158 | color-convert "^2.0.1" 159 | 160 | anymatch@~3.1.2: 161 | version "3.1.2" 162 | resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" 163 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 164 | dependencies: 165 | normalize-path "^3.0.0" 166 | picomatch "^2.0.4" 167 | 168 | array-flatten@1.1.1: 169 | version "1.1.1" 170 | resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" 171 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= 172 | 173 | balanced-match@^1.0.0: 174 | version "1.0.2" 175 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" 176 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 177 | 178 | base64-arraybuffer@0.1.4: 179 | version "0.1.4" 180 | resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz" 181 | integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= 182 | 183 | base64id@2.0.0, base64id@~2.0.0: 184 | version "2.0.0" 185 | resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz" 186 | integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== 187 | 188 | binary-extensions@^2.0.0: 189 | version "2.2.0" 190 | resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" 191 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 192 | 193 | bl@^2.2.1: 194 | version "2.2.1" 195 | resolved "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz" 196 | integrity sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g== 197 | dependencies: 198 | readable-stream "^2.3.5" 199 | safe-buffer "^5.1.1" 200 | 201 | bluebird@3.5.1: 202 | version "3.5.1" 203 | resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz" 204 | integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== 205 | 206 | body-parser@1.19.0, body-parser@^1.19.0: 207 | version "1.19.0" 208 | resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz" 209 | integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== 210 | dependencies: 211 | bytes "3.1.0" 212 | content-type "~1.0.4" 213 | debug "2.6.9" 214 | depd "~1.1.2" 215 | http-errors "1.7.2" 216 | iconv-lite "0.4.24" 217 | on-finished "~2.3.0" 218 | qs "6.7.0" 219 | raw-body "2.4.0" 220 | type-is "~1.6.17" 221 | 222 | boxen@^4.2.0: 223 | version "4.2.0" 224 | resolved "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz" 225 | integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== 226 | dependencies: 227 | ansi-align "^3.0.0" 228 | camelcase "^5.3.1" 229 | chalk "^3.0.0" 230 | cli-boxes "^2.2.0" 231 | string-width "^4.1.0" 232 | term-size "^2.1.0" 233 | type-fest "^0.8.1" 234 | widest-line "^3.1.0" 235 | 236 | brace-expansion@^1.1.7: 237 | version "1.1.11" 238 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" 239 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 240 | dependencies: 241 | balanced-match "^1.0.0" 242 | concat-map "0.0.1" 243 | 244 | braces@~3.0.2: 245 | version "3.0.2" 246 | resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" 247 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 248 | dependencies: 249 | fill-range "^7.0.1" 250 | 251 | bson@^1.1.4: 252 | version "1.1.6" 253 | resolved "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz" 254 | integrity sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg== 255 | 256 | bytes@3.1.0: 257 | version "3.1.0" 258 | resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" 259 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 260 | 261 | cacheable-request@^6.0.0: 262 | version "6.1.0" 263 | resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" 264 | integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== 265 | dependencies: 266 | clone-response "^1.0.2" 267 | get-stream "^5.1.0" 268 | http-cache-semantics "^4.0.0" 269 | keyv "^3.0.0" 270 | lowercase-keys "^2.0.0" 271 | normalize-url "^4.1.0" 272 | responselike "^1.0.2" 273 | 274 | camelcase@^5.0.0, camelcase@^5.3.1: 275 | version "5.3.1" 276 | resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" 277 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 278 | 279 | chalk@^3.0.0: 280 | version "3.0.0" 281 | resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" 282 | integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== 283 | dependencies: 284 | ansi-styles "^4.1.0" 285 | supports-color "^7.1.0" 286 | 287 | chokidar@^3.2.2: 288 | version "3.5.2" 289 | resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" 290 | integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== 291 | dependencies: 292 | anymatch "~3.1.2" 293 | braces "~3.0.2" 294 | glob-parent "~5.1.2" 295 | is-binary-path "~2.1.0" 296 | is-glob "~4.0.1" 297 | normalize-path "~3.0.0" 298 | readdirp "~3.6.0" 299 | optionalDependencies: 300 | fsevents "~2.3.2" 301 | 302 | ci-info@^2.0.0: 303 | version "2.0.0" 304 | resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" 305 | integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== 306 | 307 | cli-boxes@^2.2.0: 308 | version "2.2.1" 309 | resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" 310 | integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== 311 | 312 | cliui@^6.0.0: 313 | version "6.0.0" 314 | resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" 315 | integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== 316 | dependencies: 317 | string-width "^4.2.0" 318 | strip-ansi "^6.0.0" 319 | wrap-ansi "^6.2.0" 320 | 321 | clone-response@^1.0.2: 322 | version "1.0.2" 323 | resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" 324 | integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= 325 | dependencies: 326 | mimic-response "^1.0.0" 327 | 328 | color-convert@^2.0.1: 329 | version "2.0.1" 330 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 331 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 332 | dependencies: 333 | color-name "~1.1.4" 334 | 335 | color-name@~1.1.4: 336 | version "1.1.4" 337 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 338 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 339 | 340 | component-emitter@~1.3.0: 341 | version "1.3.0" 342 | resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" 343 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== 344 | 345 | concat-map@0.0.1: 346 | version "0.0.1" 347 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" 348 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 349 | 350 | configstore@^5.0.1: 351 | version "5.0.1" 352 | resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" 353 | integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== 354 | dependencies: 355 | dot-prop "^5.2.0" 356 | graceful-fs "^4.1.2" 357 | make-dir "^3.0.0" 358 | unique-string "^2.0.0" 359 | write-file-atomic "^3.0.0" 360 | xdg-basedir "^4.0.0" 361 | 362 | content-disposition@0.5.3: 363 | version "0.5.3" 364 | resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz" 365 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 366 | dependencies: 367 | safe-buffer "5.1.2" 368 | 369 | content-type@~1.0.4: 370 | version "1.0.4" 371 | resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" 372 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 373 | 374 | cookie-signature@1.0.6: 375 | version "1.0.6" 376 | resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" 377 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= 378 | 379 | cookie@0.4.0: 380 | version "0.4.0" 381 | resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz" 382 | integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== 383 | 384 | cookie@~0.4.1: 385 | version "0.4.1" 386 | resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz" 387 | integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== 388 | 389 | core-util-is@~1.0.0: 390 | version "1.0.2" 391 | resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" 392 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 393 | 394 | cors@^2.8.5, cors@~2.8.5: 395 | version "2.8.5" 396 | resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" 397 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== 398 | dependencies: 399 | object-assign "^4" 400 | vary "^1" 401 | 402 | crypto-random-string@^2.0.0: 403 | version "2.0.0" 404 | resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" 405 | integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== 406 | 407 | debug@2.6.9, debug@^2.2.0: 408 | version "2.6.9" 409 | resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" 410 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 411 | dependencies: 412 | ms "2.0.0" 413 | 414 | debug@3.1.0: 415 | version "3.1.0" 416 | resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" 417 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 418 | dependencies: 419 | ms "2.0.0" 420 | 421 | debug@^3.2.6: 422 | version "3.2.7" 423 | resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" 424 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 425 | dependencies: 426 | ms "^2.1.1" 427 | 428 | debug@~4.3.1: 429 | version "4.3.1" 430 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" 431 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 432 | dependencies: 433 | ms "2.1.2" 434 | 435 | decamelize@^1.2.0: 436 | version "1.2.0" 437 | resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" 438 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 439 | 440 | decompress-response@^3.3.0: 441 | version "3.3.0" 442 | resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" 443 | integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= 444 | dependencies: 445 | mimic-response "^1.0.0" 446 | 447 | deep-extend@^0.6.0: 448 | version "0.6.0" 449 | resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" 450 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 451 | 452 | defer-to-connect@^1.0.1: 453 | version "1.1.3" 454 | resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" 455 | integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== 456 | 457 | denque@^1.4.1: 458 | version "1.5.0" 459 | resolved "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz" 460 | integrity sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ== 461 | 462 | depd@~1.1.2: 463 | version "1.1.2" 464 | resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" 465 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 466 | 467 | destroy@~1.0.4: 468 | version "1.0.4" 469 | resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" 470 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 471 | 472 | dot-prop@^5.2.0: 473 | version "5.3.0" 474 | resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" 475 | integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== 476 | dependencies: 477 | is-obj "^2.0.0" 478 | 479 | dotenv@^10.0.0: 480 | version "10.0.0" 481 | resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz" 482 | integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== 483 | 484 | duplexer3@^0.1.4: 485 | version "0.1.4" 486 | resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" 487 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= 488 | 489 | ee-first@1.1.1: 490 | version "1.1.1" 491 | resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" 492 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 493 | 494 | emoji-regex@^7.0.1: 495 | version "7.0.3" 496 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" 497 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 498 | 499 | emoji-regex@^8.0.0: 500 | version "8.0.0" 501 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" 502 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 503 | 504 | encodeurl@~1.0.2: 505 | version "1.0.2" 506 | resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" 507 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 508 | 509 | end-of-stream@^1.1.0: 510 | version "1.4.4" 511 | resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" 512 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 513 | dependencies: 514 | once "^1.4.0" 515 | 516 | engine.io-parser@~4.0.0: 517 | version "4.0.2" 518 | resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz" 519 | integrity sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg== 520 | dependencies: 521 | base64-arraybuffer "0.1.4" 522 | 523 | engine.io@~5.1.0: 524 | version "5.1.1" 525 | resolved "https://registry.npmjs.org/engine.io/-/engine.io-5.1.1.tgz" 526 | integrity sha512-aMWot7H5aC8L4/T8qMYbLdvKlZOdJTH54FxfdFunTGvhMx1BHkJOntWArsVfgAZVwAO9LC2sryPWRcEeUzCe5w== 527 | dependencies: 528 | accepts "~1.3.4" 529 | base64id "2.0.0" 530 | cookie "~0.4.1" 531 | cors "~2.8.5" 532 | debug "~4.3.1" 533 | engine.io-parser "~4.0.0" 534 | ws "~7.4.2" 535 | 536 | escape-goat@^2.0.0: 537 | version "2.1.1" 538 | resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" 539 | integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== 540 | 541 | escape-html@~1.0.3: 542 | version "1.0.3" 543 | resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" 544 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 545 | 546 | etag@~1.8.1: 547 | version "1.8.1" 548 | resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" 549 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 550 | 551 | event-target-shim@^5.0.0: 552 | version "5.0.1" 553 | resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" 554 | integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== 555 | 556 | express@^4.17.1: 557 | version "4.17.1" 558 | resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz" 559 | integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== 560 | dependencies: 561 | accepts "~1.3.7" 562 | array-flatten "1.1.1" 563 | body-parser "1.19.0" 564 | content-disposition "0.5.3" 565 | content-type "~1.0.4" 566 | cookie "0.4.0" 567 | cookie-signature "1.0.6" 568 | debug "2.6.9" 569 | depd "~1.1.2" 570 | encodeurl "~1.0.2" 571 | escape-html "~1.0.3" 572 | etag "~1.8.1" 573 | finalhandler "~1.1.2" 574 | fresh "0.5.2" 575 | merge-descriptors "1.0.1" 576 | methods "~1.1.2" 577 | on-finished "~2.3.0" 578 | parseurl "~1.3.3" 579 | path-to-regexp "0.1.7" 580 | proxy-addr "~2.0.5" 581 | qs "6.7.0" 582 | range-parser "~1.2.1" 583 | safe-buffer "5.1.2" 584 | send "0.17.1" 585 | serve-static "1.14.1" 586 | setprototypeof "1.1.1" 587 | statuses "~1.5.0" 588 | type-is "~1.6.18" 589 | utils-merge "1.0.1" 590 | vary "~1.1.2" 591 | 592 | fill-range@^7.0.1: 593 | version "7.0.1" 594 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" 595 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 596 | dependencies: 597 | to-regex-range "^5.0.1" 598 | 599 | finalhandler@~1.1.2: 600 | version "1.1.2" 601 | resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" 602 | integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== 603 | dependencies: 604 | debug "2.6.9" 605 | encodeurl "~1.0.2" 606 | escape-html "~1.0.3" 607 | on-finished "~2.3.0" 608 | parseurl "~1.3.3" 609 | statuses "~1.5.0" 610 | unpipe "~1.0.0" 611 | 612 | find-up@^4.1.0: 613 | version "4.1.0" 614 | resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" 615 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 616 | dependencies: 617 | locate-path "^5.0.0" 618 | path-exists "^4.0.0" 619 | 620 | forwarded@0.2.0: 621 | version "0.2.0" 622 | resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" 623 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 624 | 625 | fresh@0.5.2: 626 | version "0.5.2" 627 | resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" 628 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 629 | 630 | fsevents@~2.3.2: 631 | version "2.3.3" 632 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 633 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 634 | 635 | get-caller-file@^2.0.1: 636 | version "2.0.5" 637 | resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" 638 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 639 | 640 | get-stream@^4.1.0: 641 | version "4.1.0" 642 | resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" 643 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 644 | dependencies: 645 | pump "^3.0.0" 646 | 647 | get-stream@^5.1.0: 648 | version "5.2.0" 649 | resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" 650 | integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== 651 | dependencies: 652 | pump "^3.0.0" 653 | 654 | glob-parent@~5.1.2: 655 | version "5.1.2" 656 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" 657 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 658 | dependencies: 659 | is-glob "^4.0.1" 660 | 661 | global-dirs@^2.0.1: 662 | version "2.1.0" 663 | resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz" 664 | integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== 665 | dependencies: 666 | ini "1.3.7" 667 | 668 | got@^9.6.0: 669 | version "9.6.0" 670 | resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" 671 | integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== 672 | dependencies: 673 | "@sindresorhus/is" "^0.14.0" 674 | "@szmarczak/http-timer" "^1.1.2" 675 | cacheable-request "^6.0.0" 676 | decompress-response "^3.3.0" 677 | duplexer3 "^0.1.4" 678 | get-stream "^4.1.0" 679 | lowercase-keys "^1.0.1" 680 | mimic-response "^1.0.1" 681 | p-cancelable "^1.0.0" 682 | to-readable-stream "^1.0.0" 683 | url-parse-lax "^3.0.0" 684 | 685 | graceful-fs@^4.1.2: 686 | version "4.2.6" 687 | resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" 688 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== 689 | 690 | has-flag@^3.0.0: 691 | version "3.0.0" 692 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" 693 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 694 | 695 | has-flag@^4.0.0: 696 | version "4.0.0" 697 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 698 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 699 | 700 | has-yarn@^2.1.0: 701 | version "2.1.0" 702 | resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" 703 | integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== 704 | 705 | http-cache-semantics@^4.0.0: 706 | version "4.1.0" 707 | resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" 708 | integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== 709 | 710 | http-errors@1.7.2, http-errors@~1.7.2: 711 | version "1.7.2" 712 | resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz" 713 | integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== 714 | dependencies: 715 | depd "~1.1.2" 716 | inherits "2.0.3" 717 | setprototypeof "1.1.1" 718 | statuses ">= 1.5.0 < 2" 719 | toidentifier "1.0.0" 720 | 721 | iconv-lite@0.4.24: 722 | version "0.4.24" 723 | resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" 724 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 725 | dependencies: 726 | safer-buffer ">= 2.1.2 < 3" 727 | 728 | ignore-by-default@^1.0.1: 729 | version "1.0.1" 730 | resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz" 731 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= 732 | 733 | import-lazy@^2.1.0: 734 | version "2.1.0" 735 | resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" 736 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= 737 | 738 | imurmurhash@^0.1.4: 739 | version "0.1.4" 740 | resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" 741 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 742 | 743 | inherits@2.0.3, inherits@~2.0.3: 744 | version "2.0.3" 745 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" 746 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 747 | 748 | ini@1.3.7, ini@~1.3.0: 749 | version "1.3.7" 750 | resolved "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz" 751 | integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== 752 | 753 | ipaddr.js@1.9.1: 754 | version "1.9.1" 755 | resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" 756 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 757 | 758 | is-base64@^1.1.0: 759 | version "1.1.0" 760 | resolved "https://registry.npmjs.org/is-base64/-/is-base64-1.1.0.tgz" 761 | integrity sha512-Nlhg7Z2dVC4/PTvIFkgVVNvPHSO2eR/Yd0XzhGiXCXEvWnptXlXa/clQ8aePPiMuxEGcWfzWbGw2Fe3d+Y3v1g== 762 | 763 | is-binary-path@~2.1.0: 764 | version "2.1.0" 765 | resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" 766 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 767 | dependencies: 768 | binary-extensions "^2.0.0" 769 | 770 | is-ci@^2.0.0: 771 | version "2.0.0" 772 | resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" 773 | integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== 774 | dependencies: 775 | ci-info "^2.0.0" 776 | 777 | is-extglob@^2.1.1: 778 | version "2.1.1" 779 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" 780 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 781 | 782 | is-fullwidth-code-point@^2.0.0: 783 | version "2.0.0" 784 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" 785 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 786 | 787 | is-fullwidth-code-point@^3.0.0: 788 | version "3.0.0" 789 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" 790 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 791 | 792 | is-glob@^4.0.1, is-glob@~4.0.1: 793 | version "4.0.1" 794 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" 795 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 796 | dependencies: 797 | is-extglob "^2.1.1" 798 | 799 | is-installed-globally@^0.3.1: 800 | version "0.3.2" 801 | resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz" 802 | integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== 803 | dependencies: 804 | global-dirs "^2.0.1" 805 | is-path-inside "^3.0.1" 806 | 807 | is-npm@^4.0.0: 808 | version "4.0.0" 809 | resolved "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz" 810 | integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== 811 | 812 | is-number@^7.0.0: 813 | version "7.0.0" 814 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" 815 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 816 | 817 | is-obj@^2.0.0: 818 | version "2.0.0" 819 | resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" 820 | integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== 821 | 822 | is-path-inside@^3.0.1: 823 | version "3.0.3" 824 | resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" 825 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== 826 | 827 | is-typedarray@^1.0.0: 828 | version "1.0.0" 829 | resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" 830 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 831 | 832 | is-yarn-global@^0.3.0: 833 | version "0.3.0" 834 | resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" 835 | integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== 836 | 837 | isarray@~1.0.0: 838 | version "1.0.0" 839 | resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" 840 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 841 | 842 | json-buffer@3.0.0: 843 | version "3.0.0" 844 | resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" 845 | integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= 846 | 847 | kareem@2.3.2: 848 | version "2.3.2" 849 | resolved "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz" 850 | integrity sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ== 851 | 852 | keyv@^3.0.0: 853 | version "3.1.0" 854 | resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" 855 | integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== 856 | dependencies: 857 | json-buffer "3.0.0" 858 | 859 | latest-version@^5.0.0: 860 | version "5.1.0" 861 | resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" 862 | integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== 863 | dependencies: 864 | package-json "^6.3.0" 865 | 866 | locate-path@^5.0.0: 867 | version "5.0.0" 868 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" 869 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 870 | dependencies: 871 | p-locate "^4.1.0" 872 | 873 | lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: 874 | version "1.0.1" 875 | resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" 876 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== 877 | 878 | lowercase-keys@^2.0.0: 879 | version "2.0.0" 880 | resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" 881 | integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== 882 | 883 | make-dir@^3.0.0: 884 | version "3.1.0" 885 | resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" 886 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 887 | dependencies: 888 | semver "^6.0.0" 889 | 890 | media-typer@0.3.0: 891 | version "0.3.0" 892 | resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" 893 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 894 | 895 | memory-pager@^1.0.2: 896 | version "1.5.0" 897 | resolved "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz" 898 | integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== 899 | 900 | merge-descriptors@1.0.1: 901 | version "1.0.1" 902 | resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" 903 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= 904 | 905 | methods@~1.1.2: 906 | version "1.1.2" 907 | resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" 908 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 909 | 910 | mime-db@1.48.0: 911 | version "1.48.0" 912 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz" 913 | integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== 914 | 915 | mime-types@~2.1.24: 916 | version "2.1.31" 917 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz" 918 | integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== 919 | dependencies: 920 | mime-db "1.48.0" 921 | 922 | mime@1.6.0: 923 | version "1.6.0" 924 | resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" 925 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 926 | 927 | mimic-response@^1.0.0, mimic-response@^1.0.1: 928 | version "1.0.1" 929 | resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" 930 | integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== 931 | 932 | minimatch@^3.0.4: 933 | version "3.0.4" 934 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" 935 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 936 | dependencies: 937 | brace-expansion "^1.1.7" 938 | 939 | minimist@^1.2.0: 940 | version "1.2.5" 941 | resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" 942 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 943 | 944 | mongodb@3.6.8: 945 | version "3.6.8" 946 | resolved "https://registry.npmjs.org/mongodb/-/mongodb-3.6.8.tgz" 947 | integrity sha512-sDjJvI73WjON1vapcbyBD3Ao9/VN3TKYY8/QX9EPbs22KaCSrQ5rXo5ZZd44tWJ3wl3FlnrFZ+KyUtNH6+1ZPQ== 948 | dependencies: 949 | bl "^2.2.1" 950 | bson "^1.1.4" 951 | denque "^1.4.1" 952 | optional-require "^1.0.3" 953 | safe-buffer "^5.1.2" 954 | optionalDependencies: 955 | saslprep "^1.0.0" 956 | 957 | mongoose-legacy-pluralize@1.0.2: 958 | version "1.0.2" 959 | resolved "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz" 960 | integrity sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ== 961 | 962 | mongoose@^5.12.14: 963 | version "5.13.0" 964 | resolved "https://registry.npmjs.org/mongoose/-/mongoose-5.13.0.tgz" 965 | integrity sha512-8dvu7vxmDzlupj4I9T0g33GPf4HzSZmIOKQfG9RJQ5Nxk/Ztx1b8zlYp+blvaCfWwtBpiAJuKYOBU17Wq1RVFQ== 966 | dependencies: 967 | "@types/mongodb" "^3.5.27" 968 | bson "^1.1.4" 969 | kareem "2.3.2" 970 | mongodb "3.6.8" 971 | mongoose-legacy-pluralize "1.0.2" 972 | mpath "0.8.3" 973 | mquery "3.2.5" 974 | ms "2.1.2" 975 | regexp-clone "1.0.0" 976 | safe-buffer "5.2.1" 977 | sift "13.5.2" 978 | sliced "1.0.1" 979 | 980 | mpath@0.8.3: 981 | version "0.8.3" 982 | resolved "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz" 983 | integrity sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA== 984 | 985 | mquery@3.2.5: 986 | version "3.2.5" 987 | resolved "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz" 988 | integrity sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A== 989 | dependencies: 990 | bluebird "3.5.1" 991 | debug "3.1.0" 992 | regexp-clone "^1.0.0" 993 | safe-buffer "5.1.2" 994 | sliced "1.0.1" 995 | 996 | ms@2.0.0: 997 | version "2.0.0" 998 | resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" 999 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1000 | 1001 | ms@2.1.1: 1002 | version "2.1.1" 1003 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" 1004 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 1005 | 1006 | ms@2.1.2: 1007 | version "2.1.2" 1008 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 1009 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1010 | 1011 | ms@^2.1.1: 1012 | version "2.1.3" 1013 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" 1014 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1015 | 1016 | negotiator@0.6.2: 1017 | version "0.6.2" 1018 | resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" 1019 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 1020 | 1021 | node-fetch@^2.6.1: 1022 | version "2.6.1" 1023 | resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" 1024 | integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== 1025 | 1026 | nodemon@^2.0.7: 1027 | version "2.0.9" 1028 | resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.9.tgz" 1029 | integrity sha512-6O4k7C8f2HQArGpaPBOqGGddjzDLQAqCYmq3tKMeNIbz7Is/hOphMHy2dcY10sSq5wl3cqyn9Iz+Ep2j51JOLg== 1030 | dependencies: 1031 | chokidar "^3.2.2" 1032 | debug "^3.2.6" 1033 | ignore-by-default "^1.0.1" 1034 | minimatch "^3.0.4" 1035 | pstree.remy "^1.1.7" 1036 | semver "^5.7.1" 1037 | supports-color "^5.5.0" 1038 | touch "^3.1.0" 1039 | undefsafe "^2.0.3" 1040 | update-notifier "^4.1.0" 1041 | 1042 | nopt@~1.0.10: 1043 | version "1.0.10" 1044 | resolved "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" 1045 | integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= 1046 | dependencies: 1047 | abbrev "1" 1048 | 1049 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1050 | version "3.0.0" 1051 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" 1052 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1053 | 1054 | normalize-url@^4.1.0: 1055 | version "4.5.1" 1056 | resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" 1057 | integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== 1058 | 1059 | object-assign@^4: 1060 | version "4.1.1" 1061 | resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" 1062 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1063 | 1064 | on-finished@~2.3.0: 1065 | version "2.3.0" 1066 | resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" 1067 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 1068 | dependencies: 1069 | ee-first "1.1.1" 1070 | 1071 | once@^1.3.1, once@^1.4.0: 1072 | version "1.4.0" 1073 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" 1074 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1075 | dependencies: 1076 | wrappy "1" 1077 | 1078 | optional-require@^1.0.3: 1079 | version "1.0.3" 1080 | resolved "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz" 1081 | integrity sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA== 1082 | 1083 | p-cancelable@^1.0.0: 1084 | version "1.1.0" 1085 | resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" 1086 | integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== 1087 | 1088 | p-limit@^2.2.0: 1089 | version "2.3.0" 1090 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" 1091 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1092 | dependencies: 1093 | p-try "^2.0.0" 1094 | 1095 | p-locate@^4.1.0: 1096 | version "4.1.0" 1097 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" 1098 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 1099 | dependencies: 1100 | p-limit "^2.2.0" 1101 | 1102 | p-try@^2.0.0: 1103 | version "2.2.0" 1104 | resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" 1105 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1106 | 1107 | package-json@^6.3.0: 1108 | version "6.5.0" 1109 | resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" 1110 | integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== 1111 | dependencies: 1112 | got "^9.6.0" 1113 | registry-auth-token "^4.0.0" 1114 | registry-url "^5.0.0" 1115 | semver "^6.2.0" 1116 | 1117 | parseurl@~1.3.3: 1118 | version "1.3.3" 1119 | resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" 1120 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 1121 | 1122 | path-exists@^4.0.0: 1123 | version "4.0.0" 1124 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" 1125 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1126 | 1127 | path-to-regexp@0.1.7: 1128 | version "0.1.7" 1129 | resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" 1130 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= 1131 | 1132 | peer@^0.6.1: 1133 | version "0.6.1" 1134 | resolved "https://registry.npmjs.org/peer/-/peer-0.6.1.tgz" 1135 | integrity sha512-zPJSPoZvo+83sPJNrW8o93QTktx7dKk67965RRDDNAIelWw1ZwE6ZmmhsvRrdNRlK0knQb3rR8GBdZlbWzCYJw== 1136 | dependencies: 1137 | "@types/cors" "^2.8.6" 1138 | "@types/express" "^4.17.3" 1139 | "@types/ws" "^7.2.3" 1140 | body-parser "^1.19.0" 1141 | cors "^2.8.5" 1142 | express "^4.17.1" 1143 | uuid "^3.4.0" 1144 | ws "^7.2.3" 1145 | yargs "^15.3.1" 1146 | 1147 | picomatch@^2.0.4, picomatch@^2.2.1: 1148 | version "2.3.0" 1149 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" 1150 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 1151 | 1152 | prepend-http@^2.0.0: 1153 | version "2.0.0" 1154 | resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" 1155 | integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= 1156 | 1157 | process-nextick-args@~2.0.0: 1158 | version "2.0.1" 1159 | resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" 1160 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 1161 | 1162 | proxy-addr@~2.0.5: 1163 | version "2.0.7" 1164 | resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" 1165 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 1166 | dependencies: 1167 | forwarded "0.2.0" 1168 | ipaddr.js "1.9.1" 1169 | 1170 | pstree.remy@^1.1.7: 1171 | version "1.1.8" 1172 | resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz" 1173 | integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== 1174 | 1175 | pump@^3.0.0: 1176 | version "3.0.0" 1177 | resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" 1178 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 1179 | dependencies: 1180 | end-of-stream "^1.1.0" 1181 | once "^1.3.1" 1182 | 1183 | pupa@^2.0.1: 1184 | version "2.1.1" 1185 | resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" 1186 | integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== 1187 | dependencies: 1188 | escape-goat "^2.0.0" 1189 | 1190 | pusher@^5.0.0: 1191 | version "5.0.0" 1192 | resolved "https://registry.npmjs.org/pusher/-/pusher-5.0.0.tgz" 1193 | integrity sha512-YaSZHkukytHR9+lklJp4yefwfR4685kfS6pqrSDUxPj45Ga29lIgyN7Jcnsz+bN5WKwXaf2+4c/x/j3pzWIAkw== 1194 | dependencies: 1195 | abort-controller "^3.0.0" 1196 | is-base64 "^1.1.0" 1197 | node-fetch "^2.6.1" 1198 | tweetnacl "^1.0.0" 1199 | tweetnacl-util "^0.15.0" 1200 | 1201 | qs@6.7.0: 1202 | version "6.7.0" 1203 | resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz" 1204 | integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== 1205 | 1206 | range-parser@~1.2.1: 1207 | version "1.2.1" 1208 | resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" 1209 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 1210 | 1211 | raw-body@2.4.0: 1212 | version "2.4.0" 1213 | resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz" 1214 | integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== 1215 | dependencies: 1216 | bytes "3.1.0" 1217 | http-errors "1.7.2" 1218 | iconv-lite "0.4.24" 1219 | unpipe "1.0.0" 1220 | 1221 | rc@^1.2.8: 1222 | version "1.2.8" 1223 | resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" 1224 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 1225 | dependencies: 1226 | deep-extend "^0.6.0" 1227 | ini "~1.3.0" 1228 | minimist "^1.2.0" 1229 | strip-json-comments "~2.0.1" 1230 | 1231 | readable-stream@^2.3.5: 1232 | version "2.3.7" 1233 | resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" 1234 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 1235 | dependencies: 1236 | core-util-is "~1.0.0" 1237 | inherits "~2.0.3" 1238 | isarray "~1.0.0" 1239 | process-nextick-args "~2.0.0" 1240 | safe-buffer "~5.1.1" 1241 | string_decoder "~1.1.1" 1242 | util-deprecate "~1.0.1" 1243 | 1244 | readdirp@~3.6.0: 1245 | version "3.6.0" 1246 | resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" 1247 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1248 | dependencies: 1249 | picomatch "^2.2.1" 1250 | 1251 | regexp-clone@1.0.0, regexp-clone@^1.0.0: 1252 | version "1.0.0" 1253 | resolved "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz" 1254 | integrity sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw== 1255 | 1256 | registry-auth-token@^4.0.0: 1257 | version "4.2.1" 1258 | resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" 1259 | integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== 1260 | dependencies: 1261 | rc "^1.2.8" 1262 | 1263 | registry-url@^5.0.0: 1264 | version "5.1.0" 1265 | resolved "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" 1266 | integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== 1267 | dependencies: 1268 | rc "^1.2.8" 1269 | 1270 | require-directory@^2.1.1: 1271 | version "2.1.1" 1272 | resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" 1273 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 1274 | 1275 | require-main-filename@^2.0.0: 1276 | version "2.0.0" 1277 | resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" 1278 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== 1279 | 1280 | responselike@^1.0.2: 1281 | version "1.0.2" 1282 | resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" 1283 | integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= 1284 | dependencies: 1285 | lowercase-keys "^1.0.0" 1286 | 1287 | safe-buffer@5.1.2, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1288 | version "5.1.2" 1289 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" 1290 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1291 | 1292 | safe-buffer@5.2.1: 1293 | version "5.2.1" 1294 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" 1295 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1296 | 1297 | "safer-buffer@>= 2.1.2 < 3": 1298 | version "2.1.2" 1299 | resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" 1300 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1301 | 1302 | saslprep@^1.0.0: 1303 | version "1.0.3" 1304 | resolved "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz" 1305 | integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== 1306 | dependencies: 1307 | sparse-bitfield "^3.0.3" 1308 | 1309 | semver-diff@^3.1.1: 1310 | version "3.1.1" 1311 | resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" 1312 | integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== 1313 | dependencies: 1314 | semver "^6.3.0" 1315 | 1316 | semver@^5.7.1: 1317 | version "5.7.1" 1318 | resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" 1319 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1320 | 1321 | semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: 1322 | version "6.3.0" 1323 | resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" 1324 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1325 | 1326 | send@0.17.1: 1327 | version "0.17.1" 1328 | resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz" 1329 | integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== 1330 | dependencies: 1331 | debug "2.6.9" 1332 | depd "~1.1.2" 1333 | destroy "~1.0.4" 1334 | encodeurl "~1.0.2" 1335 | escape-html "~1.0.3" 1336 | etag "~1.8.1" 1337 | fresh "0.5.2" 1338 | http-errors "~1.7.2" 1339 | mime "1.6.0" 1340 | ms "2.1.1" 1341 | on-finished "~2.3.0" 1342 | range-parser "~1.2.1" 1343 | statuses "~1.5.0" 1344 | 1345 | serve-static@1.14.1: 1346 | version "1.14.1" 1347 | resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz" 1348 | integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== 1349 | dependencies: 1350 | encodeurl "~1.0.2" 1351 | escape-html "~1.0.3" 1352 | parseurl "~1.3.3" 1353 | send "0.17.1" 1354 | 1355 | set-blocking@^2.0.0: 1356 | version "2.0.0" 1357 | resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" 1358 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 1359 | 1360 | setprototypeof@1.1.1: 1361 | version "1.1.1" 1362 | resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" 1363 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 1364 | 1365 | sift@13.5.2: 1366 | version "13.5.2" 1367 | resolved "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz" 1368 | integrity sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA== 1369 | 1370 | signal-exit@^3.0.2: 1371 | version "3.0.3" 1372 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" 1373 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 1374 | 1375 | sliced@1.0.1: 1376 | version "1.0.1" 1377 | resolved "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz" 1378 | integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E= 1379 | 1380 | socket.io-adapter@~2.3.0: 1381 | version "2.3.1" 1382 | resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.1.tgz" 1383 | integrity sha512-8cVkRxI8Nt2wadkY6u60Y4rpW3ejA1rxgcK2JuyIhmF+RMNpTy1QRtkHIDUOf3B4HlQwakMsWbKftMv/71VMmw== 1384 | 1385 | socket.io-parser@~4.0.3: 1386 | version "4.0.4" 1387 | resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz" 1388 | integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g== 1389 | dependencies: 1390 | "@types/component-emitter" "^1.2.10" 1391 | component-emitter "~1.3.0" 1392 | debug "~4.3.1" 1393 | 1394 | socket.io@^4.1.2: 1395 | version "4.1.2" 1396 | resolved "https://registry.npmjs.org/socket.io/-/socket.io-4.1.2.tgz" 1397 | integrity sha512-xK0SD1C7hFrh9+bYoYCdVt+ncixkSLKtNLCax5aEy1o3r5PaO5yQhVb97exIe67cE7lAK+EpyMytXWTWmyZY8w== 1398 | dependencies: 1399 | "@types/cookie" "^0.4.0" 1400 | "@types/cors" "^2.8.8" 1401 | "@types/node" ">=10.0.0" 1402 | accepts "~1.3.4" 1403 | base64id "~2.0.0" 1404 | debug "~4.3.1" 1405 | engine.io "~5.1.0" 1406 | socket.io-adapter "~2.3.0" 1407 | socket.io-parser "~4.0.3" 1408 | 1409 | sparse-bitfield@^3.0.3: 1410 | version "3.0.3" 1411 | resolved "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz" 1412 | integrity sha1-/0rm5oZWBWuks+eSqzM004JzyhE= 1413 | dependencies: 1414 | memory-pager "^1.0.2" 1415 | 1416 | "statuses@>= 1.5.0 < 2", statuses@~1.5.0: 1417 | version "1.5.0" 1418 | resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" 1419 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 1420 | 1421 | string-width@^3.0.0: 1422 | version "3.1.0" 1423 | resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" 1424 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 1425 | dependencies: 1426 | emoji-regex "^7.0.1" 1427 | is-fullwidth-code-point "^2.0.0" 1428 | strip-ansi "^5.1.0" 1429 | 1430 | string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: 1431 | version "4.2.2" 1432 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz" 1433 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== 1434 | dependencies: 1435 | emoji-regex "^8.0.0" 1436 | is-fullwidth-code-point "^3.0.0" 1437 | strip-ansi "^6.0.0" 1438 | 1439 | string_decoder@~1.1.1: 1440 | version "1.1.1" 1441 | resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" 1442 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 1443 | dependencies: 1444 | safe-buffer "~5.1.0" 1445 | 1446 | strip-ansi@^5.1.0: 1447 | version "5.2.0" 1448 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" 1449 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 1450 | dependencies: 1451 | ansi-regex "^4.1.0" 1452 | 1453 | strip-ansi@^6.0.0: 1454 | version "6.0.0" 1455 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" 1456 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 1457 | dependencies: 1458 | ansi-regex "^5.0.0" 1459 | 1460 | strip-json-comments@~2.0.1: 1461 | version "2.0.1" 1462 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" 1463 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 1464 | 1465 | supports-color@^5.5.0: 1466 | version "5.5.0" 1467 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" 1468 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1469 | dependencies: 1470 | has-flag "^3.0.0" 1471 | 1472 | supports-color@^7.1.0: 1473 | version "7.2.0" 1474 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" 1475 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1476 | dependencies: 1477 | has-flag "^4.0.0" 1478 | 1479 | term-size@^2.1.0: 1480 | version "2.2.1" 1481 | resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz" 1482 | integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== 1483 | 1484 | to-readable-stream@^1.0.0: 1485 | version "1.0.0" 1486 | resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" 1487 | integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== 1488 | 1489 | to-regex-range@^5.0.1: 1490 | version "5.0.1" 1491 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" 1492 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1493 | dependencies: 1494 | is-number "^7.0.0" 1495 | 1496 | toidentifier@1.0.0: 1497 | version "1.0.0" 1498 | resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" 1499 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 1500 | 1501 | touch@^3.1.0: 1502 | version "3.1.0" 1503 | resolved "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz" 1504 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== 1505 | dependencies: 1506 | nopt "~1.0.10" 1507 | 1508 | tweetnacl-util@^0.15.0: 1509 | version "0.15.1" 1510 | resolved "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz" 1511 | integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== 1512 | 1513 | tweetnacl@^1.0.0: 1514 | version "1.0.3" 1515 | resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" 1516 | integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== 1517 | 1518 | type-fest@^0.8.1: 1519 | version "0.8.1" 1520 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" 1521 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 1522 | 1523 | type-is@~1.6.17, type-is@~1.6.18: 1524 | version "1.6.18" 1525 | resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" 1526 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 1527 | dependencies: 1528 | media-typer "0.3.0" 1529 | mime-types "~2.1.24" 1530 | 1531 | typedarray-to-buffer@^3.1.5: 1532 | version "3.1.5" 1533 | resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" 1534 | integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== 1535 | dependencies: 1536 | is-typedarray "^1.0.0" 1537 | 1538 | undefsafe@^2.0.3: 1539 | version "2.0.3" 1540 | resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz" 1541 | integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A== 1542 | dependencies: 1543 | debug "^2.2.0" 1544 | 1545 | unique-string@^2.0.0: 1546 | version "2.0.0" 1547 | resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" 1548 | integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== 1549 | dependencies: 1550 | crypto-random-string "^2.0.0" 1551 | 1552 | unpipe@1.0.0, unpipe@~1.0.0: 1553 | version "1.0.0" 1554 | resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" 1555 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 1556 | 1557 | update-notifier@^4.1.0: 1558 | version "4.1.3" 1559 | resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz" 1560 | integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== 1561 | dependencies: 1562 | boxen "^4.2.0" 1563 | chalk "^3.0.0" 1564 | configstore "^5.0.1" 1565 | has-yarn "^2.1.0" 1566 | import-lazy "^2.1.0" 1567 | is-ci "^2.0.0" 1568 | is-installed-globally "^0.3.1" 1569 | is-npm "^4.0.0" 1570 | is-yarn-global "^0.3.0" 1571 | latest-version "^5.0.0" 1572 | pupa "^2.0.1" 1573 | semver-diff "^3.1.1" 1574 | xdg-basedir "^4.0.0" 1575 | 1576 | url-parse-lax@^3.0.0: 1577 | version "3.0.0" 1578 | resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" 1579 | integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= 1580 | dependencies: 1581 | prepend-http "^2.0.0" 1582 | 1583 | util-deprecate@~1.0.1: 1584 | version "1.0.2" 1585 | resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" 1586 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1587 | 1588 | utils-merge@1.0.1: 1589 | version "1.0.1" 1590 | resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" 1591 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 1592 | 1593 | uuid@^3.4.0: 1594 | version "3.4.0" 1595 | resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" 1596 | integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== 1597 | 1598 | uuid@^8.3.2: 1599 | version "8.3.2" 1600 | resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" 1601 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 1602 | 1603 | vary@^1, vary@~1.1.2: 1604 | version "1.1.2" 1605 | resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" 1606 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 1607 | 1608 | which-module@^2.0.0: 1609 | version "2.0.0" 1610 | resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" 1611 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= 1612 | 1613 | widest-line@^3.1.0: 1614 | version "3.1.0" 1615 | resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" 1616 | integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== 1617 | dependencies: 1618 | string-width "^4.0.0" 1619 | 1620 | wrap-ansi@^6.2.0: 1621 | version "6.2.0" 1622 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" 1623 | integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== 1624 | dependencies: 1625 | ansi-styles "^4.0.0" 1626 | string-width "^4.1.0" 1627 | strip-ansi "^6.0.0" 1628 | 1629 | wrappy@1: 1630 | version "1.0.2" 1631 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" 1632 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1633 | 1634 | write-file-atomic@^3.0.0: 1635 | version "3.0.3" 1636 | resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" 1637 | integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== 1638 | dependencies: 1639 | imurmurhash "^0.1.4" 1640 | is-typedarray "^1.0.0" 1641 | signal-exit "^3.0.2" 1642 | typedarray-to-buffer "^3.1.5" 1643 | 1644 | ws@^7.2.3: 1645 | version "7.5.1" 1646 | resolved "https://registry.npmjs.org/ws/-/ws-7.5.1.tgz" 1647 | integrity sha512-2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow== 1648 | 1649 | ws@~7.4.2: 1650 | version "7.4.6" 1651 | resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" 1652 | integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== 1653 | 1654 | xdg-basedir@^4.0.0: 1655 | version "4.0.0" 1656 | resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" 1657 | integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== 1658 | 1659 | y18n@^4.0.0: 1660 | version "4.0.3" 1661 | resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" 1662 | integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== 1663 | 1664 | yargs-parser@^18.1.2: 1665 | version "18.1.3" 1666 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" 1667 | integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== 1668 | dependencies: 1669 | camelcase "^5.0.0" 1670 | decamelize "^1.2.0" 1671 | 1672 | yargs@^15.3.1: 1673 | version "15.4.1" 1674 | resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" 1675 | integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== 1676 | dependencies: 1677 | cliui "^6.0.0" 1678 | decamelize "^1.2.0" 1679 | find-up "^4.1.0" 1680 | get-caller-file "^2.0.1" 1681 | require-directory "^2.1.1" 1682 | require-main-filename "^2.0.0" 1683 | set-blocking "^2.0.0" 1684 | string-width "^4.2.0" 1685 | which-module "^2.0.0" 1686 | y18n "^4.0.0" 1687 | yargs-parser "^18.1.2" 1688 | --------------------------------------------------------------------------------