diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..ecd42f3 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,84 @@ +{ + "plugins": [ + "react", + "react-redux", + "import" + ], + "parserOptions": { + "ecmaVersion": 2017, + "sourceType": "module", + "ecmaFeatures": { + "jsx": true + } + }, + "env": { + "es6": true, + "browser": true, + "node": true, + "mocha": true + }, + "extends": [ + "eslint:recommended", + "plugin:react/recommended", + "plugin:react-redux/recommended", + "plugin:import/errors", + "plugin:import/warnings" + ], + "rules": { + "eol-last": [ + "error", + "always" + ], + "import/named": 2, + "indent": [ + "error", + 2 + ], + "keyword-spacing": [ + "error", + { + "before": true, + "after": true + } + ], + "no-console": "off", + "no-case-declarations": "off", + "no-var": "error", + "no-trailing-spaces": "error", + "quotes": [ + 2, + "single" + ], + "semi": [ + "error", + "always" + ], + "space-before-function-paren": [ + "error", + { + "anonymous": "never", + "named": "never", + "asyncArrow": "always" + } + ], + "react/jsx-no-undef": 1, + "react/jsx-no-bind": [ + 2, + { + "allowArrowFunctions": true + } + ], + "react/jsx-tag-spacing": [ + "error", + { + "closingSlash": "never", + "beforeSelfClosing": "always", + "afterOpening": "never", + "beforeClosing": "allow" + } + ], + "react/prop-types": "off", + "react-redux/mapStateToProps-no-store": "off", + "react-redux/prefer-separate-component-file": "off" + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2390648..d643c29 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,6 @@ bundle.js # see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git node_modules bower_components + +#webstorm +.idea/ \ No newline at end of file diff --git a/APIhelper/eventbrite.js b/APIhelper/eventbrite.js index d36fc05..07d2376 100644 --- a/APIhelper/eventbrite.js +++ b/APIhelper/eventbrite.js @@ -5,46 +5,46 @@ const moment = require('moment'); let token; if (!process.env.EVENTBRITE) { - const config = require('../config.js'); - token = config.token; + const config = require('../config.js'); + token = config.token; } else { - token = process.env.EVENTBRITE; + token = process.env.EVENTBRITE; } let searchEvents = (query, city, fromDate, toDate, cb) => { - let formattedFromDate; - let formattedToDate; - - if(fromDate.length <= 10 && toDate.length <= 10) { - formattedFromDate = fromDate; - formattedToDate = toDate; - } else { - formattedFromDate = moment(fromDate).format('YYYY-MM-DD'); - formattedToDate = moment(toDate).format('YYYY-MM-DD'); - } - - let params = { - url: `https://www.eventbriteapi.com/v3/events/search/?q=${query}&location.address=${city}&start_date.range_start=${formattedFromDate}T00:00:00&start_date.range_end=${formattedToDate}T23:59:00&sort_by=date`, - headers: { - 'Authorization': `Bearer ${token}` - } - //?expand=name/?token=${token}` - }; - - function callback(error, response, body) { - if(!error && response.statusCode == 200) { - var info = JSON.parse(body); - cb(null, info.events); - } else { - cb(error,null); - console.log('api not working'); - } - } - - - request(params, callback); - -} + let formattedFromDate; + let formattedToDate; + + if (fromDate.length <= 10 && toDate.length <= 10) { + formattedFromDate = fromDate; + formattedToDate = toDate; + } else { + formattedFromDate = moment(fromDate).format('YYYY-MM-DD'); + formattedToDate = moment(toDate).format('YYYY-MM-DD'); + } + + let params = { + url: `https://www.eventbriteapi.com/v3/events/search/?q=${query}&location.address=${city}&start_date.range_start=${formattedFromDate}T00:00:00&start_date.range_end=${formattedToDate}T23:59:00&sort_by=date`, + headers: { + 'Authorization': `Bearer ${token}` + } + //?expand=name/?token=${token}` + }; + + function callback(error, response, body) { + if (!error && response.statusCode == 200) { + const info = JSON.parse(body); + cb(null, info.events); + } else { + cb(error,null); + console.log('api not working'); + } + } + + + request(params, callback); + +}; module.exports.searchEvents = searchEvents; diff --git a/APIhelper/google.js b/APIhelper/google.js new file mode 100644 index 0000000..c340ec9 --- /dev/null +++ b/APIhelper/google.js @@ -0,0 +1,40 @@ +const request = require('request'); +const moment = require('moment'); + + +let token; + +if (!process.env.GOOGLE) { + const config = require('../config.js'); + token = config.googleKey; +} else { + token = process.env.GOOGLE; +} + + +let searchHotels = (/*query, */city,/* fromDate, toDate, */cb) => { + + let params = { + url: `https://maps.googleapis.com/maps/api/place/textsearch/json?query=hotels+in+${city}&key=${token}`, + headers: { + 'key': `${token}` + } + //?expand=name/?token=${token}` + }; + + function callback(error, response, body) { + if (!error && response.statusCode == 200) { + const info = JSON.parse(body); + cb(null, info.results); + } else { + cb(error, null); + console.log('hotel api not working'); + } + } + + + request(params, callback); + +}; + +module.exports.searchHotels = searchHotels; diff --git a/APIhelper/zomatoHelper.js b/APIhelper/zomatoHelper.js index 46a69ff..fbd2a5a 100644 --- a/APIhelper/zomatoHelper.js +++ b/APIhelper/zomatoHelper.js @@ -3,34 +3,34 @@ const request = require('request'); let key; if (!process.env.ZOMATO) { - config = require('../config.js'); + const config = require('../config.js'); key = config.zomatoKey; } else { key = process.env.ZOMATO; } let searchForFoods = ( cityId, searchFood, cb ) => { - + let params = { url: `https://developers.zomato.com/api/v2.1/search?entity_id=${cityId}&entity_type=city&q=${searchFood}&count=25`, headers: { 'user-key': key } - } - - callback = (err, res, body) => { - if(!err && res.statusCode === 200) { - var temp = JSON.parse(body); + }; + + const callback = (err, res, body) => { + if (!err && res.statusCode === 200) { + let temp = JSON.parse(body); cb(null, temp.restaurants); } else { cb(err, null); - console.log('errrrrrrrr, ', err) + console.log('errrrrrrrr, ', err); } - } + }; - request(params, callback) + request(params, callback); -} +}; let searchForCityId = (city, cb) => { @@ -39,19 +39,20 @@ let searchForCityId = (city, cb) => { headers: { 'user-key': key } - } + }; - callback = (err, res, body) => { - if(!err && res.statusCode === 200) { + const callback = (err, res, body) => { + if (!err && res.statusCode === 200) { let temp = JSON.parse(body); - cb(null, temp.location_suggestions[0].id); - } else { - cb(err, null); - console.log('errrrrrr, ', err) + try { + cb(null, temp.location_suggestions[0].id); + } catch (e) { + callback(e, null); + } } - } - request(params, callback) -} + }; + request(params, callback); +}; module.exports.searchForCityId = searchForCityId; module.exports.searchForFoods = searchForFoods; diff --git a/_.editorconfig b/_.editorconfig deleted file mode 100644 index c2cdfb8..0000000 --- a/_.editorconfig +++ /dev/null @@ -1,21 +0,0 @@ -# EditorConfig helps developers define and maintain consistent -# coding styles between different editors and IDEs -# editorconfig.org - -root = true - - -[*] - -# Change these settings to your own preference -indent_style = space -indent_size = 2 - -# We recommend you to keep these unchanged -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.md] -trim_trailing_whitespace = false diff --git a/_.gitattributes b/_.gitattributes deleted file mode 100644 index 176a458..0000000 --- a/_.gitattributes +++ /dev/null @@ -1 +0,0 @@ -* text=auto diff --git a/_.jshintrc b/_.jshintrc deleted file mode 100644 index da64b6e..0000000 --- a/_.jshintrc +++ /dev/null @@ -1,21 +0,0 @@ -{ - "node": true, - "esnext": true, - "bitwise": true, - "camelcase": true, - "curly": true, - "eqeqeq": true, - "immed": true, - "indent": 2, - "latedef": true, - "newcap": true, - "noarg": true, - "quotmark": "single", - "regexp": true, - "undef": true, - "unused": true, - "strict": true, - "trailing": true, - "smarttabs": true, - "white": true -} diff --git a/_.travis.yml b/_.travis.yml deleted file mode 100644 index b9207e5..0000000 --- a/_.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - '0.8' - - '0.10' diff --git a/_PRESS-RELEASE.md b/_PRESS-RELEASE.md deleted file mode 100644 index 21aed8e..0000000 --- a/_PRESS-RELEASE.md +++ /dev/null @@ -1,44 +0,0 @@ -# Project Name # - - - -## Heading ## - > Name the product in a way the reader (i.e. your target customers) will understand. - -## Sub-Heading ## - > Describe who the market for the product is and what benefit they get. One sentence only underneath the title. - -## Summary ## - > Give a summary of the product and the benefit. Assume the reader will not read anything else so make this paragraph good. - -## Problem ## - > Describe the problem your product solves. - -## Solution ## - > Describe how your product elegantly solves the problem. - -## Quote from You ## - > A quote from a spokesperson in your company. - -## How to Get Started ## - > Describe how easy it is to get started. - -## Customer Quote ## - > Provide a quote from a hypothetical customer that describes how they experienced the benefit. - -## Closing and Call to Action ## - > Wrap it up and give pointers where the reader should go next. diff --git a/_STYLE-GUIDE.md b/_STYLE-GUIDE.md deleted file mode 100644 index 7fd5d6f..0000000 --- a/_STYLE-GUIDE.md +++ /dev/null @@ -1,380 +0,0 @@ -### Indentation - -When writing any block of code that is logically subordinate to the line immediately before and after it, that block should be indented two spaces more than the surrounding lines - -* Do not put any tab characters anywhere in your code. You would do best to stop pressing the tab key entirely. -* Increase the indent level for all blocks by two extra spaces - * When a line opens a block, the next line starts 2 spaces further in than the line that opened - - ```javascript - // good: - if(condition){ - action(); - } - - // bad: - if(condition){ - action(); - } - ``` - - * When a line closes a block, that line starts at the same level as the line that opened the block - ```javascript - // good: - if(condition){ - action(); - } - - // bad: - if(condition){ - action(); - } - ``` - - * No two lines should ever have more or less than 2 spaces difference in their indentation. Any number of mistakes in the above rules could lead to this, but one example would be: - - ```javascript - // bad: - transmogrify({ - a: { - b: function(){ - } - }}); - ``` - - * use sublime's arrow collapsing as a guide. do the collapsing lines seem like they should be 'contained' by the line with an arrow on it? - - -### Variable names - -* A single descriptive word is best. - - ```javascript - // good: - var animals = ['cat', 'dog', 'fish']; - - // bad: - var targetInputs = ['cat', 'dog', 'fish']; - ``` - -* Collections such as arrays and maps should have plural noun variable names. - - ```javascript - // good: - var animals = ['cat', 'dog', 'fish']; - - // bad: - var animalList = ['cat', 'dog', 'fish']; - - // bad: - var animal = ['cat', 'dog', 'fish']; - ``` - -* Name your variables after their purpose, not their structure - - ```javascript - // good: - var animals = ['cat', 'dog', 'fish']; - - // bad: - var array = ['cat', 'dog', 'fish']; - ``` - - -### Language constructs - -* Do not use `for...in` statements with the intent of iterating over a list of numeric keys. Use a for-with-semicolons statement in stead. - - ```javascript - // good: - var list = ['a', 'b', 'c'] - for(var i = 0; i < list.length; i++){ - alert(list[i]); - } - - // bad: - var list = ['a', 'b', 'c'] - for(var i in list){ - alert(list[i]); - } - ``` - -* Never omit braces for statement blocks (although they are technically optional). - ```javascript - // good: - for(key in object){ - alert(key); - } - - // bad: - for(key in object) - alert(key); - ``` - -* Always use `===` and `!==`, since `==` and `!=` will automatically convert types in ways you're unlikely to expect. - - ```javascript - // good: - - // this comparison evaluates to false, because the number zero is not the same as the empty string. - if(0 === ''){ - alert('looks like they\'re equal'); - } - - // bad: - - // This comparison evaluates to true, because after type coercion, zero and the empty string are equal. - if(0 == ''){ - alert('looks like they\'re equal'); - } - ``` - -* Don't use function statements for the entire first half of the course. They introduce a slew of subtle new rules to how the language behaves, and without a clear benefit. Once you and all your peers are expert level in the second half, you can start to use the more (needlessly) complicated option if you like. - - ```javascript - // good: - var go = function(){...}; - - // bad: - function stop(){...}; - ``` - - -### Semicolons - -* Don't forget semicolons at the end of lines - - ```javascript - // good: - alert('hi'); - - // bad: - alert('hi') - ``` - -* Semicolons are not required at the end of statements that include a block--i.e. `if`, `for`, `while`, etc. - - - ```javascript - // good: - if(condition){ - response(); - } - - // bad: - if(condition){ - response(); - }; - ``` - -* Misleadingly, a function may be used at the end of a normal assignment statement, and would require a semicolon (even though it looks rather like the end of some statement block). - - ```javascript - // good: - var greet = function(){ - alert('hi'); - }; - - // bad: - var greet = function(){ - alert('hi'); - } - ``` - -# Supplemental reading - -### Code density - -* Conserve line quantity by minimizing the number lines you write in. The more concisely your code is written, the more context can be seen in one screen. -* Conserve line length by minimizing the amount of complexity you put on each line. Long lines are difficult to read. Rather than a character count limit, I recommend limiting the amount of complexity you put on a single line. Try to make it easily read in one glance. This goal is in conflict with the line quantity goal, so you must do your best to balance them. - -### Comments - -* Provide comments any time you are confident it will make reading your code easier. -* Be aware that comments come at some cost. They make a file longer and can drift out of sync with the code they annotate. -* Comment on what code is attempting to do, not how it will achieve it. -* A good comment is often less effective than a good variable name. - - -### Padding & additional whitespace - -* Generally, we don't care where you put extra spaces, provided they are not distracting. -* You may use it as padding for visual clarity. If you do though, make sure it's balanced on both sides. - - ```javascript - // optional: - alert( "I chose to put visual padding around this string" ); - - // bad: - alert( "I only put visual padding on one side of this string"); - ``` - -* You may use it to align two similar lines, but it is not recommended. This pattern usually leads to unnecessary edits of many lines in your code every time you change a variable name. - - ```javascript - // discouraged: - var firstItem = getFirst (); - var secondItem = getSecond(); - ``` - -* Put `else` and `else if` statements on the same line as the ending curly brace for the preceding `if` block - ```javascript - // good: - if(condition){ - response(); - }else{ - otherResponse(); - } - - // bad: - if(condition){ - response(); - } - else{ - otherResponse(); - } - ``` - - - -### Working with files - -* Do not end a file with any character other than a newline. -* Don't use the -a or -m flags for `git commit` for the first half of the class, since they conceal what is actually happening (and do slightly different things than most people expect). - - ```shell - # good: - > git add . - > git commit - [save edits to the commit message file using the text editor that opens] - - # bad: - > git commit -a - [save edits to the commit message file using the text editor that opens] - - # bad: - > git add . - > git commit -m "updated algorithm" - ``` - - -### Opening or closing too many blocks at once - -* The more blocks you open on a single line, the more your reader needs to remember about the context of what they are reading. Try to resolve your blocks early, and refactor. A good rule is to avoid closing more than two blocks on a single line--three in a pinch. - - ```javascript - // avoid: - _.ajax(url, {success: function(){ - // ... - }}); - - // prefer: - _.ajax(url, { - success: function(){ - // ... - } - }); - ``` - - -### Variable declaration - -* Use a new var statement for each line you declare a variable on. -* Do not break variable declarations onto mutiple lines. -* Use a new line for each variable declaration. -* See http://benalman.com/news/2012/05/multiple-var-statements-javascript/ for more details - - ```javascript - // good: - var ape; - var bat; - - // bad: - var cat, - dog - - // use sparingly: - var eel, fly; - ``` - -### Capital letters in variable names - -* Some people choose to use capitalization of the first letter in their variable names to indicate that they contain a [class](http://en.wikipedia.org/wiki/Class_(computer_science\)). This capitalized variable might contain a function, a prototype, or some other construct that acts as a representative for the whole class. -* Optionally, some people use a capital letter only on functions that are written to be run with the keyword `new`. -* Do not use all-caps for any variables. Some people use this pattern to indicate an intended "constant" variable, but the language does not offer true constants, only mutable variables. - - -### Minutia - -* Don't rely on JavaScripts implicit global variables. If you are intending to write to the global scope, export things to `window.*` explicitly instead. - - ```javascript - // good: - var overwriteNumber = function(){ - window.exported = Math.random(); - }; - - // bad: - var overwriteNumber = function(){ - exported = Math.random(); - }; - ``` - -* For lists, put commas at the end of each newline, not at the beginning of each item in a list - - ```javascript - // good: - var animals = [ - 'ape', - 'bat', - 'cat' - ]; - - // bad: - var animals = [ - 'ape' - , 'bat' - , 'cat' - ]; - ``` - -* Avoid use of `switch` statements altogether. They are hard to outdent using the standard whitespace rules above, and are prone to error due to missing `break` statements. See [this article](http://ericleads.com/2012/12/switch-case-considered-harmful/) for more detail. - -* Prefer single quotes around JavaScript strings, rather than double quotes. Having a standard of any sort is preferable to a mix-and-match approach, and single quotes allow for easy embedding of HTML, which prefers double quotes around tag attributes. - - ```javascript - // good: - var dog = 'dog'; - var cat = 'cat'; - - // acceptable: - var dog = "dog"; - var cat = "cat"; - - // bad: - var dog = 'dog'; - var cat = "cat"; - ``` - - -### HTML - -* Do not use ids for html elements. Use a class instead. - - ```html - - - - - - ``` - -* Do not include a `type=text/javascript"` attribute on script tags - - ```html - - - - - - ``` diff --git a/database-mongo/index.js b/database-mongo/index.js index 10661aa..ce37bec 100644 --- a/database-mongo/index.js +++ b/database-mongo/index.js @@ -1,20 +1,21 @@ -var mongoose = require('mongoose'); +const mongoose = require('mongoose'); +mongoose.Promise = require('bluebird'); let uri; if (!process.env.MONGODB_URI) { - config = require('../config.js'); + let config = require('../config.js'); uri = config.mongo; } else { - console.log('PROCESS PICKED UP', process.env.MONGODB_URI) + console.log('PROCESS PICKED UP', process.env.MONGODB_URI); uri = process.env.MONGODB_URI; } //URI is stored either on heroku or local config file let Schema = mongoose.Schema; -mongoose.connect(uri); +mongoose.connect(uri, {useMongoClient: true, promiseLibrary: require('bluebird')}); -var db = mongoose.connection; +let db = mongoose.connection; db.on('error', function() { console.log(uri); @@ -25,17 +26,22 @@ db.once('open', function() { console.log('mongoose connected successfully'); }); -function toLower (v) { +function toLower(v) { return v.toLowerCase(); } -var userSchema = Schema({ +let userSchema = Schema({ id: Schema.Types.ObjectId, - name: {type: String, set: toLower, index: true, required: [true, "can't be blank"]}, + name: { + type: String, + set: toLower, + index: true, + required: [true, 'can\'t be blank'] + }, password: String }); -var tripSchema = Schema({ +let tripSchema = Schema({ id: Schema.Types.ObjectId, city: String, tripFromDate: Date, @@ -47,7 +53,7 @@ var tripSchema = Schema({ }); -var restaurantSchema = Schema({ +let restaurantSchema = Schema({ id: {type: Number, index: true}, name: String, url: String, @@ -61,8 +67,22 @@ var restaurantSchema = Schema({ trip: {type: Schema.Types.ObjectId, ref: 'Trip'} }); +let hotelSchema = Schema({ + id: {type: String, index: true}, + name: String, + url: String, + address: String, + zip: Number, + logo: String, + //latitude and longitude coordinates are placed in 'location' property + location: [{type: Number}], + price: Number, + //need to make sure each restaurant or event has a reference trip + trip: {type: Schema.Types.ObjectId, ref: 'Trip'} +}); -var eventSchema = Schema({ + +let eventSchema = Schema({ id: {type: Number, index: true}, name: String, description: String, @@ -78,14 +98,15 @@ var eventSchema = Schema({ trip: {type: Schema.Types.ObjectId, ref: 'Trip'} }); -var User = mongoose.model('User', userSchema); -var Trip = mongoose.model('Trip', tripSchema); -var Restaurant = mongoose.model('Restaurant', restaurantSchema); -var Event = mongoose.model('Event', eventSchema); +let User = mongoose.model('User', userSchema); +let Trip = mongoose.model('Trip', tripSchema); +let Restaurant = mongoose.model('Restaurant', restaurantSchema); +let Event = mongoose.model('Event', eventSchema); +let Hotel = mongoose.model('Hotel', hotelSchema); let addNewTrip = (username, city, fromDate, toDate, callback) => { - User.findOne({name: username}, function (err, user) { - if(err) { + User.findOne({name: username}, function(err, user) { + if (err) { callback(err); } Trip.create({ @@ -96,7 +117,7 @@ let addNewTrip = (username, city, fromDate, toDate, callback) => { tripFromDate: fromDate, tripToDate: toDate }, (err, data) => { - if(err) { + if (err) { callback(err); } else { callback(null, data); @@ -105,90 +126,68 @@ let addNewTrip = (username, city, fromDate, toDate, callback) => { }); }; -let addRestaurantToTrip = (food, username, city, callback) => { - //first find corresponding user - User.findOne({name: username}, function (err, user) { - if(err) { - console.log('error: ', err); - callback(err); - } else { - - Trip.findOne({user: user.id, city: city}, function (err, trip) { - if(err) { - console.log('error', err); - callback(err); - } else { - - Restaurant.findOneAndUpdate({ id: food.restaurant.id}, - {$set: { - id: food.restaurant.id, - name: food.restaurant.name, - url: food.restaurant.url, - logo: food.restaurant.featured_image, - address: food.restaurant.location.address, - zip: food.restaurant.location.zipcode, - location: [food.restaurant.location.latitude, food.restaurant.location.longitude], - price: food.restaurant.price_range, - trip: trip.id - } - }, {upsert: true}, function(err) { - if(err) { - console.log('error: ', err); - callback(err); - } else { - callback(); - } - } - ); - } - //then add restaurant to database based on trip ID - }); +const addRestaurantToTrip = async (food, tripId) => { + let trip = await Trip.findOne({id: tripId}); + let addRest = await Restaurant.findOneAndUpdate( + {id: food.restaurant.id}, + {$set: { + id: food.restaurant.id, + name: food.restaurant.name, + url: food.restaurant.url, + logo: food.restaurant.featured_image, + address: food.restaurant.location.address, + zip: food.restaurant.location.zipcode, + location: [food.restaurant.location.latitude, food.restaurant.location.longitude], + price: food.restaurant.price_range, + trip: trip.id } - //then find corresponding trip based on city for selected user - }); + }, {upsert: true, new: true}); + return addRest; }; -let addEventToTrip = (event, username, city, callback) => { - //first find corresponding user - User.findOne({name: username}, function (err, user) { - if(err) { - console.log('error: ', err); - callback(err); - } - //then find corresponding trip based on city for selected user - Trip.findOne({user: user.id, city: city}, function (err, trip) { - if(err) { - console.log('error', err); - callback(err); - } - //then add event to database based on trip ID - //need to look at eventbrite API for structure - Event.findOneAndUpdate({id: event.id}, - {$set: { - name: event.name.text, - description: event.description.text, - id: event.id, - url: event.url, - start_time: event.start.local, - end_time: event.end.local, - is_free: event.is_free, - organizer_id: event.organizer_id, - venue_id: event.venue_id, - category_id: event.category_id, - logo: event.logo.url, - trip: trip.id - } - }, {upsert: true}, function(err) { - if(err) { - console.log('error: ', err); - callback(err); - } else { - callback(); - } - } - ); - }); - }); + +let addHotelToTrip = async (hotel, tripId) => { + let trip = await Trip.findOne({id: tripId}); + //then add event to database based on trip ID + //need to look at eventbrite API for structure + return Hotel.findOneAndUpdate({id: hotel.id}, + {$set: { + name: hotel.name, + // description: event.description.text, + id: hotel.place_id, + // url: event.url, + // start_time: event.start.local, + // end_time: event.end.local, + // is_free: event.is_free, + // organizer_id: event.organizer_id, + // venue_id: event.venue_id, + // category_id: event.category_id, + logo: hotel.icon, + trip: trip.id + }}, + {upsert: true, new: true}); +}; + +let addEventToTrip = async (event, tripId) => { + let trip = await Trip.findOne({id: tripId}); + + let addEvent = await Event.findOneAndUpdate({id: event.id}, + {$set: { + name: event.name.text, + description: event.description.text, + id: event.id, + url: event.url, + start_time: event.start.local, + end_time: event.end.local, + is_free: event.is_free, + organizer_id: event.organizer_id, + venue_id: event.venue_id, + category_id: event.category_id, + logo: event.logo.url, + trip: trip.id + }}, + {upsert: true, new: true}); //requires new option or will return null + return addEvent; }; //for signup page-takes in username and password and adds user info to database @@ -199,10 +198,10 @@ let addNewUser = (name, password) => { id: new mongoose.Types.ObjectId(), name: name, password: password - } + } }, {upsert: true}, function(err) { - if(err) { + if (err) { console.log('error: ', err); } } @@ -211,50 +210,31 @@ let addNewUser = (name, password) => { // checks if username already exists in the database and // returns that user -let userExists = (username, cb) => { +let userExists = (username) => { // checks database based on input username - User.find({ - name: username - }, (err, existingUser) => { - if (err) { - console.error('error in userExists: ', err); - } else { - // callback on the existing user if it exists - cb(existingUser); - } - }) + return User.findOne({ name: new RegExp('^'+username+'$', 'i') }); }; //for login page-take in username and retrieve password from db //on server side, bcrypt will be used to compare user input password to stored db password //if they match user will be logged in, otherwise error message -let retrieveUserPassword = (username, callback) => { - User.find({name: username}, function(err, user) { - // If the user exists in the database - if (user.length > 0) { - // Then run the callback on that user's password - callback(null, user[0].password); - } else { - // Should probably send an alert or something... - console.log('user does not exist'); - callback('user does not exist'); - } - }); +let retrieveUserPassword = (username) => { + return User.findOne({ name: username }); }; //for user page-display all existing trips for user after being logged in let showUserTrips = (username, callback) => { //first find corresponding user - User.findOne({name: username}, function (err, user) { - if(err || user === null) { + User.findOne({name: username}, function(err, user) { + if (err || user === null) { console.log('error: ', err); callback(err); } else { //then find all trips for selected user - Trip.find({user: user.id}, function (err, trips) { - if(err) { + Trip.find({user: user.id}, function(err, trips) { + if (err) { callback(err, null); } else { callback(null, trips); @@ -264,74 +244,26 @@ let showUserTrips = (username, callback) => { }); }; -let showTripEvents = (username, city, callback) => { -//first find corresponding user - User.findOne({name: username}, function (err, user) { - if(err || user === null) { - console.log('error: ', err); - callback(err); - } else { - //then find trip based on selected user and city - Trip.findOne({user: user.id, city: city}, function (err, trip) { - if(err || trip === null) { - console.log('error', err); - callback(err); - } else { - if(err) { - callback(err, null); - } else { - getTripEvents(trip.id, callback); - } - } - }); - } - }); -}; - -let showTripRestaurants = (username, city, callback) => { - //first find corresponding user - User.findOne({ name: username }, function (err, user) { - if (err || user === null) { - console.log('error: ', err); - callback(err); - } else { - //then find trip based on selected user and city - Trip.findOne({ user: user.id, city: city }, function (err, trip) { - if (err || trip === null) { - console.log('error', err); - callback(err); - } else { - if (err) { - callback(err, null); - } else { - getTripRestaurants(trip.id, callback); - } - } - }); - } - }); -}; - //allows user to update whether trip is public, archived, and/or if the trip dates changed //assumes username and city are known to obtain corresponding trip and update let modifyTripDetails = (makePublic, makeArchived, username, fromDate, toDate, city, callback) => { //first find corresponding user - User.findOne({name: username}, function (err, user) { - if(err) { + User.findOne({name: username}, function(err, user) { + if (err) { callback(err); console.log('error: ', err); } //then find corresponding trip based on city for selected user - Trip.findOne({user: user.id, city: city}, function (err, trip) { - if(err) { + Trip.findOne({user: user.id, city: city}, function(err, trip) { + if (err) { callback(err); console.log('error', err); } //makePublic = makePublic || trip.isPublic; makeArchived = makeArchived || trip.isArchived; - newFromDate = fromDate || trip.tripFromDate; - newToDate = toDate || trip.tripToDate; + let newFromDate = fromDate || trip.tripFromDate; + let newToDate = toDate || trip.tripToDate; Trip.update({id: trip.id}, {$set: { @@ -340,7 +272,7 @@ let modifyTripDetails = (makePublic, makeArchived, username, fromDate, toDate, c tripFromDate: newFromDate, tripToDate: newToDate } - }, function (err) { + }, function(err) { if (err) { callback(err); console.log('error: ', err); @@ -353,67 +285,87 @@ let modifyTripDetails = (makePublic, makeArchived, username, fromDate, toDate, c }); }; -getTripEvents = (tripID, callback) => { - Event.find({ trip: tripID }, function (err, events) { +let getTripEvents = (tripID, callback) => { + Event.find({ trip: tripID }, function(err, events) { if (err) { callback(err, null); } else { callback(null, events); } }); -} +}; -getTripRestaurants = (tripID, callback) => { - Restaurant.find({ trip: tripID }, function (err, eatin) { +let getTripRestaurants = (tripID, callback) => { + Restaurant.find({ trip: tripID }, function(err, eatin) { if (err) { callback(err, null); } else { callback(null, eatin); } }); -} +}; + +let getTripHotels = (tripID, callback) => { + Hotel.find({ trip: tripID }, function(err, hotel) { + if (err) { + callback(err, null); + } else { + callback(null, hotel); + } + }); +}; //removal function assumes we know the ID of the restaurant, event, //or trip that we are wanting to remove from the database let remove = (modelType, ID, callback) => { - if(modelType === 'restaurant') { - Restaurant.remove( {id: ID}, function (err) { - if(err) { + if (modelType === 'restaurant') { + Restaurant.remove( {id: ID}, function(err) { + if (err) { console.log('error: ',err); - callback(err) + callback(err); } else { - callback() + callback(); } }); } else if (modelType === 'event') { - Event.remove( {id: ID}, function (err) { - if(err) { + Event.remove( {id: ID}, function(err) { + if (err) { callback(err); console.log('error: ',err); - callback(err) + callback(err); + } else { + callback(); + } + }); + } else if (modelType === 'hotel') { + console.log('hotel id', ID); + Hotel.remove( {id: ID}, function(err) { + if (err) { + console.log('error: ',err); + callback(err); } else { - callback() + callback(); } }); } else if (modelType === 'trip') { - Trip.remove( {id: ID}, function (err) { - if(err) { + Trip.remove( {id: ID}, function(err) { + if (err) { callback(err); console.log('error: ',err); - callback(err) + callback(err); } else { - callback() + callback(); } }); } else { console.log('must specify correct model type to remove'); - callback(err); + // callback(err); // there is no err here... } }; //for home page-displays all existing public trips let showAllPublicTrips = (callback) => { Trip.find({isPublic: true}, function(err, trips) { - if(err) { + if (err) { callback(err, null); } else { callback(null, trips); @@ -421,25 +373,40 @@ let showAllPublicTrips = (callback) => { }); }; +module.exports = { + addNewTrip, + addRestaurantToTrip, + addHotelToTrip, + addEventToTrip, + addNewUser, + retrieveUserPassword, + showUserTrips, + modifyTripDetails, + remove, + showAllPublicTrips, + userExists, + getTripRestaurants, + getTripEvents, + getTripHotels, +}; - -module.exports.addNewTrip = addNewTrip; -module.exports.addRestaurantToTrip = addRestaurantToTrip; -module.exports.addEventToTrip = addEventToTrip; -module.exports.addNewUser = addNewUser; -module.exports.retrieveUserPassword = retrieveUserPassword; -module.exports.showUserTrips = showUserTrips; -module.exports.modifyTripDetails = modifyTripDetails; -module.exports.remove = remove; -module.exports.showAllPublicTrips = showAllPublicTrips; -module.exports.userExists = userExists; -module.exports.showTripEvents = showTripEvents; -module.exports.showTripRestaurants = showTripRestaurants; -module.exports.getTripRestaurants = getTripRestaurants; -module.exports.getTripEvents = getTripEvents; - - -// {restaurant: { +// module.exports.addNewTrip = addNewTrip; +// module.exports.addRestaurantToTrip = addRestaurantToTrip; +// module.exports.addEventToTrip = addEventToTrip; +// module.exports.addNewUser = addNewUser; +// module.exports.retrieveUserPassword = retrieveUserPassword; +// module.exports.showUserTrips = showUserTrips; +// module.exports.modifyTripDetails = modifyTripDetails; +// module.exports.remove = remove; +// module.exports.showAllPublicTrips = showAllPublicTrips; +// module.exports.userExists = userExists; +// module.exports.showTripEvents = showTripEvents; +// module.exports.showTripRestaurants = showTripRestaurants; +// module.exports.getTripRestaurants = getTripRestaurants; +// module.exports.getTripEvents = getTripEvents; + + +// {restaurant: { // R: { res_id: 16608481 }, // apikey: '4c7506bb724adf55c75f64091cfc569e', // id: '16608481', @@ -470,4 +437,4 @@ module.exports.getTripEvents = getTripEvents; // votes: '4' // } // } -// } \ No newline at end of file +// } diff --git a/package-lock.json b/package-lock.json index fc12e23..111f17c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,6 +38,23 @@ } } }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "3.3.0" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", @@ -64,6 +81,49 @@ "repeat-string": "1.6.1" } }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "requires": { + "string-width": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "ansi-escapes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", + "dev": true + }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -97,6 +157,15 @@ "readable-stream": "2.3.4" } }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", @@ -110,16 +179,52 @@ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, "array-unique": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -153,6 +258,11 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, "async": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz", @@ -171,6 +281,11 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=" + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -665,6 +780,25 @@ "babel-types": "6.26.0" } }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "core-js": "2.5.3", + "regenerator-runtime": "0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } + } + }, "babel-preset-es2015": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", @@ -799,6 +933,35 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "base64-js": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.3.tgz", @@ -841,9 +1004,9 @@ } }, "bluebird": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" }, "bn.js": { "version": "4.11.8", @@ -890,6 +1053,85 @@ "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.2.tgz", "integrity": "sha512-fuiANC1Bqbqa/S4gmvfCt7bGBmNELMsGZj4Wg3PrP6esP66Ttoj1JSlzFlXtHyduMv07kDNmDsX6VsMWT/MLGg==" }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "requires": { + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.3.2", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "1.9.1" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "requires": { + "has-flag": "3.0.0" + } + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1018,11 +1260,54 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, "camelcase": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" }, + "capture-stack-trace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -1059,6 +1344,12 @@ "resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz", "integrity": "sha1-6LL+PX8at9aaMhma/5HqaTFAlRU=" }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, "chokidar": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", @@ -1084,6 +1375,109 @@ "safe-buffer": "5.1.1" } }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, "cliui": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", @@ -1104,6 +1498,28 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, "combined-stream": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", @@ -1117,11 +1533,40 @@ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.4", + "typedarray": "0.0.6" + } + }, + "configstore": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz", + "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==", + "requires": { + "dot-prop": "4.2.0", + "graceful-fs": "4.1.11", + "make-dir": "1.2.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" + } + }, "console-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", @@ -1140,6 +1585,12 @@ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, "content-disposition": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", @@ -1165,6 +1616,11 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, "core-js": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", @@ -1189,6 +1645,14 @@ "elliptic": "6.4.0" } }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "requires": { + "capture-stack-trace": "1.0.0" + } + }, "create-hash": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", @@ -1213,6 +1677,16 @@ "sha.js": "2.4.10" } }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + }, "cryptiles": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", @@ -1249,6 +1723,11 @@ "randomfill": "1.0.4" } }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, "css-in-js-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.0.tgz", @@ -1283,11 +1762,63 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, "deep-extend": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dev": true, + "requires": { + "foreach": "2.0.5", + "object-keys": "1.0.11" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -1335,8 +1866,17 @@ "randombytes": "2.0.6" } }, - "dom-helpers": { - "version": "3.3.1", + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom-helpers": { + "version": "3.3.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.3.1.tgz", "integrity": "sha512-2Sm+JaYn74OiTM2wHvxJOo3roiq/h25Yi69Fqk269cNUwIXsCvATB6CRSFC9Am/20G2b28hGv/+7NiWydIrPvg==" }, @@ -1345,6 +1885,24 @@ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "requires": { + "is-obj": "1.0.1" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", @@ -1418,6 +1976,30 @@ "is-arrayish": "0.2.1" } }, + "es-abstract": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", + "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", + "dev": true, + "requires": { + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.1", + "is-callable": "1.1.3", + "is-regex": "1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" + } + }, "es6-promise": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz", @@ -1433,6 +2015,422 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "eslint": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", + "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.3.2", + "concat-stream": "1.6.1", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.0", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "11.3.0", + "ignore": "3.3.7", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.11.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.5", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.5.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.2", + "text-table": "0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "globals": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.3.0.tgz", + "integrity": "sha512-kkpcKNlmQan9Z5ZmgqKH/SMbSmjxQ7QjyNqfXVc8VJcoBV2UEg+sxQD15GQofGRh2hfpwUb70VC31DR7Rq5Hdw==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "dev": true, + "requires": { + "debug": "2.6.9", + "resolve": "1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-module-utils": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz", + "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "pkg-dir": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", + "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1", + "contains-path": "0.1.0", + "debug": "2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.1.1", + "has": "1.0.1", + "lodash": "4.17.5", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "2.0.2", + "isarray": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "eslint-plugin-react": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", + "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", + "dev": true, + "requires": { + "doctrine": "2.1.0", + "has": "1.0.1", + "jsx-ast-utils": "2.0.1", + "prop-types": "15.6.0" + } + }, + "eslint-plugin-react-redux": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-redux/-/eslint-plugin-react-redux-2.1.0.tgz", + "integrity": "sha512-ZfJCIYbeGADDs6j4dP1yNMxwStddHefmfuzPezovXxskBXxrkDw8wZSZXJs5znkScXyY2oT197ixBAUTpqAUYQ==", + "dev": true + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true, + "requires": { + "esrecurse": "4.2.1", + "estraverse": "4.2.0" + } + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true + }, + "eslint-watch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/eslint-watch/-/eslint-watch-3.1.3.tgz", + "integrity": "sha1-44gqk/ArpNinl1YvqcOBXjGBxLo=", + "dev": true, + "requires": { + "babel-polyfill": "6.26.0", + "bluebird": "3.5.1", + "chalk": "2.3.2", + "chokidar": "1.7.0", + "debug": "3.1.0", + "keypress": "0.2.1", + "lodash": "4.17.5", + "optionator": "0.8.2", + "source-map-support": "0.5.3", + "strip-ansi": "4.0.0", + "text-table": "0.2.0", + "unicons": "0.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", + "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", + "dev": true, + "requires": { + "source-map": "0.6.1" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "5.5.1", + "acorn-jsx": "3.0.1" + }, + "dependencies": { + "acorn": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.1.tgz", + "integrity": "sha512-D/KGiCpM/VOtTMDS+wfjywEth926WUrArrzYov4N4SI7t+3y8747dPpCmmAvrm/Z3ygqMHnyPxvYYO0yTdn/nQ==", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", @@ -1443,6 +2441,20 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, + "event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "requires": { + "duplexer": "0.1.1", + "from": "0.1.7", + "map-stream": "0.1.0", + "pause-stream": "0.0.11", + "split": "0.3.3", + "stream-combiner": "0.0.4", + "through": "2.3.8" + } + }, "events": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", @@ -1457,6 +2469,20 @@ "safe-buffer": "5.1.1" } }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, "expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", @@ -1561,6 +2587,36 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", + "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", + "dev": true, + "requires": { + "chardet": "0.4.2", + "iconv-lite": "0.4.19", + "tmp": "0.0.33" + } + }, "extglob": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", @@ -1584,6 +2640,12 @@ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, "fbjs": { "version": "0.8.16", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", @@ -1605,6 +2667,25 @@ } } }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "1.3.0", + "object-assign": "4.1.1" + } + }, "file-loader": { "version": "1.1.10", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.10.tgz", @@ -1693,6 +2774,18 @@ "pinkie-promise": "2.0.1" } }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + } + }, "follow-redirects": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz", @@ -1714,6 +2807,12 @@ "for-in": "1.0.2" } }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -1734,11 +2833,24 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "0.2.2" + } + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2554,6 +3666,18 @@ "minimatch": "3.0.4" } }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", @@ -2574,6 +3698,16 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -2612,10 +3746,50 @@ "is-glob": "2.0.1" } }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "requires": { + "ini": "1.3.5" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "requires": { + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.0", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" + } }, "graceful-fs": { "version": "4.1.11", @@ -2636,6 +3810,15 @@ "har-schema": "2.0.0" } }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true, + "requires": { + "function-bind": "1.1.1" + } + }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", @@ -2654,6 +3837,60 @@ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, "hash-base": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", @@ -2781,6 +4018,27 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" }, + "ignore": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "dev": true + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", @@ -2814,6 +4072,96 @@ "css-in-js-utils": "2.0.0" } }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.2", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.1.0", + "figures": "2.0.0", + "lodash": "4.17.5", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, "interpret": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", @@ -2837,6 +4185,21 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=" }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -2863,6 +4226,50 @@ "builtin-modules": "1.1.1" } }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "dev": true + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -2910,6 +4317,20 @@ "is-extglob": "1.0.0" } }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "requires": { + "global-dirs": "0.1.1", + "is-path-inside": "1.0.1" + } + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" + }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", @@ -2918,6 +4339,64 @@ "kind-of": "3.2.2" } }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + } + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true, + "requires": { + "is-path-inside": "1.0.1" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", @@ -2928,11 +4407,48 @@ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -2943,11 +4459,21 @@ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", @@ -2980,6 +4506,16 @@ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, + "js-yaml": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", + "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", + "dev": true, + "requires": { + "argparse": "1.0.10", + "esprima": "4.0.0" + } + }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", @@ -3014,6 +4550,12 @@ "jsonify": "0.0.0" } }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -3040,6 +4582,15 @@ "verror": "1.10.0" } }, + "jsx-ast-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", + "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "dev": true, + "requires": { + "array-includes": "3.0.3" + } + }, "kareem": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/kareem/-/kareem-1.5.0.tgz", @@ -3050,6 +4601,12 @@ "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.1.9.tgz", "integrity": "sha1-lkojxU5IiUBbSGGlyfBIDUUUHfo=" }, + "keypress": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", + "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=", + "dev": true + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -3058,6 +4615,14 @@ "is-buffer": "1.1.6" } }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "requires": { + "package-json": "4.0.1" + } + }, "lazy-cache": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", @@ -3071,6 +4636,16 @@ "invert-kv": "1.0.0" } }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -3099,6 +4674,24 @@ "object-assign": "4.1.1" } }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, "lodash": { "version": "4.17.5", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", @@ -3119,22 +4712,69 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==" }, - "lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "3.0.2" + } + }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "make-dir": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", + "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", + "requires": { + "pify": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "js-tokens": "3.0.2" + "object-visit": "1.0.1" } }, "material-ui": { @@ -3246,6 +4886,12 @@ "mime-db": "1.33.0" } }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, "minimalistic-assert": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", @@ -3269,6 +4915,25 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -3363,6 +5028,11 @@ "sliced": "0.0.5" }, "dependencies": { + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -3388,11 +5058,59 @@ "resolved": "https://registry.npmjs.org/muri/-/muri-1.3.0.tgz", "integrity": "sha512-FiaFwKl864onHFFUV/a2szAl7X0fxVlSKNdhTf+BM8i8goEgYut8u5P9MqQqIYwvaMxjzVESsoEm/2kfkFH1rg==" }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, "nan": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=" }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", @@ -3453,6 +5171,338 @@ "tar-pack": "3.4.1" } }, + "nodemon": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.17.1.tgz", + "integrity": "sha512-p6+IG/eJyprjRd95na0efIWl3ONITHydCdl7btEIZttvnmXX4aqxIE45Aj+zeT0llJIUfJnZNyAX14XIdjJtmw==", + "requires": { + "chokidar": "2.0.2", + "debug": "3.1.0", + "ignore-by-default": "1.0.1", + "minimatch": "3.0.4", + "pstree.remy": "1.1.0", + "semver": "5.5.0", + "supports-color": "5.3.0", + "touch": "3.1.0", + "undefsafe": "2.0.2", + "update-notifier": "2.3.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "3.1.9", + "normalize-path": "2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "kind-of": "6.0.2", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "chokidar": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.2.tgz", + "integrity": "sha512-l32Hw3wqB0L2kGVmSbK/a+xXLDrUEsc84pSgMkmwygHvD7ubRsP/vxxHa5BtB6oix1XLLVCHyYMsckRXxThmZw==", + "requires": { + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.1", + "fsevents": "1.1.3", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.0.4" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "micromatch": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", + "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.1", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + } + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "requires": { + "has-flag": "3.0.0" + } + } + } + }, "nopt": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", @@ -3597,7 +5647,8 @@ "dependencies": { "JSONStream": { "version": "1.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", + "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=", "requires": { "jsonparse": "1.3.1", "through": "2.3.8" @@ -3605,41 +5656,50 @@ "dependencies": { "jsonparse": { "version": "1.3.1", - "bundled": true + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, "through": { "version": "2.3.8", - "bundled": true + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" } } }, "abbrev": { "version": "1.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "ansi-regex": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansicolors": { "version": "0.3.2", - "bundled": true + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" }, "ansistyles": { "version": "0.1.3", - "bundled": true + "resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz", + "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=" }, "aproba": { "version": "1.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "archy": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" }, "bin-links": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-1.1.0.tgz", + "integrity": "sha512-3desjIEoSt86s+BRZlkLpBPPcHhr4vyUPL/+X1cQuE96NIlkELqnb4Yq+I5gZe47gHsZztA6cm38uMrT9+FWpA==", "requires": { "bluebird": "3.5.1", "cmd-shim": "2.0.2", @@ -3651,11 +5711,13 @@ }, "bluebird": { "version": "3.5.1", - "bundled": true + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" }, "cacache": { "version": "10.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "requires": { "bluebird": "3.5.1", "chownr": "1.0.1", @@ -3674,21 +5736,25 @@ "dependencies": { "y18n": { "version": "4.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" } } }, "call-limit": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/call-limit/-/call-limit-1.1.0.tgz", + "integrity": "sha1-b9YbA/PaQqLNDsK2DwK9DnGZH+o=" }, "chownr": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" }, "cli-table2": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cli-table2/-/cli-table2-0.2.0.tgz", + "integrity": "sha1-LR738hig54biFFQFYtS9F3/jLZc=", "requires": { "colors": "1.1.2", "lodash": "3.10.1", @@ -3697,16 +5763,19 @@ "dependencies": { "colors": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "optional": true }, "lodash": { "version": "3.10.1", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -3715,31 +5784,36 @@ "dependencies": { "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "1.0.1" }, "dependencies": { "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" } } }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } } @@ -3749,7 +5823,8 @@ }, "cmd-shim": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz", + "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", "requires": { "graceful-fs": "4.1.11", "mkdirp": "0.5.1" @@ -3757,7 +5832,8 @@ }, "columnify": { "version": "1.5.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", + "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", "requires": { "strip-ansi": "3.0.1", "wcwidth": "1.0.1" @@ -3765,34 +5841,39 @@ "dependencies": { "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } }, "wcwidth": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { "defaults": "1.0.3" }, "dependencies": { "defaults": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "1.0.2" }, "dependencies": { "clone": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", + "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=" } } } @@ -3802,7 +5883,8 @@ }, "config-chain": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", + "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", "requires": { "ini": "1.3.5", "proto-list": "1.2.4" @@ -3810,21 +5892,25 @@ "dependencies": { "proto-list": { "version": "1.2.4", - "bundled": true + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" } } }, "debuglog": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=" }, "detect-indent": { "version": "5.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=" }, "dezalgo": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", "requires": { "asap": "2.0.5", "wrappy": "1.0.2" @@ -3832,21 +5918,25 @@ "dependencies": { "asap": { "version": "2.0.5", - "bundled": true + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz", + "integrity": "sha1-UidltQw1EEkOUtfc/ghe+bqWlY8=" } } }, "editor": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz", + "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=" }, "find-npm-prefix": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz", + "integrity": "sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==" }, "fs-vacuum": { "version": "1.2.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.10.tgz", + "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", "requires": { "graceful-fs": "4.1.11", "path-is-inside": "1.0.2", @@ -3855,7 +5945,8 @@ }, "fs-write-stream-atomic": { "version": "1.0.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "requires": { "graceful-fs": "4.1.11", "iferr": "0.1.5", @@ -3865,7 +5956,8 @@ }, "gentle-fs": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/gentle-fs/-/gentle-fs-2.0.1.tgz", + "integrity": "sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==", "requires": { "aproba": "1.2.0", "fs-vacuum": "1.2.10", @@ -3879,7 +5971,8 @@ }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -3891,18 +5984,21 @@ "dependencies": { "fs.realpath": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.8" }, "dependencies": { "brace-expansion": { "version": "1.1.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -3910,11 +6006,13 @@ "dependencies": { "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" } } } @@ -3922,33 +6020,40 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" } } }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "has-unicode": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "hosted-git-info": { "version": "2.5.0", - "bundled": true + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" }, "iferr": { "version": "0.1.5", - "bundled": true + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" }, "imurmurhash": { "version": "0.1.4", - "bundled": true + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -3956,15 +6061,18 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", - "bundled": true + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "init-package-json": { "version": "1.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.1.tgz", + "integrity": "sha1-zYc6FneWvvuZYSsodioLY5P9j2o=", "requires": { "glob": "7.1.2", "npm-package-arg": "5.1.2", @@ -3978,7 +6086,8 @@ "dependencies": { "npm-package-arg": { "version": "5.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-5.1.2.tgz", + "integrity": "sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==", "requires": { "hosted-git-info": "2.5.0", "osenv": "0.1.5", @@ -3988,7 +6097,8 @@ }, "promzard": { "version": "0.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", + "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", "requires": { "read": "1.0.7" } @@ -3997,24 +6107,28 @@ }, "is-cidr": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-cidr/-/is-cidr-1.0.0.tgz", + "integrity": "sha1-+1qs9lklUxA1naMsrgPkDGocKvw=", "requires": { "cidr-regex": "1.0.6" }, "dependencies": { "cidr-regex": { "version": "1.0.6", - "bundled": true + "resolved": "https://registry.npmjs.org/cidr-regex/-/cidr-regex-1.0.6.tgz", + "integrity": "sha1-dKv9YZ3zcLnVSrFEdVaOl91kwME=" } } }, "lazy-property": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lazy-property/-/lazy-property-1.0.0.tgz", + "integrity": "sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=" }, "libcipm": { "version": "1.3.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/libcipm/-/libcipm-1.3.3.tgz", + "integrity": "sha512-+c3nYWMJ3yn3gMLD7O3y5dQLnQuWSDUgyrnyTf3RYviL2VOxbDUAgc1yc2qRp4ItEjQvL5xp5Hgb+x6+T8UDEQ==", "requires": { "bin-links": "1.1.0", "bluebird": "3.5.1", @@ -4033,11 +6147,13 @@ "dependencies": { "find-npm-prefix": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz", + "integrity": "sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==" }, "lock-verify": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lock-verify/-/lock-verify-2.0.0.tgz", + "integrity": "sha512-ZK+fx1rQBBvyRp12tPgKaMrKlxv+72hO+QCAvdW8BGwKx/Jn3wVD7GooG2ftF80W29hfj+R1o0tTI8m6/pl1Mw==", "requires": { "npm-package-arg": "5.1.2", "semver": "5.5.0" @@ -4045,7 +6161,8 @@ "dependencies": { "npm-package-arg": { "version": "5.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-5.1.2.tgz", + "integrity": "sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==", "requires": { "hosted-git-info": "2.5.0", "osenv": "0.1.5", @@ -4057,24 +6174,28 @@ }, "npm-logical-tree": { "version": "1.2.1", - "bundled": true + "resolved": "https://registry.npmjs.org/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz", + "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==" }, "protoduck": { "version": "5.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.0.tgz", + "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", "requires": { "genfun": "4.0.1" }, "dependencies": { "genfun": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/genfun/-/genfun-4.0.1.tgz", + "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=" } } }, "worker-farm": { "version": "1.5.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz", + "integrity": "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==", "requires": { "errno": "0.1.7", "xtend": "4.0.1" @@ -4082,20 +6203,23 @@ "dependencies": { "errno": { "version": "0.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "requires": { "prr": "1.0.1" }, "dependencies": { "prr": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" } } }, "xtend": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" } } } @@ -4103,7 +6227,8 @@ }, "libnpx": { "version": "9.7.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/libnpx/-/libnpx-9.7.1.tgz", + "integrity": "sha512-OktT775uhfL93SoUfERj4ilM3D7c0hyUyALX9oJ2D/yO4Msm5hbkOKHcrOVHXRcEX9ytstviYQAEygFIiDj2bQ==", "requires": { "dotenv": "4.0.0", "npm-package-arg": "5.1.2", @@ -4117,11 +6242,13 @@ "dependencies": { "dotenv": { "version": "4.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=" }, "npm-package-arg": { "version": "5.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-5.1.2.tgz", + "integrity": "sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==", "requires": { "hosted-git-info": "2.5.0", "osenv": "0.1.5", @@ -4131,11 +6258,13 @@ }, "y18n": { "version": "3.2.1", - "bundled": true + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, "yargs": { "version": "8.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { "camelcase": "4.1.0", "cliui": "3.2.0", @@ -4154,11 +6283,13 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "cliui": { "version": "3.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1", @@ -4167,7 +6298,8 @@ "dependencies": { "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -4176,18 +6308,21 @@ "dependencies": { "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "1.0.1" }, "dependencies": { "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" } } } @@ -4195,20 +6330,23 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -4218,15 +6356,18 @@ }, "decamelize": { "version": "1.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "get-caller-file": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" }, "os-locale": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "requires": { "execa": "0.7.0", "lcid": "1.0.0", @@ -4235,7 +6376,8 @@ "dependencies": { "execa": { "version": "0.7.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -4248,7 +6390,8 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { "lru-cache": "4.1.1", "shebang-command": "1.2.0", @@ -4257,14 +6400,16 @@ "dependencies": { "shebang-command": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { "shebang-regex": "1.0.0" }, "dependencies": { "shebang-regex": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" } } } @@ -4272,62 +6417,73 @@ }, "get-stream": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "is-stream": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "npm-run-path": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { "path-key": "2.0.1" }, "dependencies": { "path-key": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" } } }, "p-finally": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "signal-exit": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "strip-eof": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" } } }, "lcid": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { "invert-kv": "1.0.0" }, "dependencies": { "invert-kv": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" } } }, "mem": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { "mimic-fn": "1.1.0" }, "dependencies": { "mimic-fn": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" } } } @@ -4335,7 +6491,8 @@ }, "read-pkg-up": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { "find-up": "2.1.0", "read-pkg": "2.0.0" @@ -4343,14 +6500,16 @@ "dependencies": { "find-up": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { "locate-path": "2.0.0" }, "dependencies": { "locate-path": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -4358,20 +6517,23 @@ "dependencies": { "p-locate": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { "p-limit": "1.1.0" }, "dependencies": { "p-limit": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" } } }, "path-exists": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } } @@ -4379,7 +6541,8 @@ }, "read-pkg": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { "load-json-file": "2.0.0", "normalize-package-data": "2.4.0", @@ -4388,7 +6551,8 @@ "dependencies": { "load-json-file": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", @@ -4398,21 +6562,24 @@ "dependencies": { "parse-json": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { "error-ex": "1.3.1" }, "dependencies": { "error-ex": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "requires": { "is-arrayish": "0.2.1" }, "dependencies": { "is-arrayish": { "version": "0.2.1", - "bundled": true + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" } } } @@ -4420,24 +6587,28 @@ }, "pify": { "version": "2.3.0", - "bundled": true + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "strip-bom": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" } } }, "path-type": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { "pify": "2.3.0" }, "dependencies": { "pify": { "version": "2.3.0", - "bundled": true + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } } @@ -4447,19 +6618,23 @@ }, "require-directory": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "set-blocking": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "string-width": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -4467,17 +6642,20 @@ "dependencies": { "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" } } }, "which-module": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "yargs-parser": { "version": "7.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { "camelcase": "4.1.0" } @@ -4488,15 +6666,18 @@ }, "lockfile": { "version": "1.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.3.tgz", + "integrity": "sha1-Jjj8OaAzHpysGgS3F5mTHJxQ33k=" }, "lodash._baseindexof": { "version": "3.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", + "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=" }, "lodash._baseuniq": { "version": "4.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz", + "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", "requires": { "lodash._createset": "4.0.3", "lodash._root": "3.0.1" @@ -4504,56 +6685,68 @@ "dependencies": { "lodash._createset": { "version": "4.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz", + "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=" }, "lodash._root": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" } } }, "lodash._bindcallback": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=" }, "lodash._cacheindexof": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz", + "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=" }, "lodash._createcache": { "version": "3.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz", + "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", "requires": { "lodash._getnative": "3.9.1" } }, "lodash._getnative": { "version": "3.9.1", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" }, "lodash.clonedeep": { "version": "4.5.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" }, "lodash.restparam": { "version": "3.6.1", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" }, "lodash.union": { "version": "4.6.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" }, "lodash.uniq": { "version": "4.5.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" }, "lodash.without": { "version": "4.4.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz", + "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=" }, "lru-cache": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -4561,21 +6754,25 @@ "dependencies": { "pseudomap": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "yallist": { "version": "2.1.2", - "bundled": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } }, "meant": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/meant/-/meant-1.0.1.tgz", + "integrity": "sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg==" }, "mississippi": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "requires": { "concat-stream": "1.6.0", "duplexify": "3.5.3", @@ -4591,7 +6788,8 @@ "dependencies": { "concat-stream": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.4", @@ -4600,13 +6798,15 @@ "dependencies": { "typedarray": { "version": "0.0.6", - "bundled": true + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" } } }, "duplexify": { "version": "3.5.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", + "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", "requires": { "end-of-stream": "1.4.1", "inherits": "2.0.3", @@ -4616,20 +6816,23 @@ "dependencies": { "stream-shift": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" } } }, "end-of-stream": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { "once": "1.4.0" } }, "flush-write-stream": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", + "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.4" @@ -4637,7 +6840,8 @@ }, "from2": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.4" @@ -4645,7 +6849,8 @@ }, "parallel-transform": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "requires": { "cyclist": "0.2.2", "inherits": "2.0.3", @@ -4654,13 +6859,15 @@ "dependencies": { "cyclist": { "version": "0.2.2", - "bundled": true + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" } } }, "pump": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "requires": { "end-of-stream": "1.4.1", "once": "1.4.0" @@ -4668,7 +6875,8 @@ }, "pumpify": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", + "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", "requires": { "duplexify": "3.5.3", "inherits": "2.0.3", @@ -4677,7 +6885,8 @@ }, "stream-each": { "version": "1.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", + "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", "requires": { "end-of-stream": "1.4.1", "stream-shift": "1.0.0" @@ -4685,13 +6894,15 @@ "dependencies": { "stream-shift": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" } } }, "through2": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { "readable-stream": "2.3.4", "xtend": "4.0.1" @@ -4699,7 +6910,8 @@ "dependencies": { "xtend": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" } } } @@ -4707,20 +6919,23 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" }, "dependencies": { "minimist": { "version": "0.0.8", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } }, "move-concurrently": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "requires": { "aproba": "1.2.0", "copy-concurrently": "1.0.5", @@ -4732,7 +6947,8 @@ "dependencies": { "copy-concurrently": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "requires": { "aproba": "1.2.0", "fs-write-stream-atomic": "1.0.10", @@ -4744,7 +6960,8 @@ }, "run-queue": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "requires": { "aproba": "1.2.0" } @@ -4753,7 +6970,8 @@ }, "node-gyp": { "version": "3.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", "requires": { "fstream": "1.0.11", "glob": "7.1.2", @@ -4772,7 +6990,8 @@ "dependencies": { "fstream": { "version": "1.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "requires": { "graceful-fs": "4.1.11", "inherits": "2.0.3", @@ -4782,14 +7001,16 @@ }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.8" }, "dependencies": { "brace-expansion": { "version": "1.1.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -4797,11 +7018,13 @@ "dependencies": { "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" } } } @@ -4809,18 +7032,21 @@ }, "nopt": { "version": "3.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "requires": { "abbrev": "1.1.1" } }, "semver": { "version": "5.3.0", - "bundled": true + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" }, "tar": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -4829,7 +7055,8 @@ "dependencies": { "block-stream": { "version": "0.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "requires": { "inherits": "2.0.3" } @@ -4840,7 +7067,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "requires": { "abbrev": "1.1.1", "osenv": "0.1.5" @@ -4848,7 +7076,8 @@ }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "requires": { "hosted-git-info": "2.5.0", "is-builtin-module": "1.0.0", @@ -4858,14 +7087,16 @@ "dependencies": { "is-builtin-module": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { "builtin-modules": "1.1.1" }, "dependencies": { "builtin-modules": { "version": "1.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" } } } @@ -4873,18 +7104,21 @@ }, "npm-cache-filename": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz", + "integrity": "sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=" }, "npm-install-checks": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-3.0.0.tgz", + "integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=", "requires": { "semver": "5.5.0" } }, "npm-lifecycle": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-2.0.0.tgz", + "integrity": "sha512-aE7H012O01GKXT9BWnsGMLVci+MOgkhpSwq02ok20aXcNHxFs7enfampNMkiOV1DJEU0LynzemwdjbtXahXKcw==", "requires": { "byline": "5.0.0", "graceful-fs": "4.1.11", @@ -4898,17 +7132,20 @@ "dependencies": { "byline": { "version": "5.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", + "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=" }, "resolve-from": { "version": "4.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" } } }, "npm-package-arg": { "version": "6.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.0.0.tgz", + "integrity": "sha512-hwC7g81KLgRmchv9ol6f3Fx4Yyc9ARX5X5niDHVILgpuvf08JRIgOZcEfpFXli3BgESoTrkauqorXm6UbvSgSg==", "requires": { "hosted-git-info": "2.5.0", "osenv": "0.1.5", @@ -4918,7 +7155,8 @@ }, "npm-packlist": { "version": "1.1.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", + "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "requires": { "ignore-walk": "3.0.1", "npm-bundled": "1.0.3" @@ -4926,21 +7164,24 @@ "dependencies": { "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "requires": { "minimatch": "3.0.4" }, "dependencies": { "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.8" }, "dependencies": { "brace-expansion": { "version": "1.1.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -4948,11 +7189,13 @@ "dependencies": { "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" } } } @@ -4962,13 +7205,15 @@ }, "npm-bundled": { "version": "1.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", + "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==" } } }, "npm-profile": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-profile/-/npm-profile-3.0.1.tgz", + "integrity": "sha512-U/jvnERvBRYgIdHkPURsa8mjLCOiImdA8fw1FzzCF//PKro4w1QANCmXiQex8f/Id1h939lqOiUT+ywKL0AG4Q==", "requires": { "aproba": "1.2.0", "make-fetch-happen": "2.6.0" @@ -4976,7 +7221,8 @@ "dependencies": { "make-fetch-happen": { "version": "2.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz", + "integrity": "sha512-FFq0lNI0ax+n9IWzWpH8A4JdgYiAp2DDYIZ3rsaav8JDe8I+72CzK6PQW/oom15YDZpV5bYW/9INd6nIJ2ZfZw==", "requires": { "agentkeepalive": "3.3.0", "cacache": "10.0.4", @@ -4993,21 +7239,24 @@ "dependencies": { "agentkeepalive": { "version": "3.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.3.0.tgz", + "integrity": "sha512-9yhcpXti2ZQE7bxuCsjjWNIZoQOd9sZ1ZBovHG0YeCRohFv73SLvcm73PC9T3olM4GyozaQb+4MGdQpcD8m7NQ==", "requires": { "humanize-ms": "1.2.1" }, "dependencies": { "humanize-ms": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { "ms": "2.1.1" }, "dependencies": { "ms": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } } @@ -5015,11 +7264,13 @@ }, "http-cache-semantics": { "version": "3.8.1", - "bundled": true + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" }, "http-proxy-agent": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.0.0.tgz", + "integrity": "sha1-RkgqLwUjpNYIJVFwn0acs+SoX/Q=", "requires": { "agent-base": "4.2.0", "debug": "2.6.9" @@ -5027,21 +7278,24 @@ "dependencies": { "agent-base": { "version": "4.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", + "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", "requires": { "es6-promisify": "5.0.0" }, "dependencies": { "es6-promisify": { "version": "5.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { "es6-promise": "4.2.4" }, "dependencies": { "es6-promise": { "version": "4.2.4", - "bundled": true + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" } } } @@ -5049,14 +7303,16 @@ }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" }, "dependencies": { "ms": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } } @@ -5064,7 +7320,8 @@ }, "https-proxy-agent": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.1.1.tgz", + "integrity": "sha512-LK6tQUR/VOkTI6ygAfWUKKP95I+e6M1h7N3PncGu1CATHCnex+CAv9ttR0lbHu1Uk2PXm/WoAHFo6JCGwMjVMw==", "requires": { "agent-base": "4.2.0", "debug": "3.1.0" @@ -5072,21 +7329,24 @@ "dependencies": { "agent-base": { "version": "4.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", + "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", "requires": { "es6-promisify": "5.0.0" }, "dependencies": { "es6-promisify": { "version": "5.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { "es6-promise": "4.2.4" }, "dependencies": { "es6-promise": { "version": "4.2.4", - "bundled": true + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" } } } @@ -5094,14 +7354,16 @@ }, "debug": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { "ms": "2.0.0" }, "dependencies": { "ms": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } } @@ -5109,7 +7371,8 @@ }, "mississippi": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.1.tgz", + "integrity": "sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg==", "requires": { "concat-stream": "1.6.0", "duplexify": "3.5.3", @@ -5125,7 +7388,8 @@ "dependencies": { "concat-stream": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.4", @@ -5134,13 +7398,15 @@ "dependencies": { "typedarray": { "version": "0.0.6", - "bundled": true + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" } } }, "duplexify": { "version": "3.5.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", + "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", "requires": { "end-of-stream": "1.4.1", "inherits": "2.0.3", @@ -5150,20 +7416,23 @@ "dependencies": { "stream-shift": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" } } }, "end-of-stream": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { "once": "1.4.0" } }, "flush-write-stream": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", + "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.4" @@ -5171,7 +7440,8 @@ }, "from2": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.4" @@ -5179,7 +7449,8 @@ }, "parallel-transform": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "requires": { "cyclist": "0.2.2", "inherits": "2.0.3", @@ -5188,13 +7459,15 @@ "dependencies": { "cyclist": { "version": "0.2.2", - "bundled": true + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" } } }, "pump": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", "requires": { "end-of-stream": "1.4.1", "once": "1.4.0" @@ -5202,7 +7475,8 @@ }, "pumpify": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", + "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", "requires": { "duplexify": "3.5.3", "inherits": "2.0.3", @@ -5211,7 +7485,8 @@ "dependencies": { "pump": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "requires": { "end-of-stream": "1.4.1", "once": "1.4.0" @@ -5221,7 +7496,8 @@ }, "stream-each": { "version": "1.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", + "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", "requires": { "end-of-stream": "1.4.1", "stream-shift": "1.0.0" @@ -5229,13 +7505,15 @@ "dependencies": { "stream-shift": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" } } }, "through2": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { "readable-stream": "2.3.4", "xtend": "4.0.1" @@ -5243,7 +7521,8 @@ "dependencies": { "xtend": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" } } } @@ -5251,7 +7530,8 @@ }, "node-fetch-npm": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", "requires": { "encoding": "0.1.12", "json-parse-better-errors": "1.0.1", @@ -5260,26 +7540,30 @@ "dependencies": { "encoding": { "version": "0.1.12", - "bundled": true, + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { "iconv-lite": "0.4.19" }, "dependencies": { "iconv-lite": { "version": "0.4.19", - "bundled": true + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" } } }, "json-parse-better-errors": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz", + "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==" } } }, "promise-retry": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "requires": { "err-code": "1.1.2", "retry": "0.10.1" @@ -5287,13 +7571,15 @@ "dependencies": { "err-code": { "version": "1.1.2", - "bundled": true + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" } } }, "socks-proxy-agent": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz", + "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", "requires": { "agent-base": "4.2.0", "socks": "1.1.10" @@ -5301,21 +7587,24 @@ "dependencies": { "agent-base": { "version": "4.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", + "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", "requires": { "es6-promisify": "5.0.0" }, "dependencies": { "es6-promisify": { "version": "5.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { "es6-promise": "4.2.4" }, "dependencies": { "es6-promise": { "version": "4.2.4", - "bundled": true + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" } } } @@ -5323,7 +7612,8 @@ }, "socks": { "version": "1.1.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", + "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", "requires": { "ip": "1.1.5", "smart-buffer": "1.1.15" @@ -5331,11 +7621,13 @@ "dependencies": { "ip": { "version": "1.1.5", - "bundled": true + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "smart-buffer": { "version": "1.1.15", - "bundled": true + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", + "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=" } } } @@ -5347,7 +7639,8 @@ }, "npm-registry-client": { "version": "8.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.5.0.tgz", + "integrity": "sha512-Nkcw24bfECKFNt0FLDQ+PjVqSlKxMggcboXiUBIvjbCnA15xjRO4kCwRDluGNXZjHFLx/vPjN4+ESXyVjpXLbQ==", "requires": { "concat-stream": "1.6.0", "graceful-fs": "4.1.11", @@ -5364,7 +7657,8 @@ "dependencies": { "concat-stream": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.4", @@ -5373,13 +7667,15 @@ "dependencies": { "typedarray": { "version": "0.0.6", - "bundled": true + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" } } }, "npm-package-arg": { "version": "5.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-5.1.2.tgz", + "integrity": "sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==", "requires": { "hosted-git-info": "2.5.0", "osenv": "0.1.5", @@ -5389,7 +7685,8 @@ }, "ssri": { "version": "4.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/ssri/-/ssri-4.1.6.tgz", + "integrity": "sha512-WUbCdgSAMQjTFZRWvSPpauryvREEA+Krn19rx67UlJEJx/M192ZHxMmJXjZ4tkdFm+Sb0SXGlENeQVlA5wY7kA==", "requires": { "safe-buffer": "5.1.1" } @@ -5398,11 +7695,13 @@ }, "npm-user-validate": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-1.0.0.tgz", + "integrity": "sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=" }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { "are-we-there-yet": "1.1.4", "console-control-strings": "1.1.0", @@ -5412,7 +7711,8 @@ "dependencies": { "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "requires": { "delegates": "1.0.0", "readable-stream": "2.3.4" @@ -5420,17 +7720,20 @@ "dependencies": { "delegates": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" } } }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "requires": { "aproba": "1.2.0", "console-control-strings": "1.1.0", @@ -5444,15 +7747,18 @@ "dependencies": { "object-assign": { "version": "4.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "signal-exit": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -5461,18 +7767,21 @@ "dependencies": { "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "1.0.1" }, "dependencies": { "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" } } } @@ -5480,20 +7789,23 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "requires": { "string-width": "1.0.2" } @@ -5502,24 +7814,28 @@ }, "set-blocking": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" } } }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1.0.2" } }, "opener": { "version": "1.4.3", - "bundled": true + "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", + "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=" }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { "os-homedir": "1.0.2", "os-tmpdir": "1.0.2" @@ -5527,17 +7843,20 @@ "dependencies": { "os-homedir": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-tmpdir": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" } } }, "pacote": { "version": "7.3.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/pacote/-/pacote-7.3.3.tgz", + "integrity": "sha512-AJRZPiSAWdXjdIIWqK/YFHd5Oc6T2jQ9CdfJfTY20ZcN1Lf5GIaOx3fESArkxTa9Tatw0tSLOs6JwxFvOkF3Mw==", "requires": { "bluebird": "3.5.1", "cacache": "10.0.4", @@ -5565,11 +7884,13 @@ "dependencies": { "get-stream": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "make-fetch-happen": { "version": "2.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz", + "integrity": "sha512-FFq0lNI0ax+n9IWzWpH8A4JdgYiAp2DDYIZ3rsaav8JDe8I+72CzK6PQW/oom15YDZpV5bYW/9INd6nIJ2ZfZw==", "requires": { "agentkeepalive": "3.3.0", "cacache": "10.0.4", @@ -5586,21 +7907,24 @@ "dependencies": { "agentkeepalive": { "version": "3.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.3.0.tgz", + "integrity": "sha512-9yhcpXti2ZQE7bxuCsjjWNIZoQOd9sZ1ZBovHG0YeCRohFv73SLvcm73PC9T3olM4GyozaQb+4MGdQpcD8m7NQ==", "requires": { "humanize-ms": "1.2.1" }, "dependencies": { "humanize-ms": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { "ms": "2.1.1" }, "dependencies": { "ms": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } } @@ -5608,11 +7932,13 @@ }, "http-cache-semantics": { "version": "3.8.1", - "bundled": true + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" }, "http-proxy-agent": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.0.0.tgz", + "integrity": "sha1-RkgqLwUjpNYIJVFwn0acs+SoX/Q=", "requires": { "agent-base": "4.2.0", "debug": "2.6.9" @@ -5620,21 +7946,24 @@ "dependencies": { "agent-base": { "version": "4.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", + "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", "requires": { "es6-promisify": "5.0.0" }, "dependencies": { "es6-promisify": { "version": "5.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { "es6-promise": "4.2.4" }, "dependencies": { "es6-promise": { "version": "4.2.4", - "bundled": true + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" } } } @@ -5642,14 +7971,16 @@ }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" }, "dependencies": { "ms": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } } @@ -5657,7 +7988,8 @@ }, "https-proxy-agent": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.1.1.tgz", + "integrity": "sha512-LK6tQUR/VOkTI6ygAfWUKKP95I+e6M1h7N3PncGu1CATHCnex+CAv9ttR0lbHu1Uk2PXm/WoAHFo6JCGwMjVMw==", "requires": { "agent-base": "4.2.0", "debug": "3.1.0" @@ -5665,21 +7997,24 @@ "dependencies": { "agent-base": { "version": "4.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", + "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", "requires": { "es6-promisify": "5.0.0" }, "dependencies": { "es6-promisify": { "version": "5.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { "es6-promise": "4.2.4" }, "dependencies": { "es6-promise": { "version": "4.2.4", - "bundled": true + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" } } } @@ -5687,14 +8022,16 @@ }, "debug": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { "ms": "2.0.0" }, "dependencies": { "ms": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } } @@ -5702,7 +8039,8 @@ }, "mississippi": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.1.tgz", + "integrity": "sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg==", "requires": { "concat-stream": "1.6.0", "duplexify": "3.5.3", @@ -5718,7 +8056,8 @@ "dependencies": { "concat-stream": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.4", @@ -5727,13 +8066,15 @@ "dependencies": { "typedarray": { "version": "0.0.6", - "bundled": true + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" } } }, "duplexify": { "version": "3.5.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", + "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", "requires": { "end-of-stream": "1.4.1", "inherits": "2.0.3", @@ -5743,20 +8084,23 @@ "dependencies": { "stream-shift": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" } } }, "end-of-stream": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { "once": "1.4.0" } }, "flush-write-stream": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", + "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.4" @@ -5764,7 +8108,8 @@ }, "from2": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.4" @@ -5772,7 +8117,8 @@ }, "parallel-transform": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "requires": { "cyclist": "0.2.2", "inherits": "2.0.3", @@ -5781,13 +8127,15 @@ "dependencies": { "cyclist": { "version": "0.2.2", - "bundled": true + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" } } }, "pump": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", "requires": { "end-of-stream": "1.4.1", "once": "1.4.0" @@ -5795,7 +8143,8 @@ }, "pumpify": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", + "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", "requires": { "duplexify": "3.5.3", "inherits": "2.0.3", @@ -5804,7 +8153,8 @@ "dependencies": { "pump": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "requires": { "end-of-stream": "1.4.1", "once": "1.4.0" @@ -5814,7 +8164,8 @@ }, "stream-each": { "version": "1.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", + "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", "requires": { "end-of-stream": "1.4.1", "stream-shift": "1.0.0" @@ -5822,13 +8173,15 @@ "dependencies": { "stream-shift": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" } } }, "through2": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { "readable-stream": "2.3.4", "xtend": "4.0.1" @@ -5836,7 +8189,8 @@ "dependencies": { "xtend": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" } } } @@ -5844,7 +8198,8 @@ }, "node-fetch-npm": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", "requires": { "encoding": "0.1.12", "json-parse-better-errors": "1.0.1", @@ -5853,26 +8208,30 @@ "dependencies": { "encoding": { "version": "0.1.12", - "bundled": true, + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { "iconv-lite": "0.4.19" }, "dependencies": { "iconv-lite": { "version": "0.4.19", - "bundled": true + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" } } }, "json-parse-better-errors": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz", + "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==" } } }, "socks-proxy-agent": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz", + "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", "requires": { "agent-base": "4.2.0", "socks": "1.1.10" @@ -5880,21 +8239,24 @@ "dependencies": { "agent-base": { "version": "4.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", + "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", "requires": { "es6-promisify": "5.0.0" }, "dependencies": { "es6-promisify": { "version": "5.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { "es6-promise": "4.2.4" }, "dependencies": { "es6-promise": { "version": "4.2.4", - "bundled": true + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" } } } @@ -5902,7 +8264,8 @@ }, "socks": { "version": "1.1.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", + "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", "requires": { "ip": "1.1.5", "smart-buffer": "1.1.15" @@ -5910,11 +8273,13 @@ "dependencies": { "ip": { "version": "1.1.5", - "bundled": true + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "smart-buffer": { "version": "1.1.15", - "bundled": true + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", + "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=" } } } @@ -5924,14 +8289,16 @@ }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.11" }, "dependencies": { "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -5939,11 +8306,13 @@ "dependencies": { "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" } } } @@ -5951,7 +8320,8 @@ }, "mississippi": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "requires": { "concat-stream": "1.6.0", "duplexify": "3.5.3", @@ -5967,7 +8337,8 @@ "dependencies": { "concat-stream": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.4", @@ -5976,13 +8347,15 @@ "dependencies": { "typedarray": { "version": "0.0.6", - "bundled": true + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" } } }, "duplexify": { "version": "3.5.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", + "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", "requires": { "end-of-stream": "1.4.1", "inherits": "2.0.3", @@ -5992,20 +8365,23 @@ "dependencies": { "stream-shift": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" } } }, "end-of-stream": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { "once": "1.4.0" } }, "flush-write-stream": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", + "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.4" @@ -6013,7 +8389,8 @@ }, "from2": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "requires": { "inherits": "2.0.3", "readable-stream": "2.3.4" @@ -6021,7 +8398,8 @@ }, "parallel-transform": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "requires": { "cyclist": "0.2.2", "inherits": "2.0.3", @@ -6030,13 +8408,15 @@ "dependencies": { "cyclist": { "version": "0.2.2", - "bundled": true + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" } } }, "pump": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "requires": { "end-of-stream": "1.4.1", "once": "1.4.0" @@ -6044,7 +8424,8 @@ }, "pumpify": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", + "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", "requires": { "duplexify": "3.5.3", "inherits": "2.0.3", @@ -6053,7 +8434,8 @@ }, "stream-each": { "version": "1.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", + "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", "requires": { "end-of-stream": "1.4.1", "stream-shift": "1.0.0" @@ -6061,13 +8443,15 @@ "dependencies": { "stream-shift": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" } } }, "through2": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { "readable-stream": "2.3.4", "xtend": "4.0.1" @@ -6075,7 +8459,8 @@ "dependencies": { "xtend": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" } } } @@ -6083,7 +8468,8 @@ }, "npm-pick-manifest": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.1.0.tgz", + "integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==", "requires": { "npm-package-arg": "6.0.0", "semver": "5.5.0" @@ -6091,7 +8477,8 @@ }, "promise-retry": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "requires": { "err-code": "1.1.2", "retry": "0.10.1" @@ -6099,44 +8486,52 @@ "dependencies": { "err-code": { "version": "1.1.2", - "bundled": true + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" } } }, "protoduck": { "version": "5.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.0.tgz", + "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", "requires": { "genfun": "4.0.1" }, "dependencies": { "genfun": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/genfun/-/genfun-4.0.1.tgz", + "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=" } } }, "semver": { "version": "5.5.0", - "bundled": true + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" } } }, "path-is-inside": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" }, "promise-inflight": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "qrcode-terminal": { "version": "0.11.0", - "bundled": true + "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz", + "integrity": "sha1-/8bCii/Av7RwUrR+I/T0RqX7254=" }, "query-string": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.0.tgz", + "integrity": "sha512-F3DkxxlY0AqD/rwe4YAwjRE2HjOkKW7TxsuteyrS/Jbwrxw887PqYBL4sWUJ9D/V1hmFns0SCD6FDyvlwo9RCQ==", "requires": { "decode-uri-component": "0.2.0", "object-assign": "4.1.1", @@ -6145,45 +8540,53 @@ "dependencies": { "decode-uri-component": { "version": "0.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "object-assign": { "version": "4.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "strict-uri-encode": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" } } }, "qw": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/qw/-/qw-1.0.1.tgz", + "integrity": "sha1-77/cdA+a0FQwRCassYNBLMi5ltQ=" }, "read": { "version": "1.0.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "requires": { "mute-stream": "0.0.7" }, "dependencies": { "mute-stream": { "version": "0.0.7", - "bundled": true + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" } } }, "read-cmd-shim": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz", + "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", "requires": { "graceful-fs": "4.1.11" } }, "read-installed": { "version": "4.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", + "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", "requires": { "debuglog": "1.0.1", "graceful-fs": "4.1.11", @@ -6196,13 +8599,15 @@ "dependencies": { "util-extend": { "version": "1.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", + "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=" } } }, "read-package-json": { "version": "2.0.12", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.12.tgz", + "integrity": "sha512-m7/I0+tP6D34EVvSlzCtuVA4D/dHL6OpLcn2e4XVP5X57pCKGUy1JjRSBVKHWpB+vUU91sL85h84qX0MdXzBSw==", "requires": { "glob": "7.1.2", "graceful-fs": "4.1.11", @@ -6213,17 +8618,20 @@ "dependencies": { "json-parse-better-errors": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz", + "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==" }, "slash": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" } } }, "read-package-tree": { "version": "5.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.1.6.tgz", + "integrity": "sha512-FCX1aT3GWyY658wzDICef4p+n0dB+ENRct8E/Qyvppj6xVpOYerBHfUu7OP5Rt1/393Tdglguf5ju5DEX4wZNg==", "requires": { "debuglog": "1.0.1", "dezalgo": "1.0.3", @@ -6234,7 +8642,8 @@ }, "readable-stream": { "version": "2.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", + "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -6247,32 +8656,38 @@ "dependencies": { "core-util-is": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "isarray": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "process-nextick-args": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "string_decoder": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { "safe-buffer": "5.1.1" } }, "util-deprecate": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" } } }, "readdir-scoped-modules": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz", + "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", "requires": { "debuglog": "1.0.1", "dezalgo": "1.0.3", @@ -6282,7 +8697,8 @@ }, "request": { "version": "2.83.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", "requires": { "aws-sign2": "0.7.0", "aws4": "1.6.0", @@ -6310,40 +8726,48 @@ "dependencies": { "aws-sign2": { "version": "0.7.0", - "bundled": true + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.6.0", - "bundled": true + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" }, "caseless": { "version": "0.12.0", - "bundled": true + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "combined-stream": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { "delayed-stream": "1.0.0" }, "dependencies": { "delayed-stream": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" } } }, "extend": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, "forever-agent": { "version": "0.6.1", - "bundled": true + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", "requires": { "asynckit": "0.4.0", "combined-stream": "1.0.5", @@ -6352,13 +8776,15 @@ "dependencies": { "asynckit": { "version": "0.4.0", - "bundled": true + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" } } }, "har-validator": { "version": "5.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { "ajv": "5.2.3", "har-schema": "2.0.0" @@ -6366,7 +8792,8 @@ "dependencies": { "ajv": { "version": "5.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz", + "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=", "requires": { "co": "4.6.0", "fast-deep-equal": "1.0.0", @@ -6376,26 +8803,31 @@ "dependencies": { "co": { "version": "4.6.0", - "bundled": true + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "fast-deep-equal": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" }, "json-schema-traverse": { "version": "0.3.1", - "bundled": true + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" }, "json-stable-stringify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { "jsonify": "0.0.0" }, "dependencies": { "jsonify": { "version": "0.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" } } } @@ -6403,13 +8835,15 @@ }, "har-schema": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" } } }, "hawk": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", "requires": { "boom": "4.3.1", "cryptiles": "3.1.2", @@ -6419,21 +8853,24 @@ "dependencies": { "boom": { "version": "4.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "requires": { "hoek": "4.2.0" } }, "cryptiles": { "version": "3.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", "requires": { "boom": "5.2.0" }, "dependencies": { "boom": { "version": "5.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", "requires": { "hoek": "4.2.0" } @@ -6442,11 +8879,13 @@ }, "hoek": { "version": "4.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" }, "sntp": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz", + "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=", "requires": { "hoek": "4.2.0" } @@ -6455,7 +8894,8 @@ }, "http-signature": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { "assert-plus": "1.0.0", "jsprim": "1.4.1", @@ -6464,11 +8904,13 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "jsprim": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -6478,15 +8920,18 @@ "dependencies": { "extsprintf": { "version": "1.3.0", - "bundled": true + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "json-schema": { "version": "0.2.3", - "bundled": true + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "verror": { "version": "1.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { "assert-plus": "1.0.0", "core-util-is": "1.0.2", @@ -6495,7 +8940,8 @@ "dependencies": { "core-util-is": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" } } } @@ -6503,7 +8949,8 @@ }, "sshpk": { "version": "1.13.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "requires": { "asn1": "0.2.3", "assert-plus": "1.0.0", @@ -6517,11 +8964,13 @@ "dependencies": { "asn1": { "version": "0.2.3", - "bundled": true + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" }, "bcrypt-pbkdf": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -6529,14 +8978,16 @@ }, "dashdash": { "version": "1.14.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { "assert-plus": "1.0.0" } }, "ecc-jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { "jsbn": "0.1.1" @@ -6544,19 +8995,22 @@ }, "getpass": { "version": "0.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { "assert-plus": "1.0.0" } }, "jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, "tweetnacl": { "version": "0.14.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true } } @@ -6565,61 +9019,73 @@ }, "is-typedarray": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "isstream": { "version": "0.1.2", - "bundled": true + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "json-stringify-safe": { "version": "5.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "mime-types": { "version": "2.1.17", - "bundled": true, + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "requires": { "mime-db": "1.30.0" }, "dependencies": { "mime-db": { "version": "1.30.0", - "bundled": true + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" } } }, "oauth-sign": { "version": "0.8.2", - "bundled": true + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" }, "performance-now": { "version": "2.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "qs": { "version": "6.5.1", - "bundled": true + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" }, "stringstream": { "version": "0.0.5", - "bundled": true + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" }, "tough-cookie": { "version": "2.3.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "requires": { "punycode": "1.4.1" }, "dependencies": { "punycode": { "version": "1.4.1", - "bundled": true + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" } } }, "tunnel-agent": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { "safe-buffer": "5.1.1" } @@ -6628,26 +9094,31 @@ }, "retry": { "version": "0.10.1", - "bundled": true + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "semver": { "version": "5.5.0", - "bundled": true + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, "sha": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz", + "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=", "requires": { "graceful-fs": "4.1.11", "readable-stream": "2.3.4" @@ -6655,15 +9126,18 @@ }, "slide": { "version": "1.1.6", - "bundled": true + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" }, "sorted-object": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-2.0.1.tgz", + "integrity": "sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw=" }, "sorted-union-stream": { "version": "2.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz", + "integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=", "requires": { "from2": "1.3.0", "stream-iterate": "1.2.0" @@ -6671,7 +9145,8 @@ "dependencies": { "from2": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/from2/-/from2-1.3.0.tgz", + "integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=", "requires": { "inherits": "2.0.3", "readable-stream": "1.1.14" @@ -6679,7 +9154,8 @@ "dependencies": { "readable-stream": { "version": "1.1.14", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -6689,15 +9165,18 @@ "dependencies": { "core-util-is": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "isarray": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "string_decoder": { "version": "0.10.31", - "bundled": true + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } } @@ -6705,7 +9184,8 @@ }, "stream-iterate": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/stream-iterate/-/stream-iterate-1.2.0.tgz", + "integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=", "requires": { "readable-stream": "2.3.4", "stream-shift": "1.0.0" @@ -6713,7 +9193,8 @@ "dependencies": { "stream-shift": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" } } } @@ -6721,27 +9202,31 @@ }, "ssri": { "version": "5.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.2.4.tgz", + "integrity": "sha512-UnEAgMZa15973iH7cUi0AHjJn1ACDIkaMyZILoqwN6yzt+4P81I8tBc5Hl+qwi5auMplZtPQsHrPBR5vJLcQtQ==", "requires": { "safe-buffer": "5.1.1" } }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "3.0.0" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" } } }, "tar": { "version": "4.3.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-4.3.3.tgz", + "integrity": "sha512-v9wjbOXloOIeXifMQGkKhPH3H7tjd+8BubFKOTU+64JpFZ3q2zBfsGlnc7KmyRgl8UxVa1SCRiF3F9tqSOgcaQ==", "requires": { "chownr": "1.0.1", "fs-minipass": "1.2.5", @@ -6753,53 +9238,62 @@ "dependencies": { "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "requires": { "minipass": "2.2.1" } }, "minipass": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.1.tgz", + "integrity": "sha512-u1aUllxPJUI07cOqzR7reGmQxmCqlH88uIIsf6XZFEWgw7gXKpJdR+5R9Y3KEDmWYkdIz9wXZs3C0jOPxejk/Q==", "requires": { "yallist": "3.0.2" } }, "minizlib": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "requires": { "minipass": "2.2.1" } }, "yallist": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" } } }, "text-table": { "version": "0.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "uid-number": { "version": "0.0.6", - "bundled": true + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=" }, "umask": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", + "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=" }, "unique-filename": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", + "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", "requires": { "unique-slug": "2.0.0" }, "dependencies": { "unique-slug": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", + "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", "requires": { "imurmurhash": "0.1.4" } @@ -6808,11 +9302,13 @@ }, "unpipe": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "update-notifier": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz", + "integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=", "requires": { "boxen": "1.2.1", "chalk": "2.1.0", @@ -6827,7 +9323,8 @@ "dependencies": { "boxen": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.2.1.tgz", + "integrity": "sha1-DxHn/jRO25OXl3/BPt5/ZNlWSB0=", "requires": { "ansi-align": "2.0.0", "camelcase": "4.1.0", @@ -6840,22 +9337,26 @@ "dependencies": { "ansi-align": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "requires": { "string-width": "2.1.1" } }, "camelcase": { "version": "4.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "cli-boxes": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" }, "string-width": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -6863,20 +9364,23 @@ "dependencies": { "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" } } }, "term-size": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "requires": { "execa": "0.7.0" }, "dependencies": { "execa": { "version": "0.7.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -6889,7 +9393,8 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { "lru-cache": "4.1.1", "shebang-command": "1.2.0", @@ -6898,14 +9403,16 @@ "dependencies": { "shebang-command": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { "shebang-regex": "1.0.0" }, "dependencies": { "shebang-regex": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" } } } @@ -6913,36 +9420,43 @@ }, "get-stream": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "is-stream": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "npm-run-path": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { "path-key": "2.0.1" }, "dependencies": { "path-key": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" } } }, "p-finally": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "signal-exit": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "strip-eof": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" } } } @@ -6950,14 +9464,16 @@ }, "widest-line": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz", + "integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=", "requires": { "string-width": "1.0.2" }, "dependencies": { "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -6966,31 +9482,36 @@ "dependencies": { "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "1.0.1" }, "dependencies": { "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" } } }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } } @@ -7002,7 +9523,8 @@ }, "chalk": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", @@ -7011,21 +9533,24 @@ "dependencies": { "ansi-styles": { "version": "3.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "requires": { "color-convert": "1.9.0" }, "dependencies": { "color-convert": { "version": "1.9.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", + "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", "requires": { "color-name": "1.1.3" }, "dependencies": { "color-name": { "version": "1.1.3", - "bundled": true + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" } } } @@ -7033,18 +9558,21 @@ }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "supports-color": { "version": "4.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", "requires": { "has-flag": "2.0.0" }, "dependencies": { "has-flag": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" } } } @@ -7052,7 +9580,8 @@ }, "configstore": { "version": "3.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz", + "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==", "requires": { "dot-prop": "4.2.0", "graceful-fs": "4.1.11", @@ -7064,40 +9593,46 @@ "dependencies": { "dot-prop": { "version": "4.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "requires": { "is-obj": "1.0.1" }, "dependencies": { "is-obj": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" } } }, "make-dir": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", + "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=", "requires": { "pify": "2.3.0" }, "dependencies": { "pify": { "version": "2.3.0", - "bundled": true + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, "unique-string": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "requires": { "crypto-random-string": "1.0.0" }, "dependencies": { "crypto-random-string": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" } } } @@ -7105,11 +9640,13 @@ }, "import-lazy": { "version": "2.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" }, "is-installed-globally": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "requires": { "global-dirs": "0.1.0", "is-path-inside": "1.0.0" @@ -7117,14 +9654,16 @@ "dependencies": { "global-dirs": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.0.tgz", + "integrity": "sha1-ENNAOeDfBCcuJizyQiT3IJQ0308=", "requires": { "ini": "1.3.5" } }, "is-path-inside": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", "requires": { "path-is-inside": "1.0.2" } @@ -7133,18 +9672,21 @@ }, "is-npm": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" }, "latest-version": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "requires": { "package-json": "4.0.1" }, "dependencies": { "package-json": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "requires": { "got": "6.7.1", "registry-auth-token": "3.3.1", @@ -7154,7 +9696,8 @@ "dependencies": { "got": { "version": "6.7.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "requires": { "create-error-class": "3.0.2", "duplexer3": "0.1.4", @@ -7171,59 +9714,71 @@ "dependencies": { "create-error-class": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "requires": { "capture-stack-trace": "1.0.0" }, "dependencies": { "capture-stack-trace": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" } } }, "duplexer3": { "version": "0.1.4", - "bundled": true + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "get-stream": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "is-redirect": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" }, "is-retry-allowed": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" }, "is-stream": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "lowercase-keys": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" }, "timed-out": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "unzip-response": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" }, "url-parse-lax": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { "prepend-http": "1.0.4" }, "dependencies": { "prepend-http": { "version": "1.0.4", - "bundled": true + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" } } } @@ -7231,7 +9786,8 @@ }, "registry-auth-token": { "version": "3.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz", + "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=", "requires": { "rc": "1.2.1", "safe-buffer": "5.1.1" @@ -7239,7 +9795,8 @@ "dependencies": { "rc": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", "requires": { "deep-extend": "0.4.2", "ini": "1.3.5", @@ -7249,15 +9806,18 @@ "dependencies": { "deep-extend": { "version": "0.4.2", - "bundled": true + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" }, "minimist": { "version": "1.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "strip-json-comments": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" } } } @@ -7265,14 +9825,16 @@ }, "registry-url": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "requires": { "rc": "1.2.1" }, "dependencies": { "rc": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", "requires": { "deep-extend": "0.4.2", "ini": "1.3.5", @@ -7282,15 +9844,18 @@ "dependencies": { "deep-extend": { "version": "0.4.2", - "bundled": true + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" }, "minimist": { "version": "1.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "strip-json-comments": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" } } } @@ -7302,24 +9867,28 @@ }, "semver-diff": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "requires": { "semver": "5.5.0" } }, "xdg-basedir": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" } } }, "uuid": { "version": "3.2.1", - "bundled": true + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" }, "validate-npm-package-license": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "requires": { "spdx-correct": "1.0.2", "spdx-expression-parse": "1.0.4" @@ -7327,52 +9896,60 @@ "dependencies": { "spdx-correct": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "requires": { "spdx-license-ids": "1.2.2" }, "dependencies": { "spdx-license-ids": { "version": "1.2.2", - "bundled": true + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" } } }, "spdx-expression-parse": { "version": "1.0.4", - "bundled": true + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" } } }, "validate-npm-package-name": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { "builtins": "1.0.3" }, "dependencies": { "builtins": { "version": "1.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" } } }, "which": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "requires": { "isexe": "2.0.0" }, "dependencies": { "isexe": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" } } }, "worker-farm": { "version": "1.5.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz", + "integrity": "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==", "requires": { "errno": "0.1.7", "xtend": "4.0.1" @@ -7380,30 +9957,35 @@ "dependencies": { "errno": { "version": "0.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "requires": { "prr": "1.0.1" }, "dependencies": { "prr": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" } } }, "xtend": { "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" } } }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.1.0.tgz", + "integrity": "sha512-0TZ20a+xcIl4u0+Mj5xDH2yOWdmQiXlKf9Hm+TgDXjTMsEYb+gDrmb8e8UNAzMCitX8NBqG4Z/FUQIyzv/R1JQ==", "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", @@ -7412,6 +9994,14 @@ } } }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "2.0.1" + } + }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -7438,6 +10028,80 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", @@ -7447,6 +10111,21 @@ "is-extendable": "0.1.1" } }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -7468,6 +10147,37 @@ "wrappy": "1.0.2" } }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" + }, + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + } + } + }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -7500,6 +10210,46 @@ "os-tmpdir": "1.0.2" } }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "dev": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.2.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "requires": { + "got": "6.7.1", + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0", + "semver": "5.5.0" + } + }, "pako": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", @@ -7541,11 +10291,21 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, "path-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", @@ -7559,6 +10319,22 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -7574,6 +10350,14 @@ "pinkie-promise": "2.0.1" } }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "requires": { + "through": "2.3.8" + } + }, "pbkdf2": { "version": "3.0.14", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", @@ -7617,6 +10401,28 @@ "find-up": "1.1.2" } }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", @@ -7637,6 +10443,12 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true + }, "promise": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", @@ -7669,6 +10481,27 @@ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" }, + "ps-tree": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz", + "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", + "requires": { + "event-stream": "3.3.4" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "pstree.remy": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.0.tgz", + "integrity": "sha512-q5I5vLRMVtdWa8n/3UEzZX7Lfghzrg9eG2IKk2ENLSofKRCXVqMvMUHxCKgXNaqH/8ebhBxrqftHWnyTFweJ5Q==", + "requires": { + "ps-tree": "1.1.0" + } + }, "public-encrypt": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", @@ -7993,6 +10826,15 @@ "is-equal-shallow": "0.1.3" } }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, "regexp-clone": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", @@ -8008,6 +10850,23 @@ "regjsparser": "0.1.5" } }, + "registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "requires": { + "rc": "1.2.5", + "safe-buffer": "5.1.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "requires": { + "rc": "1.2.5" + } + }, "regjsgen": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", @@ -8090,13 +10949,40 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "0.1.0", + "resolve-from": "1.0.1" + }, + "dependencies": { + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + } + } + }, "require_optional": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", "requires": { - "resolve-from": "2.0.0", - "semver": "5.5.0" + "resolve-from": "2.0.0", + "semver": "5.5.0" + } + }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" } }, "resolve-from": { @@ -8109,6 +10995,26 @@ "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz", "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==" }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", @@ -8134,11 +11040,43 @@ "inherits": "2.0.3" } }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "2.1.0" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "4.0.8" + } + }, "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "0.1.15" + } + }, "schema-utils": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", @@ -8173,6 +11111,14 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "requires": { + "semver": "5.5.0" + } + }, "send": { "version": "0.16.1", "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", @@ -8224,11 +11170,40 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "set-getter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", + "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", + "requires": { + "to-object-path": "0.3.0" + } + }, "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -8248,6 +11223,19 @@ "safe-buffer": "5.1.1" } }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", @@ -8263,11 +11251,153 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, "sliced": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" }, + "snapdragon": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", + "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.1", + "use": "2.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "3.2.2" + } + }, "sntp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", @@ -8286,6 +11416,18 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "requires": { + "atob": "2.0.3", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, "source-map-support": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", @@ -8294,6 +11436,11 @@ "source-map": "0.5.7" } }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, "spdx-correct": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", @@ -8312,6 +11459,28 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" }, + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "requires": { + "through": "2.3.8" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "3.0.2" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, "sshpk": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", @@ -8327,6 +11496,76 @@ "tweetnacl": "0.14.5" } }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", @@ -8341,6 +11580,14 @@ "readable-stream": "2.3.4" } }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "requires": { + "duplexer": "0.1.1" + } + }, "stream-http": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", @@ -8392,21 +11639,114 @@ "is-utf8": "0.2.1" } }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.3.2", + "lodash": "4.17.5", + "slice-ansi": "1.0.0", + "string-width": "2.1.1" + }, + "dependencies": { + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, "tapable": { "version": "0.2.8", "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", @@ -8447,6 +11787,30 @@ } } }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "0.7.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, "timers-browserify": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz", @@ -8455,6 +11819,15 @@ "setimmediate": "1.0.5" } }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } + }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -8465,6 +11838,62 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + } + } + } + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "requires": { + "nopt": "1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1.1.1" + } + } + } + }, "tough-cookie": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", @@ -8497,6 +11926,15 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, "type-is": { "version": "1.6.16", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", @@ -8506,6 +11944,12 @@ "mime-types": "2.1.18" } }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, "ua-parser-js": { "version": "0.7.17", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", @@ -8553,11 +11997,180 @@ "random-bytes": "1.0.0" } }, + "undefsafe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz", + "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", + "requires": { + "debug": "2.6.9" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "unicons": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/unicons/-/unicons-0.0.3.tgz", + "integrity": "sha1-bmp6Gm6uuwHKPYsSrZaHJ56rpSQ=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "1.0.0" + } + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + }, + "upath": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.4.tgz", + "integrity": "sha512-d4SJySNBXDaQp+DPrziv3xGS6w3d2Xt69FijJr86zMPBy23JEloMCEOUBBzuN7xCtjLCnmB9tI/z7SBCahHBOw==" + }, + "update-notifier": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz", + "integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=", + "requires": { + "boxen": "1.3.0", + "chalk": "2.3.2", + "configstore": "3.1.1", + "import-lazy": "2.1.0", + "is-installed-globally": "0.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", @@ -8574,6 +12187,98 @@ } } }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "1.0.4" + } + }, + "use": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", + "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", + "requires": { + "define-property": "0.2.5", + "isobject": "3.0.1", + "lazy-cache": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "requires": { + "set-getter": "0.1.0" + } + } + } + }, "util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", @@ -8727,6 +12432,14 @@ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "requires": { + "isexe": "2.0.0" + } + }, "which-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", @@ -8740,6 +12453,43 @@ "string-width": "1.0.2" } }, + "widest-line": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", + "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "requires": { + "string-width": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, "window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", @@ -8764,6 +12514,30 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "0.5.1" + } + }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", @@ -8774,6 +12548,11 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, "yargs": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", diff --git a/package.json b/package.json index aa5dc13..64ea1e4 100644 --- a/package.json +++ b/package.json @@ -9,15 +9,16 @@ "start": "webpack -d | node server/index.js", "postinstall": "node node_modules/webpack/bin/webpack.js --display-error-details" }, - "author": "PIU - Stephanie Chou, Trent Hendricks, Mickey McClenon, Krisha Mehta", + "author": "Da Brain Trust LCC/LTD/GmbH", "license": "ISC", "dependencies": { "axios": "^0.18.0", "babel-core": "^6.23.1", - "babel-loader": "^6.3.2", + "babel-loader": "^7.1.4", "babel-preset-es2015": "^6.22.0", "babel-preset-react": "^6.23.0", "bcrypt": "^1.0.3", + "bluebird": "^3.5.1", "body-parser": "^1.17.2", "express": "^4.15.0", "express-session": "^1.15.6", @@ -25,6 +26,7 @@ "material-ui": "^0.19.4", "moment": "^2.20.1", "mongoose": "^4.8.6", + "nodemon": "^1.17.1", "npm": "^5.7.1", "react": "^16.2.0", "react-dom": "^16.2.0", @@ -37,6 +39,11 @@ "webpack": "^2.2.1" }, "devDependencies": { + "eslint": "^4.18.2", + "eslint-plugin-import": "^2.9.0", + "eslint-plugin-react": "^7.7.0", + "eslint-plugin-react-redux": "^2.1.0", + "eslint-watch": "^3.1.3", "file-loader": "^1.1.10" } } diff --git a/react-client/src/actions/index.js b/react-client/src/actions/index.js index f12072a..4ad93c6 100644 --- a/react-client/src/actions/index.js +++ b/react-client/src/actions/index.js @@ -25,13 +25,16 @@ export const login = (username, password) => { if (results.data.error) { alert(results.data.message); } else { - dispatch(authenticate()) + dispatch(authenticate()); dispatch(fetchTrips(username)); } }, - error => { console.log('error', error); dispatch(badStuff(error)) } + error => { + console.log('error', error); + dispatch(badStuff(error)); + } ); - } + }; }; export const signup = (username, password) => { @@ -44,9 +47,9 @@ export const signup = (username, password) => { password: password } }).then( - results => { - if (results.data.error) { - alert(results.data.message); + ({ data }) => { + if (data.error) { + alert(data.message); } else { dispatch(authenticate()); } @@ -54,7 +57,7 @@ export const signup = (username, password) => { error => dispatch(badStuff(error)) ); }; -} +}; export const authenticate = () => ({ type: 'AUTHEN' }); @@ -64,12 +67,12 @@ export const logOut = () => { method: 'get', url: 'logout', }).then( - results => { + () => { dispatch(deauthenticate()); } - ) - } -} + ); + }; +}; export const deauthenticate = () => ({ type: 'LOGOUT' }); @@ -88,18 +91,18 @@ export const fetchTrips = (param) => { search: param } }).then( - results => { + ({ data }) => { if (param === 'public') { - dispatch(setPublicTrips(results.data.trips)); + dispatch(setPublicTrips(data.trips)); dispatch(loading()); } else { - dispatch(setUserTrips(results.data.trips)); + dispatch(setUserTrips(data.trips)); dispatch(loading()); } }, error => dispatch(badStuff(error)) ); - } + }; }; export const updateTripDates = (user, city, fromDate, toDate) => { @@ -114,15 +117,15 @@ export const updateTripDates = (user, city, fromDate, toDate) => { tripToDate: toDate } }).then( - results => { + () => { dispatch(updateFromDate('')); dispatch(updateToDate('')); dispatch(setMinToDate({})); }, error => dispatch(badStuff(error)) - ) - } -} + ); + }; +}; export const updateFromDate = (date) => ({ type: 'UPDATE_TRIP_FROM_DATE', payload: date }); @@ -145,7 +148,7 @@ export const makeNewTrip = (username, city, index, fromDate, toDate) => { tripToDate: toDate } }).then( - results => { + () => { dispatch(activateTrip(index)); dispatch(fetchTrips(username)); dispatch(makePrivate()); @@ -154,10 +157,10 @@ export const makeNewTrip = (username, city, index, fromDate, toDate) => { dispatch(setMinToDate({})); dispatch(updateFromDate('')); }, - error => dispatch(badStuff(error)) + error => dispatch(badStuff(error)) ); }; -} +}; export const activateTrip = (tripIndex) => { @@ -166,7 +169,7 @@ export const activateTrip = (tripIndex) => { dispatch(updateFoodResults([])); dispatch(updateEventResults([])); dispatch(actuallyActivate(tripIndex)); - } + }; }; const actuallyActivate = (tripIndex) => ({ type: 'ACTIVATE', payload: tripIndex }); @@ -176,7 +179,7 @@ export const deactivate = () => { dispatch(updateFoodResults([])); dispatch(updateEventResults([])); dispatch(actuallyDeactivate()); - } + }; }; const actuallyDeactivate = () => ({ type: 'DEACTIVATE' }); @@ -197,50 +200,57 @@ export const searchEvents = (city, query, fromDate, toDate) => { tripToDate: toDate } }).then( - results => (dispatch(updateEventResults(results.data))), + ({ data }) => { + if (data.length) { + dispatch(updateEventResults(data)); + } else { + alert('Nothing found!'); + } + }, error => dispatch(badStuff(error)) ); }; -} +}; const updateEventResults = (searchResults) => ({ type: 'UPDATE_EVENT_RESULTS', payload: searchResults }); -export const addEventToTrip = (event, username, city) => { +export const addEventToTrip = (event, tripId ) => { return (dispatch) => { return axios({ method: 'post', url: '/events/add', data: { tripEvent: event, - tripUser: username, - tripCity: city + tripId: tripId } }).then( - results => { - dispatch(fetchEventsFromTrip(username, city)); + () => { + dispatch(fetchEventsFromTrip(tripId)); dispatch(activateEventSnackbar()); }, error => dispatch(badStuff(error)) ); }; -} +}; -export const fetchEventsFromTrip = (username, city) => { - //dispatch({ type: 'LOADING' }); +export const fetchEventsFromTrip = (tripId) => { + //dispatch({ type: 'LOADING' }); return (dispatch) => { - return axios({ + return axios({ method: 'get', - url: '/events', - params: { - tripUser: username, - tripCity: city - } - }).then( - results => {dispatch(setTripEvents(results.data.events))}, - error => {dispatch(badStuff(err))} - ) - } -} + url: '/events', + params: { + tripId: tripId + } + }).then( + results => { + console.log('inside fetchEventsFromTrip results', results); + dispatch(setTripEvents(results.data.events)); + }, + error => {dispatch(badStuff(error));} + ); + }; +}; const setTripEvents = (events) => ({ type: 'REFRESH_TRIP_EVENTS', payload: events }); @@ -262,52 +272,57 @@ export const searchForFood = (city, query) => { foodQuery: query } }).then( - results => { - dispatch(updateFoodResults(results.data.foods))}, + ({ data }) => { + if (data.foods.length) { + dispatch(updateFoodResults(data.foods)); + } else { + alert('No results!'); + } + }, error => dispatch(badStuff(error)) - ) - } -} - -const updateFoodResults = (searchResults) => ({ type: 'UPDATE_FOOD_RESULTS', payload: searchResults}) + ); + }; +}; + +const updateFoodResults = (searchResults) => ({ type: 'UPDATE_FOOD_RESULTS', payload: searchResults}); -export const addFoodToTrip = (food, username, city) => { +export const addFoodToTrip = (food, tripId) => { return (dispatch) => { + console.log('inside addFoodToTrip', tripId); return axios({ method: 'post', url: '/foods/add', data: { tripFood: food, - tripUser: username, - tripCity: city + tripId: tripId } }).then( - results => { - dispatch(fetchFoodFromTrip(username, city)); + (data) => { + console.log('about ot enter fetchFoodFromTrip', data); + dispatch(fetchFoodFromTrip( tripId)); dispatch(activateFoodSnackbar()); }, error => dispatch(badStuff(error)) ); }; -} +}; -export const fetchFoodFromTrip = (username, city) => { - //dispatch({ type: 'LOADING' }); +export const fetchFoodFromTrip = (tripId) => { + //dispatch({ type: 'LOADING' }); return (dispatch) => { return axios({ method: 'get', url: '/foods', params: { - tripUser: username, - tripCity: city + tripId: tripId } }).then( - results => { - dispatch(setTripEatin(results.data.foods)) }, - error => { dispatch(badStuff(err)) } - ) - } -} + results => { + dispatch(setTripEatin(results.data.foods)); }, + error => { dispatch(badStuff(error)); } + ); + }; +}; const setTripEatin = (foods) => ({ type: 'REFRESH_TRIP_EATIN', payload: foods }); @@ -315,6 +330,77 @@ export const activateFoodSnackbar = () => ({type: 'ACTIVATE_FOOD_SNACKBAR'}); export const deactivateFoodSnackbar = () => ({type: 'DEACTIVATE_FOOD_SNACKBAR'}); +/***************************** HOTELS *************************************/ + +export const updateHotelQuery = (query) => ({ type: 'UPDATE_HOTEL_QUERY', payload: query }); + +export const searchHotels = (city,/* query, fromDate, toDate*/) => { + return (dispatch) => { + return axios({ + method: 'post', + url: '/hotels', + data: { + tripCity: city, + // hotelQuery: query, + // tripFromDate: fromDate, + // tripToDate: toDate + } + }).then( + ({ data }) => { + if (data.length) { + dispatch(updateHotelResults(data)); + } else { + alert('Nothing found!'); + } + }, + error => dispatch(badStuff(error)) + ); + }; +}; + +const updateHotelResults = (searchResults) => ({ type: 'UPDATE_HOTEL_RESULTS', payload: searchResults }); + +export const addHotelToTrip = (hotel, tripId ) => { + return (dispatch) => { + return axios({ + method: 'post', + url: '/hotels/add', + data: { + tripHotel: hotel, + tripId: tripId + } + }).then( + () => { + dispatch(fetchHotelsFromTrip(tripId)); + dispatch(activateHotelSnackbar()); + }, + error => dispatch(badStuff(error)) + ); + }; +}; + +export const fetchHotelsFromTrip = (tripId) => { + //dispatch({ type: 'LOADING' }); + return (dispatch) => { + return axios({ + method: 'get', + url: '/hotels', + params: { + tripId: tripId + } + }).then( + results => {dispatch(setTripHotels(results.data.hotels));}, + error => {dispatch(badStuff(error));} + ); + }; +}; + +const setTripHotels = (hotels) => ({ type: 'REFRESH_TRIP_HOTELS', payload: hotels }); + +export const activateHotelSnackbar = () => ({type: 'ACTIVATE_HOTEL_SNACKBAR'}); + +export const deactivateHotelSnackbar = () => ({type: 'DEACTIVATE_HOTEL_SNACKBAR'}); + //////////////////////////////USER PAGE STUFF \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ export const deleteTrip = (user, trip) => { @@ -327,17 +413,17 @@ export const deleteTrip = (user, trip) => { tripID: trip.id } }).then ( - results => { + () => { dispatch(fetchTrips(user)); dispatch(activateDeleteSnackbar()); }, error => dispatch(badStuff(error)) - ) - } -} + ); + }; +}; -export const deleteEvent = (event, username, city) => { - console.log('delete!') +export const deleteEvent = (event, tripId) => { + console.log('delete!'); return (dispatch) => { return axios ({ method: 'post', @@ -346,14 +432,14 @@ export const deleteEvent = (event, username, city) => { eventID: event.id } }).then ( - results => { dispatch(fetchEventsFromTrip(username, city)) }, - error => {dispatch(badStuff(error))} + () => { dispatch(fetchEventsFromTrip(tripId)); }, + error => {dispatch(badStuff(error));} ); }; -} +}; -export const deleteFood = (food, username, city) => { - console.log('delete!') +export const deleteFood = (food, tripId) => { + console.log('delete!'); return (dispatch) => { return axios({ method: 'post', @@ -362,11 +448,27 @@ export const deleteFood = (food, username, city) => { foodID: food.id } }).then( - results => { dispatch(fetchFoodFromTrip(username, city)) }, - error => { dispatch(badStuff(error)) } + () => { dispatch(fetchFoodFromTrip(tripId)); }, + error => { dispatch(badStuff(error)); } ); }; -} +}; + +export const deleteHotel = (hotel, tripId) => { + console.log('delete!'); + return (dispatch) => { + return axios ({ + method: 'post', + url: '/hotels/remove', + data: { + hotelID: hotel.id + } + }).then ( + () => { dispatch(fetchHotelsFromTrip(tripId)); }, + error => {dispatch(badStuff(error));} + ); + }; +}; export const toggleTripStatus = (user, trip) => { return dispatch => { @@ -379,14 +481,14 @@ export const toggleTripStatus = (user, trip) => { public : !trip.isPublic } }).then ( - results => { + () => { dispatch(fetchTrips(user)); trip.isPublic === false ? dispatch(activatePublicSnackbar()) : dispatch(activatePrivateSnackbar()); }, error => dispatch(badStuff(error)) - ) - } -} + ); + }; +}; export const makePublic = () => ({type: 'UPDATE_TO_PUBLIC'}); @@ -404,7 +506,7 @@ export const deactivatePublicSnackbar = () => ({type: 'DEACTIVATE_PUBLIC_SNACKBA export const activatePrivateSnackbar = () => ({type: 'ACTIVATE_PRIVATE_SNACKBAR'}); export const deactivatePrivateSnackbar = () => ({type: 'DEACTIVATE_PRIVATE_SNACKBAR'}); - + //ACTION_NAME must correspond with reducer switch option // complex action example w/ async diff --git a/react-client/src/components/activity.jsx b/react-client/src/components/activity.jsx index 3e118f8..49a5c68 100644 --- a/react-client/src/components/activity.jsx +++ b/react-client/src/components/activity.jsx @@ -4,7 +4,8 @@ import moment from 'moment'; import { Card, CardActions, CardHeader, CardMedia, CardTitle, CardText } from 'material-ui/Card'; import FlatButton from 'material-ui/FlatButton/'; -import { cyan50, cyan100, cyan200, cyan300, cyan400, cyan500, cyan600, cyan700, cyan800, cyan900 } from 'material-ui/styles/colors'; +// import { cyan50, cyan100, cyan200, cyan300, cyan400, cyan500, cyan600, cyan700, cyan800, cyan900 } from 'material-ui/styles/colors'; +import { cyan500, cyan700, cyan800, cyan900 } from 'material-ui/styles/colors'; export const styles = { anchor: { @@ -20,10 +21,12 @@ export const styles = { color: cyan500, fontSize: 13 } -} +}; let Activity = (props) => { let cardStyle = {}; + console.log('props.key', props.key); + // console.log('activity props.store', props.store); if (props.sidebar) { cardStyle = { textAlign: 'left', margin: '5px'}; } else { @@ -41,32 +44,41 @@ let Activity = (props) => { return ( props.deleteEvent(props.activity, props.user, props.city)} + onClick={() => props.deleteEvent(props.activity,props.store.userTrips[props.store.activeTrip.index].id)} label='Remove' /> - ) + ); } else if (activity === 'eatin') { return ( props.deleteFood(props.activity,props.user,props.city)} + onClick= {() => props.deleteFood(props.activity,props.store.userTrips[props.store.activeTrip.index].id)} label = 'Remove' /> - ) + ); + } else if (activity === 'hotel') { + return ( + + props.deleteHotel(props.activity, props.store.userTrips[props.store.activeTrip.index].id)} + label = 'Remove' + /> + + ); } } - } + }; // Converts price to dollar signs for restaurants let calcDollarSigns = (price) => { let dollarSigns = ''; - for (var i = 0; i < price; i++) { + for (let i = 0; i < price; i++) { dollarSigns += '$'; } return dollarSigns; - } + }; // Renders activities shown on page if (props.type === 'event') { @@ -91,11 +103,11 @@ let Activity = (props) => { } return ( - + - + - + { padding: '1%' }}>{props.activity.description} - + {/*********** Renders the remove button if user is logged in ***********/} {showRemoveButton('event')} ); + } else if (props.type === 'hotel') { + let fromDate = moment(props.activity.start_time).format('MM/DD/YY'); + let startTime = moment(props.activity.start_time).format('h:mm A'); + + let toDate = moment(props.activity.end_time).format('MM/DD/YY'); + let endTime = moment(props.activity.start_time).format('h:mm A'); + + let cardSubtitle = `${fromDate} ${startTime} - ${toDate} ${endTime}`; + + // If start/end dates are the same + if (fromDate === toDate) { + // And if start/end times are the same + if (startTime === endTime) { + // Show only the start date/time + cardSubtitle = `${fromDate} @ ${startTime}`; + } else { + // Else show the start/end time + cardSubtitle = `${fromDate} from ${startTime} - ${endTime}`; + } + } + + return ( + + + + + + {props.activity.name} + } + subtitle = {cardSubtitle} + titleStyle = {styles.cardTitle} + subtitleStyle = {styles.cardSubtitle} + /> + + + + +
About:
+
{props.activity.description}
+
+ + {/*********** Renders the remove button if user is logged in ***********/} + {showRemoveButton('hotel')} +
+ ); + } else { //is eatin return ( - + { /> -
{props.activity.address}
+
+ {props.activity.address} +
- + {/*********** Renders the remove button if user is logged in ***********/} {showRemoveButton('eatin')}
); } -} +}; -export default Activity; \ No newline at end of file +export default Activity; diff --git a/react-client/src/components/events.jsx b/react-client/src/components/events.jsx index 928c5c4..4a7bec0 100644 --- a/react-client/src/components/events.jsx +++ b/react-client/src/components/events.jsx @@ -2,7 +2,7 @@ import React from 'react'; import moment from 'moment'; import { GridList, GridTile } from 'material-ui/GridList'; -import Subheader from 'material-ui/Subheader'; +// import Subheader from 'material-ui/Subheader'; import IconButton from 'material-ui/IconButton'; import AddBorder from 'material-ui/svg-icons/content/add-circle-outline'; import Snackbar from 'material-ui/Snackbar'; @@ -38,11 +38,22 @@ const Events = (props) => { return ( {event.name.text}} + title={{event.name.text}} subtitle={`${moment(event.start.local).format('MM/DD/YY hh:mm A')} - ${moment(event.end.local).format('MM/DD/YY hh:mm A')}`} - actionIcon={ props.addEventToTrip(event, props.user, props.city)}>} + actionIcon={ + props.addEventToTrip(event, props.store.userTrips[props.store.activeTrip.index].id) + }> + + } > - + ); @@ -54,15 +65,21 @@ const Events = (props) => { subtitle='date range' actionIcon={ props.addEventToTrip(event, props.user, props.city)} + onClick={() => props.addEventToTrip(event, props.store.userTrips[props.store.activeTrip.index].id)} > - } + + } > - + - ) + ); } })} @@ -71,6 +88,6 @@ const Events = (props) => { } else { return null; } -} +}; -export default Events; \ No newline at end of file +export default Events; diff --git a/react-client/src/components/homePage.jsx b/react-client/src/components/homePage.jsx index 6a7c0bf..26876d3 100644 --- a/react-client/src/components/homePage.jsx +++ b/react-client/src/components/homePage.jsx @@ -7,11 +7,9 @@ import Login from './login.jsx'; import Trip from './trip.jsx'; import { Link } from 'react-router-dom'; -import lightBaseTheme from 'material-ui/styles/baseThemes/lightBaseTheme'; import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; import getMuiTheme from 'material-ui/styles/getMuiTheme'; -import { cyan50, cyan100, cyan200, cyan300, cyan400, cyan500, cyan600, cyan700, cyan800, cyan900 } from 'material-ui/styles/colors'; -import FlatButton from 'material-ui/FlatButton'; +import { cyan50, cyan100, cyan200, cyan500, cyan600, cyan700, cyan800, cyan900 } from 'material-ui/styles/colors'; import Paper from 'material-ui/Paper'; import RaisedButton from 'material-ui/RaisedButton'; @@ -79,9 +77,10 @@ export const styles = { fontFamily: 'Arial', fontSize: 45, fontWeight: 'bold', - paddingTop: '15%', + paddingTop: '5%', textAlign: 'center', - textDecoration: 'none' + textDecoration: 'none', + maxHeight: 150 }, navLinks: { display: 'flex', @@ -91,7 +90,7 @@ export const styles = { position: 'absolute', }, getStarted: { - background: `linear-gradient(to bottom right, white, #f9f9f9)`, + background: 'linear-gradient(to bottom right, white, #f9f9f9)', color: cyan600, fontSize: 25, fontWeight: 'bold', @@ -107,11 +106,14 @@ export const styles = { textDecoration: 'none', color: cyan900 } -} +}; class Home extends React.Component { - constructor (props) { + constructor(props) { super(props); + + this.toSearchPage = this.toSearchPage.bind(this); + this.toUserPage = this.toUserPage.bind(this); } componentWillMount() { @@ -119,29 +121,34 @@ class Home extends React.Component { this.props.actions.fetchTrips('public'); } - toUserPage () { + toUserPage() { this.props.history.push('/trips'); } - toSearchPage () { - this.props.history.push('/plan') + toSearchPage() { + this.props.history.push('/plan'); } navBar() { let actions = this.props.actions; //access shortcuts - let store = this.props.store; if (this.props.store.authenticated) { return (
- - -
); @@ -159,28 +166,37 @@ class Home extends React.Component { - ) + ); } else { return (
Get Started -
-
Don't wait! Plan your next trip today!
+
+
+ Don't wait! Plan your next trip today! +
- +
- ) + ); } } - render () { - let actions = this.props.actions; //access shortcuts + render() { + // let actions = this.props.actions; //access shortcuts let store = this.props.store; //store is redux store //and props.actions with all the action creating functions @@ -214,7 +230,7 @@ class Home extends React.Component { TripTeaze - + {/************************** CREATE TRIP **************************/}
{this.getStarted()} @@ -230,15 +246,15 @@ class Home extends React.Component { - )}; + );} } const mapStateToProps = state => ( - { store: state } + { store: state } // eslint-disable-line ); const mapDispatchToProps = dispatch => ( { actions: bindActionCreators(actions, dispatch) } ); -export default connect(mapStateToProps, mapDispatchToProps)(Home); \ No newline at end of file +export default connect(mapStateToProps, mapDispatchToProps)(Home); diff --git a/react-client/src/components/hotels.jsx b/react-client/src/components/hotels.jsx new file mode 100644 index 0000000..0816121 --- /dev/null +++ b/react-client/src/components/hotels.jsx @@ -0,0 +1,93 @@ +import React from 'react'; +import moment from 'moment'; + +import { GridList, GridTile } from 'material-ui/GridList'; +// import Subheader from 'material-ui/Subheader'; +import IconButton from 'material-ui/IconButton'; +import AddBorder from 'material-ui/svg-icons/content/add-circle-outline'; +import Snackbar from 'material-ui/Snackbar'; + +const styles = { + root: { + display: 'flex', + flexWrap: 'wrap', + justifyContent: 'space-around', + // width: '50%' + }, + gridList: { + width: '100%', + height: 800, + overflowY: 'auto', + }, + anchor: { + color: 'white' + } +}; +//these are search results for hotels +const Hotels = (props) => { + + if (props.hotels.length !== 0) { + return ( +
+ + {props.hotels.map((hotel) => { + if (hotel.icon) { + return ( + {hotel.name}} + // subtitle={`${moment(hotel.start.local).format('MM/DD/YY hh:mm A')} - ${moment(hotel.end.local).format('MM/DD/YY hh:mm A')}`} + actionIcon={ + props.addHotelToTrip(hotel, props.store.userTrips[props.store.activeTrip.index].id) + }> + + } + > + + + + ); + } else { + return ( + props.addHotelToTrip(hotel, props.store.userTrips[props.store.activeTrip.index].id)} + > + + + } + > + + + + ); + } + })} + +
+ ); + } else { + return null; + } +}; + +export default Hotels; diff --git a/react-client/src/components/login.jsx b/react-client/src/components/login.jsx index 491bb3c..b7299bf 100644 --- a/react-client/src/components/login.jsx +++ b/react-client/src/components/login.jsx @@ -5,39 +5,46 @@ import FlatButton from 'material-ui/FlatButton'; import TextField from 'material-ui/TextField'; import * as theme from './homePage.jsx'; // * does all named exports from that file -import lightBaseTheme from 'material-ui/styles/baseThemes/lightBaseTheme'; +// import lightBaseTheme from 'material-ui/styles/baseThemes/lightBaseTheme'; import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; -import getMuiTheme from 'material-ui/styles/getMuiTheme'; -import { cyan50, cyan100, cyan200, cyan300, cyan400, cyan500, cyan600, cyan700, cyan800, cyan900 } from 'material-ui/styles/colors'; +// import getMuiTheme from 'material-ui/styles/getMuiTheme'; +// import { cyan50, cyan100, cyan200, cyan300, cyan400, cyan500, cyan600, cyan700, cyan800, cyan900 } from 'material-ui/styles/colors'; export const styles = { actionButtons: { backgroundColor: '#f9f9f9', margin: '1%' } -} +}; class Login extends React.Component { - constructor (props) { + constructor(props) { super(props); this.state = { open: false - } + }; + + this.submit = this.submit.bind(this); + this.changeUsername = this.changeUsername.bind(this); + this.changePassword = this.changePassword.bind(this); + this.handleOpen = this.handleOpen.bind(this); + this.handleClose = this.handleClose.bind(this); + this.handleEnterKey = this.handleEnterKey.bind(this); } - submit (event) { + submit(event) { event.preventDefault(); this.props.login(this.props.username, this.props.password); this.setState({ open: false }); this.props.forward(); } - changeUsername (event) { + changeUsername(event) { this.props.updateUsername(event.target.value); } - changePassword (event) { + changePassword(event) { this.props.updatePassword(event.target.value); } @@ -49,6 +56,12 @@ class Login extends React.Component { this.setState({ open: false }); } + handleEnterKey(e) { + if (e.key === 'Enter') { + this.submit(e); + } + } + render() { //these are the buttons on the modal const actions = [ @@ -56,14 +69,16 @@ class Login extends React.Component { label="Login" primary={true} // keyboardFocused={true} - onClick={this.submit.bind(this)} + onClick={this.submit} style={styles.actionButtons} + key="login" />, ]; @@ -72,36 +87,38 @@ class Login extends React.Component {
+ onRequestClose={this.handleClose}> -
+
- ) + ); } } -export default Login; \ No newline at end of file +export default Login; diff --git a/react-client/src/components/restaurants.jsx b/react-client/src/components/restaurants.jsx index 809d060..8ac6e7c 100644 --- a/react-client/src/components/restaurants.jsx +++ b/react-client/src/components/restaurants.jsx @@ -7,7 +7,8 @@ import Snackbar from 'material-ui/Snackbar'; //these are search results for restaurants const Eatin = (props) => { - + // console.log('props', props); + // console.log('store', props.store); const styles = { root: { display: 'flex', @@ -37,26 +38,52 @@ const Eatin = (props) => { return ( {food.restaurant.name}} + title= { + {food.restaurant.name} + } subtitle= {`Cost for Two $${food.restaurant.average_cost_for_two}`} - actionIcon={ props.addFoodToTrip(food, props.user, props.city)}>} + /*add props.tripId*/ + actionIcon={ + props.addFoodToTrip(food, props.store.userTrips[props.store.activeTrip.index].id) + }>} > - + ); } else { - return( + return ( props.addFoodToTrip(food, props.user, props.city)}>} + actionIcon={ + props.addFoodToTrip(food, props.store.userTrips[props.store.activeTrip.index].id) + } + >} > - + - ) + ); } })} @@ -65,6 +92,6 @@ const Eatin = (props) => { } else { return null; } -} +}; -export default Eatin; \ No newline at end of file +export default Eatin; diff --git a/react-client/src/components/searchPage.jsx b/react-client/src/components/searchPage.jsx index 1932cd6..136bb4c 100644 --- a/react-client/src/components/searchPage.jsx +++ b/react-client/src/components/searchPage.jsx @@ -1,5 +1,4 @@ import React from 'react'; -import ReactDOM from 'react-dom'; import { Link } from 'react-router-dom'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; @@ -17,23 +16,19 @@ import AppBar from 'material-ui/AppBar'; import IconButton from 'material-ui/IconButton'; import NavigationClose from 'material-ui/svg-icons/navigation/close'; import DatePicker from 'material-ui/DatePicker'; -import Toggle from 'material-ui/Toggle'; -import { Card, CardActions, CardHeader, CardMedia, CardTitle, CardText } from 'material-ui/Card'; - -import lightBaseTheme from 'material-ui/styles/baseThemes/lightBaseTheme'; +import { Card, CardTitle, CardText } from 'material-ui/Card'; import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; -import getMuiTheme from 'material-ui/styles/getMuiTheme'; -import { cyan50, cyan100, cyan200, cyan300, cyan400, cyan500, cyan600, cyan700, cyan800, cyan900 } from 'material-ui/styles/colors'; +import { cyan800, cyan900 } from 'material-ui/styles/colors'; import * as theme from './homePage.jsx'; // * does all named exports from that file import * as tripStyle from './trip.jsx'; import * as actions from '../actions/index.js'; import Activity from './activity.jsx'; -import UserPage from './userPage.jsx'; import Events from './events.jsx'; import Signup from './signup.jsx'; import Login from './login.jsx'; import Eatin from './restaurants.jsx'; +import Hotels from './hotels.jsx'; export const styles = { activityContainer: { @@ -99,12 +94,14 @@ export const styles = { welcomeUser: { marginTop: '1%' } -} +}; //this is a terrible nightmare component that should be overhauled class SearchPage extends React.Component { - constructor (props) { + constructor(props) { super(props); + + console.log('props.store.userTrips[props.store.activeTrip.index]', props.store.userTrips[props.store.activeTrip.index]); if (props.store.userTrips.length !== 0 && props.store.activeTrip.status) { this.state = { open: true, @@ -115,7 +112,7 @@ class SearchPage extends React.Component { editDatesOpen: false, tempFromDate: props.store.userTrips[props.store.activeTrip.index].fromDate, tempToDate: props.store.userTrips[props.store.activeTrip.index].toDate - } + }; } else if (props.store.userTrips.length !== 0) { this.state = { open: false, @@ -126,18 +123,43 @@ class SearchPage extends React.Component { editDatesOpen: false, tempFromDate: props.store.userTrips[props.store.activeTrip.index].fromDate, tempToDate: props.store.userTrips[props.store.activeTrip.index].toDate - } + }; } else { this.state = { open: false, dropdown: 0, editDatesOpen: false + }; + } + + this.submit = this.submit.bind(this); + this.updateCity = this.updateCity.bind(this); + this.updateEventQuery = this.updateEventQuery.bind(this); + this.submitEventQuery = this.submitEventQuery.bind(this); + this.updateHotelQuery = this.updateHotelQuery.bind(this); + this.submitHotelQuery = this.submitHotelQuery.bind(this); + this.updateFoodQuery = this.updateFoodQuery.bind(this); + this.submitFoodQuery = this.submitFoodQuery.bind(this); + this.handleEnterKey = this.handleEnterKey.bind(this); + } + + handleEnterKey(e) { + let store = this.props.store; + if (store.authenticated && e.key === 'Enter') { + if (e.target.id === 'city') { + this.submit(e); + } else if (e.target.id === 'event') { + this.submitEventQuery(e); + } else if (e.target.id === 'food') { + this.submitFoodQuery(e); + } else if (e.target.id === 'hotel') { + this.submitHotelQuery(e); } } } //works for input box and dropdown menu - updateCity (event, index, value) { + updateCity(event, index, value) { let store = this.props.store; let actions = this.props.actions; if (value && index !== 0) { //is dropdown @@ -155,7 +177,7 @@ class SearchPage extends React.Component { } //makes cities always only have a capital letter as the first char of each word - formatCity (city) { + formatCity(city) { const words = city.split(' '); let newWords = []; for (let word of words) { @@ -163,63 +185,87 @@ class SearchPage extends React.Component { newWords.push(word); } return newWords.join(' '); - } + } //creates a new trip from the input box - submit (event) { + submit(event) { let store = this.props.store; let actions = this.props.actions; event.preventDefault(); if (store.authenticated) { if (store.city !== '' && store.tripFromDate !== '' && store.tripToDate !== '') { //checks for required entries actions.makeNewTrip(store.username, store.city, store.userTrips.length, store.tripFromDate, store.tripToDate); - this.setState({ activeCity: store.city, open: true, activeFromDate: store.tripFromDate, activeToDate: store.tripToDate}); + this.setState({ + activeCity: store.city, + open: true, + activeFromDate: store.tripFromDate, + activeToDate: store.tripToDate + }); } else { window.alert('Please make sure to fill in the dates and city name!'); } } - }; + } -/***************************** Event - search **********************************/ + /***************************** Event - search **********************************/ updateEventQuery(event) { - this.props.actions.updateEventQuery(event.target.value) - }; + this.props.actions.updateEventQuery(event.target.value); + } - submitEventQuery (event) { + submitEventQuery(event) { let store = this.props.store; let actions = this.props.actions; event.preventDefault(); //prevent refresh, might not need this anymore if ((store.activeTrip.status || store.city) && store.eventQuery) { - let city = store.activeTrip.status ? this.state.activeCity : store.city; //lets you maybe search on a city without creating a trip + // let city = store.activeTrip.status ? this.state.activeCity : store.city; //lets you maybe search on a city without creating a trip actions.searchEvents(this.state.activeCity, store.eventQuery, this.state.activeFromDate, this.state.activeToDate); } else { window.alert('Please select a city and search terms first!'); } - }; + } -/***************************** Food - search **********************************/ - updateFoodQuery (event) { - this.props.actions.updateFoodQuery(event.target.value) - }; + /***************************** Food - search **********************************/ + updateFoodQuery(event) { + this.props.actions.updateFoodQuery(event.target.value); + } - submitFoodQuery (event) { + submitFoodQuery(event) { let store = this.props.store; event.preventDefault(); - if(store.activeTrip.status || store.city) { - let city = store.activeTrip.status ? this.state.activeCity : store.city; - this.props.actions.searchForFood(this.state.activeCity, store.foodQuery) + if ((store.activeTrip.status || store.city) && store.foodQuery) { + // let city = store.activeTrip.status ? this.state.activeCity : store.city; + this.props.actions.searchForFood(this.state.activeCity, store.foodQuery); } else { - window.alert('Please select a city and search terms first!') + window.alert('Please select a city and search terms first!'); } - }; + } + /***************************** Hotel - search **********************************/ + updateHotelQuery(event) { + this.props.actions.updateHotelQuery(event.target.value); + } -/***************************** MESSAGE *****************************/ - render () { + submitHotelQuery(event) { + let store = this.props.store; + let actions = this.props.actions; + + event.preventDefault(); //prevent refresh, might not need this anymore + if ((store.activeTrip.status || store.city)) { + // let city = store.activeTrip.status ? this.state.activeCity : store.city; //lets you maybe search on a city without creating a trip + actions.searchHotels(this.state.activeCity, store.hotelQuery, this.state.activeFromDate, this.state.activeToDate); + } else { + window.alert('Please select a city and search terms first!'); + } + } + + + /***************************** MESSAGE *****************************/ + render() { let message = ''; - let messageEvents = ''; - let messageFood = ''; + let messageEvents = ''; // eslint-disable-line + let messageFood = ''; // eslint-disable-line + let messageHotels = ''; // eslint-disable-line let activeCity = this.state.activeCity; let store = this.props.store; //the redux store let actions = this.props.actions; @@ -229,19 +275,20 @@ class SearchPage extends React.Component { messageEvents = 'First pick a city before searching events!'; messageFood = ''; } else { - message = `You\'re going to ${activeCity}! \n Or plan a different trip: `; - messageEvents = `Type a keyword to find events in ${activeCity}!`; - messageFood= `Or search for food in ${activeCity}!`; + message = `You're going to ${activeCity}! \n Or plan a different trip: `; + messageEvents = `Type a keyword to find events in ${activeCity}!`; // eslint-disable-line + messageHotels = 'Now add a hotel for your stay!'; // eslint-disable-line + messageFood= `Or search for food in ${activeCity}!`; // eslint-disable-line } - /*************************** DATE SELECTION STUFF ***************************/ - // all this probably shouldn't be in the render method but oh well + /*************************** DATE SELECTION STUFF ***************************/ + // all this probably shouldn't be in the render method but oh well let today = new Date(); let formatDate = (date) => { // Dates need to be in YYYY-MM-DD format return moment(date).format('YYYY-MM-DDT00:00:00.000Z'); //<-- moment is cool library - } + }; let updateFromDate = (event, date) => { //pulls from material date pickker let fromDate; @@ -263,7 +310,7 @@ class SearchPage extends React.Component { this.setState({ activeFromDate: fromDate }); - } + }; const updateToDate = (event, date) => { let toDate; @@ -278,7 +325,7 @@ class SearchPage extends React.Component { activeToDate: toDate }); }; - //some of this is just trying to keep this component's state and the redux store in sync which is + //some of this is just trying to keep this component's state and the redux store in sync which is //kind of bad form for redux for this component to have so much stuff const submitEditDates = () => { let city = this.state.activeCity; @@ -305,33 +352,33 @@ class SearchPage extends React.Component { if (store.authenticated) { //logged in return (
- + - {store.userTrips.map((trip, index) => - - )} + {store.userTrips.map((trip, index) => + + )} -
+
(this.setState({ open: !this.state.open }))} label='Show Details' disabled={!store.activeTrip.status} />
- ) + ); } else { return (
Please login to view your current trips!
- ) + ); } - } + }; /*************************** TRIP DETAILS SIDEBAR ***************************/ //edit a trip's dates modal buttons @@ -341,11 +388,13 @@ class SearchPage extends React.Component { primary={true} keyboardFocused={true} onClick={submitEditDates} + key="submit" />, { updateFromDate(null, ''); updateToDate(null, ''); @@ -357,8 +406,9 @@ class SearchPage extends React.Component { ]; const drawer = () => { + console.log('searchpage store', store); if (store.activeTrip.status) { - let activeTrip = store.userTrips[store.activeTrip.index]; + let activeTrip = store.userTrips[store.activeTrip.index]; if (activeTrip) { let fromDate = moment(activeTrip.fromDate).format('MM/DD/YY'); let toDate = moment(activeTrip.toDate).format('MM/DD/YY'); @@ -408,7 +458,7 @@ class SearchPage extends React.Component { fontWeight: 'bold' }}>{fromDate} - {toDate}
-

+

Edit your trip dates below: - {activeTrip.events.map((event, index) => + {activeTrip.events.map((event, index) => ())} - + + {showActivityDiv('hotel', activeTrip)} +
+ {activeTrip.hotels.map((hotel, index) => + ( + ))} +
+ {showActivityDiv('eatin', activeTrip)}
- {activeTrip.eatin.map((eatin, index) => + {activeTrip.eatin.map((eatin, index) => ( { if (store.authenticated) { @@ -488,29 +556,30 @@ class SearchPage extends React.Component { } else { return (
- + - -
- ) + ); } - } + }; /************************* ACTIVITY HEADER DIVS ******************************/ const showActivityDiv = (activityType, trip) => { @@ -518,12 +587,16 @@ class SearchPage extends React.Component { if (activityType === 'event' && trip.events.length > 0) { return (
Events:
- ) + ); // If activity = eatin and there are restaurants in the current trip + } else if (activityType === 'hotel' && trip.hotels.length > 0) { + return ( +
Hotel:
+ ); } else if (activityType === 'eatin' && trip.eatin.length > 0) { return (
Food:
- ) + ); } }; @@ -532,29 +605,29 @@ class SearchPage extends React.Component { if (store.authenticated) { return (
Welcome back, {store.username}!
- ) + ); } else { return (
Welcome!
- ) + ); } - } + }; /************************ CREATE TRIP SEARCH BUTTON ************************/ const searchButton = () => { return ( - ) - } + ); + }; /*************************** STUFF ON PAGE ***************************/ return ( - + {/************************** NAVIGATION **************************/} {navLinks()} {/******************************* HEADER *******************************/} @@ -565,7 +638,7 @@ class SearchPage extends React.Component {
{welcomeUser()}
- + {/************************** CREATE TRIP CARD **************************/}
{drawer()} @@ -596,15 +669,16 @@ class SearchPage extends React.Component { minDate={store.minToDate} />
-
+
{message}
-
+
{searchButton()}
@@ -630,7 +704,7 @@ class SearchPage extends React.Component {
- + {/************************** EXPLORE SECTION **************************/}
Explore
@@ -640,19 +714,21 @@ class SearchPage extends React.Component {
-
{/************************** EVENT RESULTS **************************/}
+ {/************************** SEARCH HotelS **************************/} + +
Hotels
+
+ + +
+ + {/************************** Hotel RESULTS **************************/} +
+ +
+
{/************************** SEARCH EATIN **************************/} -
Restaurants
+
Restaurants
-
{/************************** EATIN RESULTS **************************/}
); - } + } } //react-redux stuff @@ -709,4 +817,4 @@ const mapDispatchToProps = dispatch => ( { actions: bindActionCreators(actions, dispatch) } ); -export default connect(mapStateToProps, mapDispatchToProps)(SearchPage); \ No newline at end of file +export default connect(mapStateToProps, mapDispatchToProps)(SearchPage); diff --git a/react-client/src/components/signup.jsx b/react-client/src/components/signup.jsx index 3ff5ceb..26608e1 100644 --- a/react-client/src/components/signup.jsx +++ b/react-client/src/components/signup.jsx @@ -7,83 +7,108 @@ import RaisedButton from 'material-ui/RaisedButton'; import * as theme from './homePage.jsx'; // * does all named exports from that file import * as loginStyle from './login.jsx'; import * as searchStyle from './searchPage.jsx'; -import lightBaseTheme from 'material-ui/styles/baseThemes/lightBaseTheme'; +// import lightBaseTheme from 'material-ui/styles/baseThemes/lightBaseTheme'; import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; -import getMuiTheme from 'material-ui/styles/getMuiTheme'; -import { cyan50, cyan100, cyan200, cyan300, cyan400, cyan500, cyan600, cyan700, cyan800, cyan900 } from 'material-ui/styles/colors'; +// import getMuiTheme from 'material-ui/styles/getMuiTheme'; +// import { cyan50, cyan100, cyan200, cyan300, cyan400, cyan500, cyan600, cyan700, cyan800, cyan900 } from 'material-ui/styles/colors'; class Signup extends React.Component { - constructor (props) { - super(props); + constructor(props) { + super(props); - this.state = { - open: false - } - } + this.state = { + open: false + }; - submit (event) { - event.preventDefault(); - this.props.signup(this.props.username, this.props.password); - this.setState({ open: false }); - this.props.forward(); - } + this.submit = this.submit.bind(this); + this.changeUsername = this.changeUsername.bind(this); + this.changePassword = this.changePassword.bind(this); + this.handleOpen = this.handleOpen.bind(this); + this.handleClose = this.handleClose.bind(this); + this.handleEnterKey = this.handleEnterKey.bind(this); + } - changeUsername (event) { - this.props.updateUsername(event.target.value); - } + submit(event) { + event.preventDefault(); + this.props.signup(this.props.username, this.props.password); + this.setState({ open: false }); + this.props.forward(); + } - changePassword (event) { - this.props.updatePassword(event.target.value); - } + changeUsername(event) { + this.props.updateUsername(event.target.value); + } - handleOpen () { - this.setState({ open: true }); - }; + changePassword(event) { + this.props.updatePassword(event.target.value); + } - handleClose () { - this.setState({ open: false }); - }; - - render () { - const actions = [ - , - - ]; + handleOpen() { + this.setState({ open: true }); + } - return ( - -
- - - - -
- - -
-
-
- ) - } + handleClose() { + this.setState({ open: false }); + } + + handleEnterKey(e) { + if (e.key === 'Enter') { + this.submit(e); + } + } + + render() { + const actions = [ + , + + ]; + + return ( + +
+ + + + +
+ + +
+
+
+ ); + } } -export default Signup; \ No newline at end of file +export default Signup; diff --git a/react-client/src/components/trip.jsx b/react-client/src/components/trip.jsx index 7db3d68..6e6216a 100644 --- a/react-client/src/components/trip.jsx +++ b/react-client/src/components/trip.jsx @@ -1,12 +1,9 @@ import React from 'react'; import Activity from './activity.jsx'; -import RaisedButton from 'material-ui/RaisedButton'; -import { Card, CardActions, CardHeader, CardMedia, CardTitle, CardText } from 'material-ui/Card'; +import { Card, CardActions, CardTitle, CardText } from 'material-ui/Card'; import FlatButton from 'material-ui/FlatButton'; -import { GridList, GridTile } from 'material-ui/GridList'; import moment from 'moment'; -import { cyan50, cyan100, cyan200, cyan300, cyan400, cyan500, cyan600, cyan700, cyan800, cyan900 } from 'material-ui/styles/colors'; -import * as activityStyles from './homePage.jsx'; // * does all named exports from that file +import { cyan600, cyan900 } from 'material-ui/styles/colors'; import Snackbar from 'material-ui/Snackbar'; export const styles = { @@ -43,7 +40,7 @@ export const styles = { width: '32%', verticalAlign: 'top' } -} +}; // User's trips page const Trip = (props) => { @@ -51,17 +48,17 @@ const Trip = (props) => { // Makes user's trip public const makePublic = () => { props.toggleStatus(props.user, props.trip); - } + }; // Deletes a trip const deleteTrip = () => { props.delete(props.user, props.trip); - } + }; const activateAndSearch = () => { props.activate(props.index); props.toSearchPage(); - } + }; //const message = props.trip.isPublic ? 'Your trip has been made private!' : 'Your trip has been made public!'; @@ -71,14 +68,19 @@ const Trip = (props) => { if (activityType === 'event' && trip.events.length > 0) { return (
Events:
- ) + ); + // If activity = eatin and there are restaurants in the current trip + } else if (activityType === 'hotel' && trip.events.length > 0) { + return ( +
Hotel:
+ ); // If activity = eatin and there are restaurants in the current trip } else if (activityType === 'eatin' && trip.eatin.length > 0) { return (
Food:
- ) + ); } - } + }; // Renders list of user's current trips if (props.editable === true) { @@ -88,7 +90,7 @@ const Trip = (props) => { + > {
{props.trip.events.map((event, index) => { /> )}
- + + {showActivityDiv('hotel', props.trip)} +
+ {props.trip.hotels.map((hotel, index) => + + )} +
+ {showActivityDiv('eatin', props.trip)}
{props.trip.eatin.map((food, index) => { /> - - - + {/* HAD TO ADD OR FALSE BECAUSE THEY WERE UNDEFINED */} + + + - ); + ); } else { return ( { /> )}
- + + {showActivityDiv('hotel', props.trip)} +
+ {props.trip.hotels.map((hotel, index) => + + )} +
+ {showActivityDiv('eatin', props.trip)}
{props.trip.eatin.map((food, index) => @@ -185,8 +231,8 @@ const Trip = (props) => {
- ) + ); } -} - -export default Trip; \ No newline at end of file +}; + +export default Trip; diff --git a/react-client/src/components/userPage.jsx b/react-client/src/components/userPage.jsx index 91b2d43..a3f2ce3 100644 --- a/react-client/src/components/userPage.jsx +++ b/react-client/src/components/userPage.jsx @@ -1,20 +1,21 @@ import React from 'react'; -import ReactDOM from 'react-dom'; +// import ReactDOM from 'react-dom'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; -import {Link} from 'react-router-dom'; +import { Link } from 'react-router-dom'; import RaisedButton from 'material-ui/RaisedButton'; import * as theme from './homePage.jsx'; // * does all named exports from that file -import lightBaseTheme from 'material-ui/styles/baseThemes/lightBaseTheme'; +// import lightBaseTheme from 'material-ui/styles/baseThemes/lightBaseTheme'; import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; -import getMuiTheme from 'material-ui/styles/getMuiTheme'; -import { cyan50, cyan100, cyan200, cyan300, cyan400, cyan500, cyan600, cyan700, cyan800, cyan900 } from 'material-ui/styles/colors'; +// import getMuiTheme from 'material-ui/styles/getMuiTheme'; +// import { cyan50, cyan100, cyan200, cyan300, cyan400, cyan500, cyan600, cyan700, cyan800, cyan900 } from 'material-ui/styles/colors'; +import { cyan50, cyan800, cyan900 } from 'material-ui/styles/colors'; import Paper from 'material-ui/Paper'; import Login from './login.jsx'; import Signup from './signup.jsx'; -import Trip from './trip.jsx'; +import Trip from './trip.jsx'; import * as actions from '../actions/index.js'; const styles = { @@ -27,16 +28,19 @@ const styles = { padding: '0.5%', textAlign: 'center' } -} +}; class UserPage extends React.Component { - constructor (props) { + constructor(props) { super(props); + + this.toSearchPage = this.toSearchPage.bind(this); + this.toUserPage = this.toUserPage.bind(this); } - componentWillMount () { + componentWillMount() { this.props.actions.deactivate(); - this.props.actions.fetchTrips(this.props.store.username); + // this.props.actions.fetchTrips(this.props.store.username); // will make trips crash on login } toSearchPage() { @@ -47,18 +51,20 @@ class UserPage extends React.Component { this.props.history.push('/trips'); } - generateMessage () { + generateMessage() { + //usertrips is undefined + console.log('this.props.store', this.props.store); if (this.props.store.userTrips.length === 0) { return (
- You don't have any trips yet :( -

+ You don't have any trips yet :( +

Why not go plan one?

); } else { return ( -
{this.props.store.username}'s Current Trips
+
{this.props.store.username}'s Current Trips
); } } @@ -67,7 +73,49 @@ class UserPage extends React.Component { let actions = this.props.actions; let store = this.props.store; - if (this.props.store.authenticated === true) { // If logged in + if (this.props.store.authenticated === false) { + return ( + + + {/************************** NAVIGATION **************************/} +
+ + + + + +
+ + {/************************** HEADER **************************/} +
+ + TripTeaze + +
+ +
+ Oops! Please + login + to access this content! +
+
+
+ ); + } else if (this.props.store.authenticated === true) { return ( @@ -78,12 +126,12 @@ class UserPage extends React.Component { label="Home" /> - + + />
@@ -106,32 +154,32 @@ class UserPage extends React.Component {
{this.generateMessage()}
{/************************** USER'S TRIPS **************************/} - {store.userTrips.map((trip, index) => + {store.userTrips.map((trip, index) => )}
); - } else if (store.loading) { + } else { return ( @@ -155,53 +203,11 @@ class UserPage extends React.Component {
TripTeaze - -
- -
-

Please wait while we find your trips!

-
-
-
- ); - } else { // If not logged in - return ( - - - {/************************** NAVIGATION **************************/} -
- - - -
- {/************************** HEADER **************************/} -
- - TripTeaze - -
-
- Oops! Please - login - to access this content! +

Please wait while we find your trips!

diff --git a/react-client/src/index.jsx b/react-client/src/index.jsx index 2d073f3..98f9f44 100644 --- a/react-client/src/index.jsx +++ b/react-client/src/index.jsx @@ -1,6 +1,6 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import $ from 'jquery'; //replace with axios +// import $ from 'jquery'; //replace with axios import { Provider } from 'react-redux'; import { createStore, applyMiddleware } from 'redux'; import thunk from 'redux-thunk'; @@ -32,11 +32,11 @@ const Root = ({ store }) => ( -) +); -let store = createStore(reducer, applyMiddleware(thunk)) +let store = createStore(reducer, applyMiddleware(thunk)); -ReactDOM.render( +ReactDOM.render( , document.getElementById('app')); diff --git a/react-client/src/reducers/index.js b/react-client/src/reducers/index.js index 69824dd..fa756af 100644 --- a/react-client/src/reducers/index.js +++ b/react-client/src/reducers/index.js @@ -16,122 +16,113 @@ const initialState = { privateSnackbar: false, eventQuery: '', eventResults: [], + hotelQuery: '', + hotelResults: [], foodQuery: '', foodResults: [], eventSnackbar: false, + hotelSnackbar: false, foodSnackbar: false, activeTrip: { status: false, index: 0 //location of trip in 'userTrips' - } + }, }; //you should probably look up combine reducers to make this easier to look at -const reducer = function (state = initialState, action) { //if state is undefined, state becomes inital state +const reducer = function(state = initialState, action) { //if state is undefined, state becomes inital state switch (action.type) { - case 'TOGGLE_LOADING' : - return Object.assign({}, state, {loading: !state.loading}); - case 'SHOW_USER_TRIPS' : - return Object.assign({}, state, {userTrips: action.payload}); - case 'SHOW_PUBLIC_TRIPS' : - return Object.assign({}, state, {publicTrips: action.payload}); - case 'RESET_USER_TRIPS' : - return Object.assign({}, state, {userTrips: []}); - case 'ACTIVATE_EVENT_SNACKBAR' : - return Object.assign({}, state, { eventSnackbar: true }); - case 'DEACTIVATE_EVENT_SNACKBAR' : - return Object.assign({}, state, { eventSnackbar: false }); - case 'ACTIVATE_FOOD_SNACKBAR' : - return Object.assign({}, state, { foodSnackbar: true }); - case 'DEACTIVATE_FOOD_SNACKBAR' : - return Object.assign({}, state, { foodSnackbar: false }); - case 'ACTIVATE_DELETE_SNACKBAR' : - return Object.assign({}, state, { deleteSnackbar: true }); - case 'DEACTIVATE_DELETE_SNACKBAR' : - return Object.assign({}, state, { deleteSnackbar: false }); - case 'ACTIVATE_PUBLIC_SNACKBAR' : - return Object.assign({}, state, { publicSnackbar: true }); - case 'DEACTIVATE_PUBLIC_SNACKBAR' : - return Object.assign({}, state, { publicSnackbar: false }); - case 'ACTIVATE_PRIVATE_SNACKBAR' : - return Object.assign({}, state, { privateSnackbar: true }); - case 'DEACTIVATE_PRIVATE_SNACKBAR' : - return Object.assign({}, state, { privateSnackbar: false }); - case 'UPDATE_EVENT_RESULTS' : - return Object.assign({}, state, {eventResults: action.payload}) - case 'UPDATE_FOOD_RESULTS': - return Object.assign({}, state, {foodResults: action.payload}) - case 'UPDATE_USERNAME': - return Object.assign({}, state, { username: action.payload }) - case 'UPDATE_PASSWORD': - return Object.assign({}, state, { password: action.payload }) - case 'AUTHEN': - return Object.assign({}, state, { authenticated: true, password: '' }); - case 'LOGOUT': - return initialState; - case 'UPDATE_EVENT_QUERY': - return Object.assign({}, state, {eventQuery: action.payload}); - case 'UPDATE_FOOD_QUERY': - return Object.assign({}, state, {foodQuery: action.payload}); - case 'UPDATE_CITY' : - return Object.assign({}, state, { city: action.payload }); - case 'UPDATE_TO_PUBLIC' : - return Object.assign({}, state, { isPublic: true }); - case 'UPDATE_TO_PRIVATE' : - return Object.assign({}, state, { isPublic: false }); - case 'UPDATE_TRIP_FROM_DATE': - return Object.assign({}, state, { tripFromDate: action.payload }) - case 'UPDATE_TRIP_TO_DATE': - return Object.assign({}, state, { tripToDate: action.payload }) - case 'SET_MIN_TO_DATE': - return Object.assign({}, state, { minToDate: action.payload }) - case 'UPDATE_CITY': - return Object.assign({}, state, { city: action.payload }) - case 'ACTIVATE' : - return Object.assign({}, state, { activeTrip: { status: true, index: action.payload }}) - case 'DEACTIVATE' : - return Object.assign({}, state, { activeTrip: { status: false, index: 0 } }) - case 'ERROR' : - return Object.assign({}, state, { currentError: action.payload }) - case 'UPDATE_EVENT_QUERY': - return Object.assign({}, state, { eventQuery: action.payload }); - case 'UPDATE_EVENT_RESULTS': - return Object.assign({}, state, { eventResults: action.payload }) - case 'REFRESH_TRIP_EVENTS': - const oldTrip = state.userTrips[state.activeTrip.index]; - const newTrip = Object.assign({}, oldTrip, { events: action.payload }); - const newTrips = state.userTrips.slice(); - newTrips.splice(state.activeTrip.index, 1, newTrip); - return Object.assign({}, state, { userTrips: newTrips }); - case 'UPDATE_FOOD_QUERY': - return Object.assign({}, state, { foodQuery: action.payload }); - case 'UPDATE_FOOD_RESULTS': - return Object.assign({}, state, { foodResults: action.payload }) - case 'REFRESH_TRIP_EATIN': - const oldTripEatin = state.userTrips[state.activeTrip.index]; - const newTripEatin = Object.assign({}, oldTripEatin, { eatin: action.payload }); - const newTripsEatin = state.userTrips.slice(); - newTripsEatin.splice(state.activeTrip.index, 1, newTripEatin); - return Object.assign({}, state, { userTrips: newTripsEatin }); - case 'ACTIVATE_EVENT_SNACKBAR': - return Object.assign({}, state, { eventSnackbar: true }); - case 'DEACTIVATE_EVENT_SNACKBAR': - return Object.assign({}, state, { eventSnackbar: false }); - case 'ACTIVATE_FOOD_SNACKBAR': - return Object.assign({}, state, { foodSnackbar: true }); - case 'DEACTIVATE_FOOD_SNACKBAR': - return Object.assign({}, state, { foodSnackbar: false }); - case 'ACTIVATE_DELETE_SNACKBAR': - return Object.assign({}, state, { deleteSnackbar: true }); - case 'DEACTIVATE_DELETE_SNACKBAR': - return Object.assign({}, state, { deleteSnackbar: false }); - case 'ACTIVATE_PUBLIC_SNACKBAR': - return Object.assign({}, state, { publicSnackbar: true }); - case 'DEACTIVATE_PUBLIC_SNACKBAR': - return Object.assign({}, state, { publicSnackbar: false }); - default: - return state; //if unrecognized action type nothing happens + case 'TOGGLE_LOADING' : + return Object.assign({}, state, {loading: !state.loading}); + case 'SHOW_USER_TRIPS' : + return Object.assign({}, state, {userTrips: action.payload}); + case 'SHOW_PUBLIC_TRIPS' : + return Object.assign({}, state, {publicTrips: action.payload}); + case 'RESET_USER_TRIPS' : + return Object.assign({}, state, {userTrips: []}); + case 'ACTIVATE_EVENT_SNACKBAR' : + return Object.assign({}, state, { eventSnackbar: true }); + case 'DEACTIVATE_EVENT_SNACKBAR' : + return Object.assign({}, state, { eventSnackbar: false }); + case 'ACTIVATE_FOOD_SNACKBAR' : + return Object.assign({}, state, { foodSnackbar: true }); + case 'DEACTIVATE_FOOD_SNACKBAR' : + return Object.assign({}, state, { foodSnackbar: false }); + case 'ACTIVATE_DELETE_SNACKBAR' : + return Object.assign({}, state, { deleteSnackbar: true }); + case 'DEACTIVATE_DELETE_SNACKBAR' : + return Object.assign({}, state, { deleteSnackbar: false }); + case 'ACTIVATE_PUBLIC_SNACKBAR' : + return Object.assign({}, state, { publicSnackbar: true }); + case 'DEACTIVATE_PUBLIC_SNACKBAR' : + return Object.assign({}, state, { publicSnackbar: false }); + case 'ACTIVATE_PRIVATE_SNACKBAR' : + return Object.assign({}, state, { privateSnackbar: true }); + case 'DEACTIVATE_PRIVATE_SNACKBAR' : + return Object.assign({}, state, { privateSnackbar: false }); + case 'UPDATE_EVENT_RESULTS' : + return Object.assign({}, state, {eventResults: action.payload}); + case 'UPDATE_FOOD_RESULTS': + return Object.assign({}, state, {foodResults: action.payload}); + case 'UPDATE_USERNAME': + return Object.assign({}, state, { username: action.payload }); + case 'UPDATE_PASSWORD': + return Object.assign({}, state, { password: action.payload }); + case 'AUTHEN': + return Object.assign({}, state, { authenticated: true, password: '' }); + case 'LOGOUT': + return initialState; + case 'UPDATE_EVENT_QUERY': + return Object.assign({}, state, {eventQuery: action.payload}); + case 'UPDATE_FOOD_QUERY': + return Object.assign({}, state, {foodQuery: action.payload}); + case 'UPDATE_CITY' : + return Object.assign({}, state, { city: action.payload }); + case 'UPDATE_TO_PUBLIC' : + return Object.assign({}, state, { isPublic: true }); + case 'UPDATE_TO_PRIVATE' : + return Object.assign({}, state, { isPublic: false }); + case 'UPDATE_TRIP_FROM_DATE': + return Object.assign({}, state, { tripFromDate: action.payload }); + case 'UPDATE_TRIP_TO_DATE': + return Object.assign({}, state, { tripToDate: action.payload }); + case 'SET_MIN_TO_DATE': + return Object.assign({}, state, { minToDate: action.payload }); + case 'ACTIVATE' : + return Object.assign({}, state, { activeTrip: { status: true, index: action.payload }}); + case 'DEACTIVATE' : + return Object.assign({}, state, { activeTrip: { status: false, index: 0 } }); + case 'ERROR' : + return Object.assign({}, state, { currentError: action.payload }); + case 'REFRESH_TRIP_EVENTS': + const oldTrip = state.userTrips[state.activeTrip.index]; + const newTrip = Object.assign({}, oldTrip, { events: action.payload }); + const newTrips = state.userTrips.slice(); + newTrips.splice(state.activeTrip.index, 1, newTrip); + return Object.assign({}, state, { userTrips: newTrips }); + case 'REFRESH_TRIP_EATIN': + const oldTripEatin = state.userTrips[state.activeTrip.index]; + const newTripEatin = Object.assign({}, oldTripEatin, { eatin: action.payload }); + const newTripsEatin = state.userTrips.slice(); + newTripsEatin.splice(state.activeTrip.index, 1, newTripEatin); + return Object.assign({}, state, { userTrips: newTripsEatin }); + case 'UPDATE_HOTEL_RESULTS' : + return Object.assign({}, state, {hotelResults: action.payload}); + case 'ACTIVATE_HOTEL_SNACKBAR' : + return Object.assign({}, state, { hotelSnackbar: true }); + case 'DEACTIVATE_HOTEL_SNACKBAR' : + return Object.assign({}, state, { hotelSnackbar: false }); + case 'UPDATE_HOTEL_QUERY': + return Object.assign({}, state, {hotelQuery: action.payload}); + case 'REFRESH_TRIP_HOTELS': + const oldTripHotel = state.userTrips[state.activeTrip.index]; + const newTripHotel = Object.assign({}, oldTripHotel, { hotels: action.payload }); + const newTripsHotel = state.userTrips.slice(); + newTripsHotel.splice(state.activeTrip.index, 1, newTripHotel); + return Object.assign({}, state, { userTrips: newTripsHotel }); + default: + return state; //if unrecognized action type nothing happens } -} +}; -export default reducer; \ No newline at end of file +export default reducer; diff --git a/server/index.js b/server/index.js index b21b3b4..88f213d 100644 --- a/server/index.js +++ b/server/index.js @@ -4,17 +4,18 @@ const bcrypt = require('bcrypt'); const session = require('express-session'); const db = require('../database-mongo/index.js'); const eventbrite = require('../APIhelper/eventbrite.js'); -const zomato = require('../APIhelper/zomatoHelper.js') +const google = require('../APIhelper/google.js'); +const zomato = require('../APIhelper/zomatoHelper.js'); const path = require('path'); -const moment = require('moment'); +// const moment = require('moment'); const app = express(); app.use(bodyParser.json()); app.use(session({ - secret: 'shhhhh af', - resave: false, - saveUnitialized: true + secret: 'shhhhh af', + resave: false, + saveUninitialized: true })); app.use(express.static(__dirname + '/../react-client/dist')); @@ -23,313 +24,368 @@ app.use(express.static(__dirname + '/../react-client/dist')); /* login */ app.checkPassword = (userName, pw, checkPw) => { - let match = false; - let unhashedPw = bcrypt.compareSync(pw, checkPw); - if (unhashedPw) { - match = true; + return bcrypt.compareSync(pw, checkPw); +}; + +// app.get('/test', async (req, res) => { +// res.json(await db.dbtest()); +// }) + +app.get('/login', async (req, res) =>{ + let userName = req.query.username; + let userPass = req.query.password; + + try { + let { password } = await db.retrieveUserPassword(userName); + if (app.checkPassword(userName, userPass, password)) { + req.session.loggedIn = true; + res.status(200).end(); + } else { + console.log('Unmatching username and password'); + res.status(200).json({ error: true, message: 'Sorry, username and password do not match! Please try again!' }); } - return match; -} - -app.get('/login', (req, res) =>{ - let userName = req.query.username - let password = req.query.password - - db.retrieveUserPassword(userName, (err, userPw) => { - if (err) { - res.status(200).json({error: true, message: 'Sorry, we didn\'t recognize that username. Please try again!'}); - } else if (app.checkPassword(userName, password, userPw)) { - req.session.loggedIn = true; - res.status(200).end() - } else { - console.log('Unmatching username and password') - res.status(200).json({error: true, message: 'Sorry, username and password do not match! Please try again!'}); - } - }) -}) + } catch (e) { + res.status(200).json({ error: true, message: 'Sorry, we didn\'t recognize that username. Please try again!' }); + } +}); app.get('/logout', (req, res) => { - req.session.destroy((err) => { - if (err) { - throw err; - res.status(500).send(err) - } - }) - res.end(); + req.session.destroy((err) => { + if (err) { + // throw err; + res.status(500).send(err); + } + }); + res.end(); }); app.get('/plan', (req, res) => { - res.sendFile(path.join(__dirname, '/../react-client/dist', 'index.html')); + res.sendFile(path.join(__dirname, '/../react-client/dist', 'index.html')); }); /*************************** SIGN UP STUFF ***************************/ // Sign up -app.post('/signup', (req, res) => { - let username = req.body.username; - let password = req.body.password; - - // Checks if the username already exists in the db - db.userExists(username, (existingUser) => { - // If the username already exists - if (existingUser.length > 0) { - console.log('Username already exists!'); - // Redirect to the signup page - res.status(200).json({error: true, message: 'Sorry! username already in use! Please pick a different one!'}) - // Else if new user - } else { - // Hash the password - bcrypt.hash(password, 10, (err, hash) => { - if (err) { - console.error('Error in hash password: ', err); - res.status(200).json({error: true, message: 'Sorry! unknown error on our end! Please try again'}); - } else { - // Store the new user/hash in the db - db.addNewUser(username, hash); - console.log(`User '${username}' added to database`); - res.status(200).end() - } - }); - } - }); +app.post('/signup', async (req, res) => { + let username = req.body.username; + let password = req.body.password; + + // Checks if the username already exists in the db + // If the username already exists + let userInfo = await db.userExists(username); + + if (userInfo) { + console.log('Username already exists!'); + // Redirect to the signup page + req.session.loggedIn = false; + res.status(200).json({error: true, message: 'Sorry! username already in use! Please pick a different one!'}); + } else { + // Else if new user + // Hash the password + bcrypt.hash(password, 10, (err, hash) => { + if (err) { + console.error('Error in hash password: ', err); + res.status(200).json({error: true, message: 'Sorry! unknown error on our end! Please try again'}); + } else { + // Store the new user/hash in the db + db.addNewUser(username, hash); + console.log(`User '${username}' added to database`); + res.status(200).end(); + } + }); + } }); // Creates new session after new user is added to the database -const createSession = (req, res, newUser) => { - return req.session.regenerate(() => { - req.session.user = newUser; - // Redirects to home page - res.redirect('/'); - }); -} +/* NOT USED */ +const createSession = (req, res, newUser) => { // eslint-disable-line + return req.session.regenerate(() => { + req.session.user = newUser; + // Redirects to home page + res.redirect('/'); + }); +}; /*************************** TRIP STUFF ***************************/ app.get('/trips', (req, res) => { - const type = req.query.search; // right now tailored for public trips but can be adapted for user trips as well - if (type === 'public') { - db.showAllPublicTrips(function(err, data) { - if (err || !data) { - res.status(500).send(err); - } else { - getTripsEvents(data, function (err, tripsEvents) { - if (err) { - res.status(500).send(err); - } else { - res.status(200).json({ trips: tripsEvents }); - } - }); - } - }); - } else if (!type) { - res.sendFile(path.join(__dirname, '/../react-client/dist', 'index.html')); - } else { - db.showUserTrips(type, function(err, data) { - if (err || !data) { - res.status(500).send(err); - } else { - getTripsEvents(data, function (err, fullTrips) { - if (err) { - res.status(500).send(err); - } else { - res.status(200).json({ trips: fullTrips }); - } - }); - } - }); - } + const type = req.query.search; // right now tailored for public trips but can be adapted for user trips as well + if (type === 'public') { + db.showAllPublicTrips(function(err, data) { + if (err || !data) { + res.status(500).send(err); + } else { + getTripsEvents(data, function(err, tripsEvents) { + if (err) { + res.status(500).send(err); + } else { + res.status(200).json({ trips: tripsEvents }); + } + }); + } + }); + } else if (!type) { + res.sendFile(path.join(__dirname, '/../react-client/dist', 'index.html')); + } else { + db.showUserTrips(type, function(err, data) { + if (err || !data) { + res.status(500).send(err); + } else { + getTripsEvents(data, function(err, fullTrips) { + if (err) { + res.status(500).send(err); + } else { + res.status(200).json({ trips: fullTrips }); + } + }); + } + }); + } }); -getTripsEvents = (trips, callback) => { - let fullTrips = []; - numFinished = 0; - for (let i = 0; i < trips.length; i++) { - fullTrips.push(Object.assign({}, { - id : trips[i].id, - city: trips[i].city, - isArchived: trips[i].isArchived, - isPublic: trips[i].isPublic, - fromDate: trips[i].tripFromDate, - toDate: trips[i].tripToDate - })); - - const tripID = trips[i].id - db.getTripEvents(tripID, function (err, events) { - fullTrips[i].events = events; - db.getTripRestaurants(tripID, function (err, food) { - fullTrips[i].eatin = food; - numFinished++; - if (numFinished === trips.length) { - callback(null, fullTrips); - } - }); - }); - } -} +const getTripsEvents = (trips, callback) => { + let fullTrips = []; + let numFinished = 0; + for (let i = 0; i < trips.length; i++) { + fullTrips.push(Object.assign({}, { + id : trips[i].id, + city: trips[i].city, + isArchived: trips[i].isArchived, + isPublic: trips[i].isPublic, + fromDate: trips[i].tripFromDate, + toDate: trips[i].tripToDate + })); + + const tripID = trips[i].id; + db.getTripEvents(tripID, function(err, events) { + fullTrips[i].events = events; + db.getTripRestaurants(tripID, function(err, food) { + fullTrips[i].eatin = food; + db.getTripHotels(tripID, function(err, hotels) { + fullTrips[i].hotels = hotels; + numFinished++; + if (numFinished === trips.length) { + callback(null, fullTrips); + } + }); + }); + }); + } +}; app.post('/trips', (req, res) => { - const user = (req.body.tripUser); - const city = (req.body.tripCity); - const fromDate = (req.body.tripFromDate); - const toDate = (req.body.tripToDate); - - db.addNewTrip(user, city, fromDate, toDate, function(err, data) { - if (err) { - console.log(err); - res.status(500).send(err); - } else { - res.status(200).json({ city: data.city }); - } - }); + const user = (req.body.tripUser); + const city = (req.body.tripCity); + const fromDate = (req.body.tripFromDate); + const toDate = (req.body.tripToDate); + + db.addNewTrip(user, city, fromDate, toDate, function(err, data) { + if (err) { + console.log(err); + res.status(500).send(err); + } else { + res.status(200).json({ city: data.city }); + } + }); }); app.patch('/trips', (req, res) => { - if (req.body.public !== undefined) { - - db.modifyTripDetails(req.body.public, null, req.body.user, null, null, req.body.tripCity, function(err, data) { - if (err) { - res.status(500).send(err); - } else { - res.sendStatus(204); - } - }); - } else { - db.remove('trip', req.body.tripID, function(err, data) { - if (err) { - res.status(500).send(err); - } else { - res.status(204).end(); - } - }) - } + if (req.body.public !== undefined) { + + db.modifyTripDetails(req.body.public, null, req.body.user, null, null, req.body.tripCity, function(err) { + if (err) { + res.status(500).send(err); + } else { + res.sendStatus(204); + } + }); + } else { + db.remove('trip', req.body.tripID, function(err) { + if (err) { + res.status(500).send(err); + } else { + res.status(204).end(); + } + }); + } }); app.patch('/plan', (req, res) => { - console.log('-----> server', req.body); - db.modifyTripDetails(null, null, req.body.user, req.body.tripFromDate, req.body.tripToDate, req.body.tripCity, function(err, data) { - if (err) { - res.status(500).send(err); - } else { - res.sendStatus(204); - } - }); + console.log('-----> server', req.body); + db.modifyTripDetails(null, null, req.body.user, req.body.tripFromDate, req.body.tripToDate, req.body.tripCity, function(err) { + if (err) { + res.status(500).send(err); + } else { + res.sendStatus(204); + } + }); }); /******************************** Search - Events *****************************/ -app.post('/events', function (req, res) { - const city = req.body.tripCity; - const query = req.body.eventQuery; - const toDate = req.body.tripToDate; - const fromDate = req.body.tripFromDate; - eventbrite.searchEvents(query, city, fromDate, toDate, (err, data) => { - - if(err) { - res.status(500).send(err); - } else { - res.status(200); - res.status(200).json(data); - } - }); +app.post('/events', function(req, res) { + const city = req.body.tripCity; + const query = req.body.eventQuery; + const toDate = req.body.tripToDate; + const fromDate = req.body.tripFromDate; + eventbrite.searchEvents(query, city, fromDate, toDate, (err, data) => { + + if (err) { + res.status(500).send(err); + } else { + res.status(200); + res.status(200).json(data); + } + }); }); -app.post('/events/remove', function (req, res) { +app.post('/events/remove', function(req, res) { - db.remove('event', req.body.eventID, function(err) { - if(err) { - res.status(500).send(err); - } else { - res.status(200).end(); - } - }); + db.remove('event', req.body.eventID, function(err) { + if (err) { + res.status(500).send(err); + } else { + res.status(200).end(); + } + }); }); -app.post('/events/add', function (req,res) { - const event = req.body.tripEvent; - const user = req.body.tripUser; - const city = req.body.tripCity; - - db.addEventToTrip(event, user, city, function(err) { - if (err) { - console.log(err); - res.status(500).send(err); - } else { - res.status(201).end(); - } - }); +app.post('/events/add', async function(req,res) { + const event = req.body.tripEvent; + const tripId = req.body.tripId; + let addedEvent = await db.addEventToTrip(event, tripId); + if (addedEvent) { + res.status(201).end(); + } else { + res.status(500).send(); + } }); app.get('/events', (req, res) => { - const user = req.query.tripUser; - const city = req.query.tripCity; - - db.showTripEvents(user, city, function(err, data) { - if (err) { - res.status(500).end(err); - } else { - res.status(200).json({ events: data }); - } - }); + const tripId = req.query.tripId; + + db.getTripEvents(tripId, function(err, data) { + if (err) { + res.status(500).end(err); + } else { + res.status(200).json({ events: data }); + } + }); }); /********************************* Search - Foods ***************************/ app.post('/foods', (req, res) => { - let city = req.body.tripCity; - let searchFood = req.body.foodQuery; - - zomato.searchForCityId( city, ( err, data ) => { - if (err) { - res.status(500).send(err); - } else { - let cityId = data - zomato.searchForFoods( cityId, searchFood, (err, result) => { - if (err) { - res.status(500).send(err); - } else { - res.status(200).json({foods: result}) - } - }); - } - }); + let city = req.body.tripCity; + let searchFood = req.body.foodQuery; + + zomato.searchForCityId( city, ( err, data ) => { + if (err) { + res.status(500).send(err); + } else { + let cityId = data; + zomato.searchForFoods( cityId, searchFood, (err, result) => { + if (err) { + res.status(500).send(err); + } else { + res.status(200).json({foods: result}); + } + }); + } + }); }); -app.post('/foods/remove', function (req, res) { - - db.remove('restaurant', req.body.foodID, function (err) { - if (err) { - res.status(500).send(err); - } else { - res.status(200).end(); - } - }); +app.post('/foods/remove', function(req, res) { + db.remove('restaurant', req.body.foodID, function(err) { + if (err) { + res.status(500).send(err); + } else { + res.status(200).end(); + } + }); }); -app.post('/foods/add', function (req, res) { - const food = req.body.tripFood; - const user = req.body.tripUser; - const city = req.body.tripCity; - db.addRestaurantToTrip(food, user, city, function (err) { - if (err) { - res.status(500).send(err); - } else { - res.status(201).end(); - } - }); +app.post('/foods/add', async function(req, res) { + //instead of user and city we can use trip.id + const food = req.body.tripFood; + const tripId = req.body.tripId; + // console.log('isnide /foods/add', tripId); //good + // console.log('food isnide /foods/add', food); //good + + let addedFood = await db.addRestaurantToTrip(food, tripId); + if (addedFood) { + res.status(201).end(); + } else { + res.status(500).end(); + } }); app.get('/foods', (req, res) => { - const user = req.query.tripUser; - const city = req.query.tripCity; - db.showTripRestaurants(user, city, function (err, data) { - if (err) { - res.status(500).send(err); - } else { - res.status(200).json({ foods: data }); - } - }); + const tripId = req.query.tripId; + db.getTripRestaurants(tripId, function(err, data) { + if (err) { + res.status(500).send(err); + } else { + res.status(200).json({ foods: data }); + } + }); }); -+app.get('/*', function (req, res) { - res.sendFile(path.join(__dirname, 'build', 'index.html')); +/******************************** Search - Hotels *****************************/ + +app.post('/hotels', function(req, res) { + const city = req.body.tripCity; + // const query = req.body.hotelQuery; + // const toDate = req.body.tripToDate; + // const fromDate = req.body.tripFromDate; + google.searchHotels(/*query, */city, /*fromDate, toDate, */(err, data) => { + + if (err) { + res.status(500).send(err); + } else { + res.status(200); + res.status(200).json(data); + } + }); +}); + +app.post('/hotels/remove', function(req, res) { + db.remove('hotel', req.body.hotelID, function(err) { + if (err) { + res.status(500).send(err); + } else { + res.status(200).end(); + } + }); +}); + +app.post('/hotels/add', async function(req,res) { + const hotel = req.body.tripHotel; + const tripId = req.body.tripId; + + let addedHotel = await db.addHotelToTrip(hotel, tripId); + + if (addedHotel) { + res.status(201).end(); + } else { + res.status(500).end(); + } +}); + +app.get('/hotels', (req, res) => { + + const tripId = req.query.tripId; + + db.getTripHotels(tripId, function(err, data) { + if (err) { + res.status(500).end(err); + } else { + res.status(200).json({ hotels: data }); + } + }); +}); + + +app.get('/*', function(req, res) { + res.sendFile(path.join(__dirname, 'build', 'index.html')); }); /****************************************************************************/ diff --git a/webpack.config.js b/webpack.config.js index 88be7f4..5a00bb5 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,6 +1,6 @@ -var path = require('path'); -var SRC_DIR = path.join(__dirname, '/react-client/src'); -var DIST_DIR = path.join(__dirname, '/react-client/dist'); +const path = require('path'); +const SRC_DIR = path.join(__dirname, '/react-client/src'); +const DIST_DIR = path.join(__dirname, '/react-client/dist'); module.exports = { entry: `${SRC_DIR}/index.jsx`, @@ -13,10 +13,10 @@ module.exports = { { test : /\.jsx?/, include : SRC_DIR, - loader : 'babel-loader', + loader : 'babel-loader', query: { presets: ['react', 'es2015'] - } + } } ] }, @@ -24,4 +24,4 @@ module.exports = { fs: 'empty', net: 'empty' } -}; \ No newline at end of file +};