├── .gitignore ├── LICENSE ├── app.js ├── models └── user.js ├── package-lock.json ├── package.json ├── preview.png ├── readme.md ├── routes └── router.js ├── templateLogReg ├── css │ └── style.css ├── images │ ├── banner1.jpg │ ├── fac.png │ └── google.png ├── index.html └── w3layouts-License.txt └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Createdd 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 | -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var app = express(); 3 | var bodyParser = require('body-parser'); 4 | var mongoose = require('mongoose'); 5 | var session = require('express-session'); 6 | var MongoStore = require('connect-mongo')(session); 7 | 8 | //connect to MongoDB 9 | mongoose.connect('mongodb://localhost/testForAuth'); 10 | var db = mongoose.connection; 11 | 12 | //handle mongo error 13 | db.on('error', console.error.bind(console, 'connection error:')); 14 | db.once('open', function () { 15 | // we're connected! 16 | }); 17 | 18 | //use sessions for tracking logins 19 | app.use(session({ 20 | secret: 'work hard', 21 | resave: true, 22 | saveUninitialized: false, 23 | store: new MongoStore({ 24 | mongooseConnection: db 25 | }) 26 | })); 27 | 28 | // parse incoming requests 29 | app.use(bodyParser.json()); 30 | app.use(bodyParser.urlencoded({ extended: false })); 31 | 32 | 33 | // serve static files from template 34 | app.use(express.static(__dirname + '/templateLogReg')); 35 | 36 | // include routes 37 | var routes = require('./routes/router'); 38 | app.use('/', routes); 39 | 40 | // catch 404 and forward to error handler 41 | app.use(function (req, res, next) { 42 | var err = new Error('File Not Found'); 43 | err.status = 404; 44 | next(err); 45 | }); 46 | 47 | // error handler 48 | // define as the last app.use callback 49 | app.use(function (err, req, res, next) { 50 | res.status(err.status || 500); 51 | res.send(err.message); 52 | }); 53 | 54 | 55 | // listen on port 3000 56 | app.listen(3000, function () { 57 | console.log('Express app listening on port 3000'); 58 | }); -------------------------------------------------------------------------------- /models/user.js: -------------------------------------------------------------------------------- 1 | var mongoose = require('mongoose'); 2 | var bcrypt = require('bcrypt'); 3 | 4 | var UserSchema = new mongoose.Schema({ 5 | email: { 6 | type: String, 7 | unique: true, 8 | required: true, 9 | trim: true 10 | }, 11 | username: { 12 | type: String, 13 | unique: true, 14 | required: true, 15 | trim: true 16 | }, 17 | password: { 18 | type: String, 19 | required: true, 20 | } 21 | }); 22 | 23 | //authenticate input against database 24 | UserSchema.statics.authenticate = function (email, password, callback) { 25 | User.findOne({ email: email }) 26 | .exec(function (err, user) { 27 | if (err) { 28 | return callback(err) 29 | } else if (!user) { 30 | var err = new Error('User not found.'); 31 | err.status = 401; 32 | return callback(err); 33 | } 34 | bcrypt.compare(password, user.password, function (err, result) { 35 | if (result === true) { 36 | return callback(null, user); 37 | } else { 38 | return callback(); 39 | } 40 | }) 41 | }); 42 | } 43 | 44 | //hashing a password before saving it to the database 45 | UserSchema.pre('save', function (next) { 46 | var user = this; 47 | bcrypt.hash(user.password, 10, function (err, hash) { 48 | if (err) { 49 | return next(err); 50 | } 51 | user.password = hash; 52 | next(); 53 | }) 54 | }); 55 | 56 | 57 | var User = mongoose.model('User', UserSchema); 58 | module.exports = User; 59 | 60 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "authenticationIntro", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "repository": "https://github.com/DDCSLearning/authenticationIntro.git", 6 | "author": "DanielDeutsch ", 7 | "license": "none", 8 | "scripts": { 9 | "start": "node app", 10 | "watch": "nodemon app && mongod" 11 | }, 12 | "dependencies": { 13 | "bcrypt": "^1.0.2", 14 | "body-parser": "^1.17.1", 15 | "connect-mongo": "^1.3.2", 16 | "express": "^4.15.2", 17 | "express-session": "^1.15.2", 18 | "mongoose": "^4.9.8", 19 | "nodemon": "^1.11.0" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DDCSLearning/authenticationIntro/a31aa3bbc9ad2042d37e6a5342475747d41880b8/preview.png -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | ## 📝 Author 2 | [](http://ddcreationstudios.at/) 3 | 4 | ##### Daniel Deutsch [Github](https://github.com/DDCreationStudios) / [FreeCodeCamp](https://www.freecodecamp.com/ddcreationstudios) / [CodePen](http://codepen.io/ddcreationstudios/) / [LinkedIn](https://www.linkedin.com/in/daniel-deutsch-b95611127) / [Medium](https://medium.com/@ddcreationstudi) / [Hashnode](https://hashnode.com/@DDCreationStudio) / [Site](http://ddcreationstudios.at/) / [E-Mail](mailto:deudan1010@gmail.com) 5 | 6 | # 🌐 Authentication Example with Node.JS and MongoDB ![App Progress Status](https://img.shields.io/badge/Status-Finished-0520b7.svg?style=plastic) 7 | 8 | --- 9 | A simple example to show how authentication is implemented with Node.JS and MongoDB. 10 | --- 11 | 12 | pic 13 | 14 | 15 | Check out my [post on medium.com](https://medium.com/@ddcreationstudi) 16 | 17 | You can find a more detailed tutorial at treehouse: 18 | -------------------------------------------------------------------------------- /routes/router.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | var User = require('../models/user'); 4 | 5 | 6 | // GET route for reading data 7 | router.get('/', function (req, res, next) { 8 | return res.sendFile(path.join(__dirname + '/templateLogReg/index.html')); 9 | }); 10 | 11 | 12 | //POST route for updating data 13 | router.post('/', function (req, res, next) { 14 | // confirm that user typed same password twice 15 | if (req.body.password !== req.body.passwordConf) { 16 | var err = new Error('Passwords do not match.'); 17 | err.status = 400; 18 | res.send("passwords dont match"); 19 | return next(err); 20 | } 21 | 22 | if (req.body.email && 23 | req.body.username && 24 | req.body.password && 25 | req.body.passwordConf) { 26 | 27 | var userData = { 28 | email: req.body.email, 29 | username: req.body.username, 30 | password: req.body.password, 31 | } 32 | 33 | User.create(userData, function (error, user) { 34 | if (error) { 35 | return next(error); 36 | } else { 37 | req.session.userId = user._id; 38 | return res.redirect('/profile'); 39 | } 40 | }); 41 | 42 | } else if (req.body.logemail && req.body.logpassword) { 43 | User.authenticate(req.body.logemail, req.body.logpassword, function (error, user) { 44 | if (error || !user) { 45 | var err = new Error('Wrong email or password.'); 46 | err.status = 401; 47 | return next(err); 48 | } else { 49 | req.session.userId = user._id; 50 | return res.redirect('/profile'); 51 | } 52 | }); 53 | } else { 54 | var err = new Error('All fields required.'); 55 | err.status = 400; 56 | return next(err); 57 | } 58 | }) 59 | 60 | // GET route after registering 61 | router.get('/profile', function (req, res, next) { 62 | User.findById(req.session.userId) 63 | .exec(function (error, user) { 64 | if (error) { 65 | return next(error); 66 | } else { 67 | if (user === null) { 68 | var err = new Error('Not authorized! Go back!'); 69 | err.status = 400; 70 | return next(err); 71 | } else { 72 | return res.send('

Name:

' + user.username + '

Mail:

' + user.email + '
Logout') 73 | } 74 | } 75 | }); 76 | }); 77 | 78 | // GET for logout logout 79 | router.get('/logout', function (req, res, next) { 80 | if (req.session) { 81 | // delete session object 82 | req.session.destroy(function (err) { 83 | if (err) { 84 | return next(err); 85 | } else { 86 | return res.redirect('/'); 87 | } 88 | }); 89 | } 90 | }); 91 | 92 | module.exports = router; -------------------------------------------------------------------------------- /templateLogReg/css/style.css: -------------------------------------------------------------------------------- 1 | /*-- 2 | Author: W3layouts 3 | Author URL: http://w3layouts.com 4 | License: Creative Commons Attribution 3.0 Unported 5 | License URL: http://creativecommons.org/licenses/by/3.0/ 6 | --*/ 7 | /*--reset--*/ 8 | html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,dl,dt,dd,ol,nav ul,nav li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;} 9 | article, aside, details, figcaption, figure,footer, header, hgroup, menu, nav, section {display: block;} 10 | ol,ul{list-style:none;margin:0px;padding:0px;} 11 | blockquote,q{quotes:none;} 12 | blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;} 13 | table{border-collapse:collapse;border-spacing:0;} 14 | /*--start editing from here--*/ 15 | a{text-decoration:none;} 16 | .txt-rt{text-align:right;}/* text align right */ 17 | .txt-lt{text-align:left;}/* text align left */ 18 | .txt-center{text-align:center;}/* text align center */ 19 | .float-rt{float:right;}/* float right */ 20 | .float-lt{float:left;}/* float left */ 21 | .clear{clear:both;}/* clear float */ 22 | .pos-relative{position:relative;}/* Position Relative */ 23 | .pos-absolute{position:absolute;}/* Position Absolute */ 24 | .vertical-base{ vertical-align:baseline;}/* vertical align baseline */ 25 | .vertical-top{ vertical-align:top;}/* vertical align top */ 26 | nav.vertical ul li{ display:block;}/* vertical menu */ 27 | nav.horizontal ul li{ display: inline-block;}/* horizontal menu */ 28 | img{max-width:100%;} 29 | /*--end reset--*/ 30 | body { 31 | font-family: 'Jura', sans-serif; 32 | background:#0a4981; 33 | } 34 | h1 { 35 | color: #fff; 36 | text-align: center; 37 | padding: 1em 0 0 0; 38 | font-size: 3em; 39 | font-weight: 700; 40 | } 41 | /*-- main --*/ 42 | .main { 43 | margin: 4em auto; 44 | width: 50%; 45 | } 46 | .banner { 47 | background: url(../images/banner.jpg)no-repeat 0px 0px; 48 | background-size: cover; 49 | } 50 | 51 | /*--signin-form--*/ 52 | .w3 { 53 | float: left; 54 | width: 48%; 55 | margin-right: 4%; 56 | } 57 | .agile { 58 | float: right; 59 | width: 48%; 60 | } 61 | .signin-form { 62 | background: url(../images/banner1.jpg)no-repeat 0px 0px; 63 | background-size: cover; 64 | padding: 2em 2em; 65 | text-align: center; 66 | } 67 | .signin-form h3 { 68 | font-size: 2em; 69 | color: #fff; 70 | font-weight: 700; 71 | margin-bottom: 1.5em; 72 | } 73 | .signin-form h3 span { 74 | color: #67e1ff; 75 | } 76 | .signin-form img { 77 | border-radius: 50%; 78 | } 79 | .login-form { 80 | margin: 1em 0 2.5em; 81 | } 82 | .signin-form input[type="text"], .signin-form input[type="password"] { 83 | width: 92%; 84 | padding: 1em 1em 1em 1em; 85 | font-size: 0.8em; 86 | margin: 1em 0; 87 | outline: none; 88 | color: #FFF; 89 | border: none; 90 | border-bottom: 2px solid #fff; 91 | letter-spacing: 1px; 92 | text-align:center; 93 | } 94 | .signin-form input[type="text"] { 95 | background: none; 96 | display: block; 97 | } 98 | .signin-form input[type="password"] { 99 | background: none; 100 | display: block; 101 | } 102 | ::-webkit-input-placeholder{ 103 | color:#fff !important; 104 | } 105 | .signin-form input[type="submit"] { 106 | outline: none; 107 | padding: 0.9em 0; 108 | width: 100%; 109 | text-align: center; 110 | font-size: 1em; 111 | margin-top: 1em; 112 | border: none; 113 | color: #fff; 114 | cursor: pointer; 115 | background: #0b4379; 116 | box-shadow: 0px 2px 1px rgba(28, 28, 29, 0.42); 117 | border-radius: 22px; 118 | 119 | } 120 | .signin-form input[type="submit"]:hover { 121 | color: #fff; 122 | background: #002242; 123 | transition: .5s all; 124 | -webkit-transition: .5s all; 125 | -moz-transition: .5s all; 126 | -o-transition: .5s all; 127 | -ms-transition: .5s all; 128 | } 129 | .signin-form p a { 130 | font-size: 0.875em; 131 | color: #fff; 132 | letter-spacing: 1px; 133 | } 134 | /*--//signin-form--*/ 135 | .header-social { 136 | text-align: center; 137 | margin-bottom: 2em; 138 | } 139 | .tp { 140 | margin: 3.7em 0 0; 141 | } 142 | h5 { 143 | border-left: 1px dotted #7467b9; 144 | padding: 0.5em; 145 | } 146 | .header-social a.face{ 147 | background:url(../images/fac.png)no-repeat 12px 9px #3B62A3; 148 | color: #FFF; 149 | font-size: 16px; 150 | font-weight: 400; 151 | padding: 0 2em; 152 | width: 30%; 153 | text-align: left; 154 | margin-right: 0%; 155 | transition: 0.5s all; 156 | -webkit-transition: 0.5s all; 157 | -moz-transition: 0.5s all; 158 | -o-transition: 0.5s all; 159 | display: inline-block; 160 | float:left; 161 | border-radius: 14px 0px 0px 14px; 162 | } 163 | .header-social a.face:hover{ 164 | background:url(../images/fac.png)no-repeat 12px 9px #0E387C; 165 | transition: 0.5s all; 166 | -webkit-transition: 0.5s all; 167 | -moz-transition: 0.5s all; 168 | -o-transition: 0.5s all; 169 | } 170 | /*-- w3layouts --*/ 171 | .header-social a.goog { 172 | background:url(../images/google.png)no-repeat 12px 9px #D64639; 173 | color: #FFF; 174 | font-size: 16px; 175 | font-weight: 400; 176 | padding: 0 2.5em; 177 | width: 24%; 178 | text-align: left; 179 | transition: 0.5s all; 180 | -webkit-transition: 0.5s all; 181 | -moz-transition: 0.5s all; 182 | -o-transition: 0.5s all; 183 | display: inline-block; 184 | cursor: pointer; 185 | outline: none; 186 | float:left; 187 | border-radius: 0px 14px 14px 0px; 188 | } 189 | .header-social a.goog:hover { 190 | background: url(../images/google.png)no-repeat 12px 9px #ff4b3b; 191 | transition: 0.5s all; 192 | -webkit-transition: 0.5s all; 193 | -moz-transition: 0.5s all; 194 | -o-transition: 0.5s all; 195 | } 196 | .header-social h4 { 197 | font-size: 17px; 198 | color: #6A67CE; 199 | text-align: center; 200 | margin: 20px 0px; 201 | font-family: 'Roboto Condensed', sans-serif; 202 | } 203 | .header-social h4 a{ 204 | color:#6A67CE; 205 | } 206 | .header-social h4 a:hover{ 207 | color:#FFB900; 208 | } 209 | /*--copyright--*/ 210 | .copyright { 211 | margin: 2em; 212 | text-align: center; 213 | } 214 | .copyright p { 215 | font-size: 1em; 216 | color: #fff; 217 | line-height:1.8em; 218 | } 219 | .copyright p a{ 220 | color: #fff; 221 | } 222 | .copyright p a:hover{ 223 | color:#56c8dc; 224 | } 225 | /*--//copyright--*/ 226 | /*-- agileits --*/ 227 | /*---- responsive-design -----*/ 228 | @media(max-width:1440px){ 229 | .main { 230 | width: 56%; 231 | } 232 | } 233 | @media(max-width:1366px){ 234 | .main { 235 | width: 59%; 236 | } 237 | } 238 | @media(max-width:1280px){ 239 | h1 { 240 | font-size: 2.5em; 241 | } 242 | .main { 243 | width: 63%; 244 | } 245 | } 246 | @media(max-width:1080px){ 247 | .main { 248 | width: 74%; 249 | margin: 2em auto; 250 | } 251 | } 252 | @media(max-width:1024px){ 253 | .main { 254 | width: 82%; 255 | } 256 | .signin-form { 257 | padding: 3em 2.5em; 258 | } 259 | } 260 | @media(max-width:991px){ 261 | .main { 262 | width: 85%; 263 | } 264 | } 265 | @media(max-width:900px){ 266 | .main { 267 | width: 93%; 268 | } 269 | } 270 | @media(max-width:800px){ 271 | .main { 272 | width: 51%; 273 | } 274 | .w3 { 275 | float: none; 276 | width: 100%; 277 | margin-right: 0; 278 | margin-bottom: 5%; 279 | } 280 | .agile { 281 | float: none; 282 | width: 100%; 283 | } 284 | .signin-form p a { 285 | line-height: 1.8em; 286 | } 287 | } 288 | @media(max-width:768px){ 289 | .main { 290 | width: 53%; 291 | } 292 | } 293 | @media(max-width:736px){ 294 | .main { 295 | width: 55%; 296 | } 297 | } 298 | /*-- w3layouts --*/ 299 | @media(max-width:667px){ 300 | .main { 301 | width: 61%; 302 | } 303 | } 304 | @media(max-width:640px){ 305 | .main { 306 | width: 64%; 307 | } 308 | } 309 | @media(max-width:600px){ 310 | .main { 311 | width: 68%; 312 | } 313 | } 314 | @media(max-width:568px){ 315 | .main { 316 | width: 72%; 317 | } 318 | } 319 | @media(max-width:480px){ 320 | .main { 321 | width: 78%; 322 | } 323 | .header-social a.face { 324 | width: 27%; 325 | } 326 | .header-social a.goog { 327 | width: 21%; 328 | } 329 | .w3 { 330 | margin-bottom: 0%; 331 | } 332 | .signin-form input[type="text"], .signin-form input[type="password"] { 333 | width: 91%; 334 | } 335 | h1 { 336 | font-size: 2.2em; 337 | } 338 | .profile { 339 | margin-top: 2em; 340 | } 341 | .signin-form { 342 | padding: 2em 2em; 343 | } 344 | .copyright p { 345 | font-size: 0.9em; 346 | } 347 | /*-- agileits --*/ 348 | } 349 | @media(max-width:414px){ 350 | .signin-form input[type="text"], .signin-form input[type="password"] { 351 | width: 89%; 352 | } 353 | .signin-form { 354 | padding: 2em 1.5em; 355 | } 356 | .header-social a.face { 357 | width: 25%; 358 | } 359 | .header-social a.goog { 360 | width: 19%; 361 | } 362 | .tp { 363 | margin: 1.7em 0 0; 364 | } 365 | .header-social { 366 | margin-bottom: 1em; 367 | } 368 | .signin-form h3 { 369 | margin-bottom: 1em; 370 | } 371 | .login-form { 372 | margin: 1em 0 1.5em; 373 | } 374 | } 375 | @media(max-width:384px){ 376 | h1 { 377 | font-size: 2em; 378 | } 379 | .header-social a.face { 380 | width: 22%; 381 | } 382 | .header-social a.goog { 383 | width: 17%; 384 | } 385 | } 386 | @media(max-width:375px){ 387 | .main { 388 | width: 79%; 389 | } 390 | .header-social a.goog { 391 | width: 15%; 392 | } 393 | } 394 | @media(max-width:320px){ 395 | h1 { 396 | font-size: 1.6em; 397 | } 398 | .main { 399 | width: 89%; 400 | margin: 1.5em auto; 401 | } 402 | .login-form { 403 | margin: 1em 0 1.5em; 404 | } 405 | .signin-form { 406 | padding: 1.5em 1.5em; 407 | } 408 | .signin-form h3 { 409 | font-size: 1.5em; 410 | } 411 | .signin-form input[type="text"], .signin-form input[type="password"] { 412 | width:88%; 413 | } 414 | .signin-form input[type="submit"] { 415 | padding: 0.7em 0; 416 | font-size: 0.9em; 417 | } 418 | .signin-form p a { 419 | font-size: 0.9em; 420 | } 421 | .header-social a.face { 422 | background: url(../images/fac.png)no-repeat 12px 6px #3B62A3; 423 | font-size: 14px; 424 | width: 24%; 425 | } 426 | .signin-form p a { 427 | line-height: 1.5em; 428 | } 429 | .copyright { 430 | margin: 1em; 431 | } 432 | .header-social a.face:hover { 433 | background: url(../images/fac.png)no-repeat 12px 6px #0E387C; 434 | } 435 | .header-social a.goog { 436 | background: url(../images/google.png)no-repeat 12px 6px #D64639; 437 | font-size: 14px; 438 | padding: 0 2.5em; 439 | width: 19%; 440 | } 441 | .header-social a.goog:hover { 442 | background: url(../images/google.png)no-repeat 12px 6px #ff4b3b; 443 | } 444 | } 445 | /*--//responsive-design---*/ 446 | -------------------------------------------------------------------------------- /templateLogReg/images/banner1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DDCSLearning/authenticationIntro/a31aa3bbc9ad2042d37e6a5342475747d41880b8/templateLogReg/images/banner1.jpg -------------------------------------------------------------------------------- /templateLogReg/images/fac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DDCSLearning/authenticationIntro/a31aa3bbc9ad2042d37e6a5342475747d41880b8/templateLogReg/images/fac.png -------------------------------------------------------------------------------- /templateLogReg/images/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DDCSLearning/authenticationIntro/a31aa3bbc9ad2042d37e6a5342475747d41880b8/templateLogReg/images/google.png -------------------------------------------------------------------------------- /templateLogReg/index.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | Register Login with Authentication 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |

Test Authentication 🚀

24 | 25 |
26 | 27 | 28 | 29 | 30 |
31 | 44 |
45 |
46 | 60 |
61 |
62 | 63 |
64 | 67 | 68 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /templateLogReg/w3layouts-License.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DDCSLearning/authenticationIntro/a31aa3bbc9ad2042d37e6a5342475747d41880b8/templateLogReg/w3layouts-License.txt -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | abbrev@1: 6 | version "1.1.0" 7 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" 8 | 9 | accepts@~1.3.3: 10 | version "1.3.3" 11 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" 12 | dependencies: 13 | mime-types "~2.1.11" 14 | negotiator "0.6.1" 15 | 16 | ajv@^4.9.1: 17 | version "4.11.8" 18 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 19 | dependencies: 20 | co "^4.6.0" 21 | json-stable-stringify "^1.0.1" 22 | 23 | ansi-regex@^2.0.0: 24 | version "2.1.1" 25 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 26 | 27 | ansi-styles@^2.2.1: 28 | version "2.2.1" 29 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 30 | 31 | anymatch@^1.3.0: 32 | version "1.3.0" 33 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" 34 | dependencies: 35 | arrify "^1.0.0" 36 | micromatch "^2.1.5" 37 | 38 | aproba@^1.0.3: 39 | version "1.1.1" 40 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" 41 | 42 | are-we-there-yet@~1.1.2: 43 | version "1.1.4" 44 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" 45 | dependencies: 46 | delegates "^1.0.0" 47 | readable-stream "^2.0.6" 48 | 49 | arr-diff@^2.0.0: 50 | version "2.0.0" 51 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 52 | dependencies: 53 | arr-flatten "^1.0.1" 54 | 55 | arr-flatten@^1.0.1: 56 | version "1.0.3" 57 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1" 58 | 59 | array-flatten@1.1.1: 60 | version "1.1.1" 61 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 62 | 63 | array-unique@^0.2.1: 64 | version "0.2.1" 65 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 66 | 67 | arrify@^1.0.0: 68 | version "1.0.1" 69 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 70 | 71 | asn1@~0.2.3: 72 | version "0.2.3" 73 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 74 | 75 | assert-plus@1.0.0, assert-plus@^1.0.0: 76 | version "1.0.0" 77 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 78 | 79 | assert-plus@^0.2.0: 80 | version "0.2.0" 81 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 82 | 83 | async-each@^1.0.0: 84 | version "1.0.1" 85 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 86 | 87 | async@2.1.4: 88 | version "2.1.4" 89 | resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" 90 | dependencies: 91 | lodash "^4.14.0" 92 | 93 | asynckit@^0.4.0: 94 | version "0.4.0" 95 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 96 | 97 | aws-sign2@~0.6.0: 98 | version "0.6.0" 99 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 100 | 101 | aws4@^1.2.1: 102 | version "1.6.0" 103 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 104 | 105 | balanced-match@^0.4.1: 106 | version "0.4.2" 107 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" 108 | 109 | bcrypt-pbkdf@^1.0.0: 110 | version "1.0.1" 111 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 112 | dependencies: 113 | tweetnacl "^0.14.3" 114 | 115 | bcrypt@^1.0.2: 116 | version "1.0.2" 117 | resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-1.0.2.tgz#d05fc5d223173e0e28ec381c0f00cc25ffaf2736" 118 | dependencies: 119 | bindings "1.2.1" 120 | nan "2.5.0" 121 | node-pre-gyp "0.6.32" 122 | 123 | binary-extensions@^1.0.0: 124 | version "1.8.0" 125 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" 126 | 127 | bindings@1.2.1: 128 | version "1.2.1" 129 | resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" 130 | 131 | block-stream@*: 132 | version "0.0.9" 133 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 134 | dependencies: 135 | inherits "~2.0.0" 136 | 137 | bluebird@2.10.2: 138 | version "2.10.2" 139 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.10.2.tgz#024a5517295308857f14f91f1106fc3b555f446b" 140 | 141 | bluebird@^3.0: 142 | version "3.5.0" 143 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" 144 | 145 | body-parser@^1.17.1: 146 | version "1.17.1" 147 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.17.1.tgz#75b3bc98ddd6e7e0d8ffe750dfaca5c66993fa47" 148 | dependencies: 149 | bytes "2.4.0" 150 | content-type "~1.0.2" 151 | debug "2.6.1" 152 | depd "~1.1.0" 153 | http-errors "~1.6.1" 154 | iconv-lite "0.4.15" 155 | on-finished "~2.3.0" 156 | qs "6.4.0" 157 | raw-body "~2.2.0" 158 | type-is "~1.6.14" 159 | 160 | boom@2.x.x: 161 | version "2.10.1" 162 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 163 | dependencies: 164 | hoek "2.x.x" 165 | 166 | brace-expansion@^1.1.7: 167 | version "1.1.7" 168 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" 169 | dependencies: 170 | balanced-match "^0.4.1" 171 | concat-map "0.0.1" 172 | 173 | braces@^1.8.2: 174 | version "1.8.5" 175 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 176 | dependencies: 177 | expand-range "^1.8.1" 178 | preserve "^0.2.0" 179 | repeat-element "^1.1.2" 180 | 181 | bson@~1.0.4: 182 | version "1.0.4" 183 | resolved "https://registry.yarnpkg.com/bson/-/bson-1.0.4.tgz#93c10d39eaa5b58415cbc4052f3e53e562b0b72c" 184 | 185 | buffer-shims@^1.0.0, buffer-shims@~1.0.0: 186 | version "1.0.0" 187 | resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" 188 | 189 | bytes@2.4.0: 190 | version "2.4.0" 191 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" 192 | 193 | caseless@~0.12.0: 194 | version "0.12.0" 195 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 196 | 197 | chalk@^1.0.0: 198 | version "1.1.3" 199 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 200 | dependencies: 201 | ansi-styles "^2.2.1" 202 | escape-string-regexp "^1.0.2" 203 | has-ansi "^2.0.0" 204 | strip-ansi "^3.0.0" 205 | supports-color "^2.0.0" 206 | 207 | chokidar@^1.4.3: 208 | version "1.7.0" 209 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" 210 | dependencies: 211 | anymatch "^1.3.0" 212 | async-each "^1.0.0" 213 | glob-parent "^2.0.0" 214 | inherits "^2.0.1" 215 | is-binary-path "^1.0.0" 216 | is-glob "^2.0.0" 217 | path-is-absolute "^1.0.0" 218 | readdirp "^2.0.0" 219 | optionalDependencies: 220 | fsevents "^1.0.0" 221 | 222 | co@^4.6.0: 223 | version "4.6.0" 224 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 225 | 226 | code-point-at@^1.0.0: 227 | version "1.1.0" 228 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 229 | 230 | combined-stream@^1.0.5, combined-stream@~1.0.5: 231 | version "1.0.5" 232 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 233 | dependencies: 234 | delayed-stream "~1.0.0" 235 | 236 | concat-map@0.0.1: 237 | version "0.0.1" 238 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 239 | 240 | configstore@^1.0.0: 241 | version "1.4.0" 242 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021" 243 | dependencies: 244 | graceful-fs "^4.1.2" 245 | mkdirp "^0.5.0" 246 | object-assign "^4.0.1" 247 | os-tmpdir "^1.0.0" 248 | osenv "^0.1.0" 249 | uuid "^2.0.1" 250 | write-file-atomic "^1.1.2" 251 | xdg-basedir "^2.0.0" 252 | 253 | connect-mongo@^1.3.2: 254 | version "1.3.2" 255 | resolved "https://registry.yarnpkg.com/connect-mongo/-/connect-mongo-1.3.2.tgz#7cbf58dfff26760e5e00e017d0a85b4bc90b9d37" 256 | dependencies: 257 | bluebird "^3.0" 258 | mongodb ">= 1.2.0 <3.0.0" 259 | 260 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 261 | version "1.1.0" 262 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 263 | 264 | content-disposition@0.5.2: 265 | version "0.5.2" 266 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 267 | 268 | content-type@~1.0.2: 269 | version "1.0.2" 270 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" 271 | 272 | cookie-signature@1.0.6: 273 | version "1.0.6" 274 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 275 | 276 | cookie@0.3.1: 277 | version "0.3.1" 278 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 279 | 280 | core-util-is@~1.0.0: 281 | version "1.0.2" 282 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 283 | 284 | crc@3.4.4: 285 | version "3.4.4" 286 | resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.4.tgz#9da1e980e3bd44fc5c93bf5ab3da3378d85e466b" 287 | 288 | cryptiles@2.x.x: 289 | version "2.0.5" 290 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 291 | dependencies: 292 | boom "2.x.x" 293 | 294 | dashdash@^1.12.0: 295 | version "1.14.1" 296 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 297 | dependencies: 298 | assert-plus "^1.0.0" 299 | 300 | debug@2.2.0, debug@~2.2.0: 301 | version "2.2.0" 302 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" 303 | dependencies: 304 | ms "0.7.1" 305 | 306 | debug@2.6.1: 307 | version "2.6.1" 308 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351" 309 | dependencies: 310 | ms "0.7.2" 311 | 312 | debug@2.6.3, debug@^2.2.0: 313 | version "2.6.3" 314 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.3.tgz#0f7eb8c30965ec08c72accfa0130c8b79984141d" 315 | dependencies: 316 | ms "0.7.2" 317 | 318 | debug@2.6.4: 319 | version "2.6.4" 320 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.4.tgz#7586a9b3c39741c0282ae33445c4e8ac74734fe0" 321 | dependencies: 322 | ms "0.7.3" 323 | 324 | deep-extend@~0.4.0: 325 | version "0.4.2" 326 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" 327 | 328 | delayed-stream@~1.0.0: 329 | version "1.0.0" 330 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 331 | 332 | delegates@^1.0.0: 333 | version "1.0.0" 334 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 335 | 336 | depd@1.1.0, depd@~1.1.0: 337 | version "1.1.0" 338 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" 339 | 340 | destroy@~1.0.4: 341 | version "1.0.4" 342 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 343 | 344 | duplexer@~0.1.1: 345 | version "0.1.1" 346 | resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" 347 | 348 | duplexify@^3.2.0: 349 | version "3.5.0" 350 | resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" 351 | dependencies: 352 | end-of-stream "1.0.0" 353 | inherits "^2.0.1" 354 | readable-stream "^2.0.0" 355 | stream-shift "^1.0.0" 356 | 357 | ecc-jsbn@~0.1.1: 358 | version "0.1.1" 359 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 360 | dependencies: 361 | jsbn "~0.1.0" 362 | 363 | ee-first@1.1.1: 364 | version "1.1.1" 365 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 366 | 367 | encodeurl@~1.0.1: 368 | version "1.0.1" 369 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" 370 | 371 | end-of-stream@1.0.0: 372 | version "1.0.0" 373 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e" 374 | dependencies: 375 | once "~1.3.0" 376 | 377 | es6-promise@3.2.1: 378 | version "3.2.1" 379 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.2.1.tgz#ec56233868032909207170c39448e24449dd1fc4" 380 | 381 | es6-promise@^3.0.2: 382 | version "3.3.1" 383 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" 384 | 385 | escape-html@~1.0.3: 386 | version "1.0.3" 387 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 388 | 389 | escape-string-regexp@^1.0.2: 390 | version "1.0.5" 391 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 392 | 393 | etag@~1.8.0: 394 | version "1.8.0" 395 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" 396 | 397 | event-stream@~3.3.0: 398 | version "3.3.4" 399 | resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" 400 | dependencies: 401 | duplexer "~0.1.1" 402 | from "~0" 403 | map-stream "~0.1.0" 404 | pause-stream "0.0.11" 405 | split "0.3" 406 | stream-combiner "~0.0.4" 407 | through "~2.3.1" 408 | 409 | expand-brackets@^0.1.4: 410 | version "0.1.5" 411 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 412 | dependencies: 413 | is-posix-bracket "^0.1.0" 414 | 415 | expand-range@^1.8.1: 416 | version "1.8.2" 417 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 418 | dependencies: 419 | fill-range "^2.1.0" 420 | 421 | express-session@^1.15.2: 422 | version "1.15.2" 423 | resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.15.2.tgz#d98516443a4ccb8688e1725ae584c02daa4093d4" 424 | dependencies: 425 | cookie "0.3.1" 426 | cookie-signature "1.0.6" 427 | crc "3.4.4" 428 | debug "2.6.3" 429 | depd "~1.1.0" 430 | on-headers "~1.0.1" 431 | parseurl "~1.3.1" 432 | uid-safe "~2.1.4" 433 | utils-merge "1.0.0" 434 | 435 | express@^4.15.2: 436 | version "4.15.2" 437 | resolved "https://registry.yarnpkg.com/express/-/express-4.15.2.tgz#af107fc148504457f2dca9a6f2571d7129b97b35" 438 | dependencies: 439 | accepts "~1.3.3" 440 | array-flatten "1.1.1" 441 | content-disposition "0.5.2" 442 | content-type "~1.0.2" 443 | cookie "0.3.1" 444 | cookie-signature "1.0.6" 445 | debug "2.6.1" 446 | depd "~1.1.0" 447 | encodeurl "~1.0.1" 448 | escape-html "~1.0.3" 449 | etag "~1.8.0" 450 | finalhandler "~1.0.0" 451 | fresh "0.5.0" 452 | merge-descriptors "1.0.1" 453 | methods "~1.1.2" 454 | on-finished "~2.3.0" 455 | parseurl "~1.3.1" 456 | path-to-regexp "0.1.7" 457 | proxy-addr "~1.1.3" 458 | qs "6.4.0" 459 | range-parser "~1.2.0" 460 | send "0.15.1" 461 | serve-static "1.12.1" 462 | setprototypeof "1.0.3" 463 | statuses "~1.3.1" 464 | type-is "~1.6.14" 465 | utils-merge "1.0.0" 466 | vary "~1.1.0" 467 | 468 | extend@~3.0.0: 469 | version "3.0.1" 470 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 471 | 472 | extglob@^0.3.1: 473 | version "0.3.2" 474 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 475 | dependencies: 476 | is-extglob "^1.0.0" 477 | 478 | extsprintf@1.0.2: 479 | version "1.0.2" 480 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" 481 | 482 | filename-regex@^2.0.0: 483 | version "2.0.1" 484 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 485 | 486 | fill-range@^2.1.0: 487 | version "2.2.3" 488 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 489 | dependencies: 490 | is-number "^2.1.0" 491 | isobject "^2.0.0" 492 | randomatic "^1.1.3" 493 | repeat-element "^1.1.2" 494 | repeat-string "^1.5.2" 495 | 496 | finalhandler@~1.0.0: 497 | version "1.0.2" 498 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.2.tgz#d0e36f9dbc557f2de14423df6261889e9d60c93a" 499 | dependencies: 500 | debug "2.6.4" 501 | encodeurl "~1.0.1" 502 | escape-html "~1.0.3" 503 | on-finished "~2.3.0" 504 | parseurl "~1.3.1" 505 | statuses "~1.3.1" 506 | unpipe "~1.0.0" 507 | 508 | for-in@^1.0.1: 509 | version "1.0.2" 510 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 511 | 512 | for-own@^0.1.4: 513 | version "0.1.5" 514 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 515 | dependencies: 516 | for-in "^1.0.1" 517 | 518 | forever-agent@~0.6.1: 519 | version "0.6.1" 520 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 521 | 522 | form-data@~2.1.1: 523 | version "2.1.4" 524 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 525 | dependencies: 526 | asynckit "^0.4.0" 527 | combined-stream "^1.0.5" 528 | mime-types "^2.1.12" 529 | 530 | forwarded@~0.1.0: 531 | version "0.1.0" 532 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" 533 | 534 | fresh@0.5.0: 535 | version "0.5.0" 536 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" 537 | 538 | from@~0: 539 | version "0.1.7" 540 | resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" 541 | 542 | fs.realpath@^1.0.0: 543 | version "1.0.0" 544 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 545 | 546 | fsevents@^1.0.0: 547 | version "1.1.1" 548 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff" 549 | dependencies: 550 | nan "^2.3.0" 551 | node-pre-gyp "^0.6.29" 552 | 553 | fstream-ignore@~1.0.5: 554 | version "1.0.5" 555 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" 556 | dependencies: 557 | fstream "^1.0.0" 558 | inherits "2" 559 | minimatch "^3.0.0" 560 | 561 | fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: 562 | version "1.0.11" 563 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" 564 | dependencies: 565 | graceful-fs "^4.1.2" 566 | inherits "~2.0.0" 567 | mkdirp ">=0.5 0" 568 | rimraf "2" 569 | 570 | gauge@~2.7.3: 571 | version "2.7.4" 572 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 573 | dependencies: 574 | aproba "^1.0.3" 575 | console-control-strings "^1.0.0" 576 | has-unicode "^2.0.0" 577 | object-assign "^4.1.0" 578 | signal-exit "^3.0.0" 579 | string-width "^1.0.1" 580 | strip-ansi "^3.0.1" 581 | wide-align "^1.1.0" 582 | 583 | getpass@^0.1.1: 584 | version "0.1.7" 585 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 586 | dependencies: 587 | assert-plus "^1.0.0" 588 | 589 | glob-base@^0.3.0: 590 | version "0.3.0" 591 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 592 | dependencies: 593 | glob-parent "^2.0.0" 594 | is-glob "^2.0.0" 595 | 596 | glob-parent@^2.0.0: 597 | version "2.0.0" 598 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 599 | dependencies: 600 | is-glob "^2.0.0" 601 | 602 | glob@^7.0.5: 603 | version "7.1.1" 604 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" 605 | dependencies: 606 | fs.realpath "^1.0.0" 607 | inflight "^1.0.4" 608 | inherits "2" 609 | minimatch "^3.0.2" 610 | once "^1.3.0" 611 | path-is-absolute "^1.0.0" 612 | 613 | got@^3.2.0: 614 | version "3.3.1" 615 | resolved "https://registry.yarnpkg.com/got/-/got-3.3.1.tgz#e5d0ed4af55fc3eef4d56007769d98192bcb2eca" 616 | dependencies: 617 | duplexify "^3.2.0" 618 | infinity-agent "^2.0.0" 619 | is-redirect "^1.0.0" 620 | is-stream "^1.0.0" 621 | lowercase-keys "^1.0.0" 622 | nested-error-stacks "^1.0.0" 623 | object-assign "^3.0.0" 624 | prepend-http "^1.0.0" 625 | read-all-stream "^3.0.0" 626 | timed-out "^2.0.0" 627 | 628 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 629 | version "4.1.11" 630 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 631 | 632 | har-schema@^1.0.5: 633 | version "1.0.5" 634 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" 635 | 636 | har-validator@~4.2.1: 637 | version "4.2.1" 638 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" 639 | dependencies: 640 | ajv "^4.9.1" 641 | har-schema "^1.0.5" 642 | 643 | has-ansi@^2.0.0: 644 | version "2.0.0" 645 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 646 | dependencies: 647 | ansi-regex "^2.0.0" 648 | 649 | has-unicode@^2.0.0: 650 | version "2.0.1" 651 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 652 | 653 | hawk@~3.1.3: 654 | version "3.1.3" 655 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 656 | dependencies: 657 | boom "2.x.x" 658 | cryptiles "2.x.x" 659 | hoek "2.x.x" 660 | sntp "1.x.x" 661 | 662 | hoek@2.x.x: 663 | version "2.16.3" 664 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 665 | 666 | hooks-fixed@2.0.0: 667 | version "2.0.0" 668 | resolved "https://registry.yarnpkg.com/hooks-fixed/-/hooks-fixed-2.0.0.tgz#a01d894d52ac7f6599bbb1f63dfc9c411df70cba" 669 | 670 | http-errors@~1.6.1: 671 | version "1.6.1" 672 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.1.tgz#5f8b8ed98aca545656bf572997387f904a722257" 673 | dependencies: 674 | depd "1.1.0" 675 | inherits "2.0.3" 676 | setprototypeof "1.0.3" 677 | statuses ">= 1.3.1 < 2" 678 | 679 | http-signature@~1.1.0: 680 | version "1.1.1" 681 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 682 | dependencies: 683 | assert-plus "^0.2.0" 684 | jsprim "^1.2.2" 685 | sshpk "^1.7.0" 686 | 687 | iconv-lite@0.4.15: 688 | version "0.4.15" 689 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" 690 | 691 | ignore-by-default@^1.0.0: 692 | version "1.0.1" 693 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 694 | 695 | imurmurhash@^0.1.4: 696 | version "0.1.4" 697 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 698 | 699 | infinity-agent@^2.0.0: 700 | version "2.0.3" 701 | resolved "https://registry.yarnpkg.com/infinity-agent/-/infinity-agent-2.0.3.tgz#45e0e2ff7a9eb030b27d62b74b3744b7a7ac4216" 702 | 703 | inflight@^1.0.4: 704 | version "1.0.6" 705 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 706 | dependencies: 707 | once "^1.3.0" 708 | wrappy "1" 709 | 710 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1: 711 | version "2.0.3" 712 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 713 | 714 | ini@~1.3.0: 715 | version "1.3.4" 716 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" 717 | 718 | ipaddr.js@1.3.0: 719 | version "1.3.0" 720 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.3.0.tgz#1e03a52fdad83a8bbb2b25cbf4998b4cffcd3dec" 721 | 722 | is-binary-path@^1.0.0: 723 | version "1.0.1" 724 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 725 | dependencies: 726 | binary-extensions "^1.0.0" 727 | 728 | is-buffer@^1.1.5: 729 | version "1.1.5" 730 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" 731 | 732 | is-dotfile@^1.0.0: 733 | version "1.0.2" 734 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" 735 | 736 | is-equal-shallow@^0.1.3: 737 | version "0.1.3" 738 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 739 | dependencies: 740 | is-primitive "^2.0.0" 741 | 742 | is-extendable@^0.1.1: 743 | version "0.1.1" 744 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 745 | 746 | is-extglob@^1.0.0: 747 | version "1.0.0" 748 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 749 | 750 | is-finite@^1.0.0: 751 | version "1.0.2" 752 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 753 | dependencies: 754 | number-is-nan "^1.0.0" 755 | 756 | is-fullwidth-code-point@^1.0.0: 757 | version "1.0.0" 758 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 759 | dependencies: 760 | number-is-nan "^1.0.0" 761 | 762 | is-glob@^2.0.0, is-glob@^2.0.1: 763 | version "2.0.1" 764 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 765 | dependencies: 766 | is-extglob "^1.0.0" 767 | 768 | is-npm@^1.0.0: 769 | version "1.0.0" 770 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 771 | 772 | is-number@^2.0.2, is-number@^2.1.0: 773 | version "2.1.0" 774 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 775 | dependencies: 776 | kind-of "^3.0.2" 777 | 778 | is-posix-bracket@^0.1.0: 779 | version "0.1.1" 780 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 781 | 782 | is-primitive@^2.0.0: 783 | version "2.0.0" 784 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 785 | 786 | is-redirect@^1.0.0: 787 | version "1.0.0" 788 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 789 | 790 | is-stream@^1.0.0: 791 | version "1.1.0" 792 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 793 | 794 | is-typedarray@~1.0.0: 795 | version "1.0.0" 796 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 797 | 798 | isarray@1.0.0, isarray@~1.0.0: 799 | version "1.0.0" 800 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 801 | 802 | isobject@^2.0.0: 803 | version "2.1.0" 804 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 805 | dependencies: 806 | isarray "1.0.0" 807 | 808 | isstream@~0.1.2: 809 | version "0.1.2" 810 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 811 | 812 | jodid25519@^1.0.0: 813 | version "1.0.2" 814 | resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" 815 | dependencies: 816 | jsbn "~0.1.0" 817 | 818 | jsbn@~0.1.0: 819 | version "0.1.1" 820 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 821 | 822 | json-schema@0.2.3: 823 | version "0.2.3" 824 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 825 | 826 | json-stable-stringify@^1.0.1: 827 | version "1.0.1" 828 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 829 | dependencies: 830 | jsonify "~0.0.0" 831 | 832 | json-stringify-safe@~5.0.1: 833 | version "5.0.1" 834 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 835 | 836 | jsonify@~0.0.0: 837 | version "0.0.0" 838 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 839 | 840 | jsprim@^1.2.2: 841 | version "1.4.0" 842 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" 843 | dependencies: 844 | assert-plus "1.0.0" 845 | extsprintf "1.0.2" 846 | json-schema "0.2.3" 847 | verror "1.3.6" 848 | 849 | kareem@1.4.1: 850 | version "1.4.1" 851 | resolved "https://registry.yarnpkg.com/kareem/-/kareem-1.4.1.tgz#ed76200044fa041ef32b4da8261e2553f1173531" 852 | 853 | kind-of@^3.0.2: 854 | version "3.2.0" 855 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07" 856 | dependencies: 857 | is-buffer "^1.1.5" 858 | 859 | latest-version@^1.0.0: 860 | version "1.0.1" 861 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-1.0.1.tgz#72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb" 862 | dependencies: 863 | package-json "^1.0.0" 864 | 865 | lodash._baseassign@^3.0.0: 866 | version "3.2.0" 867 | resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" 868 | dependencies: 869 | lodash._basecopy "^3.0.0" 870 | lodash.keys "^3.0.0" 871 | 872 | lodash._basecopy@^3.0.0: 873 | version "3.0.1" 874 | resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" 875 | 876 | lodash._bindcallback@^3.0.0: 877 | version "3.0.1" 878 | resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" 879 | 880 | lodash._createassigner@^3.0.0: 881 | version "3.1.1" 882 | resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" 883 | dependencies: 884 | lodash._bindcallback "^3.0.0" 885 | lodash._isiterateecall "^3.0.0" 886 | lodash.restparam "^3.0.0" 887 | 888 | lodash._getnative@^3.0.0: 889 | version "3.9.1" 890 | resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" 891 | 892 | lodash._isiterateecall@^3.0.0: 893 | version "3.0.9" 894 | resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" 895 | 896 | lodash.assign@^3.0.0: 897 | version "3.2.0" 898 | resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" 899 | dependencies: 900 | lodash._baseassign "^3.0.0" 901 | lodash._createassigner "^3.0.0" 902 | lodash.keys "^3.0.0" 903 | 904 | lodash.defaults@^3.1.2: 905 | version "3.1.2" 906 | resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c" 907 | dependencies: 908 | lodash.assign "^3.0.0" 909 | lodash.restparam "^3.0.0" 910 | 911 | lodash.isarguments@^3.0.0: 912 | version "3.1.0" 913 | resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" 914 | 915 | lodash.isarray@^3.0.0: 916 | version "3.0.4" 917 | resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" 918 | 919 | lodash.keys@^3.0.0: 920 | version "3.1.2" 921 | resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" 922 | dependencies: 923 | lodash._getnative "^3.0.0" 924 | lodash.isarguments "^3.0.0" 925 | lodash.isarray "^3.0.0" 926 | 927 | lodash.restparam@^3.0.0: 928 | version "3.6.1" 929 | resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" 930 | 931 | lodash@^4.14.0: 932 | version "4.17.4" 933 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 934 | 935 | lowercase-keys@^1.0.0: 936 | version "1.0.0" 937 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" 938 | 939 | map-stream@~0.1.0: 940 | version "0.1.0" 941 | resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" 942 | 943 | media-typer@0.3.0: 944 | version "0.3.0" 945 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 946 | 947 | merge-descriptors@1.0.1: 948 | version "1.0.1" 949 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 950 | 951 | methods@~1.1.2: 952 | version "1.1.2" 953 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 954 | 955 | micromatch@^2.1.5: 956 | version "2.3.11" 957 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 958 | dependencies: 959 | arr-diff "^2.0.0" 960 | array-unique "^0.2.1" 961 | braces "^1.8.2" 962 | expand-brackets "^0.1.4" 963 | extglob "^0.3.1" 964 | filename-regex "^2.0.0" 965 | is-extglob "^1.0.0" 966 | is-glob "^2.0.1" 967 | kind-of "^3.0.2" 968 | normalize-path "^2.0.1" 969 | object.omit "^2.0.0" 970 | parse-glob "^3.0.4" 971 | regex-cache "^0.4.2" 972 | 973 | mime-db@~1.27.0: 974 | version "1.27.0" 975 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" 976 | 977 | mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7: 978 | version "2.1.15" 979 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" 980 | dependencies: 981 | mime-db "~1.27.0" 982 | 983 | mime@1.3.4: 984 | version "1.3.4" 985 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" 986 | 987 | minimatch@^3.0.0, minimatch@^3.0.2: 988 | version "3.0.4" 989 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 990 | dependencies: 991 | brace-expansion "^1.1.7" 992 | 993 | minimist@0.0.8: 994 | version "0.0.8" 995 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 996 | 997 | minimist@^1.2.0: 998 | version "1.2.0" 999 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1000 | 1001 | "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@~0.5.1: 1002 | version "0.5.1" 1003 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1004 | dependencies: 1005 | minimist "0.0.8" 1006 | 1007 | mongodb-core@2.1.10: 1008 | version "2.1.10" 1009 | resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-2.1.10.tgz#eb290681d196d3346a492161aa2ea0905e63151b" 1010 | dependencies: 1011 | bson "~1.0.4" 1012 | require_optional "~1.0.0" 1013 | 1014 | mongodb@2.2.26, "mongodb@>= 1.2.0 <3.0.0": 1015 | version "2.2.26" 1016 | resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-2.2.26.tgz#1bd50c557c277c98e1a05da38c9839c4922b034a" 1017 | dependencies: 1018 | es6-promise "3.2.1" 1019 | mongodb-core "2.1.10" 1020 | readable-stream "2.2.7" 1021 | 1022 | mongoose@^4.9.8: 1023 | version "4.9.8" 1024 | resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-4.9.8.tgz#ef64304231dc2455ab15a0c0cb6c149ce8c787bb" 1025 | dependencies: 1026 | async "2.1.4" 1027 | bson "~1.0.4" 1028 | hooks-fixed "2.0.0" 1029 | kareem "1.4.1" 1030 | mongodb "2.2.26" 1031 | mpath "0.2.1" 1032 | mpromise "0.5.5" 1033 | mquery "2.3.0" 1034 | ms "0.7.2" 1035 | muri "1.2.1" 1036 | regexp-clone "0.0.1" 1037 | sliced "1.0.1" 1038 | 1039 | mpath@0.2.1: 1040 | version "0.2.1" 1041 | resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.2.1.tgz#3a4e829359801de96309c27a6b2e102e89f9e96e" 1042 | 1043 | mpromise@0.5.5: 1044 | version "0.5.5" 1045 | resolved "https://registry.yarnpkg.com/mpromise/-/mpromise-0.5.5.tgz#f5b24259d763acc2257b0a0c8c6d866fd51732e6" 1046 | 1047 | mquery@2.3.0: 1048 | version "2.3.0" 1049 | resolved "https://registry.yarnpkg.com/mquery/-/mquery-2.3.0.tgz#3d1717ad8958d0c99e42ea2461a109f3e5f3e458" 1050 | dependencies: 1051 | bluebird "2.10.2" 1052 | debug "2.2.0" 1053 | regexp-clone "0.0.1" 1054 | sliced "0.0.5" 1055 | 1056 | ms@0.7.1: 1057 | version "0.7.1" 1058 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" 1059 | 1060 | ms@0.7.2: 1061 | version "0.7.2" 1062 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" 1063 | 1064 | ms@0.7.3: 1065 | version "0.7.3" 1066 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" 1067 | 1068 | muri@1.2.1: 1069 | version "1.2.1" 1070 | resolved "https://registry.yarnpkg.com/muri/-/muri-1.2.1.tgz#ec7ea5ce6ca6a523eb1ab35bacda5fa816c9aa3c" 1071 | 1072 | nan@2.5.0, nan@^2.3.0: 1073 | version "2.5.0" 1074 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.0.tgz#aa8f1e34531d807e9e27755b234b4a6ec0c152a8" 1075 | 1076 | negotiator@0.6.1: 1077 | version "0.6.1" 1078 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 1079 | 1080 | nested-error-stacks@^1.0.0: 1081 | version "1.0.2" 1082 | resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz#19f619591519f096769a5ba9a86e6eeec823c3cf" 1083 | dependencies: 1084 | inherits "~2.0.1" 1085 | 1086 | node-pre-gyp@0.6.32, node-pre-gyp@^0.6.29: 1087 | version "0.6.32" 1088 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz#fc452b376e7319b3d255f5f34853ef6fd8fe1fd5" 1089 | dependencies: 1090 | mkdirp "~0.5.1" 1091 | nopt "~3.0.6" 1092 | npmlog "^4.0.1" 1093 | rc "~1.1.6" 1094 | request "^2.79.0" 1095 | rimraf "~2.5.4" 1096 | semver "~5.3.0" 1097 | tar "~2.2.1" 1098 | tar-pack "~3.3.0" 1099 | 1100 | nodemon@^1.11.0: 1101 | version "1.11.0" 1102 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.11.0.tgz#226c562bd2a7b13d3d7518b49ad4828a3623d06c" 1103 | dependencies: 1104 | chokidar "^1.4.3" 1105 | debug "^2.2.0" 1106 | es6-promise "^3.0.2" 1107 | ignore-by-default "^1.0.0" 1108 | lodash.defaults "^3.1.2" 1109 | minimatch "^3.0.0" 1110 | ps-tree "^1.0.1" 1111 | touch "1.0.0" 1112 | undefsafe "0.0.3" 1113 | update-notifier "0.5.0" 1114 | 1115 | nopt@~1.0.10: 1116 | version "1.0.10" 1117 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 1118 | dependencies: 1119 | abbrev "1" 1120 | 1121 | nopt@~3.0.6: 1122 | version "3.0.6" 1123 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" 1124 | dependencies: 1125 | abbrev "1" 1126 | 1127 | normalize-path@^2.0.1: 1128 | version "2.1.1" 1129 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 1130 | dependencies: 1131 | remove-trailing-separator "^1.0.1" 1132 | 1133 | npmlog@^4.0.1: 1134 | version "4.1.0" 1135 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5" 1136 | dependencies: 1137 | are-we-there-yet "~1.1.2" 1138 | console-control-strings "~1.1.0" 1139 | gauge "~2.7.3" 1140 | set-blocking "~2.0.0" 1141 | 1142 | number-is-nan@^1.0.0: 1143 | version "1.0.1" 1144 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1145 | 1146 | oauth-sign@~0.8.1: 1147 | version "0.8.2" 1148 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 1149 | 1150 | object-assign@^3.0.0: 1151 | version "3.0.0" 1152 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" 1153 | 1154 | object-assign@^4.0.1, object-assign@^4.1.0: 1155 | version "4.1.1" 1156 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1157 | 1158 | object.omit@^2.0.0: 1159 | version "2.0.1" 1160 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 1161 | dependencies: 1162 | for-own "^0.1.4" 1163 | is-extendable "^0.1.1" 1164 | 1165 | on-finished@~2.3.0: 1166 | version "2.3.0" 1167 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 1168 | dependencies: 1169 | ee-first "1.1.1" 1170 | 1171 | on-headers@~1.0.1: 1172 | version "1.0.1" 1173 | resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" 1174 | 1175 | once@^1.3.0, once@~1.3.0, once@~1.3.3: 1176 | version "1.3.3" 1177 | resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" 1178 | dependencies: 1179 | wrappy "1" 1180 | 1181 | os-homedir@^1.0.0: 1182 | version "1.0.2" 1183 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1184 | 1185 | os-tmpdir@^1.0.0: 1186 | version "1.0.2" 1187 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1188 | 1189 | osenv@^0.1.0: 1190 | version "0.1.4" 1191 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" 1192 | dependencies: 1193 | os-homedir "^1.0.0" 1194 | os-tmpdir "^1.0.0" 1195 | 1196 | package-json@^1.0.0: 1197 | version "1.2.0" 1198 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-1.2.0.tgz#c8ecac094227cdf76a316874ed05e27cc939a0e0" 1199 | dependencies: 1200 | got "^3.2.0" 1201 | registry-url "^3.0.0" 1202 | 1203 | parse-glob@^3.0.4: 1204 | version "3.0.4" 1205 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 1206 | dependencies: 1207 | glob-base "^0.3.0" 1208 | is-dotfile "^1.0.0" 1209 | is-extglob "^1.0.0" 1210 | is-glob "^2.0.0" 1211 | 1212 | parseurl@~1.3.1: 1213 | version "1.3.1" 1214 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" 1215 | 1216 | path-is-absolute@^1.0.0: 1217 | version "1.0.1" 1218 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1219 | 1220 | path-to-regexp@0.1.7: 1221 | version "0.1.7" 1222 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 1223 | 1224 | pause-stream@0.0.11: 1225 | version "0.0.11" 1226 | resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" 1227 | dependencies: 1228 | through "~2.3" 1229 | 1230 | performance-now@^0.2.0: 1231 | version "0.2.0" 1232 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" 1233 | 1234 | pinkie-promise@^2.0.0: 1235 | version "2.0.1" 1236 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1237 | dependencies: 1238 | pinkie "^2.0.0" 1239 | 1240 | pinkie@^2.0.0: 1241 | version "2.0.4" 1242 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1243 | 1244 | prepend-http@^1.0.0: 1245 | version "1.0.4" 1246 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 1247 | 1248 | preserve@^0.2.0: 1249 | version "0.2.0" 1250 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 1251 | 1252 | process-nextick-args@~1.0.6: 1253 | version "1.0.7" 1254 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 1255 | 1256 | proxy-addr@~1.1.3: 1257 | version "1.1.4" 1258 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.4.tgz#27e545f6960a44a627d9b44467e35c1b6b4ce2f3" 1259 | dependencies: 1260 | forwarded "~0.1.0" 1261 | ipaddr.js "1.3.0" 1262 | 1263 | ps-tree@^1.0.1: 1264 | version "1.1.0" 1265 | resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" 1266 | dependencies: 1267 | event-stream "~3.3.0" 1268 | 1269 | punycode@^1.4.1: 1270 | version "1.4.1" 1271 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 1272 | 1273 | qs@6.4.0, qs@~6.4.0: 1274 | version "6.4.0" 1275 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" 1276 | 1277 | random-bytes@~1.0.0: 1278 | version "1.0.0" 1279 | resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" 1280 | 1281 | randomatic@^1.1.3: 1282 | version "1.1.6" 1283 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" 1284 | dependencies: 1285 | is-number "^2.0.2" 1286 | kind-of "^3.0.2" 1287 | 1288 | range-parser@~1.2.0: 1289 | version "1.2.0" 1290 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 1291 | 1292 | raw-body@~2.2.0: 1293 | version "2.2.0" 1294 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.2.0.tgz#994976cf6a5096a41162840492f0bdc5d6e7fb96" 1295 | dependencies: 1296 | bytes "2.4.0" 1297 | iconv-lite "0.4.15" 1298 | unpipe "1.0.0" 1299 | 1300 | rc@^1.0.1, rc@~1.1.6: 1301 | version "1.1.7" 1302 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.7.tgz#c5ea564bb07aff9fd3a5b32e906c1d3a65940fea" 1303 | dependencies: 1304 | deep-extend "~0.4.0" 1305 | ini "~1.3.0" 1306 | minimist "^1.2.0" 1307 | strip-json-comments "~2.0.1" 1308 | 1309 | read-all-stream@^3.0.0: 1310 | version "3.1.0" 1311 | resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" 1312 | dependencies: 1313 | pinkie-promise "^2.0.0" 1314 | readable-stream "^2.0.0" 1315 | 1316 | readable-stream@2.2.7, readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.6: 1317 | version "2.2.7" 1318 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.7.tgz#07057acbe2467b22042d36f98c5ad507054e95b1" 1319 | dependencies: 1320 | buffer-shims "~1.0.0" 1321 | core-util-is "~1.0.0" 1322 | inherits "~2.0.1" 1323 | isarray "~1.0.0" 1324 | process-nextick-args "~1.0.6" 1325 | string_decoder "~1.0.0" 1326 | util-deprecate "~1.0.1" 1327 | 1328 | readable-stream@~2.1.4: 1329 | version "2.1.5" 1330 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" 1331 | dependencies: 1332 | buffer-shims "^1.0.0" 1333 | core-util-is "~1.0.0" 1334 | inherits "~2.0.1" 1335 | isarray "~1.0.0" 1336 | process-nextick-args "~1.0.6" 1337 | string_decoder "~0.10.x" 1338 | util-deprecate "~1.0.1" 1339 | 1340 | readdirp@^2.0.0: 1341 | version "2.1.0" 1342 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 1343 | dependencies: 1344 | graceful-fs "^4.1.2" 1345 | minimatch "^3.0.2" 1346 | readable-stream "^2.0.2" 1347 | set-immediate-shim "^1.0.1" 1348 | 1349 | regex-cache@^0.4.2: 1350 | version "0.4.3" 1351 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" 1352 | dependencies: 1353 | is-equal-shallow "^0.1.3" 1354 | is-primitive "^2.0.0" 1355 | 1356 | regexp-clone@0.0.1: 1357 | version "0.0.1" 1358 | resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-0.0.1.tgz#a7c2e09891fdbf38fbb10d376fb73003e68ac589" 1359 | 1360 | registry-url@^3.0.0: 1361 | version "3.1.0" 1362 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 1363 | dependencies: 1364 | rc "^1.0.1" 1365 | 1366 | remove-trailing-separator@^1.0.1: 1367 | version "1.0.1" 1368 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" 1369 | 1370 | repeat-element@^1.1.2: 1371 | version "1.1.2" 1372 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 1373 | 1374 | repeat-string@^1.5.2: 1375 | version "1.6.1" 1376 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 1377 | 1378 | repeating@^1.1.2: 1379 | version "1.1.3" 1380 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-1.1.3.tgz#3d4114218877537494f97f77f9785fab810fa4ac" 1381 | dependencies: 1382 | is-finite "^1.0.0" 1383 | 1384 | request@^2.79.0: 1385 | version "2.81.0" 1386 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" 1387 | dependencies: 1388 | aws-sign2 "~0.6.0" 1389 | aws4 "^1.2.1" 1390 | caseless "~0.12.0" 1391 | combined-stream "~1.0.5" 1392 | extend "~3.0.0" 1393 | forever-agent "~0.6.1" 1394 | form-data "~2.1.1" 1395 | har-validator "~4.2.1" 1396 | hawk "~3.1.3" 1397 | http-signature "~1.1.0" 1398 | is-typedarray "~1.0.0" 1399 | isstream "~0.1.2" 1400 | json-stringify-safe "~5.0.1" 1401 | mime-types "~2.1.7" 1402 | oauth-sign "~0.8.1" 1403 | performance-now "^0.2.0" 1404 | qs "~6.4.0" 1405 | safe-buffer "^5.0.1" 1406 | stringstream "~0.0.4" 1407 | tough-cookie "~2.3.0" 1408 | tunnel-agent "^0.6.0" 1409 | uuid "^3.0.0" 1410 | 1411 | require_optional@~1.0.0: 1412 | version "1.0.0" 1413 | resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.0.tgz#52a86137a849728eb60a55533617f8f914f59abf" 1414 | dependencies: 1415 | resolve-from "^2.0.0" 1416 | semver "^5.1.0" 1417 | 1418 | resolve-from@^2.0.0: 1419 | version "2.0.0" 1420 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" 1421 | 1422 | rimraf@2, rimraf@~2.5.1, rimraf@~2.5.4: 1423 | version "2.5.4" 1424 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" 1425 | dependencies: 1426 | glob "^7.0.5" 1427 | 1428 | safe-buffer@^5.0.1: 1429 | version "5.0.1" 1430 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" 1431 | 1432 | semver-diff@^2.0.0: 1433 | version "2.1.0" 1434 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 1435 | dependencies: 1436 | semver "^5.0.3" 1437 | 1438 | semver@^5.0.3, semver@^5.1.0, semver@~5.3.0: 1439 | version "5.3.0" 1440 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" 1441 | 1442 | send@0.15.1: 1443 | version "0.15.1" 1444 | resolved "https://registry.yarnpkg.com/send/-/send-0.15.1.tgz#8a02354c26e6f5cca700065f5f0cdeba90ec7b5f" 1445 | dependencies: 1446 | debug "2.6.1" 1447 | depd "~1.1.0" 1448 | destroy "~1.0.4" 1449 | encodeurl "~1.0.1" 1450 | escape-html "~1.0.3" 1451 | etag "~1.8.0" 1452 | fresh "0.5.0" 1453 | http-errors "~1.6.1" 1454 | mime "1.3.4" 1455 | ms "0.7.2" 1456 | on-finished "~2.3.0" 1457 | range-parser "~1.2.0" 1458 | statuses "~1.3.1" 1459 | 1460 | serve-static@1.12.1: 1461 | version "1.12.1" 1462 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.1.tgz#7443a965e3ced647aceb5639fa06bf4d1bbe0039" 1463 | dependencies: 1464 | encodeurl "~1.0.1" 1465 | escape-html "~1.0.3" 1466 | parseurl "~1.3.1" 1467 | send "0.15.1" 1468 | 1469 | set-blocking@~2.0.0: 1470 | version "2.0.0" 1471 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1472 | 1473 | set-immediate-shim@^1.0.1: 1474 | version "1.0.1" 1475 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 1476 | 1477 | setprototypeof@1.0.3: 1478 | version "1.0.3" 1479 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 1480 | 1481 | signal-exit@^3.0.0: 1482 | version "3.0.2" 1483 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1484 | 1485 | sliced@0.0.5: 1486 | version "0.0.5" 1487 | resolved "https://registry.yarnpkg.com/sliced/-/sliced-0.0.5.tgz#5edc044ca4eb6f7816d50ba2fc63e25d8fe4707f" 1488 | 1489 | sliced@1.0.1: 1490 | version "1.0.1" 1491 | resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" 1492 | 1493 | slide@^1.1.5: 1494 | version "1.1.6" 1495 | resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" 1496 | 1497 | sntp@1.x.x: 1498 | version "1.0.9" 1499 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 1500 | dependencies: 1501 | hoek "2.x.x" 1502 | 1503 | split@0.3: 1504 | version "0.3.3" 1505 | resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" 1506 | dependencies: 1507 | through "2" 1508 | 1509 | sshpk@^1.7.0: 1510 | version "1.13.0" 1511 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" 1512 | dependencies: 1513 | asn1 "~0.2.3" 1514 | assert-plus "^1.0.0" 1515 | dashdash "^1.12.0" 1516 | getpass "^0.1.1" 1517 | optionalDependencies: 1518 | bcrypt-pbkdf "^1.0.0" 1519 | ecc-jsbn "~0.1.1" 1520 | jodid25519 "^1.0.0" 1521 | jsbn "~0.1.0" 1522 | tweetnacl "~0.14.0" 1523 | 1524 | "statuses@>= 1.3.1 < 2", statuses@~1.3.1: 1525 | version "1.3.1" 1526 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" 1527 | 1528 | stream-combiner@~0.0.4: 1529 | version "0.0.4" 1530 | resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" 1531 | dependencies: 1532 | duplexer "~0.1.1" 1533 | 1534 | stream-shift@^1.0.0: 1535 | version "1.0.0" 1536 | resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" 1537 | 1538 | string-length@^1.0.0: 1539 | version "1.0.1" 1540 | resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" 1541 | dependencies: 1542 | strip-ansi "^3.0.0" 1543 | 1544 | string-width@^1.0.1, string-width@^1.0.2: 1545 | version "1.0.2" 1546 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1547 | dependencies: 1548 | code-point-at "^1.0.0" 1549 | is-fullwidth-code-point "^1.0.0" 1550 | strip-ansi "^3.0.0" 1551 | 1552 | string_decoder@~0.10.x: 1553 | version "0.10.31" 1554 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 1555 | 1556 | string_decoder@~1.0.0: 1557 | version "1.0.0" 1558 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667" 1559 | dependencies: 1560 | buffer-shims "~1.0.0" 1561 | 1562 | stringstream@~0.0.4: 1563 | version "0.0.5" 1564 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 1565 | 1566 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1567 | version "3.0.1" 1568 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1569 | dependencies: 1570 | ansi-regex "^2.0.0" 1571 | 1572 | strip-json-comments@~2.0.1: 1573 | version "2.0.1" 1574 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1575 | 1576 | supports-color@^2.0.0: 1577 | version "2.0.0" 1578 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1579 | 1580 | tar-pack@~3.3.0: 1581 | version "3.3.0" 1582 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" 1583 | dependencies: 1584 | debug "~2.2.0" 1585 | fstream "~1.0.10" 1586 | fstream-ignore "~1.0.5" 1587 | once "~1.3.3" 1588 | readable-stream "~2.1.4" 1589 | rimraf "~2.5.1" 1590 | tar "~2.2.1" 1591 | uid-number "~0.0.6" 1592 | 1593 | tar@~2.2.1: 1594 | version "2.2.1" 1595 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 1596 | dependencies: 1597 | block-stream "*" 1598 | fstream "^1.0.2" 1599 | inherits "2" 1600 | 1601 | through@2, through@~2.3, through@~2.3.1: 1602 | version "2.3.8" 1603 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1604 | 1605 | timed-out@^2.0.0: 1606 | version "2.0.0" 1607 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-2.0.0.tgz#f38b0ae81d3747d628001f41dafc652ace671c0a" 1608 | 1609 | touch@1.0.0: 1610 | version "1.0.0" 1611 | resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de" 1612 | dependencies: 1613 | nopt "~1.0.10" 1614 | 1615 | tough-cookie@~2.3.0: 1616 | version "2.3.2" 1617 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" 1618 | dependencies: 1619 | punycode "^1.4.1" 1620 | 1621 | tunnel-agent@^0.6.0: 1622 | version "0.6.0" 1623 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 1624 | dependencies: 1625 | safe-buffer "^5.0.1" 1626 | 1627 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 1628 | version "0.14.5" 1629 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 1630 | 1631 | type-is@~1.6.14: 1632 | version "1.6.15" 1633 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" 1634 | dependencies: 1635 | media-typer "0.3.0" 1636 | mime-types "~2.1.15" 1637 | 1638 | uid-number@~0.0.6: 1639 | version "0.0.6" 1640 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" 1641 | 1642 | uid-safe@~2.1.4: 1643 | version "2.1.4" 1644 | resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.4.tgz#3ad6f38368c6d4c8c75ec17623fb79aa1d071d81" 1645 | dependencies: 1646 | random-bytes "~1.0.0" 1647 | 1648 | undefsafe@0.0.3: 1649 | version "0.0.3" 1650 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f" 1651 | 1652 | unpipe@1.0.0, unpipe@~1.0.0: 1653 | version "1.0.0" 1654 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1655 | 1656 | update-notifier@0.5.0: 1657 | version "0.5.0" 1658 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-0.5.0.tgz#07b5dc2066b3627ab3b4f530130f7eddda07a4cc" 1659 | dependencies: 1660 | chalk "^1.0.0" 1661 | configstore "^1.0.0" 1662 | is-npm "^1.0.0" 1663 | latest-version "^1.0.0" 1664 | repeating "^1.1.2" 1665 | semver-diff "^2.0.0" 1666 | string-length "^1.0.0" 1667 | 1668 | util-deprecate@~1.0.1: 1669 | version "1.0.2" 1670 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1671 | 1672 | utils-merge@1.0.0: 1673 | version "1.0.0" 1674 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" 1675 | 1676 | uuid@^2.0.1: 1677 | version "2.0.3" 1678 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" 1679 | 1680 | uuid@^3.0.0: 1681 | version "3.0.1" 1682 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" 1683 | 1684 | vary@~1.1.0: 1685 | version "1.1.1" 1686 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" 1687 | 1688 | verror@1.3.6: 1689 | version "1.3.6" 1690 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" 1691 | dependencies: 1692 | extsprintf "1.0.2" 1693 | 1694 | wide-align@^1.1.0: 1695 | version "1.1.2" 1696 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" 1697 | dependencies: 1698 | string-width "^1.0.2" 1699 | 1700 | wrappy@1: 1701 | version "1.0.2" 1702 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1703 | 1704 | write-file-atomic@^1.1.2: 1705 | version "1.3.4" 1706 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" 1707 | dependencies: 1708 | graceful-fs "^4.1.11" 1709 | imurmurhash "^0.1.4" 1710 | slide "^1.1.5" 1711 | 1712 | xdg-basedir@^2.0.0: 1713 | version "2.0.0" 1714 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" 1715 | dependencies: 1716 | os-homedir "^1.0.0" 1717 | --------------------------------------------------------------------------------