├── .env.example ├── .eslintrc.js ├── .gitignore ├── LICENSE ├── README.md ├── app ├── controllers │ ├── TodosController.js │ └── UserController.js ├── mailable │ └── demo.js └── validators │ ├── TodoValidator.js │ └── UserValidator.js ├── changelog.md ├── config ├── config.js ├── mailer.js ├── passport.js └── users.js ├── index.js ├── migrations ├── 20200210153802-todos.js └── 20200211114441-users.js ├── models ├── index.js ├── todo.js └── user.js ├── package-lock.json ├── package.json ├── resources └── views │ └── welcome_mail.html ├── routes ├── api │ ├── index.js │ ├── todos │ │ └── index.js │ └── users │ │ └── index.js ├── auth.js └── index.js ├── test ├── integrations │ └── registration.test.js └── unit │ └── user.test.js ├── utils ├── generateHash.js ├── generateJWT.js └── validatePassword.js └── yarn.lock /.env.example: -------------------------------------------------------------------------------- 1 | SALT=35kj7waj3k5kja09jeoi21kn0pg13iuhlkn 2 | JWT_SECRET=myjwtsecret 3 | SESSION_SECRET=secret 4 | PORT=3000 5 | SERVER_ADDRESS=127.0.0.1 6 | 7 | DB_USERNAME=root 8 | DB_PASSWORD=mysql@123 9 | DB_NAME=test 10 | 11 | SALT_ROUNDS = 10 12 | 13 | MAILTRAP_HOST=smtp.mailtrap.io 14 | MAILTRAP_PORT=2525, 15 | MAILTRAP_USER=c18jrei892sd42 16 | MAILTRAP_PASS=1a83nfj37jmf6c 17 | 18 | Gmail_SMTP_username=johndoe@gmail.com 19 | Gmail_SMTP_password=jkerjidisajdk 20 | Gmail_SMTP_server_address=smtp.gmail.com 21 | Gmail_SMTP_port_TLS=587 22 | Gmail_SMTP_port_SSL=465 23 | Gmail_SMTP_TLS_SSL_required=yes 24 | 25 | MAIL_SENDER="John Doe johndoe@gmail.com" 26 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "env": { 3 | "browser": true, 4 | "es6": true, 5 | "node": true 6 | }, 7 | "extends": "eslint:recommended", 8 | "parserOptions": { 9 | "sourceType": "module" 10 | }, 11 | "rules": { 12 | "no-console": "off", 13 | "indent": [ 14 | "error", 15 | "tab" 16 | ], 17 | "linebreak-style": [ 18 | "error", 19 | "unix" 20 | ], 21 | "quotes": [ 22 | "error", 23 | "single" 24 | ], 25 | "semi": [ 26 | "error", 27 | "always" 28 | ] 29 | } 30 | }; -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | *.sqlite 4 | .env -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 AppSeed - App Generator 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [Express-Boilerplate](https://github.com/AnsurM/express-jwt-mysql-mvc-boilerplate) 2 | 3 | Express / [Nodejs Starter] with [JWT authentication](https://jwt.io/introduction/), [MySQL](https://www.mysql.com/) database, [Sequelize](http://docs.sequelizejs.com/) ORM, [Nodemailer](https://nodemailer.com/about/) mailing module unit tests and basic tooling (to be implemented). 4 | 5 |
6 | 7 | ![Open-Source Nodejs Starter - Product cover image.](https://github.com/app-generator/static/blob/master/products/boilerplate-code-nodejs-starter-cover.jpg?raw=true) 8 | 9 |
10 | 11 | ## Requirements 12 | 13 | - [Node.js](https://nodejs.org/) >= 6.x 14 | 15 |
16 | 17 | ## Authentication 18 | 19 | Authentication is based on [json web tokens](https://jwt.io). `passport-jwt` strategy is used to handle the email / password authentication. 20 | After a successful login the generated token is sent to the requester. 21 | 22 |
23 | 24 | ## Setting up for development 25 | 26 | - clone repo: `git clone https://github.com/AnsurM/express-jwt-mysql-mvc-boilerplate.git` 27 | - change directory to express-jwt-mysql-mvc-boilerplate: 28 | - create a file named .env which should contain a default setup as shown in the example environment file `.env.example`: 29 | 30 | SALT=35kj7waj3k5kja09jeoi21kn0pg13iuhlkn 31 | JWT_SECRET=myjwtsecret 32 | SESSION_SECRET=secret 33 | PORT=3000 34 | SERVER_ADDRESS=127.0.0.1 35 | 36 | DB_USERNAME=root 37 | DB_PASSWORD=mysql@123 38 | DB_NAME=test 39 | 40 | SALT_ROUNDS = 10 41 | 42 | MAILTRAP_HOST=smtp.mailtrap.io 43 | MAILTRAP_PORT=2525, 44 | MAILTRAP_USER=c18jrei892sd42 45 | MAILTRAP_PASS=1a83nfj37jmf6c 46 | 47 | Gmail_SMTP_username=johndoe@gmail.com 48 | Gmail_SMTP_password=jkerjidisajdk 49 | Gmail_SMTP_server_address=smtp.gmail.com 50 | Gmail_SMTP_port_TLS=587 51 | Gmail_SMTP_port_SSL=465 52 | Gmail_SMTP_TLS_SSL_required=yes 53 | 54 | MAIL_SENDER="John Doe johndoe@gmail.com" 55 | 56 | - users are saved in file `config/users.js` 57 | 58 |
59 | 60 | ## Scripts 61 | 62 | **Install Modules** 63 | 64 | ```bash 65 | $ npm i 66 | $ npm i nodemon -g 67 | ``` 68 | 69 |
70 | 71 | **Run** 72 | 73 | ```bash 74 | $ npm run start # classic start OR 75 | $ npm run dev # with nodemon live update 76 | ``` 77 | 78 | Runs the application with [nodemon]("https://nodemon.io/"). Server is listening on Port 3000 by default. This can be overwritten by `PORT` constant in `.env` file. 79 | 80 |
81 | 82 | ## Support 83 | 84 | For issues and features request, use **Github** or reach out to support at [support page](ansurmehdi@gmail.com) provided by **Syed Ansur Mehdi** 85 | 86 |
87 | 88 | ## License 89 | 90 | [![License](http://img.shields.io/:license-mit-blue.svg?style=flat-square)](http://badges.mit-license.org) 91 | 92 | - **[MIT license](http://opensource.org/licenses/mit-license.php)** 93 | 94 |
95 | 96 | --- 97 | 98 | [Express Basic Starter](https://appseed.us/boilerplate-code/nodejs-starter) provided by **Syed Ansur Mehdi** with starter pulled from `Nodejs-starter` by **AppSeed** 99 | -------------------------------------------------------------------------------- /app/controllers/TodosController.js: -------------------------------------------------------------------------------- 1 | const Todo = require(process.cwd() + "/models").Todo; 2 | 3 | const Joi = require("joi"); 4 | const TodoValidator = require("../validators/TodoValidator.js"); 5 | 6 | const index = async (req, res) => 7 | await Todo.findAll().then(todos => res.status(200).json(todos)); 8 | 9 | const getTodo = async (req, res) => { 10 | const { id } = req.params; 11 | await Todo.findOne({ where: id }).then(todo => 12 | res.status(200).json(JSON.stringify(todo)) 13 | ); 14 | }; 15 | 16 | const createTodo = async (req, res) => { 17 | const { 18 | body: { todo } 19 | } = req; 20 | const result = Joi.validate(todo, TodoValidator); 21 | if (result.error) { 22 | return res.status(422).json({ 23 | errors: result.error 24 | }); 25 | } 26 | try { 27 | const todo = await Todo.create(req.body.todo); 28 | return res.json({ todo }); 29 | } catch (e) { 30 | return res.status(500).json({ 31 | errors: e 32 | }); 33 | } 34 | }; 35 | 36 | const updateTodo = async (req, res) => { 37 | const { todo } = req.params; 38 | const result = Joi.validate(todo, TodoValidator); 39 | if (result.error) { 40 | return res.status(422).json({ 41 | errors: result.error 42 | }); 43 | } 44 | await Todo.update({ ...todo }, { where: { id: todo.id } }).then(function( 45 | record 46 | ) { 47 | return res.status(201).json(JSON.stringify(record)); 48 | }); 49 | }; 50 | 51 | const deleteTodo = async (req, res) => { 52 | const { id } = req.params; 53 | await Todo.destroy({ where: { id } }).then(function(record) { 54 | return res.status(200).json(JSON.stringify(record)); 55 | }); 56 | }; 57 | 58 | module.exports = { 59 | index, 60 | getTodo, 61 | createTodo, 62 | updateTodo, 63 | deleteTodo 64 | }; 65 | -------------------------------------------------------------------------------- /app/controllers/UserController.js: -------------------------------------------------------------------------------- 1 | const passport = require("passport"); 2 | const generateJWT = require(process.cwd() + "/utils/generateJWT"); 3 | const generateHash = require(process.cwd() + "/utils/generateHash"); 4 | const User = require(process.cwd() + "/models").User; 5 | const Joi = require("joi"); 6 | const UserValidator = require("../validators/UserValidator"); 7 | 8 | const loginController = async (req, res, next) => { 9 | const { 10 | body: { user } 11 | } = req; 12 | const result = Joi.validate(user, UserValidator); 13 | 14 | if (result.error) { 15 | return res.status(422).json({ 16 | errors: result.error 17 | }); 18 | } 19 | 20 | return passport.authenticate( 21 | "local", 22 | { session: false }, 23 | (err, passportUser, info) => { 24 | if (err) { 25 | return next(err); 26 | } 27 | 28 | if (passportUser) { 29 | const user = { 30 | _id: passportUser.id, 31 | email: passportUser.email, 32 | name: passportUser.name, 33 | surname: passportUser.surname, 34 | token: generateJWT(passportUser) 35 | }; 36 | return res.json({ user }); 37 | } 38 | 39 | return res.status(400).send(info); 40 | } 41 | )(req, res, next); 42 | }; 43 | 44 | const signupController = async (req, res, next) => { 45 | let { 46 | body: { user } 47 | } = req; 48 | const result = Joi.validate(user, UserValidator); 49 | if (result.error) { 50 | return res.status(422).json({ 51 | errors: result.error 52 | }); 53 | } 54 | let hashedPassword = await generateHash(user.password); 55 | user.password = hashedPassword; 56 | try { 57 | let newUser = await User.create(user); 58 | delete newUser.dataValues.password; 59 | return res.json({ newUser }); 60 | } catch (e) { 61 | return res.status(500).json(e); 62 | } 63 | }; 64 | 65 | const listController = async (req, res, next) => { 66 | User.findAll().then(users => { 67 | return res.status(200).json(users); 68 | }); 69 | }; 70 | 71 | module.exports = { 72 | loginController, 73 | signupController, 74 | listController 75 | }; 76 | -------------------------------------------------------------------------------- /app/mailable/demo.js: -------------------------------------------------------------------------------- 1 | const { sendEmail } = require("../../config/mailer"); 2 | const handlebars = require("handlebars"); 3 | const fs = require("fs"); 4 | const welcomeHtml = handlebars.compile( 5 | "../../resources/views/welcome_mail.html" 6 | ); 7 | // let welcomeMail; 8 | // fs.readFileSync(require(), "utf8", (err, res) => { 9 | // if (err) return err; 10 | 11 | // welcomeMail = res; 12 | // }); 13 | console.log(welcomeHtml); 14 | let messageBody = { 15 | subject: "Hey! Design Your Model S | Tesla", 16 | text: "Have the most fun you can in a car. Get your Tesla today!", 17 | // html: 18 | // "

Hello! Welcome to Tesla Store!


Get your new tesla right now in a matter of minutes!

", 19 | // html: handlebars.compile(welcomeMail), 20 | html: welcomeHtml, 21 | attachments: [ 22 | { 23 | // Use a URL as an attachment 24 | filename: "your-tesla.png", 25 | path: 26 | "https://media.gettyimages.com/photos/view-of-tesla-model-s-in-barcelona-spain-on-september-10-2018-picture-id1032050330?s=2048x2048" 27 | } 28 | ] 29 | }; 30 | 31 | const sendMail = () => 32 | sendEmail("ansurmehdi@gmail.com", messageBody, (err, result) => { 33 | if (err) console.log("Error while sending email!"); 34 | if (result) { 35 | console.log( 36 | `Demo email sent successfully 37 | from ${result.envelope.from}, 38 | to: ${result.envelope.to}.` 39 | ); 40 | } 41 | }); 42 | 43 | module.exports = { sendMail }; 44 | -------------------------------------------------------------------------------- /app/validators/TodoValidator.js: -------------------------------------------------------------------------------- 1 | const Joi = require("joi"); 2 | 3 | const schema = Joi.object().keys({ 4 | title: Joi.string() 5 | .min(3) 6 | .required(), 7 | detail: Joi.string() 8 | .min(2) 9 | .max(100) 10 | .optional() 11 | }); 12 | 13 | module.exports = schema; 14 | -------------------------------------------------------------------------------- /app/validators/UserValidator.js: -------------------------------------------------------------------------------- 1 | const Joi = require("joi"); 2 | 3 | const schema = Joi.object().keys({ 4 | username: Joi.string() 5 | .alphanum() 6 | .min(3) 7 | .max(30) 8 | .optional(), 9 | password: Joi.string().required(), 10 | email: Joi.string() 11 | .email({ minDomainAtoms: 2 }) 12 | .required(), 13 | name: Joi.string() 14 | .alphanum() 15 | .min(2) 16 | .max(100) 17 | .optional(), 18 | surname: Joi.string() 19 | .alphanum() 20 | .min(2) 21 | .max(100) 22 | .optional() 23 | }); 24 | 25 | module.exports = schema; 26 | -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- 1 | ## Changelog 2 | 3 | ### 2019-03-24 4 | - README update 5 | 6 | ### Initial Release 7 | -------------------------------------------------------------------------------- /config/config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/app-generator/nodejs-starter 7 | * 8 | */ 9 | 10 | /* Make all variables from our .env file available in our process */ 11 | require("dotenv").config(); 12 | const mysql2 = require("mysql2"); 13 | 14 | module.exports = { 15 | development: { 16 | dialect: "mysql", 17 | dialectModule: mysql2, 18 | username: process.env.DB_USERNAME, 19 | password: process.env.DB_PASSWORD, 20 | database: process.env.DB_NAME, 21 | define: { 22 | timestamps: false 23 | }, 24 | logging: false 25 | }, 26 | test: { 27 | dialect: "sqlite", 28 | storage: ":memory:" 29 | }, 30 | production: { 31 | username: process.env.DB_USERNAME, 32 | password: process.env.DB_PASSWORD, 33 | database: process.env.DB_NAME, 34 | host: process.env.DB_HOSTNAME, 35 | logging: false, 36 | dialect: "mysql", 37 | use_env_variable: "DATABASE_URL" 38 | }, 39 | mailtrapConfig: { 40 | host: process.env.MAILTRAPHOST, 41 | port: process.env.MAILTRAPPORT, 42 | auth: { 43 | user: process.env.MAILTRAPUSER, 44 | pass: process.env.MAILTRAPPASS 45 | }, 46 | from: process.env.MAILTRAPSENDER 47 | }, 48 | gmailConfig: { 49 | host: process.env.Gmail_SMTP_server_address, 50 | port: process.env.Gmail_SMTP_port_TLS, 51 | auth: { 52 | user: process.env.Gmail_SMTP_username, 53 | pass: process.env.Gmail_SMTP_password 54 | }, 55 | from: process.env.MAIL_SENDER 56 | } 57 | }; 58 | -------------------------------------------------------------------------------- /config/mailer.js: -------------------------------------------------------------------------------- 1 | const nodemailer = require("nodemailer"); 2 | 3 | const { gmailConfig } = require("./config"); 4 | 5 | let transport = nodemailer.createTransport(gmailConfig); 6 | 7 | const sendEmail = async (to, messageBody, callback) => { 8 | let message = { 9 | from: gmailConfig.from, 10 | to, 11 | ...messageBody 12 | }; 13 | await transport.sendMail(message, callback); 14 | }; 15 | 16 | module.exports = { sendEmail }; 17 | -------------------------------------------------------------------------------- /config/passport.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/app-generator/nodejs-starter 7 | * 8 | */ 9 | 10 | const passport = require('passport'); 11 | const LocalStrategy = require('passport-local'); 12 | const validatePassword = require('../utils/validatePassword'); 13 | const User = require('../models').User; 14 | 15 | passport.use(new LocalStrategy({ 16 | usernameField: 'user[email]', 17 | passwordField: 'user[password]', 18 | }, async (email, password, done) => { 19 | // Recover the user 20 | let user = await User.findOne({where: {email}}); 21 | 22 | if(!user){ 23 | return done(null, false, {errors: {'account': 'Invalid account'}}); 24 | } 25 | 26 | // Validate password 27 | if ( !validatePassword(password, user.password) ) { 28 | return done(null, false, { errors: { 'password': 'Password is invalid'}}); 29 | } 30 | 31 | return done(null, user); 32 | })); 33 | -------------------------------------------------------------------------------- /config/users.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/app-generator/nodejs-starter 7 | * 8 | */ 9 | 10 | /* 11 | * The hardcoded users list 12 | * 13 | */ 14 | 15 | const user1 = { 16 | id : 1, 17 | name : 'John', 18 | surname : 'Doe', 19 | email : 'demo@appseed.us', 20 | password : 'demo' 21 | }; 22 | 23 | const user2 = { 24 | id : 2, 25 | name : 'George', 26 | surname : 'Clooney', 27 | email : 'demo2@appseed.us', 28 | password : 'demo' 29 | }; 30 | 31 | var Users = { }; 32 | 33 | Users[ user1.email ] = user1; 34 | Users[ user2.email ] = user2; 35 | 36 | module.exports = Users; 37 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us - Full Stack App Generator 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/rosoftdeveloper/appseed 7 | * 8 | */ 9 | 10 | const express = require("express"); 11 | const bodyParser = require("body-parser"); 12 | const session = require("express-session"); 13 | const cors = require("cors"); 14 | const models = require("./models"); 15 | const { sendMail } = require("./app/mailable/demo"); 16 | 17 | /* Make all variables from our .env file available in our process */ 18 | require("dotenv").config(); 19 | /* Init express */ 20 | const app = express(); 21 | 22 | /* Here we setup the middlewares & configs */ 23 | app.use(cors()); 24 | app.use(bodyParser.urlencoded({ extended: false })); 25 | app.use(bodyParser.json()); 26 | app.use( 27 | session({ 28 | secret: process.env.SESSION_SECRET, 29 | cookie: { maxAge: 60000 }, 30 | resave: false, 31 | saveUninitialized: false 32 | }) 33 | ); 34 | require("./config/passport"); 35 | 36 | /* Here we define the api routes */ 37 | app.use(require("./routes")); 38 | 39 | const port = process.env.PORT || 3000; 40 | const address = process.env.SERVER_ADDRESS || "127.0.0.1"; 41 | 42 | /* Create everything automatically with sequelize ORM */ 43 | models.sequelize.sync().then(function() { 44 | app.listen(port, address, () => { 45 | console.log(`Server running on http://${address}:${port}`); 46 | // sendMail(); 47 | }); 48 | }); 49 | 50 | module.exports = app; 51 | -------------------------------------------------------------------------------- /migrations/20200210153802-todos.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | module.exports = { 4 | up: (queryInterface, Sequelize) => { 5 | /* 6 | Add altering commands here. 7 | Return a promise to correctly handle asynchronicity. 8 | 9 | Example: 10 | return queryInterface.createTable('users', { id: Sequelize.INTEGER }); 11 | */ 12 | 13 | return queryInterface.createTable("Todos", { 14 | id: { 15 | allowNull: false, 16 | primaryKey: true, 17 | type: Sequelize.INTEGER, 18 | autoIncrement: true 19 | }, 20 | title: Sequelize.STRING, 21 | detail: Sequelize.STRING 22 | }); 23 | }, 24 | 25 | down: (queryInterface, Sequelize) => { 26 | /* 27 | Add reverting commands here. 28 | Return a promise to correctly handle asynchronicity. 29 | 30 | Example: 31 | return queryInterface.dropTable('users'); 32 | */ 33 | } 34 | }; 35 | -------------------------------------------------------------------------------- /migrations/20200211114441-users.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | module.exports = { 4 | up: (queryInterface, Sequelize) => { 5 | /* 6 | Add altering commands here. 7 | Return a promise to correctly handle asynchronicity. 8 | 9 | Example: 10 | return queryInterface.createTable('users', { id: Sequelize.INTEGER }); 11 | */ 12 | return queryInterface.createTable( 13 | "Users", 14 | { 15 | id: { 16 | allowNull: false, 17 | primaryKey: true, 18 | type: Sequelize.INTEGER, 19 | autoIncrement: true 20 | }, 21 | name: Sequelize.STRING, 22 | surname: Sequelize.STRING, 23 | email: { 24 | type: Sequelize.STRING, 25 | allowNull: false 26 | }, 27 | password: { 28 | type: Sequelize.STRING, 29 | allowNull: false 30 | } 31 | }, 32 | { 33 | indexes: [ 34 | { 35 | unique: true, 36 | fields: ["email"] 37 | } 38 | ] 39 | } 40 | ); 41 | }, 42 | 43 | down: (queryInterface, Sequelize) => { 44 | /* 45 | Add reverting commands here. 46 | Return a promise to correctly handle asynchronicity. 47 | 48 | Example: 49 | return queryInterface.dropTable('users'); 50 | */ 51 | } 52 | }; 53 | -------------------------------------------------------------------------------- /models/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/app-generator/nodejs-starter 7 | * 8 | */ 9 | 10 | "use strict"; 11 | 12 | const fs = require("fs"); 13 | const path = require("path"); 14 | const Sequelize = require("sequelize"); 15 | const basename = path.basename(__filename); 16 | const env = process.env.NODE_ENV || "development"; 17 | const config = require(__dirname + "/../config/config.js")[env]; 18 | const db = {}; 19 | 20 | let sequelize; 21 | if (config.use_env_variable) { 22 | sequelize = new Sequelize(process.env[config.use_env_variable], config); 23 | } else { 24 | sequelize = new Sequelize( 25 | config.database, 26 | config.username, 27 | config.password, 28 | config 29 | ); 30 | } 31 | 32 | fs.readdirSync(__dirname) 33 | .filter(file => { 34 | return ( 35 | file.indexOf(".") !== 0 && file !== basename && file.slice(-3) === ".js" 36 | ); 37 | }) 38 | .forEach(file => { 39 | const model = sequelize["import"](path.join(__dirname, file)); 40 | db[model.name] = model; 41 | }); 42 | 43 | Object.keys(db).forEach(modelName => { 44 | if (db[modelName].associate) { 45 | db[modelName].associate(db); 46 | } 47 | }); 48 | 49 | db.sequelize = sequelize; 50 | db.Sequelize = Sequelize; 51 | 52 | module.exports = db; 53 | -------------------------------------------------------------------------------- /models/todo.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/app-generator/nodejs-starter 7 | * 8 | */ 9 | 10 | // const uuid = require("uuid/v4"); 11 | ("use strict"); 12 | module.exports = (sequelize, DataTypes) => { 13 | let Todo = sequelize.define( 14 | "Todo", 15 | { 16 | id: { 17 | allowNull: false, 18 | primaryKey: true, 19 | type: DataTypes.INTEGER, 20 | autoIncrement: true 21 | }, 22 | title: DataTypes.STRING, 23 | detail: DataTypes.STRING 24 | }, 25 | { 26 | indexes: [ 27 | { 28 | unique: true, 29 | fields: ["id"] 30 | } 31 | ] 32 | } 33 | ); 34 | 35 | return Todo; 36 | }; 37 | -------------------------------------------------------------------------------- /models/user.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/app-generator/nodejs-starter 7 | * 8 | */ 9 | 10 | // const uuid = require("uuid/v4"); 11 | ("use strict"); 12 | module.exports = (sequelize, DataTypes) => { 13 | let User = sequelize.define( 14 | "User", 15 | { 16 | id: { 17 | allowNull: false, 18 | primaryKey: true, 19 | type: DataTypes.INTEGER, 20 | autoIncrement: true 21 | }, 22 | name: DataTypes.STRING, 23 | surname: DataTypes.STRING, 24 | email: { 25 | type: DataTypes.STRING, 26 | allowNull: false 27 | }, 28 | password: { 29 | type: DataTypes.STRING, 30 | allowNull: false 31 | } 32 | }, 33 | { 34 | indexes: [ 35 | { 36 | unique: true, 37 | fields: ["email"] 38 | } 39 | ] 40 | } 41 | ); 42 | 43 | return User; 44 | }; 45 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "backend", 3 | "version": "1.0.0", 4 | "description": "Just a simple express server", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node index.js", 8 | "dev": "nodemon start", 9 | "lint": "./node_modules/.bin/eslint --ext .js config/ models/ routes/ seeders/ index.js", 10 | "lint-fix": "./node_modules/.bin/eslint --fix --ext .js config/ models/ routes/ seeders/ index.js", 11 | "test": "./node_modules/lab/bin/lab --verbose -m 180000 -M 30000" 12 | }, 13 | "author": "AppSeed", 14 | "license": "ISC", 15 | "dependencies": { 16 | "bcrypt": "^3.0.8", 17 | "cors": "^2.8.5", 18 | "dotenv": "^6.2.0", 19 | "express": "^4.16.4", 20 | "express-jwt": "^5.3.1", 21 | "express-session": "^1.15.6", 22 | "handlebars": "^4.7.3", 23 | "joi": "^14.3.1", 24 | "jsonwebtoken": "^8.4.0", 25 | "nodemailer": "^6.4.2", 26 | "nodemon": "^2.0.2", 27 | "passport": "^0.4.0", 28 | "passport-local": "^1.0.0", 29 | "sequelize": "^5.15.1", 30 | "sequelize-cli": "^5.5.1", 31 | "supertest": "^4.0.2", 32 | "uuid": "^3.3.2" 33 | }, 34 | "devDependencies": { 35 | "code": "^5.2.4", 36 | "eslint": "^4.19.1", 37 | "eslint-config-prettier": "^2.10.0", 38 | "eslint-plugin-import": "^2.15.0", 39 | "eslint-plugin-prettier": "^2.7.0", 40 | "faker": "^4.1.0", 41 | "lab": "^17.3.0", 42 | "mysql2": "^2.1.0", 43 | "prettier": "^1.16.1" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /resources/views/welcome_mail.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 30 | 31 | 32 | 33 | 46 | 47 | 48 | 518 | 519 | 520 |
34 | 35 | 36 | 37 | 42 | 43 | 44 |
45 |
49 | 50 | 51 | 52 | 116 | 117 | 118 |
53 | 55 | 56 | 57 | 112 | 113 | 114 |
59 | 60 | 62 | 63 | 64 | 81 | 82 | 83 |
66 | 68 | 69 | 70 | 77 | 78 | 79 |
72 |

74 | Put your preheader text 75 | here

76 |
80 |
84 | 85 | 87 | 88 | 89 | 107 | 108 | 109 |
91 | 93 | 94 | 95 | 103 | 104 | 105 |
97 |

View 101 | in browser

102 |
106 |
110 | 111 |
115 |
119 | 120 | 121 | 122 | 157 | 158 | 159 |
123 | 125 | 126 | 127 | 153 | 154 | 155 |
129 | 130 | 131 | 132 | 149 | 150 | 151 |
134 | 136 | 137 | 138 | 145 | 146 | 147 |
148 |
152 |
156 |
160 | 161 | 162 | 163 | 215 | 216 | 217 |
165 | 167 | 168 | 169 | 211 | 212 | 213 |
170 | 171 | 172 | 173 | 207 | 208 | 209 |
175 | 179 | 180 | 181 | 185 | 186 | 187 | 203 | 204 | 205 |
183 |

Welcome!

184 |
190 | 194 | 195 | 196 | 199 | 200 | 201 |
198 |
202 |
206 |
210 |
214 |
218 | 219 | 220 | 221 | 298 | 299 | 300 |
222 | 224 | 225 | 226 | 294 | 295 | 296 |
227 | 228 | 229 | 230 | 290 | 291 | 292 |
232 | 236 | 237 | 238 | 245 | 246 | 247 | 256 | 257 | 258 | 264 | 265 | 266 | 270 | 271 | 272 | 279 | 280 | 281 | 286 | 287 | 288 |
240 |

We're excited to have you get 241 | started. First, you need to 242 | confirm your account. Just 243 | press the button below.

244 |
254 | Confirm 255 | Account
260 |

If that doesn't work, copy 261 | and paste the following link 262 | in your browser:

263 |
XXX.XXXXXXX.XXX 269 | / XXXXXXXXXXXXX
274 |

If you have any questions, 275 | just reply to this 276 | email—we're always happy to 277 | help out.

278 |
283 |

Cheers,

284 |

The Ceej Team

285 |
289 |
293 |
297 |
301 | 302 | 303 | 304 | 346 | 347 | 348 |
305 | 307 | 308 | 309 | 342 | 343 | 344 |
310 | 311 | 312 | 313 | 338 | 339 | 340 |
315 | 317 | 318 | 319 | 334 | 335 | 336 |
321 | 325 | 326 | 327 | 330 | 331 | 332 |
329 |
333 |
337 |
341 |
345 |
349 | 350 | 351 | 352 | 395 | 396 | 397 |
353 | 355 | 356 | 357 | 391 | 392 | 393 |
358 | 359 | 360 | 361 | 387 | 388 | 389 |
363 | 367 | 368 | 369 | 374 | 375 | 376 | 383 | 384 | 385 |
371 |

Need 372 | more help?

373 |
We’re 382 | here, ready to talk
386 |
390 |
394 |
398 | 399 | 400 | 401 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 514 | 515 | 516 | 517 |
521 |
522 | 523 | 524 | -------------------------------------------------------------------------------- /routes/api/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/app-generator/nodejs-starter 7 | * 8 | */ 9 | 10 | const express = require("express"); 11 | const router = express.Router(); 12 | 13 | router.use("/users", require("./users")); 14 | router.use("/todos", require("./todos")); 15 | 16 | module.exports = router; 17 | -------------------------------------------------------------------------------- /routes/api/todos/index.js: -------------------------------------------------------------------------------- 1 | const router = require("express").Router(); 2 | const auth = require("../../auth"); 3 | const todosController = require(`${process.cwd()}/app/controllers/TodosController`); 4 | 5 | router.use(auth.required); 6 | 7 | router.get("/", todosController.index); 8 | router.get("/:id", todosController.getTodo); 9 | router.post("/create", todosController.createTodo); 10 | router.patch("/update", todosController.updateTodo); 11 | router.delete("/delete", todosController.deleteTodo); 12 | 13 | module.exports = router; 14 | -------------------------------------------------------------------------------- /routes/api/users/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/app-generator/nodejs-starter 7 | * 8 | */ 9 | const router = require("express").Router(); 10 | const auth = require("../../auth"); 11 | const UserController = require(`${process.cwd()}/app/controllers/UserController`); 12 | 13 | // Defining router level auth middleware 14 | router.use(auth.optional); 15 | 16 | /* POST login route */ 17 | router.post("/login", UserController.loginController); 18 | /* POST signup route */ 19 | router.post("/signup", UserController.signupController); 20 | /* GET list route */ 21 | router.get("/list", auth.required, UserController.listController); 22 | 23 | module.exports = router; 24 | -------------------------------------------------------------------------------- /routes/auth.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/app-generator/nodejs-starter 7 | * 8 | */ 9 | 10 | const jwt = require("express-jwt"); 11 | 12 | const getTokenFromHeaders = req => { 13 | const { 14 | headers: { authorization } 15 | } = req; 16 | 17 | if (authorization && authorization.split(" ")[0] === "Bearer") { 18 | return authorization.split(" ")[1]; 19 | } 20 | 21 | return null; 22 | }; 23 | 24 | const auth = { 25 | required: jwt({ 26 | secret: process.env.JWT_SECRET, 27 | userProperty: "payload", 28 | getToken: getTokenFromHeaders 29 | }), 30 | optional: jwt({ 31 | secret: process.env.JWT_SECRET, 32 | userProperty: "payload", 33 | getToken: getTokenFromHeaders, 34 | credentialsRequired: false 35 | }) 36 | }; 37 | 38 | module.exports = auth; 39 | -------------------------------------------------------------------------------- /routes/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/app-generator/nodejs-starter 7 | * 8 | */ 9 | 10 | const express = require("express"); 11 | const router = express.Router(); 12 | 13 | router.use("/api", require("./api")); 14 | 15 | router.use(function(err, req, res, next) { 16 | if (err.name === "UnauthorizedError") { 17 | res.status(err.status).send({ message: err.message }); 18 | return; 19 | } 20 | next(); 21 | }); 22 | 23 | module.exports = router; 24 | -------------------------------------------------------------------------------- /test/integrations/registration.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/app-generator/nodejs-starter 7 | * 8 | */ 9 | 10 | const _ = require('lodash'); 11 | const { expect } = require('code'); 12 | const request = require('supertest'); 13 | const lab = require('lab').script(); 14 | exports.lab = lab; 15 | const app = require('../../index.js'); 16 | 17 | const faker = require('faker'); 18 | const { test, before, after, beforeEach, afterEach, suite } = lab; 19 | 20 | suite('[test][User]', () => { 21 | before(function () { 22 | }); 23 | 24 | beforeEach(function () { 25 | //get the models 26 | }); 27 | 28 | after(function () { 29 | //do a global cleanup of the database 30 | }); 31 | 32 | afterEach( function () { 33 | //do something after each test 34 | }); 35 | 36 | test('User should be able to login', async (done) => { 37 | const email = faker.internet.email(); 38 | const password = faker.internet.password(); 39 | const name = faker.name; 40 | const response = await request(app).post('/api/users/login').send({user:{email: email, password: password}}).set('Accept', 'application/json'); 41 | //this user was not created before so it will return an error 42 | expect(response.status).to.equal(400); 43 | }); 44 | 45 | test('User should be able to register', async (done) => { 46 | const email = faker.internet.email(); 47 | const password = faker.internet.password(); 48 | const firstName = faker.name.firstName(); 49 | const lastName = faker.name.lastName(); 50 | let response = await request(app).post('/api/users/signup').send({email: email, password: password, name: lastName, surname: firstName}).set('Accept', 'application/json'); 51 | expect(response.status).to.equal(200); 52 | const user = response.body; 53 | expect(user.email).to.equal(email); 54 | expect(user.password).to.equal(password); 55 | expect(user.name).to.equal(lastName); 56 | expect(user.surname).to.equal(firstName); 57 | //Now let's see if the user is able to login 58 | response = await request(app).post('/api/users/login').send({user:{email: email, password: password}}).set('Accept', 'application/json'); 59 | expect(response.status).to.equal(200); 60 | 61 | }); 62 | }); 63 | -------------------------------------------------------------------------------- /test/unit/user.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/app-generator/nodejs-starter 7 | * 8 | */ 9 | 10 | const _ = require('lodash'); 11 | const { expect } = require('code'); 12 | const request = require('supertest'); 13 | const lab = require('lab').script(); 14 | const models = require('../../models'); 15 | const User = models.User; 16 | exports.lab = lab; 17 | 18 | const faker = require('faker'); 19 | const { test, before, after, beforeEach, afterEach, suite } = lab; 20 | 21 | suite('[test][User]', () => { 22 | before(function () { 23 | //make sure the models are synced, or do any other global init it may be required 24 | // return models.sequelize.sync(); 25 | }); 26 | 27 | beforeEach(function () { 28 | //get the models 29 | 30 | }); 31 | 32 | after(function () { 33 | //do a global cleanup of the database 34 | return Promise.all([ 35 | User.destroy({ truncate: true }) 36 | ]); 37 | }); 38 | 39 | afterEach( function () { 40 | //do something after each test 41 | }); 42 | test('User should be created and retrieved', async() => { 43 | const email = faker.internet.email(); 44 | const password = faker.internet.password(); 45 | const name = faker.name; 46 | const newUser = await User.create({ email: email, password: password, name: name.lastName(), surname: name.firstName()}); 47 | expect(newUser.email).to.equal(email); 48 | const foundUser = await User.findOne({where:{ email }}); 49 | expect(foundUser.email).to.equal(email); 50 | }); 51 | }); 52 | -------------------------------------------------------------------------------- /utils/generateHash.js: -------------------------------------------------------------------------------- 1 | const bcrypt = require("bcrypt"); 2 | const saltRounds = 3 | (process.env.SALT_ROUNDS && Number(process.env.SALT_ROUNDS)) || 10; 4 | const generateHash = async plainPassword => { 5 | return await bcrypt.hashSync(plainPassword, saltRounds); 6 | }; 7 | 8 | module.exports = generateHash; 9 | -------------------------------------------------------------------------------- /utils/generateJWT.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/app-generator/nodejs-starter 7 | * 8 | */ 9 | 10 | const jwt = require("jsonwebtoken"); 11 | 12 | /** 13 | * generate the json web token that we'll use for authentication 14 | * 15 | * @since 1.0.0 16 | * @category authentication 17 | * @param {Any} id The user ID 18 | * @param {String} email The email of the user 19 | * @param {String} name The name of the user 20 | * @param {String} surname The surname of the user 21 | * @returns {Object} The generated JWT 22 | */ 23 | 24 | const generateJWT = ({ id, email, name, surname }) => { 25 | const today = new Date(); 26 | const expirationDate = new Date(today); 27 | 28 | expirationDate.setDate(today.getDate() + 600); 29 | 30 | return jwt.sign( 31 | { 32 | id, 33 | email, 34 | name, 35 | surname, 36 | exp: parseInt(expirationDate.getTime() / 1000, 10) 37 | }, 38 | process.env.JWT_SECRET 39 | ); 40 | }; 41 | 42 | module.exports = generateJWT; 43 | -------------------------------------------------------------------------------- /utils/validatePassword.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Author: AppSeed.us 4 | * 5 | * License: MIT - Copyright (c) AppSeed.us 6 | * @link https://github.com/app-generator/nodejs-starter 7 | * 8 | */ 9 | 10 | const bcrypt = require("bcrypt"); 11 | 12 | /** 13 | * Validates that the provided password matches the hashed counterpart 14 | * 15 | * @since 1.0.0 16 | * @category validation 17 | * @param {String} password The password provided by the user 18 | * @param {String} hashedPassword The password stored in your db 19 | * @returns {Boolean} the 20 | */ 21 | 22 | const validatePassword = async (password, hashedPassword) => { 23 | let validateResult = await bcrypt.compareSync(password, hashedPassword); 24 | return await validateResult; 25 | }; 26 | module.exports = validatePassword; 27 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.0.0" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" 8 | dependencies: 9 | "@babel/highlight" "^7.0.0" 10 | 11 | "@babel/highlight@^7.0.0": 12 | version "7.0.0" 13 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" 14 | dependencies: 15 | chalk "^2.0.0" 16 | esutils "^2.0.2" 17 | js-tokens "^4.0.0" 18 | 19 | "@types/node@*": 20 | version "11.13.4" 21 | resolved "https://registry.yarnpkg.com/@types/node/-/node-11.13.4.tgz#f83ec3c3e05b174b7241fadeb6688267fe5b22ca" 22 | 23 | abbrev@1: 24 | version "1.1.1" 25 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 26 | 27 | accepts@~1.3.5: 28 | version "1.3.5" 29 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" 30 | dependencies: 31 | mime-types "~2.1.18" 32 | negotiator "0.6.1" 33 | 34 | acorn-jsx@^3.0.0: 35 | version "3.0.1" 36 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 37 | dependencies: 38 | acorn "^3.0.4" 39 | 40 | acorn-jsx@^5.0.0: 41 | version "5.0.1" 42 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" 43 | 44 | acorn@^3.0.4: 45 | version "3.3.0" 46 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 47 | 48 | acorn@^5.5.0: 49 | version "5.7.3" 50 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" 51 | 52 | acorn@^6.0.2: 53 | version "6.1.1" 54 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" 55 | 56 | ajv-keywords@^2.1.0: 57 | version "2.1.1" 58 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" 59 | 60 | ajv@^5.2.3, ajv@^5.3.0: 61 | version "5.5.2" 62 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 63 | dependencies: 64 | co "^4.6.0" 65 | fast-deep-equal "^1.0.0" 66 | fast-json-stable-stringify "^2.0.0" 67 | json-schema-traverse "^0.3.0" 68 | 69 | ajv@^6.5.3, ajv@^6.9.1: 70 | version "6.10.0" 71 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" 72 | dependencies: 73 | fast-deep-equal "^2.0.1" 74 | fast-json-stable-stringify "^2.0.0" 75 | json-schema-traverse "^0.4.1" 76 | uri-js "^4.2.2" 77 | 78 | ansi-align@^2.0.0: 79 | version "2.0.0" 80 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" 81 | dependencies: 82 | string-width "^2.0.0" 83 | 84 | ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: 85 | version "3.2.0" 86 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" 87 | 88 | ansi-regex@^2.0.0, ansi-regex@^2.1.1: 89 | version "2.1.1" 90 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 91 | 92 | ansi-regex@^3.0.0: 93 | version "3.0.0" 94 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 95 | 96 | ansi-regex@^4.1.0: 97 | version "4.1.0" 98 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 99 | 100 | ansi-styles@^2.2.1: 101 | version "2.2.1" 102 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 103 | 104 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 105 | version "3.2.1" 106 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 107 | dependencies: 108 | color-convert "^1.9.0" 109 | 110 | ansicolors@~0.3.2: 111 | version "0.3.2" 112 | resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" 113 | 114 | any-promise@^1.3.0: 115 | version "1.3.0" 116 | resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 117 | 118 | anymatch@~3.1.1: 119 | version "3.1.1" 120 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" 121 | dependencies: 122 | normalize-path "^3.0.0" 123 | picomatch "^2.0.4" 124 | 125 | aproba@^1.0.3: 126 | version "1.2.0" 127 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 128 | 129 | are-we-there-yet@~1.1.2: 130 | version "1.1.5" 131 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" 132 | dependencies: 133 | delegates "^1.0.0" 134 | readable-stream "^2.0.6" 135 | 136 | argparse@^1.0.7: 137 | version "1.0.10" 138 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 139 | dependencies: 140 | sprintf-js "~1.0.2" 141 | 142 | array-flatten@1.1.1: 143 | version "1.1.1" 144 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 145 | 146 | array-includes@^3.0.3: 147 | version "3.0.3" 148 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" 149 | dependencies: 150 | define-properties "^1.1.2" 151 | es-abstract "^1.7.0" 152 | 153 | astral-regex@^1.0.0: 154 | version "1.0.0" 155 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 156 | 157 | async@^1.5.0: 158 | version "1.5.2" 159 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" 160 | 161 | asynckit@^0.4.0: 162 | version "0.4.0" 163 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 164 | 165 | babel-code-frame@^6.22.0: 166 | version "6.26.0" 167 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 168 | dependencies: 169 | chalk "^1.1.3" 170 | esutils "^2.0.2" 171 | js-tokens "^3.0.2" 172 | 173 | babel-runtime@^6.23.0: 174 | version "6.26.0" 175 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" 176 | dependencies: 177 | core-js "^2.4.0" 178 | regenerator-runtime "^0.11.0" 179 | 180 | balanced-match@^1.0.0: 181 | version "1.0.0" 182 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 183 | 184 | bcrypt@^3.0.8: 185 | version "3.0.8" 186 | resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-3.0.8.tgz#fe437b7569faffc1105c3c3f6e7d2913e3d3bea5" 187 | dependencies: 188 | nan "2.14.0" 189 | node-pre-gyp "0.14.0" 190 | 191 | binary-extensions@^2.0.0: 192 | version "2.0.0" 193 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" 194 | 195 | bluebird@^3.5.0, bluebird@^3.5.3: 196 | version "3.5.4" 197 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" 198 | 199 | body-parser@1.18.3: 200 | version "1.18.3" 201 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" 202 | dependencies: 203 | bytes "3.0.0" 204 | content-type "~1.0.4" 205 | debug "2.6.9" 206 | depd "~1.1.2" 207 | http-errors "~1.6.3" 208 | iconv-lite "0.4.23" 209 | on-finished "~2.3.0" 210 | qs "6.5.2" 211 | raw-body "2.3.3" 212 | type-is "~1.6.16" 213 | 214 | boom@7.x.x: 215 | version "7.3.0" 216 | resolved "https://registry.yarnpkg.com/boom/-/boom-7.3.0.tgz#733a6d956d33b0b1999da3fe6c12996950d017b9" 217 | dependencies: 218 | hoek "6.x.x" 219 | 220 | bossy@4.x.x: 221 | version "4.0.3" 222 | resolved "https://registry.yarnpkg.com/bossy/-/bossy-4.0.3.tgz#52ecc3f3fc3b35799970f77871df024c41d19c39" 223 | dependencies: 224 | boom "7.x.x" 225 | hoek "6.x.x" 226 | joi "14.x.x" 227 | 228 | boxen@^1.2.1: 229 | version "1.3.0" 230 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" 231 | dependencies: 232 | ansi-align "^2.0.0" 233 | camelcase "^4.0.0" 234 | chalk "^2.0.1" 235 | cli-boxes "^1.0.0" 236 | string-width "^2.0.0" 237 | term-size "^1.2.0" 238 | widest-line "^2.0.0" 239 | 240 | brace-expansion@^1.1.7: 241 | version "1.1.11" 242 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 243 | dependencies: 244 | balanced-match "^1.0.0" 245 | concat-map "0.0.1" 246 | 247 | braces@~3.0.2: 248 | version "3.0.2" 249 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 250 | dependencies: 251 | fill-range "^7.0.1" 252 | 253 | buffer-equal-constant-time@1.0.1: 254 | version "1.0.1" 255 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 256 | 257 | buffer-from@^1.0.0: 258 | version "1.1.1" 259 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 260 | 261 | bytes@3.0.0: 262 | version "3.0.0" 263 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 264 | 265 | caller-path@^0.1.0: 266 | version "0.1.0" 267 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 268 | dependencies: 269 | callsites "^0.2.0" 270 | 271 | callsites@^0.2.0: 272 | version "0.2.0" 273 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 274 | 275 | camelcase@^4.0.0: 276 | version "4.1.0" 277 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 278 | 279 | camelcase@^5.0.0: 280 | version "5.3.1" 281 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 282 | 283 | capture-stack-trace@^1.0.0: 284 | version "1.0.1" 285 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" 286 | 287 | cardinal@^2.1.1: 288 | version "2.1.1" 289 | resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" 290 | dependencies: 291 | ansicolors "~0.3.2" 292 | redeyed "~2.1.0" 293 | 294 | chalk@^1.1.3: 295 | version "1.1.3" 296 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 297 | dependencies: 298 | ansi-styles "^2.2.1" 299 | escape-string-regexp "^1.0.2" 300 | has-ansi "^2.0.0" 301 | strip-ansi "^3.0.0" 302 | supports-color "^2.0.0" 303 | 304 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.2: 305 | version "2.4.2" 306 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 307 | dependencies: 308 | ansi-styles "^3.2.1" 309 | escape-string-regexp "^1.0.5" 310 | supports-color "^5.3.0" 311 | 312 | chardet@^0.4.0: 313 | version "0.4.2" 314 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" 315 | 316 | chardet@^0.7.0: 317 | version "0.7.0" 318 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" 319 | 320 | chokidar@^3.2.2: 321 | version "3.3.1" 322 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" 323 | dependencies: 324 | anymatch "~3.1.1" 325 | braces "~3.0.2" 326 | glob-parent "~5.1.0" 327 | is-binary-path "~2.1.0" 328 | is-glob "~4.0.1" 329 | normalize-path "~3.0.0" 330 | readdirp "~3.3.0" 331 | optionalDependencies: 332 | fsevents "~2.1.2" 333 | 334 | chownr@^1.1.1: 335 | version "1.1.1" 336 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" 337 | 338 | ci-info@^1.5.0: 339 | version "1.6.0" 340 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" 341 | 342 | circular-json@^0.3.1: 343 | version "0.3.3" 344 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" 345 | 346 | cli-boxes@^1.0.0: 347 | version "1.0.0" 348 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 349 | 350 | cli-color@^1.4.0: 351 | version "1.4.0" 352 | resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-1.4.0.tgz#7d10738f48526824f8fe7da51857cb0f572fe01f" 353 | dependencies: 354 | ansi-regex "^2.1.1" 355 | d "1" 356 | es5-ext "^0.10.46" 357 | es6-iterator "^2.0.3" 358 | memoizee "^0.4.14" 359 | timers-ext "^0.1.5" 360 | 361 | cli-cursor@^2.1.0: 362 | version "2.1.0" 363 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 364 | dependencies: 365 | restore-cursor "^2.0.0" 366 | 367 | cli-width@^2.0.0: 368 | version "2.2.0" 369 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 370 | 371 | cliui@^5.0.0: 372 | version "5.0.0" 373 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" 374 | dependencies: 375 | string-width "^3.1.0" 376 | strip-ansi "^5.2.0" 377 | wrap-ansi "^5.1.0" 378 | 379 | cls-bluebird@^2.1.0: 380 | version "2.1.0" 381 | resolved "https://registry.yarnpkg.com/cls-bluebird/-/cls-bluebird-2.1.0.tgz#37ef1e080a8ffb55c2f4164f536f1919e7968aee" 382 | dependencies: 383 | is-bluebird "^1.0.2" 384 | shimmer "^1.1.0" 385 | 386 | co@^4.6.0: 387 | version "4.6.0" 388 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 389 | 390 | code-point-at@^1.0.0: 391 | version "1.1.0" 392 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 393 | 394 | code@^5.2.4: 395 | version "5.2.4" 396 | resolved "https://registry.yarnpkg.com/code/-/code-5.2.4.tgz#b1bb981e96acf8099ff847605b42d04db05caffa" 397 | dependencies: 398 | hoek "6.x.x" 399 | 400 | color-convert@^1.9.0: 401 | version "1.9.3" 402 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 403 | dependencies: 404 | color-name "1.1.3" 405 | 406 | color-name@1.1.3: 407 | version "1.1.3" 408 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 409 | 410 | combined-stream@^1.0.6: 411 | version "1.0.7" 412 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" 413 | dependencies: 414 | delayed-stream "~1.0.0" 415 | 416 | commander@^2.19.0, commander@~2.20.0: 417 | version "2.20.0" 418 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" 419 | 420 | component-emitter@^1.2.0: 421 | version "1.2.1" 422 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 423 | 424 | concat-map@0.0.1: 425 | version "0.0.1" 426 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 427 | 428 | concat-stream@^1.6.0: 429 | version "1.6.2" 430 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 431 | dependencies: 432 | buffer-from "^1.0.0" 433 | inherits "^2.0.3" 434 | readable-stream "^2.2.2" 435 | typedarray "^0.0.6" 436 | 437 | config-chain@^1.1.12: 438 | version "1.1.12" 439 | resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" 440 | dependencies: 441 | ini "^1.3.4" 442 | proto-list "~1.2.1" 443 | 444 | configstore@^3.0.0: 445 | version "3.1.2" 446 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" 447 | dependencies: 448 | dot-prop "^4.1.0" 449 | graceful-fs "^4.1.2" 450 | make-dir "^1.0.0" 451 | unique-string "^1.0.0" 452 | write-file-atomic "^2.0.0" 453 | xdg-basedir "^3.0.0" 454 | 455 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 456 | version "1.1.0" 457 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 458 | 459 | contains-path@^0.1.0: 460 | version "0.1.0" 461 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 462 | 463 | content-disposition@0.5.2: 464 | version "0.5.2" 465 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 466 | 467 | content-type@~1.0.4: 468 | version "1.0.4" 469 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 470 | 471 | cookie-signature@1.0.6: 472 | version "1.0.6" 473 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 474 | 475 | cookie@0.3.1: 476 | version "0.3.1" 477 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 478 | 479 | cookiejar@^2.1.0: 480 | version "2.1.2" 481 | resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" 482 | 483 | core-js@^2.4.0: 484 | version "2.6.5" 485 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" 486 | 487 | core-util-is@~1.0.0: 488 | version "1.0.2" 489 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 490 | 491 | cors@^2.8.5: 492 | version "2.8.5" 493 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" 494 | dependencies: 495 | object-assign "^4" 496 | vary "^1" 497 | 498 | create-error-class@^3.0.0: 499 | version "3.0.2" 500 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 501 | dependencies: 502 | capture-stack-trace "^1.0.0" 503 | 504 | cross-spawn@^5.0.1, cross-spawn@^5.1.0: 505 | version "5.1.0" 506 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 507 | dependencies: 508 | lru-cache "^4.0.1" 509 | shebang-command "^1.2.0" 510 | which "^1.2.9" 511 | 512 | cross-spawn@^6.0.5: 513 | version "6.0.5" 514 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 515 | dependencies: 516 | nice-try "^1.0.4" 517 | path-key "^2.0.1" 518 | semver "^5.5.0" 519 | shebang-command "^1.2.0" 520 | which "^1.2.9" 521 | 522 | crypto-random-string@^1.0.0: 523 | version "1.0.0" 524 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" 525 | 526 | d@1: 527 | version "1.0.0" 528 | resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" 529 | dependencies: 530 | es5-ext "^0.10.9" 531 | 532 | debug@2.6.9, debug@^2.2.0, debug@^2.6.8, debug@^2.6.9: 533 | version "2.6.9" 534 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 535 | dependencies: 536 | ms "2.0.0" 537 | 538 | debug@^3.1.0, debug@^3.2.6: 539 | version "3.2.6" 540 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 541 | dependencies: 542 | ms "^2.1.1" 543 | 544 | debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: 545 | version "4.1.1" 546 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 547 | dependencies: 548 | ms "^2.1.1" 549 | 550 | decamelize@^1.2.0: 551 | version "1.2.0" 552 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 553 | 554 | deep-extend@^0.6.0: 555 | version "0.6.0" 556 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 557 | 558 | deep-is@~0.1.3: 559 | version "0.1.3" 560 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 561 | 562 | define-properties@^1.1.2: 563 | version "1.1.3" 564 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 565 | dependencies: 566 | object-keys "^1.0.12" 567 | 568 | delayed-stream@~1.0.0: 569 | version "1.0.0" 570 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 571 | 572 | delegates@^1.0.0: 573 | version "1.0.0" 574 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 575 | 576 | denque@^1.4.1: 577 | version "1.4.1" 578 | resolved "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf" 579 | 580 | depd@~1.1.2: 581 | version "1.1.2" 582 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 583 | 584 | depd@~2.0.0: 585 | version "2.0.0" 586 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 587 | 588 | destroy@~1.0.4: 589 | version "1.0.4" 590 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 591 | 592 | detect-libc@^1.0.2: 593 | version "1.0.3" 594 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 595 | 596 | diff@3.5.x: 597 | version "3.5.0" 598 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 599 | 600 | doctrine@1.5.0: 601 | version "1.5.0" 602 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 603 | dependencies: 604 | esutils "^2.0.2" 605 | isarray "^1.0.0" 606 | 607 | doctrine@^2.1.0: 608 | version "2.1.0" 609 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 610 | dependencies: 611 | esutils "^2.0.2" 612 | 613 | dot-prop@^4.1.0: 614 | version "4.2.0" 615 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" 616 | dependencies: 617 | is-obj "^1.0.0" 618 | 619 | dotenv@^6.2.0: 620 | version "6.2.0" 621 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" 622 | 623 | dottie@^2.0.0: 624 | version "2.0.1" 625 | resolved "https://registry.yarnpkg.com/dottie/-/dottie-2.0.1.tgz#697ad9d72004db7574d21f892466a3c285893659" 626 | 627 | duplexer3@^0.1.4: 628 | version "0.1.4" 629 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 630 | 631 | ecdsa-sig-formatter@1.0.11: 632 | version "1.0.11" 633 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" 634 | dependencies: 635 | safe-buffer "^5.0.1" 636 | 637 | editorconfig@^0.15.2: 638 | version "0.15.3" 639 | resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" 640 | dependencies: 641 | commander "^2.19.0" 642 | lru-cache "^4.1.5" 643 | semver "^5.6.0" 644 | sigmund "^1.0.1" 645 | 646 | ee-first@1.1.1: 647 | version "1.1.1" 648 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 649 | 650 | emoji-regex@^7.0.1: 651 | version "7.0.3" 652 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 653 | 654 | encodeurl@~1.0.2: 655 | version "1.0.2" 656 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 657 | 658 | error-ex@^1.2.0: 659 | version "1.3.2" 660 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 661 | dependencies: 662 | is-arrayish "^0.2.1" 663 | 664 | es-abstract@^1.7.0: 665 | version "1.13.0" 666 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" 667 | dependencies: 668 | es-to-primitive "^1.2.0" 669 | function-bind "^1.1.1" 670 | has "^1.0.3" 671 | is-callable "^1.1.4" 672 | is-regex "^1.0.4" 673 | object-keys "^1.0.12" 674 | 675 | es-to-primitive@^1.2.0: 676 | version "1.2.0" 677 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" 678 | dependencies: 679 | is-callable "^1.1.4" 680 | is-date-object "^1.0.1" 681 | is-symbol "^1.0.2" 682 | 683 | es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.9, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: 684 | version "0.10.49" 685 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.49.tgz#059a239de862c94494fec28f8150c977028c6c5e" 686 | dependencies: 687 | es6-iterator "~2.0.3" 688 | es6-symbol "~3.1.1" 689 | next-tick "^1.0.0" 690 | 691 | es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.3: 692 | version "2.0.3" 693 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" 694 | dependencies: 695 | d "1" 696 | es5-ext "^0.10.35" 697 | es6-symbol "^3.1.1" 698 | 699 | es6-symbol@^3.1.1, es6-symbol@~3.1.1: 700 | version "3.1.1" 701 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" 702 | dependencies: 703 | d "1" 704 | es5-ext "~0.10.14" 705 | 706 | es6-weak-map@^2.0.2: 707 | version "2.0.2" 708 | resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" 709 | dependencies: 710 | d "1" 711 | es5-ext "^0.10.14" 712 | es6-iterator "^2.0.1" 713 | es6-symbol "^3.1.1" 714 | 715 | escape-html@~1.0.3: 716 | version "1.0.3" 717 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 718 | 719 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 720 | version "1.0.5" 721 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 722 | 723 | eslint-config-hapi@12.x.x: 724 | version "12.0.0" 725 | resolved "https://registry.yarnpkg.com/eslint-config-hapi/-/eslint-config-hapi-12.0.0.tgz#2bcacc0e050d6734f95df077dc921fa755576d7e" 726 | 727 | eslint-config-prettier@^2.10.0: 728 | version "2.10.0" 729 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.10.0.tgz#ec07bc1d01f87d09f61d3840d112dc8a9791e30b" 730 | dependencies: 731 | get-stdin "^5.0.1" 732 | 733 | eslint-import-resolver-node@^0.3.2: 734 | version "0.3.2" 735 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" 736 | dependencies: 737 | debug "^2.6.9" 738 | resolve "^1.5.0" 739 | 740 | eslint-module-utils@^2.4.0: 741 | version "2.4.0" 742 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" 743 | dependencies: 744 | debug "^2.6.8" 745 | pkg-dir "^2.0.0" 746 | 747 | eslint-plugin-hapi@4.x.x: 748 | version "4.1.0" 749 | resolved "https://registry.yarnpkg.com/eslint-plugin-hapi/-/eslint-plugin-hapi-4.1.0.tgz#ca6b97b7621ae45cf70ab92f8c847a85414a56c9" 750 | dependencies: 751 | hapi-capitalize-modules "1.x.x" 752 | hapi-for-you "1.x.x" 753 | hapi-no-var "1.x.x" 754 | hapi-scope-start "2.x.x" 755 | no-arrowception "1.x.x" 756 | 757 | eslint-plugin-import@^2.15.0: 758 | version "2.17.1" 759 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.17.1.tgz#b888feb4d9b3ee155113c8dccdd4bec5db33bdf4" 760 | dependencies: 761 | array-includes "^3.0.3" 762 | contains-path "^0.1.0" 763 | debug "^2.6.9" 764 | doctrine "1.5.0" 765 | eslint-import-resolver-node "^0.3.2" 766 | eslint-module-utils "^2.4.0" 767 | has "^1.0.3" 768 | lodash "^4.17.11" 769 | minimatch "^3.0.4" 770 | read-pkg-up "^2.0.0" 771 | resolve "^1.10.0" 772 | 773 | eslint-plugin-prettier@^2.7.0: 774 | version "2.7.0" 775 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz#b4312dcf2c1d965379d7f9d5b5f8aaadc6a45904" 776 | dependencies: 777 | fast-diff "^1.1.1" 778 | jest-docblock "^21.0.0" 779 | 780 | eslint-scope@^3.7.1: 781 | version "3.7.3" 782 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" 783 | dependencies: 784 | esrecurse "^4.1.0" 785 | estraverse "^4.1.1" 786 | 787 | eslint-scope@^4.0.0: 788 | version "4.0.3" 789 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" 790 | dependencies: 791 | esrecurse "^4.1.0" 792 | estraverse "^4.1.1" 793 | 794 | eslint-utils@^1.3.1: 795 | version "1.4.3" 796 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" 797 | dependencies: 798 | eslint-visitor-keys "^1.1.0" 799 | 800 | eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: 801 | version "1.1.0" 802 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" 803 | 804 | eslint@5.8.x: 805 | version "5.8.0" 806 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.8.0.tgz#91fbf24f6e0471e8fdf681a4d9dd1b2c9f28309b" 807 | dependencies: 808 | "@babel/code-frame" "^7.0.0" 809 | ajv "^6.5.3" 810 | chalk "^2.1.0" 811 | cross-spawn "^6.0.5" 812 | debug "^4.0.1" 813 | doctrine "^2.1.0" 814 | eslint-scope "^4.0.0" 815 | eslint-utils "^1.3.1" 816 | eslint-visitor-keys "^1.0.0" 817 | espree "^4.0.0" 818 | esquery "^1.0.1" 819 | esutils "^2.0.2" 820 | file-entry-cache "^2.0.0" 821 | functional-red-black-tree "^1.0.1" 822 | glob "^7.1.2" 823 | globals "^11.7.0" 824 | ignore "^4.0.6" 825 | imurmurhash "^0.1.4" 826 | inquirer "^6.1.0" 827 | is-resolvable "^1.1.0" 828 | js-yaml "^3.12.0" 829 | json-stable-stringify-without-jsonify "^1.0.1" 830 | levn "^0.3.0" 831 | lodash "^4.17.5" 832 | minimatch "^3.0.4" 833 | mkdirp "^0.5.1" 834 | natural-compare "^1.4.0" 835 | optionator "^0.8.2" 836 | path-is-inside "^1.0.2" 837 | pluralize "^7.0.0" 838 | progress "^2.0.0" 839 | regexpp "^2.0.1" 840 | require-uncached "^1.0.3" 841 | semver "^5.5.1" 842 | strip-ansi "^4.0.0" 843 | strip-json-comments "^2.0.1" 844 | table "^5.0.2" 845 | text-table "^0.2.0" 846 | 847 | eslint@^4.19.1: 848 | version "4.19.1" 849 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" 850 | dependencies: 851 | ajv "^5.3.0" 852 | babel-code-frame "^6.22.0" 853 | chalk "^2.1.0" 854 | concat-stream "^1.6.0" 855 | cross-spawn "^5.1.0" 856 | debug "^3.1.0" 857 | doctrine "^2.1.0" 858 | eslint-scope "^3.7.1" 859 | eslint-visitor-keys "^1.0.0" 860 | espree "^3.5.4" 861 | esquery "^1.0.0" 862 | esutils "^2.0.2" 863 | file-entry-cache "^2.0.0" 864 | functional-red-black-tree "^1.0.1" 865 | glob "^7.1.2" 866 | globals "^11.0.1" 867 | ignore "^3.3.3" 868 | imurmurhash "^0.1.4" 869 | inquirer "^3.0.6" 870 | is-resolvable "^1.0.0" 871 | js-yaml "^3.9.1" 872 | json-stable-stringify-without-jsonify "^1.0.1" 873 | levn "^0.3.0" 874 | lodash "^4.17.4" 875 | minimatch "^3.0.2" 876 | mkdirp "^0.5.1" 877 | natural-compare "^1.4.0" 878 | optionator "^0.8.2" 879 | path-is-inside "^1.0.2" 880 | pluralize "^7.0.0" 881 | progress "^2.0.0" 882 | regexpp "^1.0.1" 883 | require-uncached "^1.0.3" 884 | semver "^5.3.0" 885 | strip-ansi "^4.0.0" 886 | strip-json-comments "~2.0.1" 887 | table "4.0.2" 888 | text-table "~0.2.0" 889 | 890 | espree@4.1.x, espree@^4.0.0: 891 | version "4.1.0" 892 | resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" 893 | dependencies: 894 | acorn "^6.0.2" 895 | acorn-jsx "^5.0.0" 896 | eslint-visitor-keys "^1.0.0" 897 | 898 | espree@^3.5.4: 899 | version "3.5.4" 900 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" 901 | dependencies: 902 | acorn "^5.5.0" 903 | acorn-jsx "^3.0.0" 904 | 905 | esprima@^4.0.0, esprima@~4.0.0: 906 | version "4.0.1" 907 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 908 | 909 | esquery@^1.0.0, esquery@^1.0.1: 910 | version "1.0.1" 911 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" 912 | dependencies: 913 | estraverse "^4.0.0" 914 | 915 | esrecurse@^4.1.0: 916 | version "4.2.1" 917 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 918 | dependencies: 919 | estraverse "^4.1.0" 920 | 921 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: 922 | version "4.2.0" 923 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 924 | 925 | esutils@^2.0.2: 926 | version "2.0.2" 927 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 928 | 929 | etag@~1.8.1: 930 | version "1.8.1" 931 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 932 | 933 | event-emitter@^0.3.5: 934 | version "0.3.5" 935 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" 936 | dependencies: 937 | d "1" 938 | es5-ext "~0.10.14" 939 | 940 | execa@^0.7.0: 941 | version "0.7.0" 942 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 943 | dependencies: 944 | cross-spawn "^5.0.1" 945 | get-stream "^3.0.0" 946 | is-stream "^1.1.0" 947 | npm-run-path "^2.0.0" 948 | p-finally "^1.0.0" 949 | signal-exit "^3.0.0" 950 | strip-eof "^1.0.0" 951 | 952 | express-jwt@^5.3.1: 953 | version "5.3.1" 954 | resolved "https://registry.yarnpkg.com/express-jwt/-/express-jwt-5.3.1.tgz#66f05c7dddb5409c037346a98b88965bb10ea4ae" 955 | dependencies: 956 | async "^1.5.0" 957 | express-unless "^0.3.0" 958 | jsonwebtoken "^8.1.0" 959 | lodash.set "^4.0.0" 960 | 961 | express-session@^1.15.6: 962 | version "1.16.1" 963 | resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.16.1.tgz#251ff9776c59382301de6c8c33411af357ed439c" 964 | dependencies: 965 | cookie "0.3.1" 966 | cookie-signature "1.0.6" 967 | debug "2.6.9" 968 | depd "~2.0.0" 969 | on-headers "~1.0.2" 970 | parseurl "~1.3.2" 971 | safe-buffer "5.1.2" 972 | uid-safe "~2.1.5" 973 | 974 | express-unless@^0.3.0: 975 | version "0.3.1" 976 | resolved "https://registry.yarnpkg.com/express-unless/-/express-unless-0.3.1.tgz#2557c146e75beb903e2d247f9b5ba01452696e20" 977 | 978 | express@^4.16.4: 979 | version "4.16.4" 980 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" 981 | dependencies: 982 | accepts "~1.3.5" 983 | array-flatten "1.1.1" 984 | body-parser "1.18.3" 985 | content-disposition "0.5.2" 986 | content-type "~1.0.4" 987 | cookie "0.3.1" 988 | cookie-signature "1.0.6" 989 | debug "2.6.9" 990 | depd "~1.1.2" 991 | encodeurl "~1.0.2" 992 | escape-html "~1.0.3" 993 | etag "~1.8.1" 994 | finalhandler "1.1.1" 995 | fresh "0.5.2" 996 | merge-descriptors "1.0.1" 997 | methods "~1.1.2" 998 | on-finished "~2.3.0" 999 | parseurl "~1.3.2" 1000 | path-to-regexp "0.1.7" 1001 | proxy-addr "~2.0.4" 1002 | qs "6.5.2" 1003 | range-parser "~1.2.0" 1004 | safe-buffer "5.1.2" 1005 | send "0.16.2" 1006 | serve-static "1.13.2" 1007 | setprototypeof "1.1.0" 1008 | statuses "~1.4.0" 1009 | type-is "~1.6.16" 1010 | utils-merge "1.0.1" 1011 | vary "~1.1.2" 1012 | 1013 | extend@^3.0.0: 1014 | version "3.0.2" 1015 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" 1016 | 1017 | external-editor@^2.0.4: 1018 | version "2.2.0" 1019 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" 1020 | dependencies: 1021 | chardet "^0.4.0" 1022 | iconv-lite "^0.4.17" 1023 | tmp "^0.0.33" 1024 | 1025 | external-editor@^3.0.3: 1026 | version "3.0.3" 1027 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" 1028 | dependencies: 1029 | chardet "^0.7.0" 1030 | iconv-lite "^0.4.24" 1031 | tmp "^0.0.33" 1032 | 1033 | faker@^4.1.0: 1034 | version "4.1.0" 1035 | resolved "https://registry.yarnpkg.com/faker/-/faker-4.1.0.tgz#1e45bbbecc6774b3c195fad2835109c6d748cc3f" 1036 | 1037 | fast-deep-equal@^1.0.0: 1038 | version "1.1.0" 1039 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 1040 | 1041 | fast-deep-equal@^2.0.1: 1042 | version "2.0.1" 1043 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" 1044 | 1045 | fast-diff@^1.1.1: 1046 | version "1.2.0" 1047 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" 1048 | 1049 | fast-json-stable-stringify@^2.0.0: 1050 | version "2.0.0" 1051 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 1052 | 1053 | fast-levenshtein@~2.0.4: 1054 | version "2.0.6" 1055 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 1056 | 1057 | figures@^2.0.0: 1058 | version "2.0.0" 1059 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 1060 | dependencies: 1061 | escape-string-regexp "^1.0.5" 1062 | 1063 | file-entry-cache@^2.0.0: 1064 | version "2.0.0" 1065 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 1066 | dependencies: 1067 | flat-cache "^1.2.1" 1068 | object-assign "^4.0.1" 1069 | 1070 | fill-range@^7.0.1: 1071 | version "7.0.1" 1072 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 1073 | dependencies: 1074 | to-regex-range "^5.0.1" 1075 | 1076 | finalhandler@1.1.1: 1077 | version "1.1.1" 1078 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" 1079 | dependencies: 1080 | debug "2.6.9" 1081 | encodeurl "~1.0.2" 1082 | escape-html "~1.0.3" 1083 | on-finished "~2.3.0" 1084 | parseurl "~1.3.2" 1085 | statuses "~1.4.0" 1086 | unpipe "~1.0.0" 1087 | 1088 | find-rc@3.0.x: 1089 | version "3.0.1" 1090 | resolved "https://registry.yarnpkg.com/find-rc/-/find-rc-3.0.1.tgz#54a4178370f10bc9371fa8d1b2c2809a2afa0cce" 1091 | 1092 | find-up@^2.0.0, find-up@^2.1.0: 1093 | version "2.1.0" 1094 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1095 | dependencies: 1096 | locate-path "^2.0.0" 1097 | 1098 | find-up@^3.0.0: 1099 | version "3.0.0" 1100 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 1101 | dependencies: 1102 | locate-path "^3.0.0" 1103 | 1104 | flat-cache@^1.2.1: 1105 | version "1.3.4" 1106 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" 1107 | dependencies: 1108 | circular-json "^0.3.1" 1109 | graceful-fs "^4.1.2" 1110 | rimraf "~2.6.2" 1111 | write "^0.2.1" 1112 | 1113 | form-data@^2.3.1: 1114 | version "2.3.3" 1115 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" 1116 | dependencies: 1117 | asynckit "^0.4.0" 1118 | combined-stream "^1.0.6" 1119 | mime-types "^2.1.12" 1120 | 1121 | formidable@^1.2.0: 1122 | version "1.2.1" 1123 | resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz#70fb7ca0290ee6ff961090415f4b3df3d2082659" 1124 | 1125 | forwarded@~0.1.2: 1126 | version "0.1.2" 1127 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 1128 | 1129 | fresh@0.5.2: 1130 | version "0.5.2" 1131 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 1132 | 1133 | fs-extra@^7.0.1: 1134 | version "7.0.1" 1135 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" 1136 | dependencies: 1137 | graceful-fs "^4.1.2" 1138 | jsonfile "^4.0.0" 1139 | universalify "^0.1.0" 1140 | 1141 | fs-minipass@^1.2.5: 1142 | version "1.2.5" 1143 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" 1144 | dependencies: 1145 | minipass "^2.2.1" 1146 | 1147 | fs.realpath@^1.0.0: 1148 | version "1.0.0" 1149 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1150 | 1151 | fsevents@~2.1.2: 1152 | version "2.1.2" 1153 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" 1154 | 1155 | function-bind@^1.1.1: 1156 | version "1.1.1" 1157 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1158 | 1159 | functional-red-black-tree@^1.0.1: 1160 | version "1.0.1" 1161 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 1162 | 1163 | gauge@~2.7.3: 1164 | version "2.7.4" 1165 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1166 | dependencies: 1167 | aproba "^1.0.3" 1168 | console-control-strings "^1.0.0" 1169 | has-unicode "^2.0.0" 1170 | object-assign "^4.1.0" 1171 | signal-exit "^3.0.0" 1172 | string-width "^1.0.1" 1173 | strip-ansi "^3.0.1" 1174 | wide-align "^1.1.0" 1175 | 1176 | generate-function@^2.3.1: 1177 | version "2.3.1" 1178 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" 1179 | dependencies: 1180 | is-property "^1.0.2" 1181 | 1182 | get-caller-file@^2.0.1: 1183 | version "2.0.5" 1184 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 1185 | 1186 | get-stdin@^5.0.1: 1187 | version "5.0.1" 1188 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" 1189 | 1190 | get-stream@^3.0.0: 1191 | version "3.0.0" 1192 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 1193 | 1194 | glob-parent@~5.1.0: 1195 | version "5.1.0" 1196 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" 1197 | dependencies: 1198 | is-glob "^4.0.1" 1199 | 1200 | glob@^7.1.2, glob@^7.1.3: 1201 | version "7.1.3" 1202 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" 1203 | dependencies: 1204 | fs.realpath "^1.0.0" 1205 | inflight "^1.0.4" 1206 | inherits "2" 1207 | minimatch "^3.0.4" 1208 | once "^1.3.0" 1209 | path-is-absolute "^1.0.0" 1210 | 1211 | global-dirs@^0.1.0: 1212 | version "0.1.1" 1213 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" 1214 | dependencies: 1215 | ini "^1.3.4" 1216 | 1217 | globals@^11.0.1, globals@^11.7.0: 1218 | version "11.11.0" 1219 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.11.0.tgz#dcf93757fa2de5486fbeed7118538adf789e9c2e" 1220 | 1221 | got@^6.7.1: 1222 | version "6.7.1" 1223 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" 1224 | dependencies: 1225 | create-error-class "^3.0.0" 1226 | duplexer3 "^0.1.4" 1227 | get-stream "^3.0.0" 1228 | is-redirect "^1.0.0" 1229 | is-retry-allowed "^1.0.0" 1230 | is-stream "^1.0.0" 1231 | lowercase-keys "^1.0.0" 1232 | safe-buffer "^5.0.1" 1233 | timed-out "^4.0.0" 1234 | unzip-response "^2.0.1" 1235 | url-parse-lax "^1.0.0" 1236 | 1237 | graceful-fs@^4.1.11: 1238 | version "4.2.3" 1239 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" 1240 | 1241 | graceful-fs@^4.1.2, graceful-fs@^4.1.6: 1242 | version "4.1.15" 1243 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" 1244 | 1245 | handlebars@4.x.x: 1246 | version "4.1.2" 1247 | resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" 1248 | dependencies: 1249 | neo-async "^2.6.0" 1250 | optimist "^0.6.1" 1251 | source-map "^0.6.1" 1252 | optionalDependencies: 1253 | uglify-js "^3.1.4" 1254 | 1255 | handlebars@^4.7.3: 1256 | version "4.7.3" 1257 | resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.3.tgz#8ece2797826886cf8082d1726ff21d2a022550ee" 1258 | dependencies: 1259 | neo-async "^2.6.0" 1260 | optimist "^0.6.1" 1261 | source-map "^0.6.1" 1262 | optionalDependencies: 1263 | uglify-js "^3.1.4" 1264 | 1265 | hapi-capitalize-modules@1.x.x: 1266 | version "1.1.6" 1267 | resolved "https://registry.yarnpkg.com/hapi-capitalize-modules/-/hapi-capitalize-modules-1.1.6.tgz#7991171415e15e6aa3231e64dda73c8146665318" 1268 | 1269 | hapi-for-you@1.x.x: 1270 | version "1.0.0" 1271 | resolved "https://registry.yarnpkg.com/hapi-for-you/-/hapi-for-you-1.0.0.tgz#d362fbee8d7bda9c2c7801e207e5a5cd1a0b6a7b" 1272 | 1273 | hapi-no-var@1.x.x: 1274 | version "1.0.1" 1275 | resolved "https://registry.yarnpkg.com/hapi-no-var/-/hapi-no-var-1.0.1.tgz#e9d87fd4de6149104a3fca797ef5c2ef5c182342" 1276 | 1277 | hapi-scope-start@2.x.x: 1278 | version "2.1.1" 1279 | resolved "https://registry.yarnpkg.com/hapi-scope-start/-/hapi-scope-start-2.1.1.tgz#7495a726fe72b7bca8de2cdcc1d87cd8ce6ab4f2" 1280 | 1281 | has-ansi@^2.0.0: 1282 | version "2.0.0" 1283 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 1284 | dependencies: 1285 | ansi-regex "^2.0.0" 1286 | 1287 | has-flag@^2.0.0: 1288 | version "2.0.0" 1289 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 1290 | 1291 | has-flag@^3.0.0: 1292 | version "3.0.0" 1293 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1294 | 1295 | has-symbols@^1.0.0: 1296 | version "1.0.0" 1297 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" 1298 | 1299 | has-unicode@^2.0.0: 1300 | version "2.0.1" 1301 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1302 | 1303 | has@^1.0.1, has@^1.0.3: 1304 | version "1.0.3" 1305 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1306 | dependencies: 1307 | function-bind "^1.1.1" 1308 | 1309 | hoek@6.x.x: 1310 | version "6.1.3" 1311 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" 1312 | 1313 | hosted-git-info@^2.1.4: 1314 | version "2.7.1" 1315 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" 1316 | 1317 | http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: 1318 | version "1.6.3" 1319 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 1320 | dependencies: 1321 | depd "~1.1.2" 1322 | inherits "2.0.3" 1323 | setprototypeof "1.1.0" 1324 | statuses ">= 1.4.0 < 2" 1325 | 1326 | iconv-lite@0.4.23: 1327 | version "0.4.23" 1328 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 1329 | dependencies: 1330 | safer-buffer ">= 2.1.2 < 3" 1331 | 1332 | iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4: 1333 | version "0.4.24" 1334 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1335 | dependencies: 1336 | safer-buffer ">= 2.1.2 < 3" 1337 | 1338 | iconv-lite@^0.5.0: 1339 | version "0.5.1" 1340 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.1.tgz#b2425d3c7b18f7219f2ca663d103bddb91718d64" 1341 | dependencies: 1342 | safer-buffer ">= 2.1.2 < 3" 1343 | 1344 | ignore-by-default@^1.0.1: 1345 | version "1.0.1" 1346 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 1347 | 1348 | ignore-walk@^3.0.1: 1349 | version "3.0.1" 1350 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" 1351 | dependencies: 1352 | minimatch "^3.0.4" 1353 | 1354 | ignore@^3.3.3: 1355 | version "3.3.10" 1356 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" 1357 | 1358 | ignore@^4.0.6: 1359 | version "4.0.6" 1360 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 1361 | 1362 | import-lazy@^2.1.0: 1363 | version "2.1.0" 1364 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 1365 | 1366 | imurmurhash@^0.1.4: 1367 | version "0.1.4" 1368 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1369 | 1370 | inflection@1.12.0: 1371 | version "1.12.0" 1372 | resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416" 1373 | 1374 | inflight@^1.0.4: 1375 | version "1.0.6" 1376 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1377 | dependencies: 1378 | once "^1.3.0" 1379 | wrappy "1" 1380 | 1381 | inherits@2, inherits@2.0.3, inherits@^2.0.3, inherits@~2.0.3: 1382 | version "2.0.3" 1383 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1384 | 1385 | ini@^1.3.4, ini@~1.3.0: 1386 | version "1.3.5" 1387 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 1388 | 1389 | inquirer@^3.0.6: 1390 | version "3.3.0" 1391 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" 1392 | dependencies: 1393 | ansi-escapes "^3.0.0" 1394 | chalk "^2.0.0" 1395 | cli-cursor "^2.1.0" 1396 | cli-width "^2.0.0" 1397 | external-editor "^2.0.4" 1398 | figures "^2.0.0" 1399 | lodash "^4.3.0" 1400 | mute-stream "0.0.7" 1401 | run-async "^2.2.0" 1402 | rx-lite "^4.0.8" 1403 | rx-lite-aggregates "^4.0.8" 1404 | string-width "^2.1.0" 1405 | strip-ansi "^4.0.0" 1406 | through "^2.3.6" 1407 | 1408 | inquirer@^6.1.0: 1409 | version "6.2.2" 1410 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406" 1411 | dependencies: 1412 | ansi-escapes "^3.2.0" 1413 | chalk "^2.4.2" 1414 | cli-cursor "^2.1.0" 1415 | cli-width "^2.0.0" 1416 | external-editor "^3.0.3" 1417 | figures "^2.0.0" 1418 | lodash "^4.17.11" 1419 | mute-stream "0.0.7" 1420 | run-async "^2.2.0" 1421 | rxjs "^6.4.0" 1422 | string-width "^2.1.0" 1423 | strip-ansi "^5.0.0" 1424 | through "^2.3.6" 1425 | 1426 | ipaddr.js@1.8.0: 1427 | version "1.8.0" 1428 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" 1429 | 1430 | is-arrayish@^0.2.1: 1431 | version "0.2.1" 1432 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1433 | 1434 | is-binary-path@~2.1.0: 1435 | version "2.1.0" 1436 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 1437 | dependencies: 1438 | binary-extensions "^2.0.0" 1439 | 1440 | is-bluebird@^1.0.2: 1441 | version "1.0.2" 1442 | resolved "https://registry.yarnpkg.com/is-bluebird/-/is-bluebird-1.0.2.tgz#096439060f4aa411abee19143a84d6a55346d6e2" 1443 | 1444 | is-callable@^1.1.4: 1445 | version "1.1.4" 1446 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" 1447 | 1448 | is-ci@^1.0.10: 1449 | version "1.2.1" 1450 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" 1451 | dependencies: 1452 | ci-info "^1.5.0" 1453 | 1454 | is-date-object@^1.0.1: 1455 | version "1.0.1" 1456 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 1457 | 1458 | is-extglob@^2.1.1: 1459 | version "2.1.1" 1460 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1461 | 1462 | is-fullwidth-code-point@^1.0.0: 1463 | version "1.0.0" 1464 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1465 | dependencies: 1466 | number-is-nan "^1.0.0" 1467 | 1468 | is-fullwidth-code-point@^2.0.0: 1469 | version "2.0.0" 1470 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1471 | 1472 | is-glob@^4.0.1, is-glob@~4.0.1: 1473 | version "4.0.1" 1474 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 1475 | dependencies: 1476 | is-extglob "^2.1.1" 1477 | 1478 | is-installed-globally@^0.1.0: 1479 | version "0.1.0" 1480 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" 1481 | dependencies: 1482 | global-dirs "^0.1.0" 1483 | is-path-inside "^1.0.0" 1484 | 1485 | is-npm@^1.0.0: 1486 | version "1.0.0" 1487 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 1488 | 1489 | is-number@^7.0.0: 1490 | version "7.0.0" 1491 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1492 | 1493 | is-obj@^1.0.0: 1494 | version "1.0.1" 1495 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 1496 | 1497 | is-path-inside@^1.0.0: 1498 | version "1.0.1" 1499 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 1500 | dependencies: 1501 | path-is-inside "^1.0.1" 1502 | 1503 | is-promise@^2.1, is-promise@^2.1.0: 1504 | version "2.1.0" 1505 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 1506 | 1507 | is-property@^1.0.2: 1508 | version "1.0.2" 1509 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" 1510 | 1511 | is-redirect@^1.0.0: 1512 | version "1.0.0" 1513 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 1514 | 1515 | is-regex@^1.0.4: 1516 | version "1.0.4" 1517 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 1518 | dependencies: 1519 | has "^1.0.1" 1520 | 1521 | is-resolvable@^1.0.0, is-resolvable@^1.1.0: 1522 | version "1.1.0" 1523 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" 1524 | 1525 | is-retry-allowed@^1.0.0: 1526 | version "1.2.0" 1527 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" 1528 | 1529 | is-stream@^1.0.0, is-stream@^1.1.0: 1530 | version "1.1.0" 1531 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1532 | 1533 | is-symbol@^1.0.2: 1534 | version "1.0.2" 1535 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" 1536 | dependencies: 1537 | has-symbols "^1.0.0" 1538 | 1539 | isarray@^1.0.0, isarray@~1.0.0: 1540 | version "1.0.0" 1541 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1542 | 1543 | isemail@3.x.x: 1544 | version "3.2.0" 1545 | resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c" 1546 | dependencies: 1547 | punycode "2.x.x" 1548 | 1549 | isexe@^2.0.0: 1550 | version "2.0.0" 1551 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1552 | 1553 | jest-docblock@^21.0.0: 1554 | version "21.2.0" 1555 | resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" 1556 | 1557 | joi@14.x.x, joi@^14.3.1: 1558 | version "14.3.1" 1559 | resolved "https://registry.yarnpkg.com/joi/-/joi-14.3.1.tgz#164a262ec0b855466e0c35eea2a885ae8b6c703c" 1560 | dependencies: 1561 | hoek "6.x.x" 1562 | isemail "3.x.x" 1563 | topo "3.x.x" 1564 | 1565 | js-beautify@^1.8.8: 1566 | version "1.9.1" 1567 | resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.9.1.tgz#6f9ef915f5d8d92b9f907606fce63795884c8040" 1568 | dependencies: 1569 | config-chain "^1.1.12" 1570 | editorconfig "^0.15.2" 1571 | glob "^7.1.3" 1572 | mkdirp "~0.5.0" 1573 | nopt "~4.0.1" 1574 | 1575 | js-tokens@^3.0.2: 1576 | version "3.0.2" 1577 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 1578 | 1579 | js-tokens@^4.0.0: 1580 | version "4.0.0" 1581 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1582 | 1583 | js-yaml@^3.12.0, js-yaml@^3.9.1: 1584 | version "3.13.1" 1585 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" 1586 | dependencies: 1587 | argparse "^1.0.7" 1588 | esprima "^4.0.0" 1589 | 1590 | json-schema-traverse@^0.3.0: 1591 | version "0.3.1" 1592 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 1593 | 1594 | json-schema-traverse@^0.4.1: 1595 | version "0.4.1" 1596 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1597 | 1598 | json-stable-stringify-without-jsonify@^1.0.1: 1599 | version "1.0.1" 1600 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1601 | 1602 | json-stable-stringify@1.x.x: 1603 | version "1.0.1" 1604 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 1605 | dependencies: 1606 | jsonify "~0.0.0" 1607 | 1608 | json-stringify-safe@5.x.x: 1609 | version "5.0.1" 1610 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 1611 | 1612 | jsonfile@^4.0.0: 1613 | version "4.0.0" 1614 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 1615 | optionalDependencies: 1616 | graceful-fs "^4.1.6" 1617 | 1618 | jsonify@~0.0.0: 1619 | version "0.0.0" 1620 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 1621 | 1622 | jsonwebtoken@^8.1.0, jsonwebtoken@^8.4.0: 1623 | version "8.5.1" 1624 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" 1625 | dependencies: 1626 | jws "^3.2.2" 1627 | lodash.includes "^4.3.0" 1628 | lodash.isboolean "^3.0.3" 1629 | lodash.isinteger "^4.0.4" 1630 | lodash.isnumber "^3.0.3" 1631 | lodash.isplainobject "^4.0.6" 1632 | lodash.isstring "^4.0.1" 1633 | lodash.once "^4.0.0" 1634 | ms "^2.1.1" 1635 | semver "^5.6.0" 1636 | 1637 | jwa@^1.4.1: 1638 | version "1.4.1" 1639 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" 1640 | dependencies: 1641 | buffer-equal-constant-time "1.0.1" 1642 | ecdsa-sig-formatter "1.0.11" 1643 | safe-buffer "^5.0.1" 1644 | 1645 | jws@^3.2.2: 1646 | version "3.2.2" 1647 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" 1648 | dependencies: 1649 | jwa "^1.4.1" 1650 | safe-buffer "^5.0.1" 1651 | 1652 | lab@^17.3.0: 1653 | version "17.3.0" 1654 | resolved "https://registry.yarnpkg.com/lab/-/lab-17.3.0.tgz#b2ccee2ca673e5474eeb8e1ecd366296f3736946" 1655 | dependencies: 1656 | bossy "4.x.x" 1657 | diff "3.5.x" 1658 | eslint "5.8.x" 1659 | eslint-config-hapi "12.x.x" 1660 | eslint-plugin-hapi "4.x.x" 1661 | espree "4.1.x" 1662 | find-rc "3.0.x" 1663 | handlebars "4.x.x" 1664 | hoek "6.x.x" 1665 | json-stable-stringify "1.x.x" 1666 | json-stringify-safe "5.x.x" 1667 | mkdirp "0.5.x" 1668 | seedrandom "2.4.x" 1669 | source-map "0.7.x" 1670 | source-map-support "0.5.x" 1671 | supports-color "4.4.x" 1672 | will-call "1.x.x" 1673 | 1674 | latest-version@^3.0.0: 1675 | version "3.1.0" 1676 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" 1677 | dependencies: 1678 | package-json "^4.0.0" 1679 | 1680 | levn@^0.3.0, levn@~0.3.0: 1681 | version "0.3.0" 1682 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 1683 | dependencies: 1684 | prelude-ls "~1.1.2" 1685 | type-check "~0.3.2" 1686 | 1687 | load-json-file@^2.0.0: 1688 | version "2.0.0" 1689 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 1690 | dependencies: 1691 | graceful-fs "^4.1.2" 1692 | parse-json "^2.2.0" 1693 | pify "^2.0.0" 1694 | strip-bom "^3.0.0" 1695 | 1696 | locate-path@^2.0.0: 1697 | version "2.0.0" 1698 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1699 | dependencies: 1700 | p-locate "^2.0.0" 1701 | path-exists "^3.0.0" 1702 | 1703 | locate-path@^3.0.0: 1704 | version "3.0.0" 1705 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 1706 | dependencies: 1707 | p-locate "^3.0.0" 1708 | path-exists "^3.0.0" 1709 | 1710 | lodash.includes@^4.3.0: 1711 | version "4.3.0" 1712 | resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" 1713 | 1714 | lodash.isboolean@^3.0.3: 1715 | version "3.0.3" 1716 | resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" 1717 | 1718 | lodash.isinteger@^4.0.4: 1719 | version "4.0.4" 1720 | resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" 1721 | 1722 | lodash.isnumber@^3.0.3: 1723 | version "3.0.3" 1724 | resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" 1725 | 1726 | lodash.isplainobject@^4.0.6: 1727 | version "4.0.6" 1728 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 1729 | 1730 | lodash.isstring@^4.0.1: 1731 | version "4.0.1" 1732 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 1733 | 1734 | lodash.once@^4.0.0: 1735 | version "4.1.1" 1736 | resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" 1737 | 1738 | lodash.set@^4.0.0: 1739 | version "4.3.2" 1740 | resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" 1741 | 1742 | lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: 1743 | version "4.17.15" 1744 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" 1745 | 1746 | long@^4.0.0: 1747 | version "4.0.0" 1748 | resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" 1749 | 1750 | lowercase-keys@^1.0.0: 1751 | version "1.0.1" 1752 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 1753 | 1754 | lru-cache@^4.0.1, lru-cache@^4.1.3, lru-cache@^4.1.5: 1755 | version "4.1.5" 1756 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" 1757 | dependencies: 1758 | pseudomap "^1.0.2" 1759 | yallist "^2.1.2" 1760 | 1761 | lru-cache@^5.1.1: 1762 | version "5.1.1" 1763 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 1764 | dependencies: 1765 | yallist "^3.0.2" 1766 | 1767 | lru-queue@0.1: 1768 | version "0.1.0" 1769 | resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" 1770 | dependencies: 1771 | es5-ext "~0.10.2" 1772 | 1773 | make-dir@^1.0.0: 1774 | version "1.3.0" 1775 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" 1776 | dependencies: 1777 | pify "^3.0.0" 1778 | 1779 | media-typer@0.3.0: 1780 | version "0.3.0" 1781 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1782 | 1783 | memoizee@^0.4.14: 1784 | version "0.4.14" 1785 | resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" 1786 | dependencies: 1787 | d "1" 1788 | es5-ext "^0.10.45" 1789 | es6-weak-map "^2.0.2" 1790 | event-emitter "^0.3.5" 1791 | is-promise "^2.1" 1792 | lru-queue "0.1" 1793 | next-tick "1" 1794 | timers-ext "^0.1.5" 1795 | 1796 | merge-descriptors@1.0.1: 1797 | version "1.0.1" 1798 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 1799 | 1800 | methods@^1.1.1, methods@^1.1.2, methods@~1.1.2: 1801 | version "1.1.2" 1802 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1803 | 1804 | mime-db@~1.38.0: 1805 | version "1.38.0" 1806 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad" 1807 | 1808 | mime-types@^2.1.12, mime-types@~2.1.18: 1809 | version "2.1.22" 1810 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd" 1811 | dependencies: 1812 | mime-db "~1.38.0" 1813 | 1814 | mime@1.4.1: 1815 | version "1.4.1" 1816 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 1817 | 1818 | mime@^1.4.1: 1819 | version "1.6.0" 1820 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 1821 | 1822 | mimic-fn@^1.0.0: 1823 | version "1.2.0" 1824 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 1825 | 1826 | minimatch@^3.0.2, minimatch@^3.0.4: 1827 | version "3.0.4" 1828 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1829 | dependencies: 1830 | brace-expansion "^1.1.7" 1831 | 1832 | minimist@0.0.8: 1833 | version "0.0.8" 1834 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1835 | 1836 | minimist@^1.2.0: 1837 | version "1.2.0" 1838 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1839 | 1840 | minimist@~0.0.1: 1841 | version "0.0.10" 1842 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" 1843 | 1844 | minipass@^2.2.1: 1845 | version "2.3.5" 1846 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" 1847 | dependencies: 1848 | safe-buffer "^5.1.2" 1849 | yallist "^3.0.0" 1850 | 1851 | minipass@^2.8.6, minipass@^2.9.0: 1852 | version "2.9.0" 1853 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" 1854 | dependencies: 1855 | safe-buffer "^5.1.2" 1856 | yallist "^3.0.0" 1857 | 1858 | minizlib@^1.2.1: 1859 | version "1.3.3" 1860 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" 1861 | dependencies: 1862 | minipass "^2.9.0" 1863 | 1864 | mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: 1865 | version "0.5.1" 1866 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1867 | dependencies: 1868 | minimist "0.0.8" 1869 | 1870 | moment-timezone@^0.5.21: 1871 | version "0.5.23" 1872 | resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.23.tgz#7cbb00db2c14c71b19303cb47b0fb0a6d8651463" 1873 | dependencies: 1874 | moment ">= 2.9.0" 1875 | 1876 | "moment@>= 2.9.0", moment@^2.24.0: 1877 | version "2.24.0" 1878 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" 1879 | 1880 | ms@2.0.0: 1881 | version "2.0.0" 1882 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1883 | 1884 | ms@^2.1.1: 1885 | version "2.1.1" 1886 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 1887 | 1888 | mute-stream@0.0.7: 1889 | version "0.0.7" 1890 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 1891 | 1892 | mysql2@^2.1.0: 1893 | version "2.1.0" 1894 | resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-2.1.0.tgz#55ecfd4353114c148cc4c253192dbbfd000e6642" 1895 | dependencies: 1896 | cardinal "^2.1.1" 1897 | denque "^1.4.1" 1898 | generate-function "^2.3.1" 1899 | iconv-lite "^0.5.0" 1900 | long "^4.0.0" 1901 | lru-cache "^5.1.1" 1902 | named-placeholders "^1.1.2" 1903 | seq-queue "^0.0.5" 1904 | sqlstring "^2.3.1" 1905 | 1906 | named-placeholders@^1.1.2: 1907 | version "1.1.2" 1908 | resolved "https://registry.yarnpkg.com/named-placeholders/-/named-placeholders-1.1.2.tgz#ceb1fbff50b6b33492b5cf214ccf5e39cef3d0e8" 1909 | dependencies: 1910 | lru-cache "^4.1.3" 1911 | 1912 | nan@2.14.0: 1913 | version "2.14.0" 1914 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" 1915 | 1916 | natural-compare@^1.4.0: 1917 | version "1.4.0" 1918 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1919 | 1920 | needle@^2.2.1: 1921 | version "2.3.0" 1922 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.0.tgz#ce3fea21197267bacb310705a7bbe24f2a3a3492" 1923 | dependencies: 1924 | debug "^4.1.0" 1925 | iconv-lite "^0.4.4" 1926 | sax "^1.2.4" 1927 | 1928 | negotiator@0.6.1: 1929 | version "0.6.1" 1930 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 1931 | 1932 | neo-async@^2.6.0: 1933 | version "2.6.0" 1934 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" 1935 | 1936 | next-tick@1, next-tick@^1.0.0: 1937 | version "1.0.0" 1938 | resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" 1939 | 1940 | nice-try@^1.0.4: 1941 | version "1.0.5" 1942 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 1943 | 1944 | no-arrowception@1.x.x: 1945 | version "1.0.0" 1946 | resolved "https://registry.yarnpkg.com/no-arrowception/-/no-arrowception-1.0.0.tgz#5bf3e95eb9c41b57384a805333daa3b734ee327a" 1947 | 1948 | node-pre-gyp@0.14.0: 1949 | version "0.14.0" 1950 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" 1951 | dependencies: 1952 | detect-libc "^1.0.2" 1953 | mkdirp "^0.5.1" 1954 | needle "^2.2.1" 1955 | nopt "^4.0.1" 1956 | npm-packlist "^1.1.6" 1957 | npmlog "^4.0.2" 1958 | rc "^1.2.7" 1959 | rimraf "^2.6.1" 1960 | semver "^5.3.0" 1961 | tar "^4.4.2" 1962 | 1963 | nodemailer@^6.4.2: 1964 | version "6.4.2" 1965 | resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.4.2.tgz#7147550e32cdc37453380ab78d2074533966090a" 1966 | 1967 | nodemon@^2.0.2: 1968 | version "2.0.2" 1969 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.2.tgz#9c7efeaaf9b8259295a97e5d4585ba8f0cbe50b0" 1970 | dependencies: 1971 | chokidar "^3.2.2" 1972 | debug "^3.2.6" 1973 | ignore-by-default "^1.0.1" 1974 | minimatch "^3.0.4" 1975 | pstree.remy "^1.1.7" 1976 | semver "^5.7.1" 1977 | supports-color "^5.5.0" 1978 | touch "^3.1.0" 1979 | undefsafe "^2.0.2" 1980 | update-notifier "^2.5.0" 1981 | 1982 | nopt@^4.0.1, nopt@~4.0.1: 1983 | version "4.0.1" 1984 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 1985 | dependencies: 1986 | abbrev "1" 1987 | osenv "^0.1.4" 1988 | 1989 | nopt@~1.0.10: 1990 | version "1.0.10" 1991 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 1992 | dependencies: 1993 | abbrev "1" 1994 | 1995 | normalize-package-data@^2.3.2: 1996 | version "2.5.0" 1997 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 1998 | dependencies: 1999 | hosted-git-info "^2.1.4" 2000 | resolve "^1.10.0" 2001 | semver "2 || 3 || 4 || 5" 2002 | validate-npm-package-license "^3.0.1" 2003 | 2004 | normalize-path@^3.0.0, normalize-path@~3.0.0: 2005 | version "3.0.0" 2006 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 2007 | 2008 | npm-bundled@^1.0.1: 2009 | version "1.0.6" 2010 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" 2011 | 2012 | npm-packlist@^1.1.6: 2013 | version "1.4.1" 2014 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" 2015 | dependencies: 2016 | ignore-walk "^3.0.1" 2017 | npm-bundled "^1.0.1" 2018 | 2019 | npm-run-path@^2.0.0: 2020 | version "2.0.2" 2021 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 2022 | dependencies: 2023 | path-key "^2.0.0" 2024 | 2025 | npmlog@^4.0.2: 2026 | version "4.1.2" 2027 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 2028 | dependencies: 2029 | are-we-there-yet "~1.1.2" 2030 | console-control-strings "~1.1.0" 2031 | gauge "~2.7.3" 2032 | set-blocking "~2.0.0" 2033 | 2034 | number-is-nan@^1.0.0: 2035 | version "1.0.1" 2036 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2037 | 2038 | object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0: 2039 | version "4.1.1" 2040 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2041 | 2042 | object-keys@^1.0.12: 2043 | version "1.1.1" 2044 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 2045 | 2046 | on-finished@~2.3.0: 2047 | version "2.3.0" 2048 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 2049 | dependencies: 2050 | ee-first "1.1.1" 2051 | 2052 | on-headers@~1.0.2: 2053 | version "1.0.2" 2054 | resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" 2055 | 2056 | once@^1.3.0: 2057 | version "1.4.0" 2058 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2059 | dependencies: 2060 | wrappy "1" 2061 | 2062 | onetime@^2.0.0: 2063 | version "2.0.1" 2064 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 2065 | dependencies: 2066 | mimic-fn "^1.0.0" 2067 | 2068 | optimist@^0.6.1: 2069 | version "0.6.1" 2070 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" 2071 | dependencies: 2072 | minimist "~0.0.1" 2073 | wordwrap "~0.0.2" 2074 | 2075 | optionator@^0.8.2: 2076 | version "0.8.2" 2077 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 2078 | dependencies: 2079 | deep-is "~0.1.3" 2080 | fast-levenshtein "~2.0.4" 2081 | levn "~0.3.0" 2082 | prelude-ls "~1.1.2" 2083 | type-check "~0.3.2" 2084 | wordwrap "~1.0.0" 2085 | 2086 | os-homedir@^1.0.0: 2087 | version "1.0.2" 2088 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2089 | 2090 | os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: 2091 | version "1.0.2" 2092 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2093 | 2094 | osenv@^0.1.4: 2095 | version "0.1.5" 2096 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 2097 | dependencies: 2098 | os-homedir "^1.0.0" 2099 | os-tmpdir "^1.0.0" 2100 | 2101 | p-finally@^1.0.0: 2102 | version "1.0.0" 2103 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 2104 | 2105 | p-limit@^1.1.0: 2106 | version "1.3.0" 2107 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 2108 | dependencies: 2109 | p-try "^1.0.0" 2110 | 2111 | p-limit@^2.0.0: 2112 | version "2.2.0" 2113 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" 2114 | dependencies: 2115 | p-try "^2.0.0" 2116 | 2117 | p-locate@^2.0.0: 2118 | version "2.0.0" 2119 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 2120 | dependencies: 2121 | p-limit "^1.1.0" 2122 | 2123 | p-locate@^3.0.0: 2124 | version "3.0.0" 2125 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 2126 | dependencies: 2127 | p-limit "^2.0.0" 2128 | 2129 | p-try@^1.0.0: 2130 | version "1.0.0" 2131 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 2132 | 2133 | p-try@^2.0.0: 2134 | version "2.2.0" 2135 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 2136 | 2137 | package-json@^4.0.0: 2138 | version "4.0.1" 2139 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" 2140 | dependencies: 2141 | got "^6.7.1" 2142 | registry-auth-token "^3.0.1" 2143 | registry-url "^3.0.3" 2144 | semver "^5.1.0" 2145 | 2146 | parse-json@^2.2.0: 2147 | version "2.2.0" 2148 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 2149 | dependencies: 2150 | error-ex "^1.2.0" 2151 | 2152 | parseurl@~1.3.2: 2153 | version "1.3.2" 2154 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 2155 | 2156 | passport-local@^1.0.0: 2157 | version "1.0.0" 2158 | resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee" 2159 | dependencies: 2160 | passport-strategy "1.x.x" 2161 | 2162 | passport-strategy@1.x.x: 2163 | version "1.0.0" 2164 | resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" 2165 | 2166 | passport@^0.4.0: 2167 | version "0.4.0" 2168 | resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.0.tgz#c5095691347bd5ad3b5e180238c3914d16f05811" 2169 | dependencies: 2170 | passport-strategy "1.x.x" 2171 | pause "0.0.1" 2172 | 2173 | path-exists@^3.0.0: 2174 | version "3.0.0" 2175 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2176 | 2177 | path-is-absolute@^1.0.0: 2178 | version "1.0.1" 2179 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2180 | 2181 | path-is-inside@^1.0.1, path-is-inside@^1.0.2: 2182 | version "1.0.2" 2183 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 2184 | 2185 | path-key@^2.0.0, path-key@^2.0.1: 2186 | version "2.0.1" 2187 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 2188 | 2189 | path-parse@^1.0.6: 2190 | version "1.0.6" 2191 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 2192 | 2193 | path-to-regexp@0.1.7: 2194 | version "0.1.7" 2195 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 2196 | 2197 | path-type@^2.0.0: 2198 | version "2.0.0" 2199 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 2200 | dependencies: 2201 | pify "^2.0.0" 2202 | 2203 | pause@0.0.1: 2204 | version "0.0.1" 2205 | resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" 2206 | 2207 | picomatch@^2.0.4, picomatch@^2.0.7: 2208 | version "2.2.1" 2209 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a" 2210 | 2211 | pify@^2.0.0: 2212 | version "2.3.0" 2213 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 2214 | 2215 | pify@^3.0.0: 2216 | version "3.0.0" 2217 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 2218 | 2219 | pkg-dir@^2.0.0: 2220 | version "2.0.0" 2221 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 2222 | dependencies: 2223 | find-up "^2.1.0" 2224 | 2225 | pluralize@^7.0.0: 2226 | version "7.0.0" 2227 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" 2228 | 2229 | prelude-ls@~1.1.2: 2230 | version "1.1.2" 2231 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 2232 | 2233 | prepend-http@^1.0.1: 2234 | version "1.0.4" 2235 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 2236 | 2237 | prettier@^1.16.1: 2238 | version "1.17.0" 2239 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.17.0.tgz#53b303676eed22cc14a9f0cec09b477b3026c008" 2240 | 2241 | process-nextick-args@~2.0.0: 2242 | version "2.0.0" 2243 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 2244 | 2245 | progress@^2.0.0: 2246 | version "2.0.3" 2247 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 2248 | 2249 | proto-list@~1.2.1: 2250 | version "1.2.4" 2251 | resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" 2252 | 2253 | proxy-addr@~2.0.4: 2254 | version "2.0.4" 2255 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" 2256 | dependencies: 2257 | forwarded "~0.1.2" 2258 | ipaddr.js "1.8.0" 2259 | 2260 | pseudomap@^1.0.2: 2261 | version "1.0.2" 2262 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 2263 | 2264 | pstree.remy@^1.1.7: 2265 | version "1.1.7" 2266 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.7.tgz#c76963a28047ed61542dc361aa26ee55a7fa15f3" 2267 | 2268 | punycode@2.x.x, punycode@^2.1.0: 2269 | version "2.1.1" 2270 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 2271 | 2272 | qs@6.5.2: 2273 | version "6.5.2" 2274 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 2275 | 2276 | qs@^6.5.1: 2277 | version "6.7.0" 2278 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" 2279 | 2280 | random-bytes@~1.0.0: 2281 | version "1.0.0" 2282 | resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" 2283 | 2284 | range-parser@~1.2.0: 2285 | version "1.2.0" 2286 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 2287 | 2288 | raw-body@2.3.3: 2289 | version "2.3.3" 2290 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" 2291 | dependencies: 2292 | bytes "3.0.0" 2293 | http-errors "1.6.3" 2294 | iconv-lite "0.4.23" 2295 | unpipe "1.0.0" 2296 | 2297 | rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: 2298 | version "1.2.8" 2299 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 2300 | dependencies: 2301 | deep-extend "^0.6.0" 2302 | ini "~1.3.0" 2303 | minimist "^1.2.0" 2304 | strip-json-comments "~2.0.1" 2305 | 2306 | read-pkg-up@^2.0.0: 2307 | version "2.0.0" 2308 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 2309 | dependencies: 2310 | find-up "^2.0.0" 2311 | read-pkg "^2.0.0" 2312 | 2313 | read-pkg@^2.0.0: 2314 | version "2.0.0" 2315 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 2316 | dependencies: 2317 | load-json-file "^2.0.0" 2318 | normalize-package-data "^2.3.2" 2319 | path-type "^2.0.0" 2320 | 2321 | readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5: 2322 | version "2.3.6" 2323 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 2324 | dependencies: 2325 | core-util-is "~1.0.0" 2326 | inherits "~2.0.3" 2327 | isarray "~1.0.0" 2328 | process-nextick-args "~2.0.0" 2329 | safe-buffer "~5.1.1" 2330 | string_decoder "~1.1.1" 2331 | util-deprecate "~1.0.1" 2332 | 2333 | readdirp@~3.3.0: 2334 | version "3.3.0" 2335 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17" 2336 | dependencies: 2337 | picomatch "^2.0.7" 2338 | 2339 | redeyed@~2.1.0: 2340 | version "2.1.1" 2341 | resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" 2342 | dependencies: 2343 | esprima "~4.0.0" 2344 | 2345 | regenerator-runtime@^0.11.0: 2346 | version "0.11.1" 2347 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 2348 | 2349 | regexpp@^1.0.1: 2350 | version "1.1.0" 2351 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" 2352 | 2353 | regexpp@^2.0.1: 2354 | version "2.0.1" 2355 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" 2356 | 2357 | registry-auth-token@^3.0.1: 2358 | version "3.4.0" 2359 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" 2360 | dependencies: 2361 | rc "^1.1.6" 2362 | safe-buffer "^5.0.1" 2363 | 2364 | registry-url@^3.0.3: 2365 | version "3.1.0" 2366 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 2367 | dependencies: 2368 | rc "^1.0.1" 2369 | 2370 | require-directory@^2.1.1: 2371 | version "2.1.1" 2372 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 2373 | 2374 | require-main-filename@^2.0.0: 2375 | version "2.0.0" 2376 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" 2377 | 2378 | require-uncached@^1.0.3: 2379 | version "1.0.3" 2380 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 2381 | dependencies: 2382 | caller-path "^0.1.0" 2383 | resolve-from "^1.0.0" 2384 | 2385 | resolve-from@^1.0.0: 2386 | version "1.0.1" 2387 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 2388 | 2389 | resolve@^1.10.0, resolve@^1.5.0: 2390 | version "1.10.0" 2391 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" 2392 | dependencies: 2393 | path-parse "^1.0.6" 2394 | 2395 | restore-cursor@^2.0.0: 2396 | version "2.0.0" 2397 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 2398 | dependencies: 2399 | onetime "^2.0.0" 2400 | signal-exit "^3.0.2" 2401 | 2402 | retry-as-promised@^3.1.0: 2403 | version "3.2.0" 2404 | resolved "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-3.2.0.tgz#769f63d536bec4783549db0777cb56dadd9d8543" 2405 | dependencies: 2406 | any-promise "^1.3.0" 2407 | 2408 | rimraf@^2.6.1, rimraf@~2.6.2: 2409 | version "2.6.3" 2410 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 2411 | dependencies: 2412 | glob "^7.1.3" 2413 | 2414 | run-async@^2.2.0: 2415 | version "2.3.0" 2416 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 2417 | dependencies: 2418 | is-promise "^2.1.0" 2419 | 2420 | rx-lite-aggregates@^4.0.8: 2421 | version "4.0.8" 2422 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" 2423 | dependencies: 2424 | rx-lite "*" 2425 | 2426 | rx-lite@*, rx-lite@^4.0.8: 2427 | version "4.0.8" 2428 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" 2429 | 2430 | rxjs@^6.4.0: 2431 | version "6.4.0" 2432 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" 2433 | dependencies: 2434 | tslib "^1.9.0" 2435 | 2436 | safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 2437 | version "5.1.2" 2438 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2439 | 2440 | "safer-buffer@>= 2.1.2 < 3": 2441 | version "2.1.2" 2442 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2443 | 2444 | sax@^1.2.4: 2445 | version "1.2.4" 2446 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 2447 | 2448 | seedrandom@2.4.x: 2449 | version "2.4.4" 2450 | resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.4.tgz#b25ea98632c73e45f58b77cfaa931678df01f9ba" 2451 | 2452 | semver-diff@^2.0.0: 2453 | version "2.1.0" 2454 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 2455 | dependencies: 2456 | semver "^5.0.3" 2457 | 2458 | "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1: 2459 | version "5.7.1" 2460 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 2461 | 2462 | semver@^6.1.1: 2463 | version "6.3.0" 2464 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 2465 | 2466 | send@0.16.2: 2467 | version "0.16.2" 2468 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" 2469 | dependencies: 2470 | debug "2.6.9" 2471 | depd "~1.1.2" 2472 | destroy "~1.0.4" 2473 | encodeurl "~1.0.2" 2474 | escape-html "~1.0.3" 2475 | etag "~1.8.1" 2476 | fresh "0.5.2" 2477 | http-errors "~1.6.2" 2478 | mime "1.4.1" 2479 | ms "2.0.0" 2480 | on-finished "~2.3.0" 2481 | range-parser "~1.2.0" 2482 | statuses "~1.4.0" 2483 | 2484 | seq-queue@^0.0.5: 2485 | version "0.0.5" 2486 | resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e" 2487 | 2488 | sequelize-cli@^5.5.1: 2489 | version "5.5.1" 2490 | resolved "https://registry.yarnpkg.com/sequelize-cli/-/sequelize-cli-5.5.1.tgz#0b9c2fc04d082cc8ae0a8fe270b96bb606152bab" 2491 | dependencies: 2492 | bluebird "^3.5.3" 2493 | cli-color "^1.4.0" 2494 | fs-extra "^7.0.1" 2495 | js-beautify "^1.8.8" 2496 | lodash "^4.17.5" 2497 | resolve "^1.5.0" 2498 | umzug "^2.1.0" 2499 | yargs "^13.1.0" 2500 | 2501 | sequelize-pool@^2.3.0: 2502 | version "2.3.0" 2503 | resolved "https://registry.yarnpkg.com/sequelize-pool/-/sequelize-pool-2.3.0.tgz#64f1fe8744228172c474f530604b6133be64993d" 2504 | 2505 | sequelize@^5.15.1: 2506 | version "5.15.1" 2507 | resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-5.15.1.tgz#f130ded17e74395ae7f5e265277c99577e895afb" 2508 | dependencies: 2509 | bluebird "^3.5.0" 2510 | cls-bluebird "^2.1.0" 2511 | debug "^4.1.1" 2512 | dottie "^2.0.0" 2513 | inflection "1.12.0" 2514 | lodash "^4.17.11" 2515 | moment "^2.24.0" 2516 | moment-timezone "^0.5.21" 2517 | retry-as-promised "^3.1.0" 2518 | semver "^6.1.1" 2519 | sequelize-pool "^2.3.0" 2520 | toposort-class "^1.0.1" 2521 | uuid "^3.2.1" 2522 | validator "^10.11.0" 2523 | wkx "^0.4.6" 2524 | 2525 | serve-static@1.13.2: 2526 | version "1.13.2" 2527 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" 2528 | dependencies: 2529 | encodeurl "~1.0.2" 2530 | escape-html "~1.0.3" 2531 | parseurl "~1.3.2" 2532 | send "0.16.2" 2533 | 2534 | set-blocking@^2.0.0, set-blocking@~2.0.0: 2535 | version "2.0.0" 2536 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2537 | 2538 | setprototypeof@1.1.0: 2539 | version "1.1.0" 2540 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 2541 | 2542 | shebang-command@^1.2.0: 2543 | version "1.2.0" 2544 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 2545 | dependencies: 2546 | shebang-regex "^1.0.0" 2547 | 2548 | shebang-regex@^1.0.0: 2549 | version "1.0.0" 2550 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 2551 | 2552 | shimmer@^1.1.0: 2553 | version "1.2.1" 2554 | resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" 2555 | 2556 | sigmund@^1.0.1: 2557 | version "1.0.1" 2558 | resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" 2559 | 2560 | signal-exit@^3.0.0, signal-exit@^3.0.2: 2561 | version "3.0.2" 2562 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 2563 | 2564 | slice-ansi@1.0.0: 2565 | version "1.0.0" 2566 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" 2567 | dependencies: 2568 | is-fullwidth-code-point "^2.0.0" 2569 | 2570 | slice-ansi@^2.1.0: 2571 | version "2.1.0" 2572 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" 2573 | dependencies: 2574 | ansi-styles "^3.2.0" 2575 | astral-regex "^1.0.0" 2576 | is-fullwidth-code-point "^2.0.0" 2577 | 2578 | source-map-support@0.5.x: 2579 | version "0.5.12" 2580 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" 2581 | dependencies: 2582 | buffer-from "^1.0.0" 2583 | source-map "^0.6.0" 2584 | 2585 | source-map@0.7.x: 2586 | version "0.7.3" 2587 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" 2588 | 2589 | source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: 2590 | version "0.6.1" 2591 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 2592 | 2593 | spdx-correct@^3.0.0: 2594 | version "3.1.0" 2595 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" 2596 | dependencies: 2597 | spdx-expression-parse "^3.0.0" 2598 | spdx-license-ids "^3.0.0" 2599 | 2600 | spdx-exceptions@^2.1.0: 2601 | version "2.2.0" 2602 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" 2603 | 2604 | spdx-expression-parse@^3.0.0: 2605 | version "3.0.0" 2606 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 2607 | dependencies: 2608 | spdx-exceptions "^2.1.0" 2609 | spdx-license-ids "^3.0.0" 2610 | 2611 | spdx-license-ids@^3.0.0: 2612 | version "3.0.4" 2613 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" 2614 | 2615 | sprintf-js@~1.0.2: 2616 | version "1.0.3" 2617 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2618 | 2619 | sqlstring@^2.3.1: 2620 | version "2.3.1" 2621 | resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.1.tgz#475393ff9e91479aea62dcaf0ca3d14983a7fb40" 2622 | 2623 | "statuses@>= 1.4.0 < 2": 2624 | version "1.5.0" 2625 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 2626 | 2627 | statuses@~1.4.0: 2628 | version "1.4.0" 2629 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" 2630 | 2631 | string-width@^1.0.1: 2632 | version "1.0.2" 2633 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 2634 | dependencies: 2635 | code-point-at "^1.0.0" 2636 | is-fullwidth-code-point "^1.0.0" 2637 | strip-ansi "^3.0.0" 2638 | 2639 | "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: 2640 | version "2.1.1" 2641 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 2642 | dependencies: 2643 | is-fullwidth-code-point "^2.0.0" 2644 | strip-ansi "^4.0.0" 2645 | 2646 | string-width@^3.0.0, string-width@^3.1.0: 2647 | version "3.1.0" 2648 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 2649 | dependencies: 2650 | emoji-regex "^7.0.1" 2651 | is-fullwidth-code-point "^2.0.0" 2652 | strip-ansi "^5.1.0" 2653 | 2654 | string_decoder@~1.1.1: 2655 | version "1.1.1" 2656 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 2657 | dependencies: 2658 | safe-buffer "~5.1.0" 2659 | 2660 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 2661 | version "3.0.1" 2662 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 2663 | dependencies: 2664 | ansi-regex "^2.0.0" 2665 | 2666 | strip-ansi@^4.0.0: 2667 | version "4.0.0" 2668 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 2669 | dependencies: 2670 | ansi-regex "^3.0.0" 2671 | 2672 | strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: 2673 | version "5.2.0" 2674 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 2675 | dependencies: 2676 | ansi-regex "^4.1.0" 2677 | 2678 | strip-bom@^3.0.0: 2679 | version "3.0.0" 2680 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 2681 | 2682 | strip-eof@^1.0.0: 2683 | version "1.0.0" 2684 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 2685 | 2686 | strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: 2687 | version "2.0.1" 2688 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 2689 | 2690 | superagent@^3.8.3: 2691 | version "3.8.3" 2692 | resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz#460ea0dbdb7d5b11bc4f78deba565f86a178e128" 2693 | dependencies: 2694 | component-emitter "^1.2.0" 2695 | cookiejar "^2.1.0" 2696 | debug "^3.1.0" 2697 | extend "^3.0.0" 2698 | form-data "^2.3.1" 2699 | formidable "^1.2.0" 2700 | methods "^1.1.1" 2701 | mime "^1.4.1" 2702 | qs "^6.5.1" 2703 | readable-stream "^2.3.5" 2704 | 2705 | supertest@^4.0.2: 2706 | version "4.0.2" 2707 | resolved "https://registry.yarnpkg.com/supertest/-/supertest-4.0.2.tgz#c2234dbdd6dc79b6f15b99c8d6577b90e4ce3f36" 2708 | dependencies: 2709 | methods "^1.1.2" 2710 | superagent "^3.8.3" 2711 | 2712 | supports-color@4.4.x: 2713 | version "4.4.0" 2714 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" 2715 | dependencies: 2716 | has-flag "^2.0.0" 2717 | 2718 | supports-color@^2.0.0: 2719 | version "2.0.0" 2720 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 2721 | 2722 | supports-color@^5.3.0, supports-color@^5.5.0: 2723 | version "5.5.0" 2724 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 2725 | dependencies: 2726 | has-flag "^3.0.0" 2727 | 2728 | table@4.0.2: 2729 | version "4.0.2" 2730 | resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" 2731 | dependencies: 2732 | ajv "^5.2.3" 2733 | ajv-keywords "^2.1.0" 2734 | chalk "^2.1.0" 2735 | lodash "^4.17.4" 2736 | slice-ansi "1.0.0" 2737 | string-width "^2.1.1" 2738 | 2739 | table@^5.0.2: 2740 | version "5.2.3" 2741 | resolved "https://registry.yarnpkg.com/table/-/table-5.2.3.tgz#cde0cc6eb06751c009efab27e8c820ca5b67b7f2" 2742 | dependencies: 2743 | ajv "^6.9.1" 2744 | lodash "^4.17.11" 2745 | slice-ansi "^2.1.0" 2746 | string-width "^3.0.0" 2747 | 2748 | tar@^4.4.2: 2749 | version "4.4.13" 2750 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" 2751 | dependencies: 2752 | chownr "^1.1.1" 2753 | fs-minipass "^1.2.5" 2754 | minipass "^2.8.6" 2755 | minizlib "^1.2.1" 2756 | mkdirp "^0.5.0" 2757 | safe-buffer "^5.1.2" 2758 | yallist "^3.0.3" 2759 | 2760 | term-size@^1.2.0: 2761 | version "1.2.0" 2762 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" 2763 | dependencies: 2764 | execa "^0.7.0" 2765 | 2766 | text-table@^0.2.0, text-table@~0.2.0: 2767 | version "0.2.0" 2768 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 2769 | 2770 | through@^2.3.6: 2771 | version "2.3.8" 2772 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 2773 | 2774 | timed-out@^4.0.0: 2775 | version "4.0.1" 2776 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 2777 | 2778 | timers-ext@^0.1.5: 2779 | version "0.1.7" 2780 | resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" 2781 | dependencies: 2782 | es5-ext "~0.10.46" 2783 | next-tick "1" 2784 | 2785 | tmp@^0.0.33: 2786 | version "0.0.33" 2787 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 2788 | dependencies: 2789 | os-tmpdir "~1.0.2" 2790 | 2791 | to-regex-range@^5.0.1: 2792 | version "5.0.1" 2793 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 2794 | dependencies: 2795 | is-number "^7.0.0" 2796 | 2797 | topo@3.x.x: 2798 | version "3.0.3" 2799 | resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.3.tgz#d5a67fb2e69307ebeeb08402ec2a2a6f5f7ad95c" 2800 | dependencies: 2801 | hoek "6.x.x" 2802 | 2803 | toposort-class@^1.0.1: 2804 | version "1.0.1" 2805 | resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988" 2806 | 2807 | touch@^3.1.0: 2808 | version "3.1.0" 2809 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 2810 | dependencies: 2811 | nopt "~1.0.10" 2812 | 2813 | tslib@^1.9.0: 2814 | version "1.9.3" 2815 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" 2816 | 2817 | type-check@~0.3.2: 2818 | version "0.3.2" 2819 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 2820 | dependencies: 2821 | prelude-ls "~1.1.2" 2822 | 2823 | type-is@~1.6.16: 2824 | version "1.6.16" 2825 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" 2826 | dependencies: 2827 | media-typer "0.3.0" 2828 | mime-types "~2.1.18" 2829 | 2830 | typedarray@^0.0.6: 2831 | version "0.0.6" 2832 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 2833 | 2834 | uglify-js@^3.1.4: 2835 | version "3.5.4" 2836 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.4.tgz#4a64d57f590e20a898ba057f838dcdfb67a939b9" 2837 | dependencies: 2838 | commander "~2.20.0" 2839 | source-map "~0.6.1" 2840 | 2841 | uid-safe@~2.1.5: 2842 | version "2.1.5" 2843 | resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a" 2844 | dependencies: 2845 | random-bytes "~1.0.0" 2846 | 2847 | umzug@^2.1.0: 2848 | version "2.2.0" 2849 | resolved "https://registry.yarnpkg.com/umzug/-/umzug-2.2.0.tgz#6160bdc1817e4a63a625946775063c638623e62e" 2850 | dependencies: 2851 | babel-runtime "^6.23.0" 2852 | bluebird "^3.5.3" 2853 | 2854 | undefsafe@^2.0.2: 2855 | version "2.0.2" 2856 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz#225f6b9e0337663e0d8e7cfd686fc2836ccace76" 2857 | dependencies: 2858 | debug "^2.2.0" 2859 | 2860 | unique-string@^1.0.0: 2861 | version "1.0.0" 2862 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" 2863 | dependencies: 2864 | crypto-random-string "^1.0.0" 2865 | 2866 | universalify@^0.1.0: 2867 | version "0.1.2" 2868 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 2869 | 2870 | unpipe@1.0.0, unpipe@~1.0.0: 2871 | version "1.0.0" 2872 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 2873 | 2874 | unzip-response@^2.0.1: 2875 | version "2.0.1" 2876 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" 2877 | 2878 | update-notifier@^2.5.0: 2879 | version "2.5.0" 2880 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" 2881 | dependencies: 2882 | boxen "^1.2.1" 2883 | chalk "^2.0.1" 2884 | configstore "^3.0.0" 2885 | import-lazy "^2.1.0" 2886 | is-ci "^1.0.10" 2887 | is-installed-globally "^0.1.0" 2888 | is-npm "^1.0.0" 2889 | latest-version "^3.0.0" 2890 | semver-diff "^2.0.0" 2891 | xdg-basedir "^3.0.0" 2892 | 2893 | uri-js@^4.2.2: 2894 | version "4.2.2" 2895 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 2896 | dependencies: 2897 | punycode "^2.1.0" 2898 | 2899 | url-parse-lax@^1.0.0: 2900 | version "1.0.0" 2901 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 2902 | dependencies: 2903 | prepend-http "^1.0.1" 2904 | 2905 | util-deprecate@~1.0.1: 2906 | version "1.0.2" 2907 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2908 | 2909 | utils-merge@1.0.1: 2910 | version "1.0.1" 2911 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 2912 | 2913 | uuid@^3.2.1, uuid@^3.3.2: 2914 | version "3.3.2" 2915 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" 2916 | 2917 | validate-npm-package-license@^3.0.1: 2918 | version "3.0.4" 2919 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 2920 | dependencies: 2921 | spdx-correct "^3.0.0" 2922 | spdx-expression-parse "^3.0.0" 2923 | 2924 | validator@^10.11.0: 2925 | version "10.11.0" 2926 | resolved "https://registry.yarnpkg.com/validator/-/validator-10.11.0.tgz#003108ea6e9a9874d31ccc9e5006856ccd76b228" 2927 | 2928 | vary@^1, vary@~1.1.2: 2929 | version "1.1.2" 2930 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 2931 | 2932 | which-module@^2.0.0: 2933 | version "2.0.0" 2934 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 2935 | 2936 | which@^1.2.9: 2937 | version "1.3.1" 2938 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 2939 | dependencies: 2940 | isexe "^2.0.0" 2941 | 2942 | wide-align@^1.1.0: 2943 | version "1.1.3" 2944 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 2945 | dependencies: 2946 | string-width "^1.0.2 || 2" 2947 | 2948 | widest-line@^2.0.0: 2949 | version "2.0.1" 2950 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" 2951 | dependencies: 2952 | string-width "^2.1.1" 2953 | 2954 | will-call@1.x.x: 2955 | version "1.0.1" 2956 | resolved "https://registry.yarnpkg.com/will-call/-/will-call-1.0.1.tgz#9b37561ea7156aaba21b28fdf635b80fe78bf166" 2957 | 2958 | wkx@^0.4.6: 2959 | version "0.4.6" 2960 | resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.4.6.tgz#228ab592e6457382ea6fb79fc825058d07fce523" 2961 | dependencies: 2962 | "@types/node" "*" 2963 | 2964 | wordwrap@~0.0.2: 2965 | version "0.0.3" 2966 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" 2967 | 2968 | wordwrap@~1.0.0: 2969 | version "1.0.0" 2970 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 2971 | 2972 | wrap-ansi@^5.1.0: 2973 | version "5.1.0" 2974 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" 2975 | dependencies: 2976 | ansi-styles "^3.2.0" 2977 | string-width "^3.0.0" 2978 | strip-ansi "^5.0.0" 2979 | 2980 | wrappy@1: 2981 | version "1.0.2" 2982 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2983 | 2984 | write-file-atomic@^2.0.0: 2985 | version "2.4.3" 2986 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" 2987 | dependencies: 2988 | graceful-fs "^4.1.11" 2989 | imurmurhash "^0.1.4" 2990 | signal-exit "^3.0.2" 2991 | 2992 | write@^0.2.1: 2993 | version "0.2.1" 2994 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 2995 | dependencies: 2996 | mkdirp "^0.5.1" 2997 | 2998 | xdg-basedir@^3.0.0: 2999 | version "3.0.0" 3000 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" 3001 | 3002 | y18n@^4.0.0: 3003 | version "4.0.0" 3004 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" 3005 | 3006 | yallist@^2.1.2: 3007 | version "2.1.2" 3008 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 3009 | 3010 | yallist@^3.0.0, yallist@^3.0.2: 3011 | version "3.0.3" 3012 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" 3013 | 3014 | yallist@^3.0.3: 3015 | version "3.1.1" 3016 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 3017 | 3018 | yargs-parser@^13.1.1: 3019 | version "13.1.1" 3020 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" 3021 | dependencies: 3022 | camelcase "^5.0.0" 3023 | decamelize "^1.2.0" 3024 | 3025 | yargs@^13.1.0: 3026 | version "13.3.0" 3027 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" 3028 | dependencies: 3029 | cliui "^5.0.0" 3030 | find-up "^3.0.0" 3031 | get-caller-file "^2.0.1" 3032 | require-directory "^2.1.1" 3033 | require-main-filename "^2.0.0" 3034 | set-blocking "^2.0.0" 3035 | string-width "^3.0.0" 3036 | which-module "^2.0.0" 3037 | y18n "^4.0.0" 3038 | yargs-parser "^13.1.1" 3039 | --------------------------------------------------------------------------------