├── .Babelrc ├── .env.example ├── .gitignore ├── README.md ├── package.json ├── src ├── app │ ├── controllers │ │ ├── Auth │ │ │ ├── AuthController.js │ │ │ └── config.js │ │ ├── MessageController.js │ │ ├── RoomController.js │ │ └── UserController.js │ ├── models │ │ ├── index.js │ │ └── server │ │ │ ├── Message.js │ │ │ ├── Room.js │ │ │ └── User.js │ └── mongo │ │ └── database.js ├── index.js ├── routes │ ├── auth.js │ ├── index.js │ ├── message.js │ ├── room.js │ └── users.js ├── server │ └── socket.js └── vendor │ ├── server.js │ └── utils │ ├── info.json │ └── server │ ├── functions │ ├── ConsoleBox.js │ ├── ErrorHandle.js │ ├── InfoVersion.js │ ├── Logger.js │ └── ResponseLogger.js │ └── index.js ├── yarn-error.log └── yarn.lock /.Babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@babel/preset-env"]], 3 | "plugins": ["@babel/plugin-syntax-dynamic-import", "@babel/plugin-proposal-class-properties", "@babel/plugin-transform-runtime", "@babel/plugin-transform-regenerator"] 4 | } 5 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | SERVER_PORT=3010 2 | MONGO_URL="mongodb://localhost:27017/serverchat" -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | build/ 3 | public/ 4 | .vercel 5 | .env -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Private Chat server (User to User) with NodeJS 2 | 3 | This repository is for building private chat server or user to user. This engine made with NodeJS, SocketIO, and MongoDB. 4 | 5 | ## For Development 6 | 7 | 1. clone this repository 8 | 2. run `yarn` or `npm install` 9 | 3. change PORT `.env` 10 | 4. Change URL mongodb in `app/mongo/index.js` 11 | 5. and run `yarn dev` or `npm run dev` 12 | 13 | ## For Production 14 | 15 | 1. clone this repository 16 | 2. change PORT `.env` 17 | 3. Change URL mongodb 18 | 4. run `yarn build` or `npm run build` 19 | 5. and deploy to server 20 | 21 | ## Frontend Web Chat 22 | 23 | - [ReactJS](https://github.com/revell29/frontend-private-chat_reactJS) 24 | 25 | ## Contact Me 26 | 27 | - [apsyadira](https://t.me/apsyadiraa) 28 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "author": "dira", 6 | "license": "MIT", 7 | "scripts": { 8 | "dev": "nodemon --exec babel-node src/index.js", 9 | "build": "babel src --out-dir build", 10 | "start": "pm2 start build/index.js --name 'chat-engine'" 11 | }, 12 | "dependencies": { 13 | "bcrypt": "^5.0.0", 14 | "body-parser": "^1.19.0", 15 | "boxen": "^4.2.0", 16 | "chalk": "^4.0.0", 17 | "cors": "^2.8.5", 18 | "dotenv": "^8.2.0", 19 | "express": "^4.17.1", 20 | "jsonwebtoken": "^8.5.1", 21 | "mongoose": "^5.9.17", 22 | "morgan": "^1.10.0", 23 | "multer": "^1.4.2", 24 | "nodemon": "^2.0.4", 25 | "path": "^0.12.7", 26 | "slugify": "^1.4.0", 27 | "socket.io": "^2.3.0", 28 | "underscore": "^1.10.2", 29 | "underscore.string": "^3.3.5" 30 | }, 31 | "devDependencies": { 32 | "@babel/cli": "^7.10.1", 33 | "@babel/core": "^7.10.2", 34 | "@babel/node": "^7.10.1", 35 | "@babel/plugin-proposal-class-properties": "^7.8.3", 36 | "@babel/plugin-transform-regenerator": "^7.10.1", 37 | "@babel/plugin-transform-runtime": "^7.10.1", 38 | "@babel/preset-env": "^7.10.2" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/app/controllers/Auth/AuthController.js: -------------------------------------------------------------------------------- 1 | import User from "../../models/server/User"; 2 | import Bcrypt from "bcrypt"; 3 | import jwt from "jsonwebtoken"; 4 | import { config } from "./config"; 5 | class AuthController { 6 | /** 7 | * Login User 8 | * 9 | * @param { Request, Response} 10 | * @return Response 11 | **/ 12 | static async login(req, res) { 13 | try { 14 | const dataUser = await User.findOne({ username: req.body.username }); 15 | if (!dataUser) { 16 | return res.status(401).send({ message: "The username does not exist", status: 401 }); 17 | } 18 | if (!Bcrypt.compareSync(req.body.password, dataUser.password)) { 19 | return res.status(401).send({ message: "The password is invalid", status: 401 }); 20 | } 21 | 22 | let token = jwt.sign({ username: req.body.username }, config.secret, { 23 | expiresIn: "24h", // expires in 24 hours 24 | }); 25 | res.status(200).send({ message: "The username and password combination is correct!", token: token, data: dataUser, status: 200 }); 26 | } catch (error) { 27 | res.status(500).send({ message: error.message }); 28 | } 29 | } 30 | 31 | /** 32 | * Register User 33 | * 34 | * @param {Request, Response} 35 | * @return { Response } 36 | **/ 37 | static async register(req, res) { 38 | try { 39 | console.log(req.body); 40 | req.body.password = Bcrypt.hashSync(req.body.password, 10); 41 | const dataUser = new User(req.body); 42 | const result = await dataUser.save(); 43 | res.status(200).send({ message: "Register success", status: 200, data: result }); 44 | } catch (error) { 45 | res.status(500).send({ message: error.message }); 46 | } 47 | } 48 | } 49 | 50 | export default AuthController; 51 | -------------------------------------------------------------------------------- /src/app/controllers/Auth/config.js: -------------------------------------------------------------------------------- 1 | export const config = { 2 | secret: "worldisfullofdevelopers", 3 | }; 4 | -------------------------------------------------------------------------------- /src/app/controllers/MessageController.js: -------------------------------------------------------------------------------- 1 | import Message from "../models/server/Message"; 2 | import { ResponseMessage } from "../../vendor/utils/server/functions/ErrorHandle"; 3 | 4 | class MessageController { 5 | static async getChat(req, res) { 6 | try { 7 | const { from, to } = req.body; 8 | const dataChat = await Message.find({ $or: [{ from: from }, { to: to }, { from: to }, { to: from }] }); 9 | res.status(200).send({ message: "succes", data: dataChat }); 10 | } catch (error) { 11 | res.status(500).send({ message: error.message }); 12 | } 13 | } 14 | 15 | static async postMessage(req, res) { 16 | try { 17 | const { from, to, message, author, rid } = req.body; 18 | const files = req.file ? req.file.filename : null; 19 | 20 | const dataChat = new Message({ 21 | from: from, 22 | message: message, 23 | to: to, 24 | author: author, 25 | rid: rid, 26 | files: files, 27 | }); 28 | dataChat.save(); 29 | res.status(200).send({ message: "success", data: dataChat }); 30 | } catch (error) { 31 | res.status(500).send({ message: error.message }); 32 | } 33 | } 34 | } 35 | 36 | export default MessageController; 37 | -------------------------------------------------------------------------------- /src/app/controllers/RoomController.js: -------------------------------------------------------------------------------- 1 | import Room from "../models/server/Room"; 2 | import User from "../models/server/User"; 3 | import Message from "../models/server/Message"; 4 | 5 | class RoomController { 6 | static async listConversation(req, res) { 7 | Room.find({ participants: { $in: [req.body.authUser] } }) 8 | .select("_id, participants") 9 | .exec((err, conversations) => { 10 | if (err) { 11 | res.send({ error: err }); 12 | return next(err); 13 | } 14 | 15 | return res.status(200).json(conversations); 16 | }); 17 | } 18 | 19 | static async createDirectMessage(req, res, next) { 20 | try { 21 | Room.findOne( 22 | { participants: { $all: [req.body.from, req.body.to] } }, 23 | (err, existConversation) => { 24 | if (err) { 25 | console.log(err); 26 | } 27 | 28 | if (existConversation) { 29 | Message.find({ rid: existConversation._id }).then((messages) => { 30 | const data = existConversation.toJSON(); 31 | data.messages = messages; 32 | return res.status(200).json(data); 33 | }); 34 | } else { 35 | const conversation = new Room({ 36 | rid: `${req.body.from}${req.body.to}`, 37 | participants: [req.body.from, req.body.to], 38 | }); 39 | 40 | conversation.save((err, newConversation) => { 41 | if (err) { 42 | res.send({ error: err }); 43 | return next(err); 44 | } 45 | 46 | newConversation.messages = []; 47 | 48 | return res.status(200).json(newConversation); 49 | }); 50 | } 51 | } 52 | ); 53 | } catch (error) { 54 | res.send({ message: error.message }); 55 | } 56 | } 57 | 58 | /** 59 | * Get conversation 60 | * 61 | */ 62 | static async get(req, res, id) { 63 | try { 64 | Room.findOne({ 65 | rid: req.params.id, 66 | participants: { 67 | $in: [req.body.from], 68 | }, 69 | }).then((conversation) => { 70 | if (conversation) { 71 | Message.find({ rid: conversation.rid }).then((messages) => { 72 | return res.status(200).send({ message: "success", data: messages }); 73 | }); 74 | } 75 | }); 76 | } catch (error) { 77 | res.status(500).send({ message: error.message }); 78 | } 79 | } 80 | } 81 | 82 | export default RoomController; 83 | -------------------------------------------------------------------------------- /src/app/controllers/UserController.js: -------------------------------------------------------------------------------- 1 | import User from "../models/server/User"; 2 | import Message from "../models/server/Message"; 3 | import bcrypt from "bcrypt"; 4 | import { ResponseMessage } from "../../vendor/utils/server/functions/ErrorHandle"; 5 | 6 | class UserController { 7 | static async getUser(req, res) { 8 | try { 9 | const page = req.query.page || 1; 10 | const per_page = req.query.per_page || 20; 11 | const username = req.params.username; 12 | const query = { username: { $ne: username } }; 13 | console.log(page); 14 | User.find(query) 15 | .populate("messeges") 16 | .skip(page * per_page - per_page) 17 | .limit(per_page) 18 | .exec(async (err, data) => { 19 | const count = await User.find(query).count(); 20 | const messages = await Message.find({ 21 | to: { $ne: data.to }, 22 | }).sort({ createdAt: -1 }); 23 | console.log(messages); 24 | res.send({ 25 | message: "success", 26 | data: { 27 | data: data, 28 | per_page: per_page, 29 | page: page, 30 | total_item: count, 31 | total_page: count / per_page, 32 | }, 33 | }); 34 | }); 35 | } catch (error) { 36 | res.send({ message: error.message }); 37 | } 38 | } 39 | } 40 | 41 | export default UserController; 42 | -------------------------------------------------------------------------------- /src/app/models/index.js: -------------------------------------------------------------------------------- 1 | import Message from "./server/Message"; 2 | import User from "./server/User"; 3 | -------------------------------------------------------------------------------- /src/app/models/server/Message.js: -------------------------------------------------------------------------------- 1 | import mongoose, { Schema } from "mongoose"; 2 | const schema = mongoose.Schema; 3 | 4 | const messageSchema = new schema( 5 | { 6 | message: { 7 | type: String, 8 | }, 9 | from: String, 10 | to: String, 11 | rid: { 12 | type: String, 13 | required: true, 14 | }, 15 | files: { 16 | type: String, 17 | }, 18 | author: { 19 | type: Schema.Types.ObjectId, 20 | ref: "Users", 21 | }, 22 | createdAt: { type: Date, default: Date.now }, 23 | updatedAt: { type: Date, default: Date.now }, 24 | }, 25 | { strict: false } 26 | ); 27 | 28 | const Message = mongoose.model("messages", messageSchema); 29 | 30 | export default Message; 31 | -------------------------------------------------------------------------------- /src/app/models/server/Room.js: -------------------------------------------------------------------------------- 1 | import mongoose, { Schema } from "mongoose"; 2 | const schema = mongoose.Schema; 3 | 4 | const roomSchema = new schema( 5 | { 6 | participants: [{ type: Schema.Types.ObjectId, ref: "Users" }], 7 | createdAt: { type: Date, default: Date.now }, 8 | updatedAt: { type: Date, default: Date.now }, 9 | }, 10 | { strict: false } 11 | ); 12 | 13 | const Room = mongoose.model("rooms", roomSchema); 14 | 15 | export default Room; 16 | -------------------------------------------------------------------------------- /src/app/models/server/User.js: -------------------------------------------------------------------------------- 1 | import mongoose, { Schema } from "mongoose"; 2 | const schema = mongoose.Schema; 3 | 4 | const userSchema = new schema( 5 | { 6 | username: { 7 | type: String, 8 | required: true, 9 | }, 10 | password: { 11 | type: String, 12 | required: true, 13 | }, 14 | messages: [ 15 | { 16 | type: Schema.Types.ObjectId, 17 | ref: "Messages", 18 | }, 19 | ], 20 | createdAt: { type: Date, default: Date.now }, 21 | updatedAt: { type: Date, default: Date.now }, 22 | }, 23 | { strict: false } 24 | ); 25 | 26 | const User = mongoose.model("users", userSchema); 27 | 28 | export default User; 29 | -------------------------------------------------------------------------------- /src/app/mongo/database.js: -------------------------------------------------------------------------------- 1 | import {} from "dotenv/config"; 2 | const database = `${process.env.MONGO_URL}`; 3 | export default database; 4 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import Server from "./vendor/server"; 2 | 3 | Server.run(); 4 | -------------------------------------------------------------------------------- /src/routes/auth.js: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | import AuthController from "../app/controllers/Auth/AuthController"; 3 | 4 | const router = express.Router(); 5 | 6 | router.post("/login", AuthController.login); 7 | router.post("/register", AuthController.register); 8 | 9 | export default router; 10 | -------------------------------------------------------------------------------- /src/routes/index.js: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | import message from "./message"; 3 | import users from "./users"; 4 | import auth from "./auth"; 5 | import room from "./room"; 6 | 7 | const app = express.Router(); 8 | 9 | app.use("/message", message); 10 | app.use("/users", users); 11 | app.use("/auth", auth); 12 | app.use("/room", room); 13 | 14 | export default app; 15 | -------------------------------------------------------------------------------- /src/routes/message.js: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | import MessageController from "../app/controllers/MessageController"; 3 | import multer from "multer"; 4 | import slugify from "slugify"; 5 | import * as path from "path"; 6 | 7 | const storage = multer.diskStorage({ 8 | destination: function (req, file, cb) { 9 | cb(null, "public/uploads/messages"); 10 | }, 11 | filename: function (req, file, cb) { 12 | cb(null, file.originalname); 13 | }, 14 | }); 15 | 16 | const router = express.Router(); 17 | const upload = multer({ storage: storage }); 18 | 19 | router.post("/", upload.single("files"), MessageController.postMessage); 20 | router.post("/get_chat", MessageController.getChat); 21 | 22 | export default router; 23 | -------------------------------------------------------------------------------- /src/routes/room.js: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | import RoomController from "../app/controllers/RoomController"; 3 | 4 | const router = express.Router(); 5 | 6 | router.post("/", RoomController.createDirectMessage); 7 | router.post("/list", RoomController.listConversation); 8 | router.post("/data/:id", RoomController.get); 9 | 10 | export default router; 11 | -------------------------------------------------------------------------------- /src/routes/users.js: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | import UserController from "../app/controllers/UserController"; 3 | 4 | const router = express.Router(); 5 | 6 | router.get("/:username", UserController.getUser); 7 | 8 | export default router; 9 | -------------------------------------------------------------------------------- /src/server/socket.js: -------------------------------------------------------------------------------- 1 | import { Logger } from "../vendor/utils/server"; 2 | export function EventIo(io) { 3 | // Rooms namespace 4 | io.on("connection", function (socket) { 5 | // Create a new room 6 | let token = socket.handshake.query.username; 7 | 8 | socket.on("join", (rid) => { 9 | socket.join(rid); 10 | }); 11 | 12 | socket.on("send message", (data) => { 13 | io.to(data.rid).emit("new message", data); 14 | 15 | socket.on("received", (data) => { 16 | io.to(data.from).emit("received", data); 17 | }); 18 | }); 19 | 20 | socket.on("typing", (data) => { 21 | io.to(data.rid).emmit("typing", data); 22 | }); 23 | 24 | socket.on("changeRoom", (data) => { 25 | socket.leave(data.rid); 26 | }); 27 | 28 | socket.on("disconnect", () => { 29 | Logger.log(token, "disconect"); 30 | }); 31 | }); 32 | } 33 | -------------------------------------------------------------------------------- /src/vendor/server.js: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | import http from "http"; 3 | import database from "../app/mongo/database"; 4 | import routes from "../routes"; 5 | import bodyParser from "body-parser"; 6 | import mongoose from "mongoose"; 7 | import cors from "cors"; 8 | import dotenv from "dotenv"; 9 | import socketio from "socket.io"; 10 | import morgan from "morgan"; 11 | import { EventIo } from "../server/socket"; 12 | import { msg, ResponseLogger, Logger } from "./utils/server"; 13 | import boxen from "boxen"; 14 | 15 | class Server { 16 | constructor() { 17 | dotenv.config(); 18 | this.startupMessage(); 19 | this.application = express(); 20 | this.port = process.env.PORT || 3005; 21 | this.server = http.createServer(this.application); 22 | this.mongodb(); 23 | this.socket(); 24 | this.plugin(); 25 | this.routes(); 26 | } 27 | 28 | startupMessage() { 29 | console.log(boxen(msg, { padding: 1 })); 30 | } 31 | 32 | plugin() { 33 | this.application.use(cors()); 34 | this.application.use(bodyParser.urlencoded({ extended: true })); 35 | this.application.use(bodyParser.json()); 36 | this.application.use(ResponseLogger); 37 | this.application.use(express.static("public")); 38 | } 39 | 40 | socket() { 41 | const io = socketio(this.server); 42 | io.set("transports", ["websocket"]); 43 | io.use((socket, next) => { 44 | let token = socket.handshake.query.username; 45 | if (token) { 46 | return next(); 47 | } 48 | Logger.error(`Socket error`); 49 | }); 50 | EventIo(io); 51 | } 52 | 53 | mongodb() { 54 | mongoose 55 | .connect(database, { useNewUrlParser: true, useUnifiedTopology: true }) 56 | .then(() => Logger.log(`MongoDB connected`)) 57 | .catch((err) => { 58 | Logger.error(err); 59 | }); 60 | } 61 | 62 | routes() { 63 | this.application.use("/api", routes); 64 | this.application.use("/api*", (req, res, next) => { 65 | res.status(400).send({ message: "Ooops! not found." }); 66 | }); 67 | } 68 | 69 | run() { 70 | this.server.listen(this.port, () => { 71 | Logger.log(`Server running on port ${this.port} ⚡️`); 72 | }); 73 | } 74 | } 75 | 76 | export default new Server(); 77 | -------------------------------------------------------------------------------- /src/vendor/utils/info.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0.0-develop", 3 | "author": "Apsyadira", 4 | "github": "https://github.com/revell29" 5 | } -------------------------------------------------------------------------------- /src/vendor/utils/server/functions/ConsoleBox.js: -------------------------------------------------------------------------------- 1 | import _ from "underscore"; 2 | import color from "chalk"; 3 | import s from "underscore.string"; 4 | 5 | export class Logger { 6 | makeABox(message, title) { 7 | if (!_.isArray(message)) { 8 | message = message.split("\n"); 9 | } 10 | let len = 0; 11 | 12 | len = Math.max.apply( 13 | null, 14 | message.map((line) => line.length) 15 | ); 16 | 17 | const topLine = `+--${s.pad("", len, "-")}--+`; 18 | const separator = `| ${s.pad("", len, "")} |`; 19 | let lines = []; 20 | 21 | lines.push(topLine); 22 | if (title) { 23 | lines.push(`| ${s.lrpad(title, len)} |`); 24 | lines.push(topLine); 25 | } 26 | lines.push(separator); 27 | 28 | lines = [...lines, ...message.map((line) => `| ${s.rpad(line, len)} |`)]; 29 | 30 | lines.push(separator); 31 | lines.push(topLine); 32 | 33 | return lines; 34 | } 35 | 36 | _logs(message, title) { 37 | const box = this.makeABox(message, title); 38 | let subPrefix = "➔"; 39 | box.forEach((line) => { 40 | console.log(subPrefix, color.cyan(line)); 41 | }); 42 | } 43 | } 44 | 45 | export const SystemLogger = new Logger(); 46 | -------------------------------------------------------------------------------- /src/vendor/utils/server/functions/ErrorHandle.js: -------------------------------------------------------------------------------- 1 | export function ResponseMessage(status, res, message, data = null) { 2 | if (status === 200) { 3 | res.status(status).send({ message: message, data: data }); 4 | } else if (status === 500) { 5 | res.status(status).send({ message: message, data: data }); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/vendor/utils/server/functions/InfoVersion.js: -------------------------------------------------------------------------------- 1 | // const info = require("../../info.json"); 2 | 3 | let msg = `Chat Engine Version: 1.0.1-develop 4 | NodeJS Version: ${process.versions.node} - ${process.arch} 5 | Platform: ${process.platform} 6 | Process Port: ${process.env.PORT} 7 | Author: Apsyadira 8 | Github: https://github.com/revell29`; 9 | 10 | export { msg }; 11 | -------------------------------------------------------------------------------- /src/vendor/utils/server/functions/Logger.js: -------------------------------------------------------------------------------- 1 | import chalk from "chalk"; 2 | const LOG_TYPES = { 3 | NONE: 0, 4 | ERROR: 1, 5 | NORMAL: 2, 6 | DEBUG: 3, 7 | FFDEBUG: 4, 8 | }; 9 | 10 | let logType = LOG_TYPES.NORMAL; 11 | let subPrefix = "➔"; 12 | 13 | class CoreLogger { 14 | setLogType(type) { 15 | if (typeof type !== "number") return; 16 | 17 | logType = type; 18 | } 19 | 20 | logTime() { 21 | let nowDate = new Date(); 22 | return ( 23 | nowDate.toLocaleDateString() + 24 | " " + 25 | nowDate.toLocaleTimeString([], { hour12: false }) 26 | ); 27 | } 28 | 29 | log(...args) { 30 | if (logType < LOG_TYPES.NORMAL) return; 31 | 32 | console.log( 33 | this.logTime(), 34 | process.pid, 35 | chalk.bold.green("[INFO]"), 36 | ...args 37 | ); 38 | } 39 | 40 | error(...args) { 41 | if (logType < LOG_TYPES.ERROR) return; 42 | 43 | console.log( 44 | this.logTime(), 45 | process.pid, 46 | chalk.bold.red("[ERROR]"), 47 | ...args 48 | ); 49 | } 50 | 51 | debug(...args) { 52 | if (logType < LOG_TYPES.DEBUG) return; 53 | 54 | console.log( 55 | this.logTime(), 56 | process.pid, 57 | chalk.bold.blue("[DEBUG]"), 58 | ...args 59 | ); 60 | } 61 | 62 | ffdebug(...args) { 63 | if (logType < LOG_TYPES.FFDEBUG) return; 64 | 65 | console.log( 66 | this.logTime(), 67 | process.pid, 68 | chalk.bold.blue("[FFDEBUG]"), 69 | ...args 70 | ); 71 | } 72 | } 73 | 74 | const Logger = new CoreLogger(); 75 | 76 | export { Logger }; 77 | -------------------------------------------------------------------------------- /src/vendor/utils/server/functions/ResponseLogger.js: -------------------------------------------------------------------------------- 1 | import chalk from "chalk"; 2 | import { Logger } from "./Logger"; 3 | 4 | function ResponseLogger(req, res, next) { 5 | if (req) { 6 | Logger.log(`${chalk.bold.blue(req.method)} ${req.path}`); 7 | } 8 | next(); 9 | } 10 | 11 | export { ResponseLogger }; 12 | -------------------------------------------------------------------------------- /src/vendor/utils/server/index.js: -------------------------------------------------------------------------------- 1 | export { SystemLogger } from "./functions/ConsoleBox"; 2 | export { msg } from "./functions/InfoVersion"; 3 | export { Logger } from "./functions/Logger"; 4 | export { ResponseLogger } from "./functions/ResponseLogger"; 5 | -------------------------------------------------------------------------------- /yarn-error.log: -------------------------------------------------------------------------------- 1 | Arguments: 2 | /usr/local/Cellar/node/14.3.0/bin/node /usr/local/bin/yarn add @babel/clo @babel/node @babel/core @babel/preset-env --dev 3 | 4 | PATH: 5 | /Users/mac/.deno/bin:/usr/local/opt/php@7.3/sbin:/Users/mac/Development/bin:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin:/Users/mac/Library/Android/sdk/platform-tools:/Users/mac/Library/Android/sdk/emulator:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 6 | 7 | Yarn version: 8 | 1.21.1 9 | 10 | Node version: 11 | 14.3.0 12 | 13 | Platform: 14 | darwin x64 15 | 16 | Trace: 17 | Error: https://registry.yarnpkg.com/@babel%2fclo: Not found 18 | at Request.params.callback [as _callback] (/usr/local/lib/node_modules/yarn/lib/cli.js:66947:18) 19 | at Request.self.callback (/usr/local/lib/node_modules/yarn/lib/cli.js:140665:22) 20 | at Request.emit (events.js:315:20) 21 | at Request. (/usr/local/lib/node_modules/yarn/lib/cli.js:141637:10) 22 | at Request.emit (events.js:315:20) 23 | at IncomingMessage. (/usr/local/lib/node_modules/yarn/lib/cli.js:141559:12) 24 | at Object.onceWrapper (events.js:421:28) 25 | at IncomingMessage.emit (events.js:327:22) 26 | at endReadableNT (_stream_readable.js:1224:12) 27 | at processTicksAndRejections (internal/process/task_queues.js:84:21) 28 | 29 | npm manifest: 30 | { 31 | "dependencies": { 32 | "body-parser": "^1.19.0", 33 | "cors": "^2.8.5", 34 | "dotenv": "^8.2.0", 35 | "express": "^4.17.1", 36 | "mongoose": "^5.9.17", 37 | "morgan": "^1.10.0", 38 | "nodemon": "^2.0.4", 39 | "socket.io": "^2.3.0" 40 | } 41 | } 42 | 43 | yarn manifest: 44 | No manifest 45 | 46 | Lockfile: 47 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 48 | # yarn lockfile v1 49 | 50 | 51 | "@sindresorhus/is@^0.14.0": 52 | version "0.14.0" 53 | resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" 54 | integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== 55 | 56 | "@szmarczak/http-timer@^1.1.2": 57 | version "1.1.2" 58 | resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" 59 | integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== 60 | dependencies: 61 | defer-to-connect "^1.0.1" 62 | 63 | "@types/color-name@^1.1.1": 64 | version "1.1.1" 65 | resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" 66 | integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== 67 | 68 | abbrev@1: 69 | version "1.1.1" 70 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 71 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 72 | 73 | accepts@~1.3.4, accepts@~1.3.7: 74 | version "1.3.7" 75 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 76 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 77 | dependencies: 78 | mime-types "~2.1.24" 79 | negotiator "0.6.2" 80 | 81 | after@0.8.2: 82 | version "0.8.2" 83 | resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" 84 | integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= 85 | 86 | ansi-align@^3.0.0: 87 | version "3.0.0" 88 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" 89 | integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== 90 | dependencies: 91 | string-width "^3.0.0" 92 | 93 | ansi-regex@^4.1.0: 94 | version "4.1.0" 95 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 96 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 97 | 98 | ansi-regex@^5.0.0: 99 | version "5.0.0" 100 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 101 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 102 | 103 | ansi-styles@^4.1.0: 104 | version "4.2.1" 105 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" 106 | integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== 107 | dependencies: 108 | "@types/color-name" "^1.1.1" 109 | color-convert "^2.0.1" 110 | 111 | anymatch@~3.1.1: 112 | version "3.1.1" 113 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" 114 | integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== 115 | dependencies: 116 | normalize-path "^3.0.0" 117 | picomatch "^2.0.4" 118 | 119 | array-flatten@1.1.1: 120 | version "1.1.1" 121 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 122 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= 123 | 124 | arraybuffer.slice@~0.0.7: 125 | version "0.0.7" 126 | resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" 127 | integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== 128 | 129 | async-limiter@~1.0.0: 130 | version "1.0.1" 131 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" 132 | integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== 133 | 134 | backo2@1.0.2: 135 | version "1.0.2" 136 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" 137 | integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= 138 | 139 | balanced-match@^1.0.0: 140 | version "1.0.0" 141 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 142 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 143 | 144 | base64-arraybuffer@0.1.5: 145 | version "0.1.5" 146 | resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" 147 | integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= 148 | 149 | base64id@2.0.0: 150 | version "2.0.0" 151 | resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" 152 | integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== 153 | 154 | basic-auth@~2.0.1: 155 | version "2.0.1" 156 | resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" 157 | integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== 158 | dependencies: 159 | safe-buffer "5.1.2" 160 | 161 | better-assert@~1.0.0: 162 | version "1.0.2" 163 | resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" 164 | integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= 165 | dependencies: 166 | callsite "1.0.0" 167 | 168 | binary-extensions@^2.0.0: 169 | version "2.0.0" 170 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" 171 | integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== 172 | 173 | bl@^2.2.0: 174 | version "2.2.0" 175 | resolved "https://registry.yarnpkg.com/bl/-/bl-2.2.0.tgz#e1a574cdf528e4053019bb800b041c0ac88da493" 176 | integrity sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA== 177 | dependencies: 178 | readable-stream "^2.3.5" 179 | safe-buffer "^5.1.1" 180 | 181 | blob@0.0.5: 182 | version "0.0.5" 183 | resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" 184 | integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== 185 | 186 | bluebird@3.5.1: 187 | version "3.5.1" 188 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" 189 | integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== 190 | 191 | body-parser@1.19.0, body-parser@^1.19.0: 192 | version "1.19.0" 193 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" 194 | integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== 195 | dependencies: 196 | bytes "3.1.0" 197 | content-type "~1.0.4" 198 | debug "2.6.9" 199 | depd "~1.1.2" 200 | http-errors "1.7.2" 201 | iconv-lite "0.4.24" 202 | on-finished "~2.3.0" 203 | qs "6.7.0" 204 | raw-body "2.4.0" 205 | type-is "~1.6.17" 206 | 207 | boxen@^4.2.0: 208 | version "4.2.0" 209 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" 210 | integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== 211 | dependencies: 212 | ansi-align "^3.0.0" 213 | camelcase "^5.3.1" 214 | chalk "^3.0.0" 215 | cli-boxes "^2.2.0" 216 | string-width "^4.1.0" 217 | term-size "^2.1.0" 218 | type-fest "^0.8.1" 219 | widest-line "^3.1.0" 220 | 221 | brace-expansion@^1.1.7: 222 | version "1.1.11" 223 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 224 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 225 | dependencies: 226 | balanced-match "^1.0.0" 227 | concat-map "0.0.1" 228 | 229 | braces@~3.0.2: 230 | version "3.0.2" 231 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 232 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 233 | dependencies: 234 | fill-range "^7.0.1" 235 | 236 | bson@^1.1.4: 237 | version "1.1.4" 238 | resolved "https://registry.yarnpkg.com/bson/-/bson-1.1.4.tgz#f76870d799f15b854dffb7ee32f0a874797f7e89" 239 | integrity sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q== 240 | 241 | bytes@3.1.0: 242 | version "3.1.0" 243 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 244 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 245 | 246 | cacheable-request@^6.0.0: 247 | version "6.1.0" 248 | resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" 249 | integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== 250 | dependencies: 251 | clone-response "^1.0.2" 252 | get-stream "^5.1.0" 253 | http-cache-semantics "^4.0.0" 254 | keyv "^3.0.0" 255 | lowercase-keys "^2.0.0" 256 | normalize-url "^4.1.0" 257 | responselike "^1.0.2" 258 | 259 | callsite@1.0.0: 260 | version "1.0.0" 261 | resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" 262 | integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= 263 | 264 | camelcase@^5.3.1: 265 | version "5.3.1" 266 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 267 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 268 | 269 | chalk@^3.0.0: 270 | version "3.0.0" 271 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" 272 | integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== 273 | dependencies: 274 | ansi-styles "^4.1.0" 275 | supports-color "^7.1.0" 276 | 277 | chokidar@^3.2.2: 278 | version "3.4.0" 279 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" 280 | integrity sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ== 281 | dependencies: 282 | anymatch "~3.1.1" 283 | braces "~3.0.2" 284 | glob-parent "~5.1.0" 285 | is-binary-path "~2.1.0" 286 | is-glob "~4.0.1" 287 | normalize-path "~3.0.0" 288 | readdirp "~3.4.0" 289 | optionalDependencies: 290 | fsevents "~2.1.2" 291 | 292 | ci-info@^2.0.0: 293 | version "2.0.0" 294 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" 295 | integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== 296 | 297 | cli-boxes@^2.2.0: 298 | version "2.2.0" 299 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" 300 | integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== 301 | 302 | clone-response@^1.0.2: 303 | version "1.0.2" 304 | resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" 305 | integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= 306 | dependencies: 307 | mimic-response "^1.0.0" 308 | 309 | color-convert@^2.0.1: 310 | version "2.0.1" 311 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 312 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 313 | dependencies: 314 | color-name "~1.1.4" 315 | 316 | color-name@~1.1.4: 317 | version "1.1.4" 318 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 319 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 320 | 321 | component-bind@1.0.0: 322 | version "1.0.0" 323 | resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" 324 | integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= 325 | 326 | component-emitter@1.2.1: 327 | version "1.2.1" 328 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 329 | integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= 330 | 331 | component-emitter@~1.3.0: 332 | version "1.3.0" 333 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" 334 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== 335 | 336 | component-inherit@0.0.3: 337 | version "0.0.3" 338 | resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" 339 | integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= 340 | 341 | concat-map@0.0.1: 342 | version "0.0.1" 343 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 344 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 345 | 346 | configstore@^5.0.1: 347 | version "5.0.1" 348 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" 349 | integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== 350 | dependencies: 351 | dot-prop "^5.2.0" 352 | graceful-fs "^4.1.2" 353 | make-dir "^3.0.0" 354 | unique-string "^2.0.0" 355 | write-file-atomic "^3.0.0" 356 | xdg-basedir "^4.0.0" 357 | 358 | content-disposition@0.5.3: 359 | version "0.5.3" 360 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" 361 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 362 | dependencies: 363 | safe-buffer "5.1.2" 364 | 365 | content-type@~1.0.4: 366 | version "1.0.4" 367 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 368 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 369 | 370 | cookie-signature@1.0.6: 371 | version "1.0.6" 372 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 373 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= 374 | 375 | cookie@0.3.1: 376 | version "0.3.1" 377 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 378 | integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= 379 | 380 | cookie@0.4.0: 381 | version "0.4.0" 382 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" 383 | integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== 384 | 385 | core-util-is@~1.0.0: 386 | version "1.0.2" 387 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 388 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 389 | 390 | cors@^2.8.5: 391 | version "2.8.5" 392 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" 393 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== 394 | dependencies: 395 | object-assign "^4" 396 | vary "^1" 397 | 398 | crypto-random-string@^2.0.0: 399 | version "2.0.0" 400 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" 401 | integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== 402 | 403 | debug@2.6.9, debug@^2.2.0: 404 | version "2.6.9" 405 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 406 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 407 | dependencies: 408 | ms "2.0.0" 409 | 410 | debug@3.1.0, debug@~3.1.0: 411 | version "3.1.0" 412 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 413 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 414 | dependencies: 415 | ms "2.0.0" 416 | 417 | debug@^3.2.6: 418 | version "3.2.6" 419 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 420 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 421 | dependencies: 422 | ms "^2.1.1" 423 | 424 | debug@~4.1.0: 425 | version "4.1.1" 426 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 427 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 428 | dependencies: 429 | ms "^2.1.1" 430 | 431 | decompress-response@^3.3.0: 432 | version "3.3.0" 433 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" 434 | integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= 435 | dependencies: 436 | mimic-response "^1.0.0" 437 | 438 | deep-extend@^0.6.0: 439 | version "0.6.0" 440 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 441 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 442 | 443 | defer-to-connect@^1.0.1: 444 | version "1.1.3" 445 | resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" 446 | integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== 447 | 448 | denque@^1.4.1: 449 | version "1.4.1" 450 | resolved "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf" 451 | integrity sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ== 452 | 453 | depd@~1.1.2: 454 | version "1.1.2" 455 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 456 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 457 | 458 | depd@~2.0.0: 459 | version "2.0.0" 460 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 461 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 462 | 463 | destroy@~1.0.4: 464 | version "1.0.4" 465 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 466 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 467 | 468 | dot-prop@^5.2.0: 469 | version "5.2.0" 470 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" 471 | integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== 472 | dependencies: 473 | is-obj "^2.0.0" 474 | 475 | dotenv@^8.2.0: 476 | version "8.2.0" 477 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" 478 | integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== 479 | 480 | duplexer3@^0.1.4: 481 | version "0.1.4" 482 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 483 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= 484 | 485 | ee-first@1.1.1: 486 | version "1.1.1" 487 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 488 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 489 | 490 | emoji-regex@^7.0.1: 491 | version "7.0.3" 492 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 493 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 494 | 495 | emoji-regex@^8.0.0: 496 | version "8.0.0" 497 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 498 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 499 | 500 | encodeurl@~1.0.2: 501 | version "1.0.2" 502 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 503 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 504 | 505 | end-of-stream@^1.1.0: 506 | version "1.4.4" 507 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 508 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 509 | dependencies: 510 | once "^1.4.0" 511 | 512 | engine.io-client@~3.4.0: 513 | version "3.4.2" 514 | resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.2.tgz#4fb2ef2b1fe1d3aa1c621c6a8d87f1fc55426b50" 515 | integrity sha512-AWjc1Xg06a6UPFOBAzJf48W1UR/qKYmv/ubgSCumo9GXgvL/xGIvo05dXoBL+2NTLMipDI7in8xK61C17L25xg== 516 | dependencies: 517 | component-emitter "~1.3.0" 518 | component-inherit "0.0.3" 519 | debug "~4.1.0" 520 | engine.io-parser "~2.2.0" 521 | has-cors "1.1.0" 522 | indexof "0.0.1" 523 | parseqs "0.0.5" 524 | parseuri "0.0.5" 525 | ws "~6.1.0" 526 | xmlhttprequest-ssl "~1.5.4" 527 | yeast "0.1.2" 528 | 529 | engine.io-parser@~2.2.0: 530 | version "2.2.0" 531 | resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" 532 | integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== 533 | dependencies: 534 | after "0.8.2" 535 | arraybuffer.slice "~0.0.7" 536 | base64-arraybuffer "0.1.5" 537 | blob "0.0.5" 538 | has-binary2 "~1.0.2" 539 | 540 | engine.io@~3.4.0: 541 | version "3.4.1" 542 | resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.1.tgz#a61cbc13fa0cb27d9453fd079a29ee980564b069" 543 | integrity sha512-8MfIfF1/IIfxuc2gv5K+XlFZczw/BpTvqBdl0E2fBLkYQp4miv4LuDTVtYt4yMyaIFLEr4vtaSgV4mjvll8Crw== 544 | dependencies: 545 | accepts "~1.3.4" 546 | base64id "2.0.0" 547 | cookie "0.3.1" 548 | debug "~4.1.0" 549 | engine.io-parser "~2.2.0" 550 | ws "^7.1.2" 551 | 552 | escape-goat@^2.0.0: 553 | version "2.1.1" 554 | resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" 555 | integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== 556 | 557 | escape-html@~1.0.3: 558 | version "1.0.3" 559 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 560 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 561 | 562 | etag@~1.8.1: 563 | version "1.8.1" 564 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 565 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 566 | 567 | express@^4.17.1: 568 | version "4.17.1" 569 | resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" 570 | integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== 571 | dependencies: 572 | accepts "~1.3.7" 573 | array-flatten "1.1.1" 574 | body-parser "1.19.0" 575 | content-disposition "0.5.3" 576 | content-type "~1.0.4" 577 | cookie "0.4.0" 578 | cookie-signature "1.0.6" 579 | debug "2.6.9" 580 | depd "~1.1.2" 581 | encodeurl "~1.0.2" 582 | escape-html "~1.0.3" 583 | etag "~1.8.1" 584 | finalhandler "~1.1.2" 585 | fresh "0.5.2" 586 | merge-descriptors "1.0.1" 587 | methods "~1.1.2" 588 | on-finished "~2.3.0" 589 | parseurl "~1.3.3" 590 | path-to-regexp "0.1.7" 591 | proxy-addr "~2.0.5" 592 | qs "6.7.0" 593 | range-parser "~1.2.1" 594 | safe-buffer "5.1.2" 595 | send "0.17.1" 596 | serve-static "1.14.1" 597 | setprototypeof "1.1.1" 598 | statuses "~1.5.0" 599 | type-is "~1.6.18" 600 | utils-merge "1.0.1" 601 | vary "~1.1.2" 602 | 603 | fill-range@^7.0.1: 604 | version "7.0.1" 605 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 606 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 607 | dependencies: 608 | to-regex-range "^5.0.1" 609 | 610 | finalhandler@~1.1.2: 611 | version "1.1.2" 612 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" 613 | integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== 614 | dependencies: 615 | debug "2.6.9" 616 | encodeurl "~1.0.2" 617 | escape-html "~1.0.3" 618 | on-finished "~2.3.0" 619 | parseurl "~1.3.3" 620 | statuses "~1.5.0" 621 | unpipe "~1.0.0" 622 | 623 | forwarded@~0.1.2: 624 | version "0.1.2" 625 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 626 | integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= 627 | 628 | fresh@0.5.2: 629 | version "0.5.2" 630 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 631 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 632 | 633 | fsevents@~2.1.2: 634 | version "2.1.3" 635 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" 636 | integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== 637 | 638 | get-stream@^4.1.0: 639 | version "4.1.0" 640 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 641 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 642 | dependencies: 643 | pump "^3.0.0" 644 | 645 | get-stream@^5.1.0: 646 | version "5.1.0" 647 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" 648 | integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== 649 | dependencies: 650 | pump "^3.0.0" 651 | 652 | glob-parent@~5.1.0: 653 | version "5.1.1" 654 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" 655 | integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== 656 | dependencies: 657 | is-glob "^4.0.1" 658 | 659 | global-dirs@^2.0.1: 660 | version "2.0.1" 661 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" 662 | integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== 663 | dependencies: 664 | ini "^1.3.5" 665 | 666 | got@^9.6.0: 667 | version "9.6.0" 668 | resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" 669 | integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== 670 | dependencies: 671 | "@sindresorhus/is" "^0.14.0" 672 | "@szmarczak/http-timer" "^1.1.2" 673 | cacheable-request "^6.0.0" 674 | decompress-response "^3.3.0" 675 | duplexer3 "^0.1.4" 676 | get-stream "^4.1.0" 677 | lowercase-keys "^1.0.1" 678 | mimic-response "^1.0.1" 679 | p-cancelable "^1.0.0" 680 | to-readable-stream "^1.0.0" 681 | url-parse-lax "^3.0.0" 682 | 683 | graceful-fs@^4.1.2: 684 | version "4.2.4" 685 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" 686 | integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== 687 | 688 | has-binary2@~1.0.2: 689 | version "1.0.3" 690 | resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" 691 | integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== 692 | dependencies: 693 | isarray "2.0.1" 694 | 695 | has-cors@1.1.0: 696 | version "1.1.0" 697 | resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" 698 | integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= 699 | 700 | has-flag@^3.0.0: 701 | version "3.0.0" 702 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 703 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 704 | 705 | has-flag@^4.0.0: 706 | version "4.0.0" 707 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 708 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 709 | 710 | has-yarn@^2.1.0: 711 | version "2.1.0" 712 | resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" 713 | integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== 714 | 715 | http-cache-semantics@^4.0.0: 716 | version "4.1.0" 717 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" 718 | integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== 719 | 720 | http-errors@1.7.2: 721 | version "1.7.2" 722 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" 723 | integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== 724 | dependencies: 725 | depd "~1.1.2" 726 | inherits "2.0.3" 727 | setprototypeof "1.1.1" 728 | statuses ">= 1.5.0 < 2" 729 | toidentifier "1.0.0" 730 | 731 | http-errors@~1.7.2: 732 | version "1.7.3" 733 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 734 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 735 | dependencies: 736 | depd "~1.1.2" 737 | inherits "2.0.4" 738 | setprototypeof "1.1.1" 739 | statuses ">= 1.5.0 < 2" 740 | toidentifier "1.0.0" 741 | 742 | iconv-lite@0.4.24: 743 | version "0.4.24" 744 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 745 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 746 | dependencies: 747 | safer-buffer ">= 2.1.2 < 3" 748 | 749 | ignore-by-default@^1.0.1: 750 | version "1.0.1" 751 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 752 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= 753 | 754 | import-lazy@^2.1.0: 755 | version "2.1.0" 756 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 757 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= 758 | 759 | imurmurhash@^0.1.4: 760 | version "0.1.4" 761 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 762 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 763 | 764 | indexof@0.0.1: 765 | version "0.0.1" 766 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" 767 | integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= 768 | 769 | inherits@2.0.3: 770 | version "2.0.3" 771 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 772 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 773 | 774 | inherits@2.0.4, inherits@~2.0.3: 775 | version "2.0.4" 776 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 777 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 778 | 779 | ini@^1.3.5, ini@~1.3.0: 780 | version "1.3.5" 781 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 782 | integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== 783 | 784 | ipaddr.js@1.9.1: 785 | version "1.9.1" 786 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 787 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 788 | 789 | is-binary-path@~2.1.0: 790 | version "2.1.0" 791 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 792 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 793 | dependencies: 794 | binary-extensions "^2.0.0" 795 | 796 | is-ci@^2.0.0: 797 | version "2.0.0" 798 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" 799 | integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== 800 | dependencies: 801 | ci-info "^2.0.0" 802 | 803 | is-extglob@^2.1.1: 804 | version "2.1.1" 805 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 806 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 807 | 808 | is-fullwidth-code-point@^2.0.0: 809 | version "2.0.0" 810 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 811 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 812 | 813 | is-fullwidth-code-point@^3.0.0: 814 | version "3.0.0" 815 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 816 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 817 | 818 | is-glob@^4.0.1, is-glob@~4.0.1: 819 | version "4.0.1" 820 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 821 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 822 | dependencies: 823 | is-extglob "^2.1.1" 824 | 825 | is-installed-globally@^0.3.1: 826 | version "0.3.2" 827 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" 828 | integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== 829 | dependencies: 830 | global-dirs "^2.0.1" 831 | is-path-inside "^3.0.1" 832 | 833 | is-npm@^4.0.0: 834 | version "4.0.0" 835 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" 836 | integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== 837 | 838 | is-number@^7.0.0: 839 | version "7.0.0" 840 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 841 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 842 | 843 | is-obj@^2.0.0: 844 | version "2.0.0" 845 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" 846 | integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== 847 | 848 | is-path-inside@^3.0.1: 849 | version "3.0.2" 850 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" 851 | integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== 852 | 853 | is-typedarray@^1.0.0: 854 | version "1.0.0" 855 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 856 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 857 | 858 | is-yarn-global@^0.3.0: 859 | version "0.3.0" 860 | resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" 861 | integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== 862 | 863 | isarray@2.0.1: 864 | version "2.0.1" 865 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" 866 | integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= 867 | 868 | isarray@~1.0.0: 869 | version "1.0.0" 870 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 871 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 872 | 873 | json-buffer@3.0.0: 874 | version "3.0.0" 875 | resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" 876 | integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= 877 | 878 | kareem@2.3.1: 879 | version "2.3.1" 880 | resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.3.1.tgz#def12d9c941017fabfb00f873af95e9c99e1be87" 881 | integrity sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw== 882 | 883 | keyv@^3.0.0: 884 | version "3.1.0" 885 | resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" 886 | integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== 887 | dependencies: 888 | json-buffer "3.0.0" 889 | 890 | latest-version@^5.0.0: 891 | version "5.1.0" 892 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" 893 | integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== 894 | dependencies: 895 | package-json "^6.3.0" 896 | 897 | lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: 898 | version "1.0.1" 899 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 900 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== 901 | 902 | lowercase-keys@^2.0.0: 903 | version "2.0.0" 904 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" 905 | integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== 906 | 907 | make-dir@^3.0.0: 908 | version "3.1.0" 909 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" 910 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 911 | dependencies: 912 | semver "^6.0.0" 913 | 914 | media-typer@0.3.0: 915 | version "0.3.0" 916 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 917 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 918 | 919 | memory-pager@^1.0.2: 920 | version "1.5.0" 921 | resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" 922 | integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== 923 | 924 | merge-descriptors@1.0.1: 925 | version "1.0.1" 926 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 927 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= 928 | 929 | methods@~1.1.2: 930 | version "1.1.2" 931 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 932 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 933 | 934 | mime-db@1.44.0: 935 | version "1.44.0" 936 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" 937 | integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== 938 | 939 | mime-types@~2.1.24: 940 | version "2.1.27" 941 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" 942 | integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== 943 | dependencies: 944 | mime-db "1.44.0" 945 | 946 | mime@1.6.0: 947 | version "1.6.0" 948 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 949 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 950 | 951 | mimic-response@^1.0.0, mimic-response@^1.0.1: 952 | version "1.0.1" 953 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" 954 | integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== 955 | 956 | minimatch@^3.0.4: 957 | version "3.0.4" 958 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 959 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 960 | dependencies: 961 | brace-expansion "^1.1.7" 962 | 963 | minimist@^1.2.0: 964 | version "1.2.5" 965 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 966 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 967 | 968 | mongodb@3.5.8: 969 | version "3.5.8" 970 | resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.5.8.tgz#34550856449b745d145873734bf922c12d6b9caa" 971 | integrity sha512-jz7mR58z66JKL8Px4ZY+FXbgB7d0a0hEGCT7kw8iye46/gsqPrOEpZOswwJ2BQlfzsrCLKdsF9UcaUfGVN2HrQ== 972 | dependencies: 973 | bl "^2.2.0" 974 | bson "^1.1.4" 975 | denque "^1.4.1" 976 | require_optional "^1.0.1" 977 | safe-buffer "^5.1.2" 978 | optionalDependencies: 979 | saslprep "^1.0.0" 980 | 981 | mongoose-legacy-pluralize@1.0.2: 982 | version "1.0.2" 983 | resolved "https://registry.yarnpkg.com/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz#3ba9f91fa507b5186d399fb40854bff18fb563e4" 984 | integrity sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ== 985 | 986 | mongoose@^5.9.17: 987 | version "5.9.17" 988 | resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-5.9.17.tgz#9b74659481807cd9ff5b9c120cdb5087cbbd92bd" 989 | integrity sha512-9EDmTiKrOu/41twlPWUA1aOsdxSN6PRIdFwTpLu4MjyNcJ/vuBE+VewKrN1jsD4oXO5rB8bMYtYxVmJQ02SrPg== 990 | dependencies: 991 | bson "^1.1.4" 992 | kareem "2.3.1" 993 | mongodb "3.5.8" 994 | mongoose-legacy-pluralize "1.0.2" 995 | mpath "0.7.0" 996 | mquery "3.2.2" 997 | ms "2.1.2" 998 | regexp-clone "1.0.0" 999 | safe-buffer "5.1.2" 1000 | sift "7.0.1" 1001 | sliced "1.0.1" 1002 | 1003 | morgan@^1.10.0: 1004 | version "1.10.0" 1005 | resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" 1006 | integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== 1007 | dependencies: 1008 | basic-auth "~2.0.1" 1009 | debug "2.6.9" 1010 | depd "~2.0.0" 1011 | on-finished "~2.3.0" 1012 | on-headers "~1.0.2" 1013 | 1014 | mpath@0.7.0: 1015 | version "0.7.0" 1016 | resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.7.0.tgz#20e8102e276b71709d6e07e9f8d4d0f641afbfb8" 1017 | integrity sha512-Aiq04hILxhz1L+f7sjGyn7IxYzWm1zLNNXcfhDtx04kZ2Gk7uvFdgZ8ts1cWa/6d0TQmag2yR8zSGZUmp0tFNg== 1018 | 1019 | mquery@3.2.2: 1020 | version "3.2.2" 1021 | resolved "https://registry.yarnpkg.com/mquery/-/mquery-3.2.2.tgz#e1383a3951852ce23e37f619a9b350f1fb3664e7" 1022 | integrity sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q== 1023 | dependencies: 1024 | bluebird "3.5.1" 1025 | debug "3.1.0" 1026 | regexp-clone "^1.0.0" 1027 | safe-buffer "5.1.2" 1028 | sliced "1.0.1" 1029 | 1030 | ms@2.0.0: 1031 | version "2.0.0" 1032 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1033 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1034 | 1035 | ms@2.1.1: 1036 | version "2.1.1" 1037 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 1038 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 1039 | 1040 | ms@2.1.2, ms@^2.1.1: 1041 | version "2.1.2" 1042 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1043 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1044 | 1045 | negotiator@0.6.2: 1046 | version "0.6.2" 1047 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 1048 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 1049 | 1050 | nodemon@^2.0.4: 1051 | version "2.0.4" 1052 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.4.tgz#55b09319eb488d6394aa9818148c0c2d1c04c416" 1053 | integrity sha512-Ltced+hIfTmaS28Zjv1BM552oQ3dbwPqI4+zI0SLgq+wpJhSyqgYude/aZa/3i31VCQWMfXJVxvu86abcam3uQ== 1054 | dependencies: 1055 | chokidar "^3.2.2" 1056 | debug "^3.2.6" 1057 | ignore-by-default "^1.0.1" 1058 | minimatch "^3.0.4" 1059 | pstree.remy "^1.1.7" 1060 | semver "^5.7.1" 1061 | supports-color "^5.5.0" 1062 | touch "^3.1.0" 1063 | undefsafe "^2.0.2" 1064 | update-notifier "^4.0.0" 1065 | 1066 | nopt@~1.0.10: 1067 | version "1.0.10" 1068 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 1069 | integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= 1070 | dependencies: 1071 | abbrev "1" 1072 | 1073 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1074 | version "3.0.0" 1075 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1076 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1077 | 1078 | normalize-url@^4.1.0: 1079 | version "4.5.0" 1080 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" 1081 | integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== 1082 | 1083 | object-assign@^4: 1084 | version "4.1.1" 1085 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1086 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1087 | 1088 | object-component@0.0.3: 1089 | version "0.0.3" 1090 | resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" 1091 | integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= 1092 | 1093 | on-finished@~2.3.0: 1094 | version "2.3.0" 1095 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 1096 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 1097 | dependencies: 1098 | ee-first "1.1.1" 1099 | 1100 | on-headers@~1.0.2: 1101 | version "1.0.2" 1102 | resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" 1103 | integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== 1104 | 1105 | once@^1.3.1, once@^1.4.0: 1106 | version "1.4.0" 1107 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1108 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1109 | dependencies: 1110 | wrappy "1" 1111 | 1112 | p-cancelable@^1.0.0: 1113 | version "1.1.0" 1114 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" 1115 | integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== 1116 | 1117 | package-json@^6.3.0: 1118 | version "6.5.0" 1119 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" 1120 | integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== 1121 | dependencies: 1122 | got "^9.6.0" 1123 | registry-auth-token "^4.0.0" 1124 | registry-url "^5.0.0" 1125 | semver "^6.2.0" 1126 | 1127 | parseqs@0.0.5: 1128 | version "0.0.5" 1129 | resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" 1130 | integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= 1131 | dependencies: 1132 | better-assert "~1.0.0" 1133 | 1134 | parseuri@0.0.5: 1135 | version "0.0.5" 1136 | resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" 1137 | integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= 1138 | dependencies: 1139 | better-assert "~1.0.0" 1140 | 1141 | parseurl@~1.3.3: 1142 | version "1.3.3" 1143 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 1144 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 1145 | 1146 | path-to-regexp@0.1.7: 1147 | version "0.1.7" 1148 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 1149 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= 1150 | 1151 | picomatch@^2.0.4, picomatch@^2.2.1: 1152 | version "2.2.2" 1153 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" 1154 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== 1155 | 1156 | prepend-http@^2.0.0: 1157 | version "2.0.0" 1158 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" 1159 | integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= 1160 | 1161 | process-nextick-args@~2.0.0: 1162 | version "2.0.1" 1163 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 1164 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 1165 | 1166 | proxy-addr@~2.0.5: 1167 | version "2.0.6" 1168 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" 1169 | integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== 1170 | dependencies: 1171 | forwarded "~0.1.2" 1172 | ipaddr.js "1.9.1" 1173 | 1174 | pstree.remy@^1.1.7: 1175 | version "1.1.8" 1176 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" 1177 | integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== 1178 | 1179 | pump@^3.0.0: 1180 | version "3.0.0" 1181 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 1182 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 1183 | dependencies: 1184 | end-of-stream "^1.1.0" 1185 | once "^1.3.1" 1186 | 1187 | pupa@^2.0.1: 1188 | version "2.0.1" 1189 | resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726" 1190 | integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA== 1191 | dependencies: 1192 | escape-goat "^2.0.0" 1193 | 1194 | qs@6.7.0: 1195 | version "6.7.0" 1196 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" 1197 | integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== 1198 | 1199 | range-parser@~1.2.1: 1200 | version "1.2.1" 1201 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 1202 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 1203 | 1204 | raw-body@2.4.0: 1205 | version "2.4.0" 1206 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" 1207 | integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== 1208 | dependencies: 1209 | bytes "3.1.0" 1210 | http-errors "1.7.2" 1211 | iconv-lite "0.4.24" 1212 | unpipe "1.0.0" 1213 | 1214 | rc@^1.2.8: 1215 | version "1.2.8" 1216 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 1217 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 1218 | dependencies: 1219 | deep-extend "^0.6.0" 1220 | ini "~1.3.0" 1221 | minimist "^1.2.0" 1222 | strip-json-comments "~2.0.1" 1223 | 1224 | readable-stream@^2.3.5: 1225 | version "2.3.7" 1226 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 1227 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 1228 | dependencies: 1229 | core-util-is "~1.0.0" 1230 | inherits "~2.0.3" 1231 | isarray "~1.0.0" 1232 | process-nextick-args "~2.0.0" 1233 | safe-buffer "~5.1.1" 1234 | string_decoder "~1.1.1" 1235 | util-deprecate "~1.0.1" 1236 | 1237 | readdirp@~3.4.0: 1238 | version "3.4.0" 1239 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" 1240 | integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== 1241 | dependencies: 1242 | picomatch "^2.2.1" 1243 | 1244 | regexp-clone@1.0.0, regexp-clone@^1.0.0: 1245 | version "1.0.0" 1246 | resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-1.0.0.tgz#222db967623277056260b992626354a04ce9bf63" 1247 | integrity sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw== 1248 | 1249 | registry-auth-token@^4.0.0: 1250 | version "4.1.1" 1251 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" 1252 | integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== 1253 | dependencies: 1254 | rc "^1.2.8" 1255 | 1256 | registry-url@^5.0.0: 1257 | version "5.1.0" 1258 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" 1259 | integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== 1260 | dependencies: 1261 | rc "^1.2.8" 1262 | 1263 | require_optional@^1.0.1: 1264 | version "1.0.1" 1265 | resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e" 1266 | integrity sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g== 1267 | dependencies: 1268 | resolve-from "^2.0.0" 1269 | semver "^5.1.0" 1270 | 1271 | resolve-from@^2.0.0: 1272 | version "2.0.0" 1273 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" 1274 | integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= 1275 | 1276 | responselike@^1.0.2: 1277 | version "1.0.2" 1278 | resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" 1279 | integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= 1280 | dependencies: 1281 | lowercase-keys "^1.0.0" 1282 | 1283 | safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1284 | version "5.1.2" 1285 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1286 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1287 | 1288 | safe-buffer@^5.1.1, safe-buffer@^5.1.2: 1289 | version "5.2.1" 1290 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1291 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1292 | 1293 | "safer-buffer@>= 2.1.2 < 3": 1294 | version "2.1.2" 1295 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1296 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1297 | 1298 | saslprep@^1.0.0: 1299 | version "1.0.3" 1300 | resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" 1301 | integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== 1302 | dependencies: 1303 | sparse-bitfield "^3.0.3" 1304 | 1305 | semver-diff@^3.1.1: 1306 | version "3.1.1" 1307 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" 1308 | integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== 1309 | dependencies: 1310 | semver "^6.3.0" 1311 | 1312 | semver@^5.1.0, semver@^5.7.1: 1313 | version "5.7.1" 1314 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1315 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1316 | 1317 | semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: 1318 | version "6.3.0" 1319 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1320 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1321 | 1322 | send@0.17.1: 1323 | version "0.17.1" 1324 | resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" 1325 | integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== 1326 | dependencies: 1327 | debug "2.6.9" 1328 | depd "~1.1.2" 1329 | destroy "~1.0.4" 1330 | encodeurl "~1.0.2" 1331 | escape-html "~1.0.3" 1332 | etag "~1.8.1" 1333 | fresh "0.5.2" 1334 | http-errors "~1.7.2" 1335 | mime "1.6.0" 1336 | ms "2.1.1" 1337 | on-finished "~2.3.0" 1338 | range-parser "~1.2.1" 1339 | statuses "~1.5.0" 1340 | 1341 | serve-static@1.14.1: 1342 | version "1.14.1" 1343 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" 1344 | integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== 1345 | dependencies: 1346 | encodeurl "~1.0.2" 1347 | escape-html "~1.0.3" 1348 | parseurl "~1.3.3" 1349 | send "0.17.1" 1350 | 1351 | setprototypeof@1.1.1: 1352 | version "1.1.1" 1353 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" 1354 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 1355 | 1356 | sift@7.0.1: 1357 | version "7.0.1" 1358 | resolved "https://registry.yarnpkg.com/sift/-/sift-7.0.1.tgz#47d62c50b159d316f1372f8b53f9c10cd21a4b08" 1359 | integrity sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g== 1360 | 1361 | signal-exit@^3.0.2: 1362 | version "3.0.3" 1363 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 1364 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 1365 | 1366 | sliced@1.0.1: 1367 | version "1.0.1" 1368 | resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" 1369 | integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E= 1370 | 1371 | socket.io-adapter@~1.1.0: 1372 | version "1.1.2" 1373 | resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" 1374 | integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== 1375 | 1376 | socket.io-client@2.3.0: 1377 | version "2.3.0" 1378 | resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" 1379 | integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== 1380 | dependencies: 1381 | backo2 "1.0.2" 1382 | base64-arraybuffer "0.1.5" 1383 | component-bind "1.0.0" 1384 | component-emitter "1.2.1" 1385 | debug "~4.1.0" 1386 | engine.io-client "~3.4.0" 1387 | has-binary2 "~1.0.2" 1388 | has-cors "1.1.0" 1389 | indexof "0.0.1" 1390 | object-component "0.0.3" 1391 | parseqs "0.0.5" 1392 | parseuri "0.0.5" 1393 | socket.io-parser "~3.3.0" 1394 | to-array "0.1.4" 1395 | 1396 | socket.io-parser@~3.3.0: 1397 | version "3.3.0" 1398 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" 1399 | integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== 1400 | dependencies: 1401 | component-emitter "1.2.1" 1402 | debug "~3.1.0" 1403 | isarray "2.0.1" 1404 | 1405 | socket.io-parser@~3.4.0: 1406 | version "3.4.1" 1407 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" 1408 | integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== 1409 | dependencies: 1410 | component-emitter "1.2.1" 1411 | debug "~4.1.0" 1412 | isarray "2.0.1" 1413 | 1414 | socket.io@^2.3.0: 1415 | version "2.3.0" 1416 | resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" 1417 | integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== 1418 | dependencies: 1419 | debug "~4.1.0" 1420 | engine.io "~3.4.0" 1421 | has-binary2 "~1.0.2" 1422 | socket.io-adapter "~1.1.0" 1423 | socket.io-client "2.3.0" 1424 | socket.io-parser "~3.4.0" 1425 | 1426 | sparse-bitfield@^3.0.3: 1427 | version "3.0.3" 1428 | resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" 1429 | integrity sha1-/0rm5oZWBWuks+eSqzM004JzyhE= 1430 | dependencies: 1431 | memory-pager "^1.0.2" 1432 | 1433 | "statuses@>= 1.5.0 < 2", statuses@~1.5.0: 1434 | version "1.5.0" 1435 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 1436 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 1437 | 1438 | string-width@^3.0.0: 1439 | version "3.1.0" 1440 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 1441 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 1442 | dependencies: 1443 | emoji-regex "^7.0.1" 1444 | is-fullwidth-code-point "^2.0.0" 1445 | strip-ansi "^5.1.0" 1446 | 1447 | string-width@^4.0.0, string-width@^4.1.0: 1448 | version "4.2.0" 1449 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" 1450 | integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== 1451 | dependencies: 1452 | emoji-regex "^8.0.0" 1453 | is-fullwidth-code-point "^3.0.0" 1454 | strip-ansi "^6.0.0" 1455 | 1456 | string_decoder@~1.1.1: 1457 | version "1.1.1" 1458 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1459 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 1460 | dependencies: 1461 | safe-buffer "~5.1.0" 1462 | 1463 | strip-ansi@^5.1.0: 1464 | version "5.2.0" 1465 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 1466 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 1467 | dependencies: 1468 | ansi-regex "^4.1.0" 1469 | 1470 | strip-ansi@^6.0.0: 1471 | version "6.0.0" 1472 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 1473 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 1474 | dependencies: 1475 | ansi-regex "^5.0.0" 1476 | 1477 | strip-json-comments@~2.0.1: 1478 | version "2.0.1" 1479 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1480 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 1481 | 1482 | supports-color@^5.5.0: 1483 | version "5.5.0" 1484 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1485 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1486 | dependencies: 1487 | has-flag "^3.0.0" 1488 | 1489 | supports-color@^7.1.0: 1490 | version "7.1.0" 1491 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" 1492 | integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== 1493 | dependencies: 1494 | has-flag "^4.0.0" 1495 | 1496 | term-size@^2.1.0: 1497 | version "2.2.0" 1498 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" 1499 | integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== 1500 | 1501 | to-array@0.1.4: 1502 | version "0.1.4" 1503 | resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" 1504 | integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= 1505 | 1506 | to-readable-stream@^1.0.0: 1507 | version "1.0.0" 1508 | resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" 1509 | integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== 1510 | 1511 | to-regex-range@^5.0.1: 1512 | version "5.0.1" 1513 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1514 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1515 | dependencies: 1516 | is-number "^7.0.0" 1517 | 1518 | toidentifier@1.0.0: 1519 | version "1.0.0" 1520 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 1521 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 1522 | 1523 | touch@^3.1.0: 1524 | version "3.1.0" 1525 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 1526 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== 1527 | dependencies: 1528 | nopt "~1.0.10" 1529 | 1530 | type-fest@^0.8.1: 1531 | version "0.8.1" 1532 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" 1533 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 1534 | 1535 | type-is@~1.6.17, type-is@~1.6.18: 1536 | version "1.6.18" 1537 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 1538 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 1539 | dependencies: 1540 | media-typer "0.3.0" 1541 | mime-types "~2.1.24" 1542 | 1543 | typedarray-to-buffer@^3.1.5: 1544 | version "3.1.5" 1545 | resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" 1546 | integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== 1547 | dependencies: 1548 | is-typedarray "^1.0.0" 1549 | 1550 | undefsafe@^2.0.2: 1551 | version "2.0.3" 1552 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae" 1553 | integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A== 1554 | dependencies: 1555 | debug "^2.2.0" 1556 | 1557 | unique-string@^2.0.0: 1558 | version "2.0.0" 1559 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" 1560 | integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== 1561 | dependencies: 1562 | crypto-random-string "^2.0.0" 1563 | 1564 | unpipe@1.0.0, unpipe@~1.0.0: 1565 | version "1.0.0" 1566 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1567 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 1568 | 1569 | update-notifier@^4.0.0: 1570 | version "4.1.0" 1571 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.0.tgz#4866b98c3bc5b5473c020b1250583628f9a328f3" 1572 | integrity sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew== 1573 | dependencies: 1574 | boxen "^4.2.0" 1575 | chalk "^3.0.0" 1576 | configstore "^5.0.1" 1577 | has-yarn "^2.1.0" 1578 | import-lazy "^2.1.0" 1579 | is-ci "^2.0.0" 1580 | is-installed-globally "^0.3.1" 1581 | is-npm "^4.0.0" 1582 | is-yarn-global "^0.3.0" 1583 | latest-version "^5.0.0" 1584 | pupa "^2.0.1" 1585 | semver-diff "^3.1.1" 1586 | xdg-basedir "^4.0.0" 1587 | 1588 | url-parse-lax@^3.0.0: 1589 | version "3.0.0" 1590 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" 1591 | integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= 1592 | dependencies: 1593 | prepend-http "^2.0.0" 1594 | 1595 | util-deprecate@~1.0.1: 1596 | version "1.0.2" 1597 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1598 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1599 | 1600 | utils-merge@1.0.1: 1601 | version "1.0.1" 1602 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 1603 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 1604 | 1605 | vary@^1, vary@~1.1.2: 1606 | version "1.1.2" 1607 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1608 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 1609 | 1610 | widest-line@^3.1.0: 1611 | version "3.1.0" 1612 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" 1613 | integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== 1614 | dependencies: 1615 | string-width "^4.0.0" 1616 | 1617 | wrappy@1: 1618 | version "1.0.2" 1619 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1620 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1621 | 1622 | write-file-atomic@^3.0.0: 1623 | version "3.0.3" 1624 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" 1625 | integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== 1626 | dependencies: 1627 | imurmurhash "^0.1.4" 1628 | is-typedarray "^1.0.0" 1629 | signal-exit "^3.0.2" 1630 | typedarray-to-buffer "^3.1.5" 1631 | 1632 | ws@^7.1.2: 1633 | version "7.3.0" 1634 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" 1635 | integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== 1636 | 1637 | ws@~6.1.0: 1638 | version "6.1.4" 1639 | resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" 1640 | integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== 1641 | dependencies: 1642 | async-limiter "~1.0.0" 1643 | 1644 | xdg-basedir@^4.0.0: 1645 | version "4.0.0" 1646 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" 1647 | integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== 1648 | 1649 | xmlhttprequest-ssl@~1.5.4: 1650 | version "1.5.5" 1651 | resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" 1652 | integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= 1653 | 1654 | yeast@0.1.2: 1655 | version "0.1.2" 1656 | resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" 1657 | integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= 1658 | --------------------------------------------------------------------------------