diff --git a/app.js b/app.js index 1993b79..622f878 100644 --- a/app.js +++ b/app.js @@ -6,9 +6,9 @@ const bodyParser = require('body-parser'); const app = express(); const webhooks = require('./routes/webhooks'); -// endpoint +//endpoint app.get('/', (req, res) => { - res.send('Server ON!'); + res.send('Server ON!'); }) // Sets server port and logs message on success diff --git a/data/get_data.js b/data/get_data.js index 1b16cef..ad5b02a 100644 --- a/data/get_data.js +++ b/data/get_data.js @@ -22,5 +22,47 @@ module.exports = { spawn('killall', ['-9', 'chromedriver']); callback(err, data); }) + }, + get_team_squad: function (team_name, callback) { + PythonShell.run('./scripts/get_team_squad.py', {args: [team_name]}, (err, data) => { + spawn('killall', ['-9', 'chrome']); + spawn('killall', ['-9', 'chromedriver']); + callback(err, data); + }) + }, + get_team_schedule: function (team_name, callback) { + PythonShell.run('./scripts/get_team_schedule.py', {args: [team_name]}, (err, data) => { + spawn('killall', ['-9', 'chrome']); + spawn('killall', ['-9', 'chromedriver']); + callback(err, data); + }) + }, + get_team_news: function (team_name, callback) { + PythonShell.run('./scripts/get_team_news.py', {args: [team_name]}, (err, data) => { + spawn('killall', ['-9', 'chrome']); + spawn('killall', ['-9', 'chromedriver']); + callback(err, data); + }) + }, + get_team_coach: function (team_name, callback) { + PythonShell.run('./scripts/get_team_coach.py', {args: [team_name]}, (err, data) => { + spawn('killall', ['-9', 'chrome']); + spawn('killall', ['-9', 'chromedriver']); + callback(err, data); + }) + }, + get_team_video: function (team_name, callback) { + PythonShell.run('./scripts/get_team_video.py', {args: [team_name]}, (err, data) => { + spawn('killall', ['-9', 'chrome']); + spawn('killall', ['-9', 'chromedriver']); + callback(err, data); + }) + }, + get_player_news: function (team_name, callback) { + PythonShell.run('./scripts/get_player_news.py', {args: [player_name]}, (err, data) => { + spawn('killall', ['-9', 'chrome']); + spawn('killall', ['-9', 'chromedriver']); + callback(err, data); + }) } }; diff --git a/data/teamName.json b/data/teamName.json index e06507a..0fed4ae 100644 --- a/data/teamName.json +++ b/data/teamName.json @@ -42,7 +42,81 @@ "Paris Saint Germain": ["Paris Saint Germain", "PSG", "Paris Saint", "Paris Germain", "ParisSG", "Germain"], "Juventus": ["Juventus", "Juve", "Juv"], "Bayern Munich": ["Bayern Munich", "Bayern M", "Munich", "BAY"], + "Bayer Leverkusen": ["Bayer Leverkusen", "Bayer", "Leverkusen"], + "Borrusia Moenchengladbach": ["Borrusia Moenchengladbach", "Moenchengladbach", "Borrusia"], + "Cologne": ["Cologne"], + "Eintracht Frankfurt": ["Eintracht Frankfurt", "Eintracht", "Frankfurt"], + "FC Augsburg": ["FC Augsburg", "Augsburg"], + "Freiburg": ["Freiburg"], + "Hamburg SV": ["Hamburg SV", "Hamburg"], + "Hanover 96": ["Hanover 96"], + "Hertha Berlin": ["Hertha Berlin", "Hertha"], + "Hoffenheim": ["Hoffenheim"], + "Mainz": ["Mainz"], + "RB Leipzig": ["RB Leipzig", "Leipzig", "RL"], + "Schalke 04": ["Schalke 04", "Schalke"], + "VfB Stuttgart": ["VfB Stuttgart", "VfB", "Stuttgart", "VS"], + "VfL Wolfsburg": ["VfL Wolfsburg", "VfL", "Wolfsburg", "VW"], + "Werder Bremen": ["Werder Bremen", "Werder", "Bremen"], + "Arminia Bielefeld": ["Arminia Bielefeld", "Arminia", "Bielefeld", "AB", "Bie"], + "Darmstadt 98": ["Darmstadt 98", "Darmstadt", "DAR"], + "Dynamo Dresden": ["Dynamo Dresden", "Dynamo", "Dresden", "DRE"], + "Eintracht Braunschweig": ["Eintracht Braunschweig", "Eintracht", "Braunschweig", "EBR"], + "Erzgebirge Aue": ["Erzgebirge Aue", "Erzgebirge", "Aue", "AUE"], + "FC Ingolstadt": ["FC Ingolstadt", "Ingolstadt", "FCI"], + "Fortuna Duesseldorf": ["Fortuna Duesseldorf", "Fortuna", "Duesseldorf", "DU"], + "Greuther Fuerth": ["Greuther Fuerth", "Greuther", "Fuerth", "GRF"], + "Heidenheim": ["Heidenheim", "HEI"], + "Holstein Kiel": ["Holstein Kiel", "Holstein", "Kiel", "HKI"], + "Jahn Regensburg": ["Jahn Regensburg", "Regensburg", "JAH"], + "Kaiserslautern": ["Kaiserslautern", "FCK"], + "MSV Duisburg": ["MSV Duisburg", "MSV", "Duisburg"], + "Nuremberg": ["Nuremberg", "NUR"], + "Sandhausen": ["Sandhausen", "SAN"], + "St Pauli": ["St Pauli", "PAU", "Pauli"], + "Union Berlin": ["Union Berlin", "Berlin", "UNB"], + "VfL Bochum": ["VfL Bochum", "Bochum", "BOC"], "Borussia Dortmund": ["Borussia Dortmund", "Borussia", "Dortmund", "DOR", "DORT"], + "Argentinos Juniors": ["Argentinos Juniors", "Argentinos", "Juniors", "ARJ"], + "Atletico Tucuman": ["Atletico Tucuman", "Atletico", "Tucuman", "ATU"], + "Banfield": ["Banfield", "BAN"], + "Belgrano": ["Belgrano", "BEL"], + "Boca Juniors": ["Boca Juniors", "Juniors", "BOJ"], + "Chacarita Juniors": ["Chacarita Juniors", "Juniors", "CHJ"], + "Colon": ["Colon", "COO"], + "Defensa y Justicia": ["Defensa y Justicia", "Defensa", "Justicia", "DEF"], + "Estudiantes": ["Estudiantes", "ESU"], + "Gimnasia La Plata": ["Gimnasia La Plata", "Gimnasia", "La Plata", "GIM"], + "Godoy Cruz": ["Godoy Cruz", "Godoy", "Cruz", "GOD"], + "Huracan": ["Huracan", "HUR"], + "Independiente": ["Independiente", "IND"], + "Lanus": ["Lanus", "LAN"], + "Newell's Old Boys": ["Newell's Old Boys", "Newell's", "NOB"], + "Olimpo": ["Olimpo", "OLI"], + "Patronato": ["Patronato", "PTO"], + "Racing Club": ["Racing Club", "Racing", "RAC"], + "River Plate": ["River Plate", "Plate", "RIV"], + "Rosario Central": ["Rosario Central", "Rosario", "Central", "ROS"], + "San Lorenzo": ["San Lorenzo", "San", "Lorenzo", "SLO"], + "San Martin de San Juan": ["San Martin de San Juan", "San Martin", "San Juan", "SMS"], + "Talleres Cordoba": ["Talleres Cordoba", "Talleres", "Cordoba", "TAL"], + "Temperley": ["Temperley", "TEM"], + "Tigre": ["Tigre", "TIG"], + "Union Santa Fe": ["Union Santa Fe", "Union Santa", "USF"], + "Velez Sarsfield": ["Velez Sarsfield", "Sarsfield", "Velez", "VEL"], + "Admira": ["Admira", "ADM"], + "Austria Vienna": ["Austria Vienna", "Austria", "Vienna", "VIE"], + "LASK Linz": ["LASK Linz", "LASK", "Linz", "LIN"], + "Mattersburg": ["Mattersburg", "MAT"], + "Rapid Vienna": ["Rapid Vienna", "Rapid", "Vienna", "RAV"], + "Red Bull Salzburg": ["Red Bull", "Red Bull Salzburg", "RBS", "Salzburg"], + "Rheindorf Altach": ["Rheindorf Altach", "Rheindorf", "Altach", "RAL"], + "St Polten": ["St Polten", "Polten", "STP"], + "Sturm Graz": ["Sturm Graz", "Sturm", "Graz", "SGR"], + "Wolfsberger AC": ["Wolfsberger AC", "Wolfsberger", "WOL"], + "Anderlecht": ["Anderlecht", "ADL"], + "AS Eupen": ["AS Eupen", "Eupen", "ASE"], + "Club Brugge": ["Club Brugge", "Club", "Brugge"], "Afghanistan": ["AFG", "Afghanistan"], "Albania": ["ALB", "Albania"], "Algeria": ["DZA", "Algeria"], diff --git a/functions/dataFormat.js b/functions/dataFormat.js index 6baf25d..bf074ba 100644 --- a/functions/dataFormat.js +++ b/functions/dataFormat.js @@ -103,6 +103,18 @@ function quickReplyFormat(payloadCharacteristic, value) { return finalArr; } +function teamDataQuick(payloadCharacteristic, value, teamName) { + let finalArr = []; + for (var i = 0; i < value.length; i++) { + var map = {}; + map['content_type'] = 'text'; + map['title'] = value[i]; + map['payload'] = payloadCharacteristic + value[i] + '_' + teamName; + finalArr.push(map); + } + return finalArr; +} + function teamOptionFormat(payloadCharacteristic, choices, teamName) { let finalArr = []; for (var i = 0; i < choices.length; i++) { @@ -126,6 +138,7 @@ module.exports = { timeFormat, teamFormat, quickReplyFormat, + teamDataQuick, teamOptionFormat, decodeUnderline -} +} \ No newline at end of file diff --git a/functions/handleCases.js b/functions/handleCases.js index 87c96b5..6697027 100644 --- a/functions/handleCases.js +++ b/functions/handleCases.js @@ -26,10 +26,18 @@ function getStart(sender_psid) { // Provides four options: Next Match, Team News, Team Squad, Next 5 games function teamOptions(sender_psid, teamName, imageURL) { - let choices = ['Next Match', 'Team News', 'Another Team']; + let choices = ['Next Match', 'Team Data', 'Another Team']; sendResponse.teamOptionChoose(sender_psid, teamName, 'OPTION', choices, imageURL); } +function teamData(sender_psid, teamName) { + let choices = ['Team News', 'Team Squad', 'Team Schedules', 'Lastest Video', 'Go Back']; + let response = { + 'text': `Please select the option of data you want` + } + sendResponse.quickDataAccess(sender_psid, teamName ,response, "TEAMDATA", choices); +} + // Provides 11 popular team options function popularTeam(sender_psid) { let key = ['Manchester United', 'Real Madrid', 'Barcelona', 'Chelsea', 'Manchester City', 'Paris Saint Germain', 'Arsenal', 'Liverpool', 'Germany', 'Brazil', 'Spain']; @@ -68,8 +76,9 @@ function setReminder(sender_psid, match) { module.exports = { getStart, teamOptions, + teamData, popularTeam, popularPlayer, getContinue, setReminder -} +} \ No newline at end of file diff --git a/functions/informationLookup.js b/functions/informationLookup.js index 4ba73a4..ac8088f 100644 --- a/functions/informationLookup.js +++ b/functions/informationLookup.js @@ -67,7 +67,7 @@ function matchLookup(sender_psid, key, status) { key = key.toUpperCase(); db.ref('Matches/').orderByChild('time').on("child_added", (match) => { - if (flag == true && match.key.includes(key)) { + if (flag == true && match.key.includes(key) && status.includes('Next Match')) { flag = false; var team1 = match.val().team1; var team2 = match.val().team2; @@ -170,139 +170,274 @@ function matchLookup(sender_psid, key, status) { console.log("waiting..."); sendResponse.directMessage(sender_psid, response); - // Async function to look for the Next Match. - data.get_next_game(key, (err, reply) => { - if (err) { - response = { - "text" : `Cannot find the Team: ${key}` - } - sendResponse.directMessage(sender_psid, response); - } - else if (key) { - request({ - "uri": "https://graph.facebook.com/v2.6/" + sender_psid, - "qs" : {"access_token": process.env.PAGE_ACCESS_TOKEN, fields: "timezone"}, - "method": "GET", - "json": true, - }, (err, res, body) => { - if (err) { - console.error("Unable to send message:" + err); - } - else { - request({ - "uri": "https://graph.facebook.com/v2.6/" + sender_psid, - "qs" : {"access_token": process.env.PAGE_ACCESS_TOKEN, fields: "timezone"}, - "method": "GET", - "json": true, - }, (err, res, body) => { - flag = false; - let time = dataFormat.timeFormat(reply[2], body.timezone); - let team = dataFormat.teamFormat(reply[0], reply[1], key); - let league = reply[3]; - let url = reply[4]; - let imageUrl = reply[5]; - let newsTitle = reply[6]; - let newsSubtitle = reply[7]; - - // Gets team name if it does not exist in the database yet. - updateDB.dbTeamName(reply[0]); - updateDB.dbTeamName(reply[1]); - - db.ref('Matches/' + reply[0].toUpperCase() + '_' + reply[1].toUpperCase() + '/').set({ - 'team1': reply[0], - 'team2': reply[1], - 'time': reply[2], - 'league': league, - 'url': url - }); - - // Updates match information after the game - setTimeout(() => { - var removeIndex = onGoing.indexOf(reply[0]); - onGoing.splice(removeIndex, 1); - data.get_next_game(reply[0], (err, reply1) => { - if (!err) { - console.log("FOUNDED MATCH: " + reply[0]); - db.ref('Matches/' + reply1[0].toUpperCase() + '_' + reply1[1].toUpperCase() + '/').set({ - 'team1': reply1[0], - 'team2': reply1[1], - 'time': reply1[2], - 'league': reply1[3], - 'url': reply1[4] - }); - db.ref('Matches/' + reply[0].toUpperCase() + '_' + reply[1].toUpperCase() + '/').set({}); - - // Gets team name if it does not exist in the database yet. - updateDB.dbTeamName(reply1[0]); - updateDB.dbTeamName(reply1[1]); - } - else { - console.log("Error occured on Server for MATCH: " + reply[0]); - } - }) - }, (new Date(reply[2])).getTime() - (new Date()).getTime() + 8100000); - onGoing.push(reply[0]); - - // Updates match information after the game - setTimeout(() => { - var removeIndex = onGoing.indexOf(reply[1]); - onGoing.splice(removeIndex, 1); - data.get_next_game(reply[1], (err, reply1) => { - if (!err) { - console.log("FOUNDED MATCH: " + reply[1]); - db.ref('Matches/' + reply1[0].toUpperCase() + '_' + reply1[1].toUpperCase() + '/').set({ - 'team1': reply1[0], - 'team2': reply1[1], - 'time': reply1[2], - 'league': reply1[3], - 'url': reply1[4] - }); - db.ref('Matches/' + reply[0].toUpperCase() + '_' + reply[1].toUpperCase() + '/').set({}); - - // Gets team name if it does not exist in the database yet. - updateDB.dbTeamName(reply1[0]); - updateDB.dbTeamName(reply1[1]); - } - else { - console.log("Error occured on Server for MATCH: " + reply[1]); - } - }) - - }, (new Date(reply[2])).getTime() - (new Date()).getTime() + 8100000); - onGoing.push(reply[1]); + // In case user want the Next Match Schedule + if (status.includes('Next Match')) { + // Async function to look for the Next Match. + data.get_next_game(key, (err, reply) => { + if (err) { + response = { + "text" : `Cannot find the Team: ${key}` + } + sendResponse.directMessage(sender_psid, response); + } + else if (key) { + request({ + "uri": "https://graph.facebook.com/v2.6/" + sender_psid, + "qs" : {"access_token": process.env.PAGE_ACCESS_TOKEN, fields: "timezone"}, + "method": "GET", + "json": true, + }, (err, res, body) => { + if (err) { + console.error("Unable to send message:" + err); + } + else { + request({ + "uri": "https://graph.facebook.com/v2.6/" + sender_psid, + "qs" : {"access_token": process.env.PAGE_ACCESS_TOKEN, fields: "timezone"}, + "method": "GET", + "json": true, + }, (err, res, body) => { + flag = false; + let time = dataFormat.timeFormat(reply[2], body.timezone); + let team = dataFormat.teamFormat(reply[0], reply[1], key); + let league = reply[3]; + let url = reply[4]; + + // Gets team name if it does not exist in the database yet. + updateDB.dbTeamName(reply[0]); + updateDB.dbTeamName(reply[1]); + + db.ref('Matches/' + reply[0].toUpperCase() + '_' + reply[1].toUpperCase() + '/').set({ + 'team1': reply[0], + 'team2': reply[1], + 'time': reply[2], + 'league': league, + 'url': url + }); + + // Updates match information after the game + setTimeout(() => { + var removeIndex = onGoing.indexOf(reply[0]); + onGoing.splice(removeIndex, 1); + data.get_next_game(reply[0], (err, reply1) => { + if (!err) { + console.log("FOUNDED MATCH: " + reply[0]); + db.ref('Matches/' + reply1[0].toUpperCase() + '_' + reply1[1].toUpperCase() + '/').set({ + 'team1': reply1[0], + 'team2': reply1[1], + 'time': reply1[2], + 'league': reply1[3], + 'url': reply1[4] + }); + db.ref('Matches/' + reply[0].toUpperCase() + '_' + reply[1].toUpperCase() + '/').set({}); + + // Gets team name if it does not exist in the database yet. + updateDB.dbTeamName(reply1[0]); + updateDB.dbTeamName(reply1[1]); + } + else { + console.log("Error occured on Server for MATCH: " + reply[0]); + } + }) + }, (new Date(reply[2])).getTime() - (new Date()).getTime() + 8100000); + onGoing.push(reply[0]); + + // Updates match information after the game + setTimeout(() => { + var removeIndex = onGoing.indexOf(reply[1]); + onGoing.splice(removeIndex, 1); + data.get_next_game(reply[1], (err, reply1) => { + if (!err) { + console.log("FOUNDED MATCH: " + reply[1]); + db.ref('Matches/' + reply1[0].toUpperCase() + '_' + reply1[1].toUpperCase() + '/').set({ + 'team1': reply1[0], + 'team2': reply1[1], + 'time': reply1[2], + 'league': reply1[3], + 'url': reply1[4] + }); + db.ref('Matches/' + reply[0].toUpperCase() + '_' + reply[1].toUpperCase() + '/').set({}); + + // Gets team name if it does not exist in the database yet. + updateDB.dbTeamName(reply1[0]); + updateDB.dbTeamName(reply1[1]); + } + else { + console.log("Error occured on Server for MATCH: " + reply[1]); + } + }) + + }, (new Date(reply[2])).getTime() - (new Date()).getTime() + 8100000); + onGoing.push(reply[1]); - // In case user want the Next Match Schedule - if (status.includes('Next Match')) { response = { "text": `${team[0]}\n${team[1]}\nNext Match: ${time}\nLeague: ${league}` }; console.log("replied"); sendResponse.directMessage(sender_psid, response); - } + }) + } + }) + setTimeout(() => { + handleCases.setReminder(sender_psid, reply[0].toUpperCase() + '_' + reply[1].toUpperCase()); + }, 1000); + } + }) + } - // In case user want to see the lastest Team News - else if (status.includes('Team News')) { - sendResponse.teamNewsURL(sender_psid, key, url, imageUrl, newsTitle, newsSubtitle); + // In case user want to see the lastest Team News + else if (status.includes('Team News')) { + // Async function to look for the Next Match. + data.get_team_news(key, (err, reply) => { + if (err) { + response = { + "text" : `Cannot find the Team: ${key}` + } + sendResponse.directMessage(sender_psid, response); + } + else if (key) { + request({ + "uri": "https://graph.facebook.com/v2.6/" + sender_psid, + "qs" : {"access_token": process.env.PAGE_ACCESS_TOKEN, fields: "timezone"}, + "method": "GET", + "json": true, + }, (err, res, body) => { + if (err) { + console.error("Unable to send message:" + err); + } + else { + request({ + "uri": "https://graph.facebook.com/v2.6/" + sender_psid, + "qs" : {"access_token": process.env.PAGE_ACCESS_TOKEN, fields: "timezone"}, + "method": "GET", + "json": true, + }, (err, res, body) => { + let array = [] + for (var i = 0; i < 16; i++) { + array.push(reply[i]); + } + console.log(array); + sendResponse.teamNewsURL(sender_psid, array); console.log("replied"); - } + }) + } + }) + } + }) + } - // In case user want to see the Next Match Squad - else if (status.includes('Team Squad')) { + else if (status.includes('Team Squad')) { + // Async function to look for the Team Squad + console.log("team: ", key); + data.get_team_squad(key, (err, reply) => { + if (err) { + response = { + "text" : `Cannot find the Team Squad: ${key}` + } + sendResponse.directMessage(sender_psid, response); + } + else if (key) { + request({ + "uri": "https://graph.facebook.com/v2.6/" + sender_psid, + "qs" : {"access_token": process.env.PAGE_ACCESS_TOKEN, fields: "timezone"}, + "method": "GET", + "json": true, + }, (err, res, body) => { + if (err) { + console.error("Unable to send message:" + err); + } + else { + request({ + "uri": "https://graph.facebook.com/v2.6/" + sender_psid, + "qs" : {"access_token": process.env.PAGE_ACCESS_TOKEN, fields: "timezone"}, + "method": "GET", + "json": true, + }, (err, res, body) => { + let url = reply[0]; + let formation = reply[1]; + let players = reply[2]; + let teamSub = '' + for (var i = 2; i < 13; i++) { + teamSub += reply[i] + '\n' + } response = { - "text": 'We are currently working on this feature. Please come back another time.' + "text" : `Here is the recently formation team used:\nTEAM FORMATION: ${formation}\nPLAYERS:\n${teamSub}` } - console.log(replied); sendResponse.directMessage(sender_psid, response); - } - }) + console.log("replied"); + }) + } + }) + } + }) + } + + else if (status.includes('Team Schedules')) { + // Async function to look for the Team Schedule. + console.log("team: ", key); + data.get_team_schedule(key, (err, reply) => { + if (err) { + response = { + "text" : `Cannot find the Team Schedules: ${key}` } - }) - setTimeout(() => { - handleCases.setReminder(sender_psid, reply[0].toUpperCase() + '_' + reply[1].toUpperCase()); - }, 1000); - } - }) + sendResponse.directMessage(sender_psid, response); + } + else if (key) { + request({ + "uri": "https://graph.facebook.com/v2.6/" + sender_psid, + "qs" : {"access_token": process.env.PAGE_ACCESS_TOKEN, fields: "timezone"}, + "method": "GET", + "json": true, + }, (err, res, body) => { + if (err) { + console.error("Unable to send message:" + err); + } + else { + request({ + "uri": "https://graph.facebook.com/v2.6/" + sender_psid, + "qs" : {"access_token": process.env.PAGE_ACCESS_TOKEN, fields: "timezone"}, + "method": "GET", + "json": true, + }, (err, res, body) => { + let length = reply[0] + console.log("Total Next coming match: ", length); + let oldMatches = '' + let nextMatches = '' + + // For the old matches + for (var i = 1; i < 6; i++) { + oldMatches += reply[i] + '\n' + } + + // For the next coming matches + if (length >= 5) { + for (var j = 6; j < (6 + 5); j++) { + nextMatches += reply[j] + '\n' + } + } + + if ((length < 5) && (length > 0)) { + console.log("length: ", length); + for (var j = 6; j < (6 + length); j++) { + console.log("j: ", j); + nextMatches += reply[j] + '\n' + } + } else { + nextMatches = 'There is no coming match in next few days!.'; + } + + response = { + "text" : `SOME RECENTLY MATCHES:\n${oldMatches}\nSOME COMING MATCHES:\n${nextMatches}` + } + sendResponse.directMessage(sender_psid, response); + console.log("replied"); + }) + } + }) + } + }) + } } }, 1200) } @@ -341,7 +476,7 @@ function playerLookup(sender_psid, key) { 'text' : `Cannot find player: ${key}` }; sendResponse.directMessage(sender_psid, response); - } + } else { flag = false; let playerImageURL = reply[0]; @@ -376,7 +511,6 @@ function playerLookup(sender_psid, key) { console.log("replied"); sendResponse.playerReply(sender_psid, playerTitle, playerSubtitle, playerImageURL, playerURL); } - // Check if user want to continue searching }) } }, 1200); @@ -386,4 +520,4 @@ module.exports = { teamNameLookup, matchLookup, playerLookup -} +} \ No newline at end of file diff --git a/functions/receive-message.js b/functions/receive-message.js index f5fe54f..00cf67f 100644 --- a/functions/receive-message.js +++ b/functions/receive-message.js @@ -30,15 +30,16 @@ function handleMessage(sender_psid, received_message) { // Look for the Team else if (handleChoice[sender_psid] == 'TEAM') { key = dataFormat.checkDuplicate(key); - console.log(key); + console.log("In team") + console.log(key); if (typeof(key) == 'object') { let newKey = dataFormat.completeName(key); response = { "text": `Did you mean:\n${newKey}\nOr please retype the team you want to see!!!` } sendResponse.quickReply(sender_psid, response, 'TEAMLIST', key); - } - + } + else { delete handleChoice[sender_psid]; info.teamNameLookup(sender_psid, key); @@ -99,6 +100,19 @@ function handleQuickReply(sender_psid, received_message) { } } + // In case that user want to get the team datas + if (key.includes('TEAMDATA')) { + + if (key.includes('Go Back')) { + handleCases.getStart(sender_psid); + } + + else { + teamName = dataFormat.decodeUnderline(key); + info.matchLookup(sender_psid, teamName, key); + } + } + // Continues the bot by asking the initial question: Team or Player? if (key.includes('CONTINUE')) { if (key.includes('Yes')) { @@ -154,6 +168,12 @@ function handlePostback(sender_psid, messagePostback) { sendResponse.directMessage(sender_psid, response); } + else if (payload.includes('Team Data')) { + teamName = dataFormat.decodeUnderline(payload); + console.log('In postback team: ', teamName); + handleCases.teamData(sender_psid, teamName); + } + // Looking for match's information else { teamName = dataFormat.decodeUnderline(payload); @@ -171,4 +191,4 @@ module.exports = { handleMessage, handleQuickReply, handlePostback -}; +}; \ No newline at end of file diff --git a/functions/sendResponse.js b/functions/sendResponse.js index 45582ad..2246455 100644 --- a/functions/sendResponse.js +++ b/functions/sendResponse.js @@ -49,6 +49,32 @@ function quickReply(sender_psid, response, payloadCharacteristic, value) { }); } +// Post a form of quick reply to the server +function quickDataAccess(sender_psid, teamName, response, payloadCharacteristic, value) { + let jsonFile = dataFormat.teamDataQuick(payloadCharacteristic, value, teamName); + let request_body = { + "recipient": { + "id": sender_psid + }, + "message": { + "text": response["text"], + "quick_replies": jsonFile + } + }; + + // Send the HTTP request to the Messenger Platform + request({ + "uri": "https://graph.facebook.com/v2.6/me/messages", + "qs": { "access_token": process.env.PAGE_ACCESS_TOKEN}, + "method": "POST", + "json": request_body + }, (err, res, body) => { + if (err) { + console.error("Unable to send message:" + err); + } + }); +} + // Post a form of quick reply to the server function teamOptionChoose(sender_psid, teamName, payloadCharacteristic, choices, imageURL) { @@ -69,7 +95,7 @@ function teamOptionChoose(sender_psid, teamName, payloadCharacteristic, choices, "payload": { "template_type": 'generic', "image_aspect_ratio": 'square', - "elements": + "elements": [ { "title": teamName.toUpperCase(), @@ -96,7 +122,7 @@ function teamOptionChoose(sender_psid, teamName, payloadCharacteristic, choices, } // Post a form of quick reply to the server with teamNews -function teamNewsURL(sender_psid, key, url, imageUrl, newsTitle, newsSubtitle) { +function teamNewsURL(sender_psid, array) { let request_body = { "recipient": { "id": sender_psid @@ -105,46 +131,58 @@ function teamNewsURL(sender_psid, key, url, imageUrl, newsTitle, newsSubtitle) { "attachment": { "type": "template", "payload": { - "template_type": "generic", - "image_aspect_ratio": 'square', - "elements": [{ - "title": newsTitle, - "subtitle": newsSubtitle, - "image_url": imageUrl, - "buttons": [ - { - "type": 'web_url', - "url": url, - "title": 'View More' - }, - { - "type": 'element_share', - "share_contents": - { - "attachment": - { - "type": "template", - "payload": - { - "template_type": "generic", - "image_aspect_ratio": 'square', - "elements": [ - { - "title": newsTitle, - "subtitle": newsSubtitle, - "image_url": imageUrl, - "buttons": [ - { - "type": 'web_url', - "url": url, - "title": 'View More' - }] - }] - } - } - } - }] - }] + "template_type": "list", + "top_element_style": "large", + "elements": [ + { + "title": array[0], + "subtitle": array[1], + "image_url": array[2], + "default_action": { + "type": "web_url", + "url": array[3], + "messenger_extensions": true, + "webview_height_ratio": "tall" + } + }, { + "title": array[4], + "subtitle": array[5], + "image_url": array[6], + "default_action": { + "type": "web_url", + "url": array[7], + "messenger_extensions": true, + "webview_height_ratio": "tall" + } + }, { + "title": array[8], + "subtitle": array[9], + "image_url": array[10], + "default_action": { + "type": "web_url", + "url": array[11], + "messenger_extensions": true, + "webview_height_ratio": "tall" + } + }, { + "title": array[12], + "subtitle": array[13], + "image_url": array[14], + "default_action": { + "type": "web_url", + "url": array[15], + "messenger_extensions": true, + "webview_height_ratio": "tall" + } + } + ], + "buttons": [ + { + "title": "Another Team", + "type": "postback", + "payload": "OPTIONAnother Team" + } + ] } } } @@ -222,12 +260,12 @@ function sendReminder(sender_psid, response, payloadCharacteristic, match) { }, "message": { "text": response["text"], - "quick_replies": - [ + "quick_replies": + [ { 'content_type': 'text', 'title': 'Yes', - 'payload': payloadCharacteristic + 'YES_' + match + 'payload': payloadCharacteristic + 'YES_' + match }, { 'content_type': 'text', @@ -251,11 +289,54 @@ function sendReminder(sender_psid, response, payloadCharacteristic, match) { }); } +function mediaPlay(sender_psid, title, currentVideo, urlVi) { + let request_body = { + "recipient": { + "id": sender_psid + }, + "messages": { + "attachment": { + "type": "template", + "payload": { + "template_type": "media", + "elements" : [ + { + "media_type" : "Video", + "url": currentVideo, + "buttons" : [ + { + "type": 'web_url', + "url": urlVi, + "title": 'See more videos at', + } + ] + } + ] + } + } + } + } + + // Send the HTTP request to the Messenger Platform + request({ + "uri": "https://graph.facebook.com/v2.6/me/messages", + "qs": { "access_token": process.env.PAGE_ACCESS_TOKEN}, + "method": "POST", + "json": request_body + }, (err, res, body) => { + if (err) { + console.error("Unable to send message:" + err); + } + }); +} + module.exports = { directMessage, quickReply, + quickDataAccess, teamOptionChoose, teamNewsURL, playerReply, - sendReminder -}; + sendReminder, + mediaPlay +}; \ No newline at end of file diff --git a/functions/updateDB.js b/functions/updateDB.js index fb14eab..ad5dcfa 100644 --- a/functions/updateDB.js +++ b/functions/updateDB.js @@ -10,10 +10,10 @@ let db = bucket.db; function dbTeamName(key) { db.ref('Teams/').child(key.toUpperCase()).once('value', function(snapshot) { if (!snapshot.exists()) { - console.log('Looking for: ' + key.toUpperCase()); + console.log('Looking for: ' + key.toUpperCase()); data.get_team_name(key, (err, reply) => { if (!err) { - console.log("FOUNDED TEAM: " + key); + console.log("FOUNDED TEAM: " + key); var teamName = reply[0]; var imageURL = reply[1]; if (!(reply[0].toUpperCase().includes(key.toUpperCase()))) { @@ -28,7 +28,7 @@ function dbTeamName(key) { }); } else { - console.log("Error occured on Server for TEAM: " + key); + console.log("Error occured on Server for TEAM: " + key); } }) } @@ -36,5 +36,5 @@ function dbTeamName(key) { } module.exports = { - dbTeamName + dbTeamName } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 7563321..74912a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,9 +10,9 @@ "integrity": "sha512-JNHofQND7Iiuy3f6RXSillN1uBe87DAp+1ktsBfSxfL3xWeGFyJC9jH5zu2zs7eqVGp2qXWvJZFiJIwOYnaCQw==", "dev": true, "requires": { - "chalk": "2.3.0", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" } }, "@firebase/app": { @@ -23,7 +23,7 @@ "requires": { "@firebase/app-types": "0.1.2", "@firebase/util": "0.1.10", - "tslib": "1.9.0" + "tslib": "^1.9.0" } }, "@firebase/app-types": { @@ -57,7 +57,7 @@ "@firebase/logger": "0.1.0", "@firebase/util": "0.1.10", "faye-websocket": "0.11.1", - "tslib": "1.9.0" + "tslib": "^1.9.0" } }, "@firebase/database-types": { @@ -75,8 +75,8 @@ "@firebase/firestore-types": "0.2.2", "@firebase/logger": "0.1.0", "@firebase/webchannel-wrapper": "0.2.7", - "grpc": "1.10.1", - "tslib": "1.9.0" + "grpc": "^1.9.1", + "tslib": "^1.9.0" } }, "@firebase/firestore-types": { @@ -92,8 +92,8 @@ "dev": true, "requires": { "@firebase/functions-types": "0.1.0", - "@firebase/messaging-types": "0.1.2", - "isomorphic-fetch": "2.2.1" + "@firebase/messaging-types": "^0.1.1", + "isomorphic-fetch": "^2.2.1" } }, "@firebase/functions-types": { @@ -116,7 +116,7 @@ "requires": { "@firebase/messaging-types": "0.1.2", "@firebase/util": "0.1.10", - "tslib": "1.9.0" + "tslib": "^1.9.0" } }, "@firebase/messaging-types": { @@ -131,9 +131,9 @@ "integrity": "sha512-nE8LMXBhvWdHBlxtjkZkid8WzowBbxUC+mcYdsEbvx5A7hWswisFZO8XwoKnM1jYYSOpDrtxFmyqWBAc15DmRg==", "dev": true, "requires": { - "promise-polyfill": "7.1.2", - "tslib": "1.9.0", - "whatwg-fetch": "2.0.4" + "promise-polyfill": "^7.1.0", + "tslib": "^1.9.0", + "whatwg-fetch": "^2.0.3" } }, "@firebase/storage": { @@ -143,7 +143,7 @@ "dev": true, "requires": { "@firebase/storage-types": "0.1.2", - "tslib": "1.9.0" + "tslib": "^1.9.0" } }, "@firebase/storage-types": { @@ -158,7 +158,7 @@ "integrity": "sha512-XEogRfUQBZ4T37TMq/3ZbuiTdRAKX8hF3TgJglUZNCJf/6QnQ+jlupCuMAXBqCGfw2Mw0m2matoCUBWpsyevOA==", "dev": true, "requires": { - "tslib": "1.9.0" + "tslib": "^1.9.0" } }, "@firebase/webchannel-wrapper": { @@ -184,7 +184,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", "requires": { - "mime-types": "2.1.17", + "mime-types": "~2.1.16", "negotiator": "0.6.1" } }, @@ -200,7 +200,7 @@ "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", "dev": true, "requires": { - "acorn": "5.3.0" + "acorn": "^5.0.0" } }, "ajv": { @@ -209,10 +209,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "align-text": { @@ -221,9 +221,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { @@ -250,7 +250,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "anymatch": { @@ -259,8 +259,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "api-check": { @@ -275,7 +275,7 @@ "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "argparse": { @@ -284,7 +284,7 @@ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -293,7 +293,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -331,8 +331,8 @@ "integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=", "dev": true, "requires": { - "colour": "0.7.1", - "optjs": "3.2.2" + "colour": "~0.7.1", + "optjs": "~3.2.2" } }, "asn1": { @@ -359,7 +359,7 @@ "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "dev": true, "requires": { - "lodash": "4.17.4" + "lodash": "^4.14.0" } }, "async-each": { @@ -393,21 +393,21 @@ "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "dev": true, "requires": { - "babel-core": "6.26.0", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.13.0", - "convert-source-map": "1.5.1", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.2", - "lodash": "4.17.4", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" } }, "babel-code-frame": { @@ -416,9 +416,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "ansi-styles": { @@ -433,11 +433,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "strip-ansi": { @@ -446,7 +446,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -463,25 +463,25 @@ "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.0", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.0", + "debug": "^2.6.8", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.7", + "slash": "^1.0.0", + "source-map": "^0.5.6" } }, "babel-generator": { @@ -490,14 +490,14 @@ "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.4", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.6", + "trim-right": "^1.0.1" } }, "babel-helper-bindify-decorators": { @@ -506,9 +506,9 @@ "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -517,9 +517,9 @@ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-call-delegate": { @@ -528,10 +528,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -540,10 +540,10 @@ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -552,9 +552,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-explode-class": { @@ -563,10 +563,10 @@ "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", "dev": true, "requires": { - "babel-helper-bindify-decorators": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -575,11 +575,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -588,8 +588,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -598,8 +598,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -608,8 +608,8 @@ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -618,9 +618,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -629,11 +629,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -642,12 +642,12 @@ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "dev": true, "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -656,8 +656,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-jest": { @@ -666,8 +666,8 @@ "integrity": "sha512-5pKRFTlDr+x1JESNRd5leqvxEJk3dRwVvIXikB6Lr4BWZbBppk1Wp+BLUzxWL8tM+EYGLCWgfqkD35Sft8r8Lw==", "dev": true, "requires": { - "babel-plugin-istanbul": "4.1.5", - "babel-preset-jest": "22.1.0" + "babel-plugin-istanbul": "^4.1.5", + "babel-preset-jest": "^22.1.0" } }, "babel-messages": { @@ -676,7 +676,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -685,7 +685,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-istanbul": { @@ -694,9 +694,9 @@ "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", "dev": true, "requires": { - "find-up": "2.1.0", - "istanbul-lib-instrument": "1.9.1", - "test-exclude": "4.1.1" + "find-up": "^2.1.0", + "istanbul-lib-instrument": "^1.7.5", + "test-exclude": "^4.1.1" } }, "babel-plugin-jest-hoist": { @@ -759,9 +759,9 @@ "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-generators": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-async-to-generator": { @@ -770,9 +770,9 @@ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-class-properties": { @@ -781,10 +781,10 @@ "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-plugin-syntax-class-properties": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-decorators": { @@ -793,11 +793,11 @@ "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", "dev": true, "requires": { - "babel-helper-explode-class": "6.24.1", - "babel-plugin-syntax-decorators": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -806,7 +806,7 @@ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -815,7 +815,7 @@ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -824,11 +824,11 @@ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -837,15 +837,15 @@ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -854,8 +854,8 @@ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -864,7 +864,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -873,8 +873,8 @@ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -883,7 +883,7 @@ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -892,9 +892,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -903,7 +903,7 @@ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -912,9 +912,9 @@ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -923,10 +923,10 @@ "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -935,9 +935,9 @@ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -946,9 +946,9 @@ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -957,8 +957,8 @@ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "dev": true, "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -967,12 +967,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -981,8 +981,8 @@ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -991,7 +991,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -1000,9 +1000,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -1011,7 +1011,7 @@ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -1020,7 +1020,7 @@ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -1029,9 +1029,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -1040,9 +1040,9 @@ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-object-rest-spread": { @@ -1051,8 +1051,8 @@ "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", "dev": true, "requires": { - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" } }, "babel-plugin-transform-regenerator": { @@ -1061,7 +1061,7 @@ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -1070,8 +1070,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -1080,9 +1080,9 @@ "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.3", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -1099,30 +1099,30 @@ "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-preset-jest": { @@ -1131,8 +1131,8 @@ "integrity": "sha512-ps2UYz7IQpP2IgZ41tJjUuUDTxJioprHXD8fi9DoycKDGNqB3nAX/ggy1S3plaQd43ktBvMS1FkkyGNoBujFpg==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "22.1.0", - "babel-plugin-syntax-object-rest-spread": "6.13.0" + "babel-plugin-jest-hoist": "^22.1.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0" } }, "babel-preset-stage-2": { @@ -1141,10 +1141,10 @@ "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", "dev": true, "requires": { - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators": "6.24.1", - "babel-preset-stage-3": "6.24.1" + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" } }, "babel-preset-stage-3": { @@ -1153,11 +1153,11 @@ "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", "dev": true, "requires": { - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-generator-functions": "6.24.1", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-object-rest-spread": "6.26.0" + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" } }, "babel-register": { @@ -1166,13 +1166,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.0", - "babel-runtime": "6.26.0", - "core-js": "2.5.3", - "home-or-tmp": "2.0.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" }, "dependencies": { "source-map-support": { @@ -1181,7 +1181,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } } } @@ -1192,8 +1192,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.3", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -1202,11 +1202,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -1215,15 +1215,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -1232,10 +1232,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -1257,7 +1257,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "binary-extensions": { @@ -1279,15 +1279,15 @@ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.2", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.15" + "type-is": "~1.6.15" } }, "boom": { @@ -1296,7 +1296,7 @@ "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "dev": true, "requires": { - "hoek": "4.2.0" + "hoek": "4.x.x" } }, "brace-expansion": { @@ -1305,7 +1305,7 @@ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1315,9 +1315,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "browser-process-hrtime": { @@ -1347,7 +1347,7 @@ "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", "dev": true, "requires": { - "node-int64": "0.4.0" + "node-int64": "^0.4.0" } }, "builtin-modules": { @@ -1362,7 +1362,7 @@ "integrity": "sha1-WC7qSxqHO20CCkjVjfhfC7ps/d0=", "dev": true, "requires": { - "long": "3.2.0" + "long": "~3" } }, "bytes": { @@ -1396,8 +1396,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { @@ -1406,9 +1406,9 @@ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "chokidar": { @@ -1418,15 +1418,15 @@ "dev": true, "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.3", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "ci-info": { @@ -1442,8 +1442,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -1474,7 +1474,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -1495,7 +1495,7 @@ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -1560,9 +1560,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "cryptiles": { @@ -1571,7 +1571,7 @@ "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", "dev": true, "requires": { - "boom": "5.2.0" + "boom": "5.x.x" }, "dependencies": { "boom": { @@ -1580,7 +1580,7 @@ "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", "dev": true, "requires": { - "hoek": "4.2.0" + "hoek": "4.x.x" } } } @@ -1597,7 +1597,7 @@ "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", "dev": true, "requires": { - "cssom": "0.3.2" + "cssom": "0.3.x" } }, "dashdash": { @@ -1606,7 +1606,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "debug": { @@ -1635,7 +1635,7 @@ "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-properties": { @@ -1644,8 +1644,8 @@ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "delayed-stream": { @@ -1670,7 +1670,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "detect-newline": { @@ -1704,7 +1704,7 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "ee-first": { @@ -1722,7 +1722,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.19" + "iconv-lite": "~0.4.13" } }, "error-ex": { @@ -1731,7 +1731,7 @@ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -1740,11 +1740,11 @@ "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": "^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": { @@ -1753,9 +1753,9 @@ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "escape-html": { @@ -1775,11 +1775,11 @@ "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", "dev": true, "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.5.7" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.5.6" }, "dependencies": { "esprima": { @@ -1819,7 +1819,7 @@ "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==", "dev": true, "requires": { - "merge": "1.2.0" + "merge": "^1.1.3" } }, "execa": { @@ -1828,13 +1828,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "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" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "exit": { @@ -1849,7 +1849,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -1858,7 +1858,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" } }, "expect": { @@ -1867,12 +1867,12 @@ "integrity": "sha512-8K+8TjNnZq73KYtqNWKWTbYbN8z4loeL+Pn2bqpmtTdBtLNXJtpz9vkUcQlFsgKMDRA3VM8GXRA6qbV/oBF7Bw==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "jest-diff": "22.1.0", - "jest-get-type": "22.1.0", - "jest-matcher-utils": "22.1.0", - "jest-message-util": "22.1.0", - "jest-regex-util": "22.1.0" + "ansi-styles": "^3.2.0", + "jest-diff": "^22.1.0", + "jest-get-type": "^22.1.0", + "jest-matcher-utils": "^22.1.0", + "jest-message-util": "^22.1.0", + "jest-regex-util": "^22.1.0" } }, "express": { @@ -1880,36 +1880,36 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", "requires": { - "accepts": "1.3.4", + "accepts": "~1.3.4", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.1", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.0", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.2", + "proxy-addr": "~2.0.2", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.1", "serve-static": "1.13.1", "setprototypeof": "1.1.0", - "statuses": "1.3.1", - "type-is": "1.6.15", + "statuses": "~1.3.1", + "type-is": "~1.6.15", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "setprototypeof": { @@ -1936,7 +1936,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -1951,9 +1951,9 @@ "integrity": "sha1-KAEcZ74Qgu+4MzjGbBn7UdeUfqk=", "dev": true, "requires": { - "bluebird": "3.5.1", + "bluebird": "^3.3.5", "facebook-sendapi-types": "github:fyndme/facebook-sendapi-types#4bc576d1a9b6204326631648d0c2043a1e99e08c", - "request-promise": "2.0.1" + "request-promise": "^2.0.1" }, "dependencies": { "request-promise": { @@ -1962,9 +1962,9 @@ "integrity": "sha1-rL1HtyXjk3Lt4xdM8pw42ezysw0=", "dev": true, "requires": { - "bluebird": "2.11.0", - "lodash": "4.17.4", - "request": "2.83.0" + "bluebird": "^2.3", + "lodash": "^4.5.0", + "request": "^2.34" }, "dependencies": { "bluebird": { @@ -1979,6 +1979,7 @@ }, "facebook-sendapi-types": { "version": "github:fyndme/facebook-sendapi-types#4bc576d1a9b6204326631648d0c2043a1e99e08c", + "from": "facebook-sendapi-types@github:fyndme/facebook-sendapi-types#4bc576d1a9b6204326631648d0c2043a1e99e08c", "dev": true }, "fast-deep-equal": { @@ -2005,7 +2006,7 @@ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", "dev": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "fb-watchman": { @@ -2014,7 +2015,7 @@ "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", "dev": true, "requires": { - "bser": "2.0.0" + "bser": "^2.0.0" } }, "filename-regex": { @@ -2029,8 +2030,8 @@ "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", "dev": true, "requires": { - "glob": "7.1.2", - "minimatch": "3.0.4" + "glob": "^7.0.3", + "minimatch": "^3.0.3" } }, "fill-range": { @@ -2039,11 +2040,11 @@ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -2052,12 +2053,12 @@ "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", "requires": { "debug": "2.6.9", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" }, "dependencies": { "statuses": { @@ -2073,7 +2074,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "firebase": { @@ -2090,8 +2091,8 @@ "@firebase/messaging": "0.2.3", "@firebase/polyfill": "0.3.0", "@firebase/storage": "0.1.8", - "dom-storage": "2.1.0", - "xmlhttprequest": "1.8.0" + "dom-storage": "^2.0.2", + "xmlhttprequest": "^1.8.0" } }, "for-in": { @@ -2106,7 +2107,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -2127,9 +2128,9 @@ "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "forwarded": { @@ -2161,8 +2162,8 @@ "dev": true, "optional": true, "requires": { - "nan": "2.8.0", - "node-pre-gyp": "0.6.39" + "nan": "^2.3.0", + "node-pre-gyp": "^0.6.39" }, "dependencies": { "abbrev": { @@ -2177,8 +2178,8 @@ "dev": true, "optional": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "ansi-regex": { @@ -2198,8 +2199,8 @@ "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "asn1": { @@ -2243,7 +2244,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "block-stream": { @@ -2251,7 +2252,7 @@ "bundled": true, "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "boom": { @@ -2259,7 +2260,7 @@ "bundled": true, "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "brace-expansion": { @@ -2267,7 +2268,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "0.4.2", + "balanced-match": "^0.4.1", "concat-map": "0.0.1" } }, @@ -2298,7 +2299,7 @@ "bundled": true, "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "concat-map": { @@ -2321,7 +2322,7 @@ "bundled": true, "dev": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "dashdash": { @@ -2330,7 +2331,7 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -2379,7 +2380,7 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "extend": { @@ -2405,9 +2406,9 @@ "dev": true, "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "fs.realpath": { @@ -2420,10 +2421,10 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "fstream-ignore": { @@ -2432,9 +2433,9 @@ "dev": true, "optional": true, "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" } }, "gauge": { @@ -2443,14 +2444,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "getpass": { @@ -2459,7 +2460,7 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -2475,12 +2476,12 @@ "bundled": true, "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "graceful-fs": { @@ -2500,8 +2501,8 @@ "dev": true, "optional": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "has-unicode": { @@ -2515,10 +2516,10 @@ "bundled": true, "dev": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -2532,9 +2533,9 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "inflight": { @@ -2542,8 +2543,8 @@ "bundled": true, "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2562,7 +2563,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-typedarray": { @@ -2588,7 +2589,7 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "jsbn": { @@ -2609,7 +2610,7 @@ "dev": true, "optional": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -2654,7 +2655,7 @@ "bundled": true, "dev": true, "requires": { - "mime-db": "1.27.0" + "mime-db": "~1.27.0" } }, "minimatch": { @@ -2662,7 +2663,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.7" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -2690,17 +2691,17 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.2", + "detect-libc": "^1.0.2", "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.0.2", + "rc": "^1.1.7", "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^2.2.1", + "tar-pack": "^3.4.0" } }, "nopt": { @@ -2709,8 +2710,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npmlog": { @@ -2719,10 +2720,10 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { @@ -2747,7 +2748,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -2768,8 +2769,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -2806,10 +2807,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -2825,13 +2826,13 @@ "bundled": true, "dev": true, "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" } }, "request": { @@ -2840,28 +2841,28 @@ "dev": true, "optional": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" } }, "rimraf": { @@ -2869,7 +2870,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -2900,7 +2901,7 @@ "bundled": true, "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "sshpk": { @@ -2909,15 +2910,15 @@ "dev": true, "optional": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" }, "dependencies": { "assert-plus": { @@ -2933,9 +2934,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -2943,7 +2944,7 @@ "bundled": true, "dev": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "^5.0.1" } }, "stringstream": { @@ -2957,7 +2958,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -2971,9 +2972,9 @@ "bundled": true, "dev": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "tar-pack": { @@ -2982,14 +2983,14 @@ "dev": true, "optional": true, "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" + "debug": "^2.2.0", + "fstream": "^1.0.10", + "fstream-ignore": "^1.0.5", + "once": "^1.3.3", + "readable-stream": "^2.1.4", + "rimraf": "^2.5.1", + "tar": "^2.2.1", + "uid-number": "^0.0.6" } }, "tough-cookie": { @@ -2998,7 +2999,7 @@ "dev": true, "optional": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "tunnel-agent": { @@ -3007,7 +3008,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -3048,7 +3049,7 @@ "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -3082,7 +3083,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -3091,12 +3092,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -3105,8 +3106,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -3115,7 +3116,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -3148,10 +3149,10 @@ "integrity": "sha512-xmhA11h2XhqpSVzDAmoQAYdNQ+swILXpKOiRpAEQ2kX55ioxVADc6v7SkS4zQBxm4klhQHgGqpGKvoL6LGx4VQ==", "dev": true, "requires": { - "lodash": "4.17.4", - "nan": "2.10.0", + "lodash": "^4.15.0", + "nan": "^2.10.0", "node-pre-gyp": "0.7.0", - "protobufjs": "5.0.2" + "protobufjs": "^5.0.0" }, "dependencies": { "abbrev": { @@ -3164,10 +3165,10 @@ "bundled": true, "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ansi-regex": { @@ -3185,8 +3186,8 @@ "bundled": true, "dev": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.5" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "asn1": { @@ -3225,7 +3226,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "block-stream": { @@ -3233,7 +3234,7 @@ "bundled": true, "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "boom": { @@ -3241,7 +3242,7 @@ "bundled": true, "dev": true, "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" } }, "brace-expansion": { @@ -3249,7 +3250,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -3273,7 +3274,7 @@ "bundled": true, "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "concat-map": { @@ -3296,7 +3297,7 @@ "bundled": true, "dev": true, "requires": { - "boom": "5.2.0" + "boom": "5.x.x" }, "dependencies": { "boom": { @@ -3304,7 +3305,7 @@ "bundled": true, "dev": true, "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" } } } @@ -3314,7 +3315,7 @@ "bundled": true, "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "debug": { @@ -3351,7 +3352,7 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "extend": { @@ -3384,9 +3385,9 @@ "bundled": true, "dev": true, "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "mime-types": "^2.1.12" } }, "fs.realpath": { @@ -3399,10 +3400,10 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "fstream-ignore": { @@ -3410,9 +3411,9 @@ "bundled": true, "dev": true, "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" } }, "gauge": { @@ -3420,14 +3421,14 @@ "bundled": true, "dev": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "getpass": { @@ -3435,7 +3436,7 @@ "bundled": true, "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -3443,12 +3444,12 @@ "bundled": true, "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "graceful-fs": { @@ -3466,8 +3467,8 @@ "bundled": true, "dev": true, "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "has-unicode": { @@ -3480,10 +3481,10 @@ "bundled": true, "dev": true, "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.1", - "sntp": "2.1.0" + "boom": "4.x.x", + "cryptiles": "3.x.x", + "hoek": "4.x.x", + "sntp": "2.x.x" } }, "hoek": { @@ -3496,9 +3497,9 @@ "bundled": true, "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "inflight": { @@ -3506,8 +3507,8 @@ "bundled": true, "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3525,7 +3526,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-typedarray": { @@ -3585,7 +3586,7 @@ "bundled": true, "dev": true, "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "minimatch": { @@ -3593,7 +3594,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -3632,16 +3633,16 @@ "bundled": true, "dev": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.2", - "rc": "1.2.6", + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.0.2", + "rc": "^1.1.7", "request": "2.83.0", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "2.2.1", - "tar-pack": "3.4.1" + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^2.2.1", + "tar-pack": "^3.4.0" } }, "nopt": { @@ -3649,8 +3650,8 @@ "bundled": true, "dev": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npmlog": { @@ -3658,10 +3659,10 @@ "bundled": true, "dev": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { @@ -3684,7 +3685,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -3702,8 +3703,8 @@ "bundled": true, "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -3736,10 +3737,10 @@ "bundled": true, "dev": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" } }, "readable-stream": { @@ -3747,13 +3748,13 @@ "bundled": true, "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "request": { @@ -3761,28 +3762,28 @@ "bundled": true, "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "hawk": "~6.0.2", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "stringstream": "~0.0.5", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" } }, "rimraf": { @@ -3790,7 +3791,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -3818,7 +3819,7 @@ "bundled": true, "dev": true, "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" } }, "sshpk": { @@ -3826,14 +3827,14 @@ "bundled": true, "dev": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" } }, "string-width": { @@ -3841,9 +3842,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -3851,7 +3852,7 @@ "bundled": true, "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "stringstream": { @@ -3864,7 +3865,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -3877,9 +3878,9 @@ "bundled": true, "dev": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "tar-pack": { @@ -3887,14 +3888,14 @@ "bundled": true, "dev": true, "requires": { - "debug": "2.6.9", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.3.5", - "rimraf": "2.6.2", - "tar": "2.2.1", - "uid-number": "0.0.6" + "debug": "^2.2.0", + "fstream": "^1.0.10", + "fstream-ignore": "^1.0.5", + "once": "^1.3.3", + "readable-stream": "^2.1.4", + "rimraf": "^2.5.1", + "tar": "^2.2.1", + "uid-number": "^0.0.6" } }, "tough-cookie": { @@ -3902,7 +3903,7 @@ "bundled": true, "dev": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "tunnel-agent": { @@ -3910,7 +3911,7 @@ "bundled": true, "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -3939,9 +3940,9 @@ "bundled": true, "dev": true, "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "wide-align": { @@ -3949,7 +3950,7 @@ "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -3965,10 +3966,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "async": { @@ -3983,7 +3984,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -4000,8 +4001,8 @@ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "dev": true, "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "has": { @@ -4010,7 +4011,7 @@ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.0.2" } }, "has-ansi": { @@ -4019,7 +4020,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -4034,10 +4035,10 @@ "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", "dev": true, "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.0", - "sntp": "2.1.0" + "boom": "4.x.x", + "cryptiles": "3.x.x", + "hoek": "4.x.x", + "sntp": "2.x.x" } }, "he": { @@ -4058,8 +4059,8 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -4074,7 +4075,7 @@ "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", "dev": true, "requires": { - "whatwg-encoding": "1.0.3" + "whatwg-encoding": "^1.0.1" } }, "http-errors": { @@ -4085,7 +4086,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.4.0" + "statuses": ">= 1.3.1 < 2" }, "dependencies": { "depd": { @@ -4107,9 +4108,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "iconv-lite": { @@ -4123,8 +4124,8 @@ "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", "dev": true, "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" } }, "imurmurhash": { @@ -4139,8 +4140,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -4154,7 +4155,7 @@ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -4181,7 +4182,7 @@ "dev": true, "optional": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -4196,7 +4197,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-callable": { @@ -4211,7 +4212,7 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "1.1.2" + "ci-info": "^1.0.0" } }, "is-date-object": { @@ -4232,7 +4233,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -4253,7 +4254,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -4274,7 +4275,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -4283,7 +4284,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-posix-bracket": { @@ -4304,7 +4305,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "1.0.1" + "has": "^1.0.1" } }, "is-stream": { @@ -4357,8 +4358,8 @@ "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "dev": true, "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "2.0.4" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } }, "isstream": { @@ -4373,17 +4374,17 @@ "integrity": "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==", "dev": true, "requires": { - "async": "2.6.0", - "fileset": "2.0.3", - "istanbul-lib-coverage": "1.1.1", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.9.1", - "istanbul-lib-report": "1.1.2", - "istanbul-lib-source-maps": "1.2.2", - "istanbul-reports": "1.1.3", - "js-yaml": "3.10.0", - "mkdirp": "0.5.1", - "once": "1.4.0" + "async": "^2.1.4", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.1.1", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.9.1", + "istanbul-lib-report": "^1.1.2", + "istanbul-lib-source-maps": "^1.2.2", + "istanbul-reports": "^1.1.3", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" } }, "istanbul-lib-coverage": { @@ -4398,7 +4399,7 @@ "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { @@ -4407,13 +4408,13 @@ "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", "dev": true, "requires": { - "babel-generator": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.1.1", - "semver": "5.5.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.1.1", + "semver": "^5.3.0" } }, "istanbul-lib-report": { @@ -4422,10 +4423,10 @@ "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", "dev": true, "requires": { - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "has-flag": { @@ -4440,7 +4441,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4451,11 +4452,11 @@ "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { @@ -4475,7 +4476,7 @@ "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "jest": { @@ -4484,7 +4485,7 @@ "integrity": "sha512-cIPkn+OFGabazPesbhnYkadPftoO2Fo3w84QjeIP+A8eZ5qj7Zs4PuTemAW8StNMxySJr0KPk/LhYG2GUHLexQ==", "dev": true, "requires": { - "jest-cli": "22.1.4" + "jest-cli": "^22.1.4" }, "dependencies": { "jest-cli": { @@ -4493,39 +4494,39 @@ "integrity": "sha512-p7yOu0Q5uuXb3Q93qEg3LE6eNGgAGueakifxXNEqQx4b0lOl2YlC9t6BLQWNOJ+z42VWK/BIdFjf6lxKcTkjFA==", "dev": true, "requires": { - "ansi-escapes": "3.0.0", - "chalk": "2.3.0", - "exit": "0.1.2", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "import-local": "1.0.0", - "is-ci": "1.1.0", - "istanbul-api": "1.2.1", - "istanbul-lib-coverage": "1.1.1", - "istanbul-lib-instrument": "1.9.1", - "istanbul-lib-source-maps": "1.2.2", - "jest-changed-files": "22.1.4", - "jest-config": "22.1.4", - "jest-environment-jsdom": "22.1.4", - "jest-get-type": "22.1.0", - "jest-haste-map": "22.1.0", - "jest-message-util": "22.1.0", - "jest-regex-util": "22.1.0", - "jest-resolve-dependencies": "22.1.0", - "jest-runner": "22.1.4", - "jest-runtime": "22.1.4", - "jest-snapshot": "22.1.2", - "jest-util": "22.1.4", - "jest-worker": "22.1.0", - "micromatch": "2.3.11", - "node-notifier": "5.2.1", - "realpath-native": "1.0.0", - "rimraf": "2.6.2", - "slash": "1.0.0", - "string-length": "2.0.0", - "strip-ansi": "4.0.0", - "which": "1.3.0", - "yargs": "10.1.1" + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "import-local": "^1.0.0", + "is-ci": "^1.0.10", + "istanbul-api": "^1.1.14", + "istanbul-lib-coverage": "^1.1.1", + "istanbul-lib-instrument": "^1.8.0", + "istanbul-lib-source-maps": "^1.2.1", + "jest-changed-files": "^22.1.4", + "jest-config": "^22.1.4", + "jest-environment-jsdom": "^22.1.4", + "jest-get-type": "^22.1.0", + "jest-haste-map": "^22.1.0", + "jest-message-util": "^22.1.0", + "jest-regex-util": "^22.1.0", + "jest-resolve-dependencies": "^22.1.0", + "jest-runner": "^22.1.4", + "jest-runtime": "^22.1.4", + "jest-snapshot": "^22.1.2", + "jest-util": "^22.1.4", + "jest-worker": "^22.1.0", + "micromatch": "^2.3.11", + "node-notifier": "^5.1.2", + "realpath-native": "^1.0.0", + "rimraf": "^2.5.4", + "slash": "^1.0.0", + "string-length": "^2.0.0", + "strip-ansi": "^4.0.0", + "which": "^1.2.12", + "yargs": "^10.0.3" } } } @@ -4536,7 +4537,7 @@ "integrity": "sha512-EpqJhwt+N/wEHRT+5KrjagVrunduOfMgAb7fjjHkXHFCPRZoVZwl896S7krx7txf5hrMNUkpECnOnO2wBgzJCw==", "dev": true, "requires": { - "throat": "4.1.0" + "throat": "^4.0.0" } }, "jest-config": { @@ -4545,17 +4546,17 @@ "integrity": "sha512-ZImFp7STrUDOgQLW5I5UloCiCRMh6HmMIYIoWqaQkxnR5ws7MuZFG/Ns9sZFyfrnyWCvcW91e+XcEfNeoa4Jew==", "dev": true, "requires": { - "chalk": "2.3.0", - "glob": "7.1.2", - "jest-environment-jsdom": "22.1.4", - "jest-environment-node": "22.1.4", - "jest-get-type": "22.1.0", - "jest-jasmine2": "22.1.4", - "jest-regex-util": "22.1.0", - "jest-resolve": "22.1.4", - "jest-util": "22.1.4", - "jest-validate": "22.1.2", - "pretty-format": "22.1.0" + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^22.1.4", + "jest-environment-node": "^22.1.4", + "jest-get-type": "^22.1.0", + "jest-jasmine2": "^22.1.4", + "jest-regex-util": "^22.1.0", + "jest-resolve": "^22.1.4", + "jest-util": "^22.1.4", + "jest-validate": "^22.1.2", + "pretty-format": "^22.1.0" } }, "jest-diff": { @@ -4564,10 +4565,10 @@ "integrity": "sha512-lowdbU/dzXh+2/MR5QcvU5KPNkO4JdAEYw0PkQCbIQIuy5+g3QZBuVhWh8179Fmpg4CQrz1WgoK/yQHDCHbqqw==", "dev": true, "requires": { - "chalk": "2.3.0", - "diff": "3.4.0", - "jest-get-type": "22.1.0", - "pretty-format": "22.1.0" + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^22.1.0", + "pretty-format": "^22.1.0" } }, "jest-docblock": { @@ -4576,7 +4577,7 @@ "integrity": "sha512-/+OGgBVRJb5wCbXrB1LQvibQBz2SdrvDdKRNzY1gL+OISQJZCR9MOewbygdT5rVzbbkfhC4AR2x+qWmNUdJfjw==", "dev": true, "requires": { - "detect-newline": "2.1.0" + "detect-newline": "^2.1.0" } }, "jest-environment-jsdom": { @@ -4585,9 +4586,9 @@ "integrity": "sha512-YGqFJzei/kq5BgQ8su7igLoCl34ytUffr5ZoqwLrDzCmXUKyIiuwBFbWe3xFMG/crlDb1emhBXdzWM1yDEDw5Q==", "dev": true, "requires": { - "jest-mock": "22.1.0", - "jest-util": "22.1.4", - "jsdom": "11.5.1" + "jest-mock": "^22.1.0", + "jest-util": "^22.1.4", + "jsdom": "^11.5.1" } }, "jest-environment-node": { @@ -4596,8 +4597,8 @@ "integrity": "sha512-rQmtzgZVdyCzeXsE8i7Alw2483KSd2PYjssZWZYeNzonN/lBeUjjaOCgLWp6FspBzSTnYF7x6cN4umGZxYAhow==", "dev": true, "requires": { - "jest-mock": "22.1.0", - "jest-util": "22.1.4" + "jest-mock": "^22.1.0", + "jest-util": "^22.1.4" } }, "jest-get-type": { @@ -4612,12 +4613,12 @@ "integrity": "sha512-vETdC6GboGlZX6+9SMZkXtYRQSKBbQ47sFF7NGglbMN4eyIZBODply8rlcO01KwBiAeiNCKdjUyfonZzJ93JEg==", "dev": true, "requires": { - "fb-watchman": "2.0.0", - "graceful-fs": "4.1.11", - "jest-docblock": "22.1.0", - "jest-worker": "22.1.0", - "micromatch": "2.3.11", - "sane": "2.2.0" + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.1.11", + "jest-docblock": "^22.1.0", + "jest-worker": "^22.1.0", + "micromatch": "^2.3.11", + "sane": "^2.0.0" } }, "jest-jasmine2": { @@ -4626,17 +4627,17 @@ "integrity": "sha512-+KoRiG4PUwURB7UXei2jzxvbCebhXgTYS+xWl3FsSYUn3flcxdcOgAsFolx31Dkk/B1bVf1HIKt/B6Ubucp9aQ==", "dev": true, "requires": { - "callsites": "2.0.0", - "chalk": "2.3.0", - "co": "4.6.0", - "expect": "22.1.0", - "graceful-fs": "4.1.11", - "is-generator-fn": "1.0.0", - "jest-diff": "22.1.0", - "jest-matcher-utils": "22.1.0", - "jest-message-util": "22.1.0", - "jest-snapshot": "22.1.2", - "source-map-support": "0.5.2" + "callsites": "^2.0.0", + "chalk": "^2.0.1", + "co": "^4.6.0", + "expect": "^22.1.0", + "graceful-fs": "^4.1.11", + "is-generator-fn": "^1.0.0", + "jest-diff": "^22.1.0", + "jest-matcher-utils": "^22.1.0", + "jest-message-util": "^22.1.0", + "jest-snapshot": "^22.1.2", + "source-map-support": "^0.5.0" } }, "jest-leak-detector": { @@ -4645,7 +4646,7 @@ "integrity": "sha512-8QsCWkncWAqdvrXN4yXQp9vgWF6CT3RkRey+d06SIHX913uXzAJhJdZyo6eE+uHVYMxUbxqW93npbUFhAR0YxA==", "dev": true, "requires": { - "pretty-format": "22.1.0" + "pretty-format": "^22.1.0" } }, "jest-matcher-utils": { @@ -4654,9 +4655,9 @@ "integrity": "sha512-Zn1OD9wVjILOdvRxgAnqiCN36OX6KJx+P2FHN+3lzQ0omG2N2OAguxE1QXuJJneG2yndlkXjekXFP254c0cSpw==", "dev": true, "requires": { - "chalk": "2.3.0", - "jest-get-type": "22.1.0", - "pretty-format": "22.1.0" + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "pretty-format": "^22.1.0" } }, "jest-message-util": { @@ -4665,11 +4666,11 @@ "integrity": "sha512-kftcoawOeOVUGuGWmMupJt7FGLK1pqOrh02FlJwtImmPGZ2yTWCTx2D+N/g95qD2jCbQ/ntH1goBixhAIIxL+g==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0-beta.38", - "chalk": "2.3.0", - "micromatch": "2.3.11", - "slash": "1.0.0", - "stack-utils": "1.0.1" + "@babel/code-frame": "^7.0.0-beta.35", + "chalk": "^2.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0", + "stack-utils": "^1.0.1" } }, "jest-mock": { @@ -4690,8 +4691,8 @@ "integrity": "sha512-/HuCMeiTD6YJ+NF15bU1mal1r7Gov0GJozA7232XiYve7cOOnU2JwXBx3EQmcIuG38uNrRPjtgpiXkBqfnk4Og==", "dev": true, "requires": { - "browser-resolve": "1.11.2", - "chalk": "2.3.0" + "browser-resolve": "^1.11.2", + "chalk": "^2.0.1" } }, "jest-resolve-dependencies": { @@ -4700,7 +4701,7 @@ "integrity": "sha512-76Ll61bD/Sus8wK8d+lw891EtiBJGJkWG8OuVDTEX0z3z2+jPujvQqSB2eQ+kCHyCsRwJ2PSjhn3UHqae/oEtA==", "dev": true, "requires": { - "jest-regex-util": "22.1.0" + "jest-regex-util": "^22.1.0" } }, "jest-runner": { @@ -4709,17 +4710,17 @@ "integrity": "sha512-HAyZ0Q2Fyk7mlbtbSKP75hNs9IP0Md7kzPUN1uNKbvQfZkXA/e7P0ttzAIGQtEbRx656tYwkfWNW+hXvs1i4/g==", "dev": true, "requires": { - "exit": "0.1.2", - "jest-config": "22.1.4", - "jest-docblock": "22.1.0", - "jest-haste-map": "22.1.0", - "jest-jasmine2": "22.1.4", - "jest-leak-detector": "22.1.0", - "jest-message-util": "22.1.0", - "jest-runtime": "22.1.4", - "jest-util": "22.1.4", - "jest-worker": "22.1.0", - "throat": "4.1.0" + "exit": "^0.1.2", + "jest-config": "^22.1.4", + "jest-docblock": "^22.1.0", + "jest-haste-map": "^22.1.0", + "jest-jasmine2": "^22.1.4", + "jest-leak-detector": "^22.1.0", + "jest-message-util": "^22.1.0", + "jest-runtime": "^22.1.4", + "jest-util": "^22.1.4", + "jest-worker": "^22.1.0", + "throat": "^4.0.0" } }, "jest-runtime": { @@ -4728,25 +4729,25 @@ "integrity": "sha512-r/UjVuQppDRwbUprDlLYdd8MTYY+H8H6BCqRujGjo5/QyIt3b0hppNoOQHF+0bHNtuz/sR9chJ9HJ3A1fiv9Pw==", "dev": true, "requires": { - "babel-core": "6.26.0", - "babel-jest": "22.1.0", - "babel-plugin-istanbul": "4.1.5", - "chalk": "2.3.0", - "convert-source-map": "1.5.1", - "exit": "0.1.2", - "graceful-fs": "4.1.11", - "jest-config": "22.1.4", - "jest-haste-map": "22.1.0", - "jest-regex-util": "22.1.0", - "jest-resolve": "22.1.4", - "jest-util": "22.1.4", - "json-stable-stringify": "1.0.1", - "micromatch": "2.3.11", - "realpath-native": "1.0.0", - "slash": "1.0.0", + "babel-core": "^6.0.0", + "babel-jest": "^22.1.0", + "babel-plugin-istanbul": "^4.1.5", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "exit": "^0.1.2", + "graceful-fs": "^4.1.11", + "jest-config": "^22.1.4", + "jest-haste-map": "^22.1.0", + "jest-regex-util": "^22.1.0", + "jest-resolve": "^22.1.4", + "jest-util": "^22.1.4", + "json-stable-stringify": "^1.0.1", + "micromatch": "^2.3.11", + "realpath-native": "^1.0.0", + "slash": "^1.0.0", "strip-bom": "3.0.0", - "write-file-atomic": "2.3.0", - "yargs": "10.1.1" + "write-file-atomic": "^2.1.0", + "yargs": "^10.0.3" }, "dependencies": { "strip-bom": { @@ -4763,12 +4764,12 @@ "integrity": "sha512-45co/M0gTe6Y6yHaJLydEZKHOFpFHESLah40jW35DWd3pd7q188bsi0oUY4Kls7PDXUamvTWuTKTZXCtzwSvCw==", "dev": true, "requires": { - "chalk": "2.3.0", - "jest-diff": "22.1.0", - "jest-matcher-utils": "22.1.0", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "pretty-format": "22.1.0" + "chalk": "^2.0.1", + "jest-diff": "^22.1.0", + "jest-matcher-utils": "^22.1.0", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^22.1.0" } }, "jest-util": { @@ -4777,13 +4778,13 @@ "integrity": "sha512-zM29idoVBPvmpsGubS7YmywVyPe4/m1wE2YhmKp0vVmrQmuby7ObuMqabp82EYlM0Rdp4GNEtaDamW9jg8lgTg==", "dev": true, "requires": { - "callsites": "2.0.0", - "chalk": "2.3.0", - "graceful-fs": "4.1.11", - "is-ci": "1.1.0", - "jest-message-util": "22.1.0", - "jest-validate": "22.1.2", - "mkdirp": "0.5.1" + "callsites": "^2.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.11", + "is-ci": "^1.0.10", + "jest-message-util": "^22.1.0", + "jest-validate": "^22.1.2", + "mkdirp": "^0.5.1" } }, "jest-validate": { @@ -4792,10 +4793,10 @@ "integrity": "sha512-IjvMsV7GW5ghg5PTQvU23zJqTBmnq10eY+4n47awUeXYEGH27N+JajFPOg6tsN+OYvEPsohPquKoqQ5XBVs/ow==", "dev": true, "requires": { - "chalk": "2.3.0", - "jest-get-type": "22.1.0", - "leven": "2.1.0", - "pretty-format": "22.1.0" + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "leven": "^2.1.0", + "pretty-format": "^22.1.0" } }, "jest-worker": { @@ -4804,7 +4805,7 @@ "integrity": "sha512-ezLueYAQowk5N6g2J7bNZfq4NWZvMNB5Qd24EmOZLcM5SXTdiFvxykZIoNiMj9C98cCbPaojX8tfR7b1LJwNig==", "dev": true, "requires": { - "merge-stream": "1.0.1" + "merge-stream": "^1.0.1" } }, "js-tokens": { @@ -4819,8 +4820,8 @@ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "dev": true, "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -4836,30 +4837,30 @@ "integrity": "sha512-89ztIZ03aYK9f1uUrLXLsZndRge/JnZjzjpaN+lrse3coqz+8PR/dX4WLHpbF5fIKTXhDjFODOJw2328lPJ90g==", "dev": true, "requires": { - "abab": "1.0.4", - "acorn": "5.3.0", - "acorn-globals": "4.1.0", - "array-equal": "1.0.0", - "browser-process-hrtime": "0.1.2", - "content-type-parser": "1.0.2", - "cssom": "0.3.2", - "cssstyle": "0.2.37", - "domexception": "1.0.0", - "escodegen": "1.9.0", - "html-encoding-sniffer": "1.0.2", - "left-pad": "1.2.0", - "nwmatcher": "1.4.3", - "parse5": "3.0.3", - "pn": "1.1.0", - "request": "2.83.0", - "request-promise-native": "1.0.5", - "sax": "1.2.4", - "symbol-tree": "3.2.2", - "tough-cookie": "2.3.3", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.3", - "whatwg-url": "6.4.0", - "xml-name-validator": "2.0.1" + "abab": "^1.0.3", + "acorn": "^5.1.2", + "acorn-globals": "^4.0.0", + "array-equal": "^1.0.0", + "browser-process-hrtime": "^0.1.2", + "content-type-parser": "^1.0.1", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": ">= 0.2.37 < 0.3.0", + "domexception": "^1.0.0", + "escodegen": "^1.9.0", + "html-encoding-sniffer": "^1.0.1", + "left-pad": "^1.2.0", + "nwmatcher": "^1.4.3", + "parse5": "^3.0.2", + "pn": "^1.0.0", + "request": "^2.83.0", + "request-promise-native": "^1.0.3", + "sax": "^1.2.1", + "symbol-tree": "^3.2.1", + "tough-cookie": "^2.3.3", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.1", + "whatwg-url": "^6.3.0", + "xml-name-validator": "^2.0.1" } }, "jsesc": { @@ -4886,7 +4887,7 @@ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -4925,7 +4926,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -4941,7 +4942,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "left-pad": { @@ -4962,8 +4963,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -4972,11 +4973,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "locate-path": { @@ -4985,8 +4986,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -5019,7 +5020,7 @@ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { @@ -5028,8 +5029,8 @@ "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "makeerror": { @@ -5038,7 +5039,7 @@ "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", "dev": true, "requires": { - "tmpl": "1.0.4" + "tmpl": "1.0.x" } }, "media-typer": { @@ -5052,7 +5053,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, "merge": { @@ -5072,7 +5073,7 @@ "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", "dev": true, "requires": { - "readable-stream": "2.3.3" + "readable-stream": "^2.0.1" } }, "messenger-bot-tester": { @@ -5081,13 +5082,13 @@ "integrity": "sha1-JbgJXjVSdmFJhooF5IBYFDXcA3A=", "dev": true, "requires": { - "api-check": "7.5.5", - "bluebird": "3.5.1", - "body-parser": "1.18.2", - "express": "4.16.2", - "facebook-send-api": "2.8.0", - "lodash": "4.17.4", - "request-promise": "4.2.2" + "api-check": "^7.5.5", + "bluebird": "^3.4.1", + "body-parser": "^1.15.2", + "express": "^4.14.0", + "facebook-send-api": "^2.5.0", + "lodash": "^4.15.0", + "request-promise": "^4.1.1" } }, "methods": { @@ -5101,19 +5102,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mime": { @@ -5131,7 +5132,7 @@ "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" + "mime-db": "~1.30.0" } }, "mimic-fn": { @@ -5146,7 +5147,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -5209,7 +5210,7 @@ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -5242,8 +5243,8 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-int64": { @@ -5258,10 +5259,10 @@ "integrity": "sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==", "dev": true, "requires": { - "growly": "1.3.0", - "semver": "5.5.0", - "shellwords": "0.1.1", - "which": "1.3.0" + "growly": "^1.3.0", + "semver": "^5.4.1", + "shellwords": "^0.1.1", + "which": "^1.3.0" } }, "normalize-package-data": { @@ -5270,10 +5271,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -5282,7 +5283,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "npm-run-path": { @@ -5291,7 +5292,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -5330,8 +5331,8 @@ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.10.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" } }, "object.omit": { @@ -5340,8 +5341,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "on-finished": { @@ -5358,7 +5359,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { @@ -5367,8 +5368,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "optionator": { @@ -5377,12 +5378,12 @@ "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" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" }, "dependencies": { "wordwrap": { @@ -5411,9 +5412,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "os-tmpdir": { @@ -5428,9 +5429,9 @@ "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" } }, "p-finally": { @@ -5445,7 +5446,7 @@ "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -5454,7 +5455,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -5469,10 +5470,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -5481,7 +5482,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parse5": { @@ -5490,7 +5491,7 @@ "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", "dev": true, "requires": { - "@types/node": "9.3.0" + "@types/node": "*" } }, "parseurl": { @@ -5533,9 +5534,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "performance-now": { @@ -5562,7 +5563,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -5571,7 +5572,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "pn": { @@ -5598,8 +5599,8 @@ "integrity": "sha512-0HHR5hCmjDGU4sez3w5zRDAAwn7V0vT4SgPiYPZ1XDm5sT3Icb+Bh+fsOP3+Y3UwPjMr7TbRj+L7eQyMkPAxAw==", "dev": true, "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.0" + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" }, "dependencies": { "ansi-regex": { @@ -5639,10 +5640,10 @@ "integrity": "sha1-WXSNfc8D0tsiwT2p/rAk4Wq4DJE=", "dev": true, "requires": { - "ascli": "1.0.1", - "bytebuffer": "5.0.1", - "glob": "7.1.2", - "yargs": "3.32.0" + "ascli": "~1", + "bytebuffer": "~5", + "glob": "^7.0.5", + "yargs": "^3.10.0" }, "dependencies": { "camelcase": { @@ -5657,9 +5658,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "is-fullwidth-code-point": { @@ -5668,7 +5669,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "os-locale": { @@ -5677,7 +5678,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "string-width": { @@ -5686,9 +5687,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -5697,7 +5698,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "window-size": { @@ -5712,13 +5713,13 @@ "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", "dev": true, "requires": { - "camelcase": "2.1.1", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "os-locale": "1.4.0", - "string-width": "1.0.2", - "window-size": "0.1.4", - "y18n": "3.2.1" + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" } } } @@ -5728,7 +5729,7 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.5.2" } }, @@ -5760,8 +5761,8 @@ "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -5770,7 +5771,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5779,7 +5780,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5790,7 +5791,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5817,9 +5818,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -5828,8 +5829,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { @@ -5838,8 +5839,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "path-exists": { @@ -5848,7 +5849,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } } } @@ -5859,13 +5860,13 @@ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -5875,10 +5876,10 @@ "dev": true, "optional": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "realpath-native": { @@ -5887,7 +5888,7 @@ "integrity": "sha512-XJtlRJ9jf0E1H1SLeJyQ9PGzQD7S65h1pRXEcAeK48doKOnKxcgPeNohJvD5u/2sI9J1oke6E8bZHS/fmW1UiQ==", "dev": true, "requires": { - "util.promisify": "1.0.0" + "util.promisify": "^1.0.0" } }, "regenerate": { @@ -5908,9 +5909,9 @@ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -5919,7 +5920,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regexpu-core": { @@ -5928,9 +5929,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -5945,7 +5946,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -5980,7 +5981,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -5989,28 +5990,28 @@ "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.1", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "hawk": "~6.0.2", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "stringstream": "~0.0.5", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" } }, "request-promise": { @@ -6019,10 +6020,10 @@ "integrity": "sha1-0epG1lSm7k+O5qT+oQGMIpEZBLQ=", "dev": true, "requires": { - "bluebird": "3.5.1", + "bluebird": "^3.5.0", "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.3" + "stealthy-require": "^1.1.0", + "tough-cookie": ">=2.3.3" } }, "request-promise-core": { @@ -6031,7 +6032,7 @@ "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", "dev": true, "requires": { - "lodash": "4.17.4" + "lodash": "^4.13.1" } }, "request-promise-native": { @@ -6041,8 +6042,8 @@ "dev": true, "requires": { "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.3" + "stealthy-require": "^1.1.0", + "tough-cookie": ">=2.3.3" } }, "require-directory": { @@ -6069,7 +6070,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, "resolve-from": { @@ -6085,7 +6086,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -6094,7 +6095,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -6108,14 +6109,14 @@ "integrity": "sha512-OSJxhHO0CgPUw3lUm3GhfREAfza45smvEI9ozuFrxKG10GHVo0ryW9FK5VYlLvxj0SV7HVKHW0voYJIRu27GWg==", "dev": true, "requires": { - "anymatch": "1.3.2", - "exec-sh": "0.2.1", - "fb-watchman": "2.0.0", - "fsevents": "1.1.3", - "minimatch": "3.0.4", - "minimist": "1.2.0", - "walker": "1.0.7", - "watch": "0.18.0" + "anymatch": "^1.3.0", + "exec-sh": "^0.2.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.1.1", + "minimatch": "^3.0.2", + "minimist": "^1.1.1", + "walker": "~1.0.5", + "watch": "~0.18.0" }, "dependencies": { "minimist": { @@ -6144,18 +6145,18 @@ "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.1", + "destroy": "~1.0.4", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.2", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.3.1" }, "dependencies": { "statuses": { @@ -6170,9 +6171,9 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", "requires": { - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.1" } }, @@ -6200,7 +6201,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -6233,7 +6234,7 @@ "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", "dev": true, "requires": { - "hoek": "4.2.0" + "hoek": "4.x.x" } }, "source-map": { @@ -6248,7 +6249,7 @@ "integrity": "sha512-9zHceZbQwERaMK1MiFguvx1dL9GQPLXInr2D/wUxAsuV6ZKc9F0DHYWeloMcalkYRbtanwqUakoDjvj55cL/4A==", "dev": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.0" }, "dependencies": { "source-map": { @@ -6265,7 +6266,7 @@ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -6292,14 +6293,14 @@ "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "dev": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" } }, "stack-utils": { @@ -6325,8 +6326,8 @@ "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", "dev": true, "requires": { - "astral-regex": "1.0.0", - "strip-ansi": "4.0.0" + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" } }, "string-width": { @@ -6335,8 +6336,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "string_decoder": { @@ -6345,7 +6346,7 @@ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "stringstream": { @@ -6360,7 +6361,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" }, "dependencies": { "ansi-regex": { @@ -6377,7 +6378,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -6392,7 +6393,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } }, "symbol-tree": { @@ -6407,11 +6408,11 @@ "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "2.3.11", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" } }, "throat": { @@ -6438,7 +6439,7 @@ "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "dev": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "tr46": { @@ -6447,7 +6448,7 @@ "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", "dev": true, "requires": { - "punycode": "2.1.0" + "punycode": "^2.1.0" }, "dependencies": { "punycode": { @@ -6476,7 +6477,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -6492,7 +6493,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-is": { @@ -6501,7 +6502,7 @@ "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.17" + "mime-types": "~2.1.15" } }, "uglify-js": { @@ -6511,9 +6512,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { @@ -6523,9 +6524,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -6561,8 +6562,8 @@ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", "dev": true, "requires": { - "define-properties": "1.1.2", - "object.getownpropertydescriptors": "2.0.3" + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" } }, "utils-merge": { @@ -6582,7 +6583,7 @@ "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "dev": true, "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -6591,8 +6592,8 @@ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "vary": { @@ -6606,9 +6607,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "walker": { @@ -6617,7 +6618,7 @@ "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", "dev": true, "requires": { - "makeerror": "1.0.11" + "makeerror": "1.0.x" } }, "watch": { @@ -6626,8 +6627,8 @@ "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", "dev": true, "requires": { - "exec-sh": "0.2.1", - "minimist": "1.2.0" + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" }, "dependencies": { "minimist": { @@ -6650,8 +6651,8 @@ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "dev": true, "requires": { - "http-parser-js": "0.4.11", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -6681,9 +6682,9 @@ "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", "dev": true, "requires": { - "lodash.sortby": "4.7.0", - "tr46": "1.0.1", - "webidl-conversions": "4.0.2" + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.0", + "webidl-conversions": "^4.0.1" } }, "which": { @@ -6692,7 +6693,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -6720,8 +6721,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -6730,7 +6731,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -6739,9 +6740,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -6750,7 +6751,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -6767,9 +6768,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "xml-name-validator": { @@ -6802,18 +6803,18 @@ "integrity": "sha512-7uRL1HZdCbc1QTP+X8mehOPuCYKC/XTaqAPj7gABLfTt6pgLyVRn3QVte4qhtilZouWCvqd1kipgMKl5tKsFiw==", "dev": true, "requires": { - "cliui": "4.0.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "8.1.0" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^8.1.0" }, "dependencies": { "cliui": { @@ -6822,9 +6823,9 @@ "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } } } @@ -6835,7 +6836,7 @@ "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { diff --git a/routes/webhooks.js b/routes/webhooks.js index d019cf9..22ffa36 100644 --- a/routes/webhooks.js +++ b/routes/webhooks.js @@ -73,4 +73,4 @@ router.get('/', (req, res) => { } }); -module.exports = router; +module.exports = router; \ No newline at end of file diff --git a/scripts/get_next_game.py b/scripts/get_next_game.py index 71d27c9..0bd0da4 100644 --- a/scripts/get_next_game.py +++ b/scripts/get_next_game.py @@ -5,6 +5,7 @@ from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException from bs4 import BeautifulSoup +from unidecode import unidecode import sys import os @@ -31,18 +32,25 @@ def main(): browser.implicitly_wait(4) - try: - WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='global-search']/div/div/div[1]/ul/li[1]/a/div[2]/span[1]"))) - except TimeoutException: + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='global-search']/div/div/div[1]/ul"))) + + search_results = browser.find_element_by_xpath("//*[@id='global-search']/div/div/div[1]/ul").find_elements_by_class_name("search_results__details") + found = False + + for result in search_results: + if result.find_element_by_class_name('search_results__cat').text == 'Soccer': + result.find_element_by_class_name('search_results__cat').click() + found = True + break + + if not found: print("Cannot find team") browser.quit() sys.exit(1) - else: - browser.find_element_by_xpath("//*[@id='global-search']/div/div/div[1]/ul/li[1]/a/div[2]/span[1]").click() WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='global-nav-secondary']/div/ul[2]/li[4]/a/span[1]"))) - url = browser.current_url - + newHtml = browser.page_source + newSoup = BeautifulSoup(newHtml, "html.parser") browser.find_element_by_xpath("//*[@id='global-nav-secondary']/div/ul[2]/li[4]/a/span[1]").click() browser.switch_to_window(browser.window_handles[1]) browser.implicitly_wait(2) @@ -60,12 +68,13 @@ def main(): home_team = next_game.find('div', {'class': 'team home '}).find('span', {'class': 'long-name'}).text away_team = next_game.find('div', {'class': 'team away '}).find('span', {'class': 'long-name'}).text date = next_game.find('div', {'class': 'game-status'}).find('span', {'data-behavior': 'date_time'})['data-date'] + teamImageUrl = newSoup.find('head').findAll('meta')[11]['content'] - print(home_team) - print(away_team) - print(date) - print(game_details) - print(url) + print(unidecode(home_team)) + print(unidecode(away_team)) + print(unidecode(date)) + print(unidecode(game_details)) + print(teamImageUrl) browser.quit() sys.exit(0) diff --git a/scripts/get_player_info.py b/scripts/get_player_info.py index ee4a323..421f4ba 100644 --- a/scripts/get_player_info.py +++ b/scripts/get_player_info.py @@ -43,7 +43,9 @@ def main(): WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.CLASS_NAME, 'player-spec'))) html = browser.page_source + url = browser.current_url soup = BeautifulSoup(html, "html.parser") + print(url) spec = soup.find('div', {'class': 'player-spec'}) cols = spec.find_all('dl') diff --git a/scripts/get_team_coach.py b/scripts/get_team_coach.py new file mode 100644 index 0000000..679b5d0 --- /dev/null +++ b/scripts/get_team_coach.py @@ -0,0 +1,59 @@ +from selenium import webdriver +from selenium.webdriver.chrome.options import Options +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC +from selenium.common.exceptions import TimeoutException +from bs4 import BeautifulSoup + +import sys +import os +import unicodedata + +def main(): + window_size = "1200,800" + timeout = 20 + team_name = sys.argv[1] + + chrome_options = Options() + chrome_options.binary_location = os.environ.get('GOOGLE_CHROME_SHIM', None) + chrome_options.add_argument("--window-size=%s" % window_size) + chrome_options.add_argument("--headless") + chrome_options.add_argument("no-sandbox") + + browser = webdriver.Chrome(chrome_options=chrome_options) + browser.get("http://www.espn.com/espn/story/_/id/21087319/soccer-teams") + + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//a[@id='global-search-trigger']"))) + browser.find_element_by_xpath("//a[@id='global-search-trigger']").click() + + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.CLASS_NAME, "search-box"))) + browser.find_element_by_class_name('search-box').send_keys(team_name) + + browser.implicitly_wait(3) + + try: + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='global-search']/div/div/div[1]/ul/li/a/div[2]/span[1]"))) + except TimeoutException: + print("Cannot find team") + browser.quit() + sys.exit(1) + else: + browser.find_element_by_xpath("//*[@id='global-search']/div/div/div[1]/ul/li/a/div[2]/span[1]").click() + + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='global-nav-secondary']/div/ul[2]/li[4]/a/span[1]"))) + browser.find_element_by_xpath("//*[@id='global-nav-secondary']/div/ul[2]/li[4]/a/span[1]").click() + + browser.switch_to_window(browser.window_handles[1]) + browser.implicitly_wait(1) + + html = browser.page_source + url = browser.current_url + soup = BeautifulSoup(html, "html.parser") + + + browser.quit() + sys.exit(0) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/scripts/get_team_news.py b/scripts/get_team_news.py new file mode 100644 index 0000000..59a7702 --- /dev/null +++ b/scripts/get_team_news.py @@ -0,0 +1,69 @@ +from selenium import webdriver +from selenium.webdriver.chrome.options import Options +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC +from selenium.common.exceptions import TimeoutException +from bs4 import BeautifulSoup +from unidecode import unidecode + +import sys +import os +import time + +def main(): + window_size = "1200,800" + timeout = 25 + team_name = sys.argv[1] + + chrome_options = Options() + chrome_options.binary_location = os.environ.get('GOOGLE_CHROME_SHIM', None) + chrome_options.add_argument("--window-size=%s" % window_size) + chrome_options.add_argument("--headless") + chrome_options.add_argument("no-sandbox") + + browser = webdriver.Chrome(chrome_options=chrome_options) + browser.get("http://www.espn.com/espn/story/_/id/21087319/soccer-teams") + + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//a[@id='global-search-trigger']"))) + browser.find_element_by_xpath("//a[@id='global-search-trigger']").click() + + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.CLASS_NAME, "search-box"))) + browser.find_element_by_class_name('search-box').send_keys(team_name) + + browser.implicitly_wait(4) + + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='global-search']/div/div/div[1]/ul"))) + + search_results = browser.find_element_by_xpath("//*[@id='global-search']/div/div/div[1]/ul").find_elements_by_class_name("search_results__details") + found = False + + for result in search_results: + if result.find_element_by_class_name('search_results__cat').text == 'Soccer': + result.find_element_by_class_name('search_results__cat').click() + found = True + break + + if (found == False): + print("Cannot find team") + browser.quit() + sys.exit(1) + + time.sleep(2) + newHtml = browser.page_source + url = browser.current_url + newSoup = BeautifulSoup(newHtml, "html.parser") + + mainPart = newSoup.findAll('article', {'class': 'news-feed-item news-feed-story-package'}) + for i in range(0, 4): + print(mainPart[i].find('div', {'class' : 'item-info-wrap'}).find('h1').find('a', {'class' : ' realStory'}).text) + print(mainPart[i].find('p').text) + print(mainPart[i].find('img')['data-default-src']) + newsUrl = mainPart[i].find('a', {'class' : 'story-link'})['data-popup-href'] + print(newsUrl[:4] + 's' + newsUrl[4:]) + + browser.quit() + sys.exit(0) + +if __name__ == '__main__': + main() diff --git a/scripts/get_team_schedule.py b/scripts/get_team_schedule.py new file mode 100644 index 0000000..6ce360d --- /dev/null +++ b/scripts/get_team_schedule.py @@ -0,0 +1,136 @@ +from selenium import webdriver +from selenium.webdriver.chrome.options import Options +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC +from selenium.common.exceptions import TimeoutException +from bs4 import BeautifulSoup +from unidecode import unidecode + +import sys +import os + +def main(): + window_size = "1200,800" + timeout = 20 + team_name = sys.argv[1] + + chrome_options = Options() + chrome_options.binary_location = os.environ.get('GOOGLE_CHROME_SHIM', None) + chrome_options.add_argument("--window-size=%s" % window_size) + chrome_options.add_argument("--headless") + chrome_options.add_argument("no-sandbox") + + browser = webdriver.Chrome(chrome_options=chrome_options) + browser.get("http://www.espn.com/espn/story/_/id/21087319/soccer-teams") + + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//a[@id='global-search-trigger']"))) + browser.find_element_by_xpath("//a[@id='global-search-trigger']").click() + + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.CLASS_NAME, "search-box"))) + browser.find_element_by_class_name('search-box').send_keys(team_name) + + browser.implicitly_wait(3) + + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='global-search']/div/div/div[1]/ul"))) + + search_results = browser.find_element_by_xpath("//*[@id='global-search']/div/div/div[1]/ul").find_elements(By.XPATH, ".//*") + found = False + + for result in search_results: + if result.find_element_by_class_name('search_results__cat').text == 'Soccer': + result.find_element_by_class_name('search_results__cat').click() + found = True + break + + if not found: + print("Cannot find team") + browser.quit() + sys.exit(1) + + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='global-nav-secondary']/div/ul[2]/li[4]/a/span[1]"))) + browser.find_element_by_xpath("//*[@id='global-nav-secondary']/div/ul[2]/li[4]/a/span[1]").click() + + browser.switch_to_window(browser.window_handles[1]) + browser.implicitly_wait(1) + + html = browser.page_source + url = browser.current_url + soup = BeautifulSoup(html, "html.parser") + + nextFewGames = [] + passFewGames = [] + + homeTeams = [] + awayTeams = [] + scoresHome = [] + scoresAway = [] + league = [] + date = [] + nextGames = soup.find_all('a', "score-list upcoming") + nextGamesInfo = soup.find_all('a', "score-list upcoming has-info") + passGames = soup.find_all('a', ["score-list complete", "score-list complete has-info"]) + + for i in range(1, len(nextGamesInfo)): + nextFewGames.append(nextGamesInfo[i].find('div', {'class' : 'score-column score-home-team score-team'}).find('div', {'class' : 'team-name'}).text + + ' vs ' + nextGamesInfo[i].find('div', {'class' : 'score-column score-away-team score-team'}).find('div', {'class' : 'team-name'}).text + + ' at ' + nextGamesInfo[i].find('div', {'class' : 'date'}).text + ' ' + nextGamesInfo[i].find('div', {'class' : 'time'}).text + ' in ' + + nextGamesInfo[i].find('div', {'class' : 'league'}).text) + + for i in range(0, len(nextGames)): + nextFewGames.append(nextGames[i].find('div', {'class' : 'score-column score-home-team score-team'}).find('div', {'class' : 'team-name'}).text + + ' vs ' + nextGames[i].find('div', {'class' : 'score-column score-away-team score-team'}).find('div', {'class' : 'team-name'}).text + + ' at ' + nextGames[i].find('div', {'class' : 'date'}).text + ' ' + nextGames[i].find('div', {'class' : 'time'}).text + ' in ' + + nextGames[i].find('div', {'class' : 'league'}).text) + + for i in range(len(passGames) - 5, len(passGames)): + if ((passGames[i].find('div', {'class' : 'score-column score-away-team score-team'}).find('div', {'class' : 'team-name winner'}) == None) or + (passGames[i].find('div', {'class' : 'score-column score-home-team score-team'}).find('div', {'class' : 'team-name winner'}) == None)): + team = passGames[i].find('div', {'class' : 'score-column score-away-team score-team'}).find('div', {'class' : 'team-name'}).text + teams = passGames[i].find('div', {'class' : 'score-column score-home-team score-team'}).find('div', {'class' : 'team-name'}).text + awayTeams.append(unidecode(team)) + homeTeams.append(unidecode(teams)) + else: + team = passGames[i].find('div', {'class' : 'score-column score-away-team score-team'}).find('div', {'class' : 'team-name winner'}).text + teams = passGames[i].find('div', {'class' : 'score-column score-home-team score-team'}).find('div', {'class' : 'team-name winner'}).text + awayTeams.append(unidecode(team)) + homeTeams.append(unidecode(teams)) + + if((passGames[i].find('div', {'class' : 'score-column score-result'}).find('span', {'class' : 'home-score score-value winner'}) == None) or + (passGames[i].find('div', {'class' : 'score-column score-result'}).find('span', {'class' : 'away-score score-value'}) == None)): + if((passGames[i].find('div', {'class' : 'score-column score-result'}).find('span', {'class' : 'away-score score-value'}) != None)): + scoresAway.append(passGames[i].find('div', {'class' : 'score-column score-result'}).find('span', {'class' : 'away-score score-value'}).text) + else: + scoresAway.append(passGames[i].find('div', {'class' : 'score-column score-result'}).find('span', {'class' : 'away-score score-value winner'}).text) + scoresHome.append(passGames[i].find('div', {'class' : 'score-column score-result'}).find('span', {'class' : 'home-score score-value'}).text) + else: + if((passGames[i].find('div', {'class' : 'score-column score-result'}).find('span', {'class' : 'home-score score-value'}) != None)): + scoresAway.append(passGames[i].find('div', {'class' : 'score-column score-result'}).find('span', {'class' : 'home-score score-value'}).text) + else: + scoresHome.append(passGames[i].find('div', {'class' : 'score-column score-result'}).find('span', {'class' : 'home-score score-value winner'}).text) + scoresAway.append(passGames[i].find('div', {'class' : 'score-column score-result'}).find('span', {'class' : 'away-score score-value'}).text) + + date.append(passGames[i].find('div', {'class' : 'date'}).text) + league.append(passGames[i].find('div', {'class' : 'league'}).text) + + for i in range(len(homeTeams)): + passFewGames.append(homeTeams[i] + ' [' + scoresHome[i] + '] - ' + '[' + scoresAway[i] + '] ' + awayTeams[i] + ' on ' + date[i] + ' in ' + + league[i]) + + print(len(nextFewGames)) + + # For the pass 5 games + for i, j in enumerate(passFewGames, 1): + print(str(i) + '. ' + j) + + # For the next few games + j = 1 + for i in range(0, len(nextFewGames)): + print(str(j) + '. ' + nextFewGames[i]) + j += 1 + + browser.quit() + sys.exit(0) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/scripts/get_team_squad.py b/scripts/get_team_squad.py new file mode 100644 index 0000000..03fdbaa --- /dev/null +++ b/scripts/get_team_squad.py @@ -0,0 +1,90 @@ +from selenium import webdriver +from selenium.webdriver.chrome.options import Options +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC +from selenium.common.exceptions import TimeoutException +from bs4 import BeautifulSoup + +import sys +import os +import unicodedata + +def main(): + window_size = "1200,800" + timeout = 20 + team_name = sys.argv[1] + + chrome_options = Options() + chrome_options.binary_location = os.environ.get('GOOGLE_CHROME_SHIM', None) + chrome_options.add_argument("--window-size=%s" % window_size) + chrome_options.add_argument("--headless") + chrome_options.add_argument("no-sandbox") + + browser = webdriver.Chrome(chrome_options=chrome_options) + browser.get('http://www.skysports.com/football/teams') + + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//input[@class='site-search__input site-search--inpage__input']"))) + browser.find_element_by_xpath("//input[@class='site-search__input site-search--inpage__input']").click() + + browser.find_element_by_xpath("//input[@class='site-search__input site-search--inpage__input']").send_keys(team_name) + + browser.implicitly_wait(3) + + try: + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.CLASS_NAME, "autocomplete__results-item"))) + except TimeoutException: + print("Cannot find team") + browser.quit() + sys.exit(1) + else: + browser.find_element_by_class_name('autocomplete__results-item').click() + + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='page-nav__body']/ul/li"))) + currentURL = browser.page_source + newSoup = BeautifulSoup(currentURL, "html.parser") + + getBar = newSoup.find('div', {'class': 'page-nav__frame'}).find('div', {'class': 'page-nav__body'}).find('ul', {'class' : 'page-nav__item-group'}).findAll('li') + + for i in range(5,len(getBar)): + if(getBar[i].find('a').text == 'Squad'): + link = getBar[i].find('a')['href'] + + browser.get('http://www.skysports.com' + link) + + squadHtml = browser.page_source + soup = BeautifulSoup(squadHtml, "html.parser") + url = browser.current_url + + browser.implicitly_wait(2) + + formation = soup.find('div', {'class': 'box -bp30-hdn s11-graphic-container'}).find('div', {'class': 'span10 strap1 -center -ondark -interact text-h5 arrangement'}).text + players = soup.find('div', {'class': 'box -bp30-hdn s11-graphic-container'}).findAll('span', {'class': 'col span3/4'}) + playersNumber = soup.find('div', {'class': 'box -bp30-hdn s11-graphic-container'}).findAll('span', {'class': 'col strap2 -interact span1/4'}) + + playersList = [] + playersNumberList = [] + whoPlay = [] + + for i in players: + playersList.append(i.text) + + for i in playersNumber: + playersNumberList.append(i.text) + + j = 0 + while (j < 11): + whoPlay.append(str(unicodedata.normalize('NFD', playersList[j]).encode('ascii', 'ignore').decode("utf-8")) + ' - ' + playersNumberList[j]) + j += 1 + + print(url) + print(formation) + + for i in whoPlay: + print(i) + + browser.quit() + sys.exit(0) + +if __name__ == '__main__': + main() diff --git a/scripts/get_team_video.py b/scripts/get_team_video.py new file mode 100644 index 0000000..e935e01 --- /dev/null +++ b/scripts/get_team_video.py @@ -0,0 +1,66 @@ +from selenium import webdriver +from selenium.webdriver.chrome.options import Options +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC +from selenium.common.exceptions import TimeoutException +from bs4 import BeautifulSoup + +import sys +import os + +def main(): + window_size = "1200,800" + timeout = 20 + # team_name = sys.argv[1] + team_name = 'Arsenal' + + chrome_options = Options() + chrome_options.binary_location = os.environ.get('GOOGLE_CHROME_SHIM', None) + chrome_options.add_argument("--window-size=%s" % window_size) + # chrome_options.add_argument("--headless") + chrome_options.add_argument("no-sandbox") + + browser = webdriver.Chrome(chrome_options=chrome_options) + browser.get("http://www.soccerhighlightstoday.com/") + + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.CLASS_NAME, "td-search-btns-wrap"))) + browser.find_element_by_class_name("td-search-btns-wrap").find_element_by_xpath("//a[@id='td-header-search-button']").click() + + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//input[@id='td-header-search']"))) + browser.find_element_by_xpath("//input[@id='td-header-search']").send_keys(team_name) + + browser.implicitly_wait(5) + + try: + WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='td-aj-search']/div/div[1]/div[2]/h3/a"))) + except TimeoutException: + print("Cannot find team") + browser.quit() + sys.exit(1) + else: + browser.find_element_by_xpath("//*[@id='td-aj-search']/div/div[1]/div[2]/h3/a").click() + + browser.implicitly_wait(3) + html = browser.page_source + url = browser.current_url + soup = BeautifulSoup(html, "html.parser") + + title = soup.find('div', {'class' : 'td-post-header'}).find('header', {'class' : 'td-post-title'}).find('h1', {'class' : 'entry-title'}).text + # htmlBrow = soup.find('div', {'class' : 'td-theme-wrap'}).find('div', {'class' : 'td-main-content-wrap td-container-wrap'}).find('div', {'class' : 'td-container td-post-template-5 '}).find('div', {'class' : 'td-pb-row'}).find('div', {'class' : 'td-pb-span8 td-main-content'}).find('div', {'class' : 'td-ss-main-content'}).find('article').find('div', {'class' : 'td-post-content'}).find('div', {'class' : 'acp_wrapper'}).find('div', {'class' : 'acp_content'}).find('video', {'class' : 'brid-tech brid-animate'}) + + # if (htmlBrow.find('div', {'class' : 'brid brid-default-skin brid-pause'}) == None): + videoURL = soup.find('div', {'class' : 'td-pb-span8 td-main-content'}).find('div', {'class' : 'td-ss-main-content'}).find('article').find('div', {'class' : 'td-post-content'}).find('div', {'class' : 'acp_wrapper'}).find('div', {'class' : 'acp_content'}).find('div').find('video') + # videoURL = soup.find('body').findAll('div')[6].findAll('div')[2].find('div').findAll('div')[2].find('div').find('div').find('article').findAll('div')[2].find('div').findAll('div')[2].find('div').find('video') + # else: + # videoURL = soup.find('div', {'class' : 'td-pb-span8 td-main-content'}).find('div', {'class' : 'td-ss-main-content'}).find('article').find('div', {'class' : 'td-post-content'}).find('div', {'class' : 'acp_wrapper'}).find('div', {'class' : 'acp_content'}).find('div', {'class' : 'brid brid-default-skin brid-pause'}).find('video', {'class' : 'brid-tech brid-animate'})['src'] + + print(url) + print(title) + print(videoURL) + + browser.quit() + sys.exit(0) + +if __name__ == '__main__': + main() \ No newline at end of file