From e8007c7585150de9d38583ce84f4a3d832b18db7 Mon Sep 17 00:00:00 2001 From: Trevor Gerhardt Date: Mon, 24 Oct 2016 14:50:34 +0700 Subject: [PATCH] feat(card): Add wait time to the cards --- configurations/default/store.yml | 4 +- package.json | 3 +- src/components/route-card.js | 28 +- src/containers/indianapolis/index.js | 2 + src/containers/root/root.dev.js | 6 + src/mount.js | 6 + src/reducers/map.js | 4 + src/utils/initialize-browsochrones.js | 113 ++++---- yarn.lock | 365 ++++++++++++++++++++++++-- 9 files changed, 449 insertions(+), 82 deletions(-) diff --git a/configurations/default/store.yml b/configurations/default/store.yml index 2a3f09b..8ef757e 100644 --- a/configurations/default/store.yml +++ b/configurations/default/store.yml @@ -5,8 +5,8 @@ browsochrones: - Jobs_total - Workers_total origins: - - https://dz69bcpxxuhn6.cloudfront.net/indyconnect-marion-v2 - - https://dz69bcpxxuhn6.cloudfront.net/indy-baseline-v2 + - https://dz69bcpxxuhn6.cloudfront.net/indyconnect-marion-v5/ + - https://dz69bcpxxuhn6.cloudfront.net/indy-baseline-v5/ geocoder: focusLatlng: lat: 39.7691 diff --git a/package.json b/package.json index 5792278..6aa6d53 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "semantic-release": "^4.3.5" }, "dependencies": { - "browsochrones": "^0.4.0", + "browsochrones": "^0.7.1", "color": "^0.11.1", "debug": "^2.2.0", "declarative-fetch": "^0.1.13", @@ -49,6 +49,7 @@ "normalize.css": "^5.0.0", "qs": "^6.1.0", "react": "^15.3.2", + "react-addons-perf": "^15.3.2", "react-dom": "^15.3.2", "react-leaflet": "^0.12.2", "react-pure-render": "^1.0.2", diff --git a/src/components/route-card.js b/src/components/route-card.js index 52382c8..747ec7e 100644 --- a/src/components/route-card.js +++ b/src/components/route-card.js @@ -13,9 +13,11 @@ const RouteCard = ({ children, oldAccessibility, oldTravelTime, + oldWaitTime, onClick, transitiveData, - travelTime + travelTime, + waitTime }) => { const className = 'Card' + (alternate ? ' Card-alternate' : '') + (active ? ' Card-active' : '') const accessibilityKeys = Object.keys(accessibility) @@ -37,7 +39,14 @@ const RouteCard = ({
{access} - {travelTime && transitiveData && renderJourneys({ oldTravelTime, travelTime, transitiveData })} + {travelTime && transitiveData && + renderJourneys({ + oldTravelTime, + oldWaitTime, + travelTime, + transitiveData, + waitTime + })}
) @@ -50,11 +59,11 @@ function TripDiff ({ const difference = oldTravelTime - travelTime if (oldTravelTime === 255) return {messages.NewTrip} - else if (difference > 0) return {difference} {messages.Units.Mins} {messages.Faster} - else if (difference < 0) return {difference * -1} {messages.Units.Mins} {messages.Slower} + else if (difference > 0) return {difference} {messages.Units.Mins} {messages.Faster} + else if (difference < 0) return {difference * -1} {messages.Units.Mins} {messages.Slower} } -function renderJourneys ({ oldTravelTime, transitiveData, travelTime }) { +function renderJourneys ({ oldTravelTime, transitiveData, travelTime, waitTime }) { const journeys = extractRelevantTransitiveInfo(transitiveData) if (travelTime === 255 || journeys.length === 0) { @@ -95,13 +104,14 @@ function renderJourneys ({ oldTravelTime, transitiveData, travelTime }) {
{messages.Systems.BestTripTitle}
{bestTripSegments} - {travelTime} {messages.Units.Mins} + {travelTime} {messages.Units.Mins} / {waitTime} {messages.Units.Mins} avg wait {oldTravelTime && } +
{alternateTrips.length > 0 &&
@@ -128,7 +138,7 @@ function extractRelevantTransitiveInfo ({ const pid = s.pattern_id || s.patterns[0].pattern_id const seg = {} const route = findRouteForPattern({id: pid, patterns, routes}) - const color = Color(`#${route.route_color}`) + const color = route.route_color ? Color(`#${route.route_color}`) : Color(s.color) seg.name = toCapitalCase(route.route_short_name) if (s.patterns && s.patterns.length > 0) { @@ -180,8 +190,8 @@ function showAccess (keys, base) { function AccessDiffPercentage ({ diff }) { - if (diff > 0) return {diff.toLocaleString()}% - else if (diff < 0) return {(diff * -1).toLocaleString()}% + if (diff > 0) return {diff.toLocaleString()}% + else if (diff < 0) return {(diff * -1).toLocaleString()}% } function showDiff (keys, base, comparison) { diff --git a/src/containers/indianapolis/index.js b/src/containers/indianapolis/index.js index a20111b..56117f6 100644 --- a/src/containers/indianapolis/index.js +++ b/src/containers/indianapolis/index.js @@ -182,6 +182,7 @@ class Indianapolis extends Component { onClick={setBaseActive} transitiveData={map.baseTransitive} travelTime={map.baseTravelTime} + waitTime={map.baseWaitTime} > {messages.Systems.BaseTitle} @@ -194,6 +195,7 @@ class Indianapolis extends Component { onClick={setComparisonActive} transitiveData={map.comparisonTransitive} travelTime={map.comparisonTravelTime} + waitTime={map.comparisonWaitTime} > {messages.Systems.ComparisonTitle} diff --git a/src/containers/root/root.dev.js b/src/containers/root/root.dev.js index c867f1c..fc6476d 100644 --- a/src/containers/root/root.dev.js +++ b/src/containers/root/root.dev.js @@ -22,4 +22,10 @@ export default class Root extends Component { ) } + + componentDidMount () { + window.Perf.stop() + window.Perf.printExclusive() + console.timeEnd('startup') + } } diff --git a/src/mount.js b/src/mount.js index a3f4bb5..2fb310e 100644 --- a/src/mount.js +++ b/src/mount.js @@ -1,3 +1,9 @@ +if (process.env.NODE_ENV === 'development') { + const Perf = window.Perf = require('react-addons-perf') + Perf.start() + console.time('startup') +} + import merge from 'lodash.merge' import React from 'react' import {render} from 'react-dom' diff --git a/src/reducers/map.js b/src/reducers/map.js index da56a20..f91bc5c 100644 --- a/src/reducers/map.js +++ b/src/reducers/map.js @@ -39,10 +39,14 @@ export default handleActions({ return { ...state, + baseInVehicleTravelTime: base.inVehicleTravelTime, baseTransitive: base.transitive, baseTravelTime: base.travelTime, + baseWaitTime: base.waitTime, + comparisonInVehicleTravelTime: comparison.inVehicleTravelTime, comparisonTransitive: comparison.transitive, comparisonTravelTime: comparison.travelTime, + comparisonWaitTime: comparison.waitTime, transitive } }, diff --git a/src/utils/initialize-browsochrones.js b/src/utils/initialize-browsochrones.js index d72c84f..f09523c 100644 --- a/src/utils/initialize-browsochrones.js +++ b/src/utils/initialize-browsochrones.js @@ -9,79 +9,84 @@ import messages from './messages' import {addActionLogItem, setBrowsochronesBase, setBrowsochronesComparison, setDestination, updateOrigin} from '../actions' export default async function initialize (store) { - let state = store.getState() + const state = store.getState() const {grids, gridsUrl, origins} = state.browsochrones - try { - const fetchGrids = grids.map(async (name) => { - const res = await fetch(`${gridsUrl}/${name}.grid`) - const grid = await res.arrayBuffer() - grid.name = name - return grid - }) - const fetchedGrids = await Promise.all(fetchGrids) + const fetchGrids = grids.map(async (name) => { + const res = await fetch(`${gridsUrl}/${name}.grid`) + const grid = await res.arrayBuffer() + grid.name = name + return grid + }) + const fetchedGrids = await Promise.all(fetchGrids) - const bs1 = await load(origins[0], fetchedGrids) - store.dispatch(setBrowsochronesBase(bs1)) + const bs1 = await load(origins[0], fetchedGrids) + store.dispatch(setBrowsochronesBase(bs1)) - const bs2 = origins[1] - ? await load(origins[1], fetchedGrids) - : false - if (bs2) { - store.dispatch(setBrowsochronesComparison(bs2)) - } + const bs2 = origins[1] + ? await load(origins[1], fetchedGrids) + : false + if (bs2) { + store.dispatch(setBrowsochronesComparison(bs2)) + } - const qs = parseQueryString(window.location.search.split('?')[1]) - if (qs.start) { - try { - const {geocoder} = state - const [startResults, endResults] = await Promise.all(['start', 'end'] - .filter((d) => !!qs[d]) - .map((d) => geocode({ - boundary: geocoder.boundary, - focusLatlng: geocoder.focusLatlng, - text: qs[d] - }))) - if (startResults.features.length > 0) { - const destination = endResults && endResults.features.length > 0 - ? { latlng: lonlng(endResults.features[0].geometry.coordinates), label: endResults.features[0].place_name } - : {} - store.dispatch(updateOrigin({ - browsochrones: { active: 'base', base: bs1, comparison: bs2 }, - label: startResults.features[0].place_name, - destinationLatlng: destination.latlng, - latlng: lonlng(startResults.features[0].geometry.coordinates), - zoom: state.map.zoom - })) - store.dispatch(setDestination(destination)) - } - } catch (e) { - console.error(e) - } - } + const actions = await loadFromQueryString({bs1, bs2, state}) + if (actions && actions.length > 0) store.dispatch(actions) - store.dispatch(addActionLogItem(messages.Strings.ApplicationReady)) - } catch (err) { - store.dispatch(addActionLogItem(err.message)) - } + store.dispatch(addActionLogItem(messages.Strings.ApplicationReady)) } async function load (url, grids) { const bs = new Browsochrones() bs.originsUrl = url bs.grids = grids.map((g) => g.name) - const fetches = [ fetch(`${url}/query.json`).then((res) => res.json()), - fetch(`${url}/stop_trees.dat`).then((res) => res.arrayBuffer()), - fetch(`${url}/transitive.json`).then((res) => res.json()) + fetch(`${url}/stop_trees.dat`).then((res) => res.arrayBuffer()) ] - const [query, stopTrees, transitive] = await Promise.all(fetches) + const [query, stopTrees] = await Promise.all(fetches) await bs.setQuery(query) await bs.setStopTrees(stopTrees) - await bs.setTransitiveNetwork(transitive) + await bs.setTransitiveNetwork(query.transitiveData) const putGrids = grids.map((grid) => bs.putGrid(grid.name, grid)) await Promise.all(putGrids) return bs } + +async function loadFromQueryString ({ + bs1, + bs2, + state +}) { + const qs = parseQueryString(window.location.search.split('?')[1]) + if (qs.start) { + const {geocoder} = state + try { + const [startResults, endResults] = await Promise.all(['start', 'end'] + .filter((d) => !!qs[d]) + .map((d) => geocode({ + boundary: geocoder.boundary, + focusLatlng: geocoder.focusLatlng, + text: qs[d] + }))) + if (startResults.features.length > 0) { + const destination = endResults && endResults.features.length > 0 + ? { latlng: lonlng(endResults.features[0].geometry.coordinates), label: endResults.features[0].place_name } + : {} + return [ + updateOrigin({ + browsochrones: { active: 'base', base: bs1, comparison: bs2 }, + label: startResults.features[0].place_name, + destinationLatlng: destination.latlng, + latlng: lonlng(startResults.features[0].geometry.coordinates), + zoom: state.map.zoom + }), + setDestination(destination) + ] + } + } catch (e) { + console.error(e) + } + } +} diff --git a/yarn.lock b/yarn.lock index d5a205d..60dd6b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,5 +1,37 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 +"@semantic-release/commit-analyzer@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-2.0.0.tgz#924d1e2c30167c6a472bed9f66ee8f8e077489b2" + dependencies: + conventional-changelog "0.0.17" + +"@semantic-release/condition-travis@^4.1.2": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@semantic-release/condition-travis/-/condition-travis-4.1.4.tgz#d5de6aca17819420dfc32ed542295a97f977f963" + dependencies: + "@semantic-release/error" "^1.0.0" + semver "^5.0.3" + +"@semantic-release/error@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-1.0.0.tgz#bb8f8eeedd5c7f8c46f96b37ef39e1b8c376c1cc" + +"@semantic-release/last-release-npm@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@semantic-release/last-release-npm/-/last-release-npm-1.2.1.tgz#ff748142ecf15354b833a86ba18205f7fce594ee" + dependencies: + "@semantic-release/error" "^1.0.0" + npm-registry-client "^7.0.1" + npmlog "^1.2.1" + +"@semantic-release/release-notes-generator@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-2.0.0.tgz#7c5da65689466d536a53fdfa9f4d62a3bd13c16e" + dependencies: + conventional-changelog "0.0.17" + github-url-from-git "^1.4.0" + abab@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d" @@ -83,6 +115,10 @@ ansi-styles@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.0.1.tgz#b033f57f93e2d28adeb8bc11138fa13da0fd20a3" +ansi@^0.3.0, ansi@~0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21" + ansicolors@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef" @@ -102,6 +138,13 @@ aproba@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" +are-we-there-yet@~1.0.0: + version "1.0.6" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.0.6.tgz#a2d28c93102aa6cc96245a26cb954de06ec53f0c" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.0 || ^1.1.13" + are-we-there-yet@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" @@ -174,7 +217,7 @@ arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" -asap@~2.0.3: +asap@^2.0.0, asap@~2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" @@ -1256,9 +1299,9 @@ browserslist@^1.0.0, browserslist@^1.0.1, browserslist@~1.4.0: dependencies: caniuse-db "^1.0.30000539" -browsochrones@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/browsochrones/-/browsochrones-0.4.0.tgz#e460892c47d08fafaac1723ff17cd2028ec07e43" +browsochrones@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/browsochrones/-/browsochrones-0.7.1.tgz#736a9bb9ef8cec722aacb777d003b86a370914bd" dependencies: color "^0.11.3" debug "^2.2.0" @@ -1659,7 +1702,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.5.1, concat-stream@~1.5.0, concat-stream@~1.5.1: +concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.5.1, concat-stream@^1.5.2, concat-stream@~1.5.0, concat-stream@~1.5.1: version "1.5.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" dependencies: @@ -1667,6 +1710,13 @@ concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@ readable-stream "~2.0.0" typedarray "~0.0.5" +config-chain@~1.1.8: + version "1.1.11" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + connect-pushstate@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/connect-pushstate/-/connect-pushstate-1.0.0.tgz#cdc82173076f01b90bb084983a1f4493d4a28d04" @@ -1689,6 +1739,16 @@ content-type@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" +conventional-changelog@0.0.17: + version "0.0.17" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-0.0.17.tgz#5e0216600f4686190f0c82efbb0b3dd11b49ce34" + dependencies: + dateformat "^1.0.11" + event-stream "^3.3.0" + github-url-from-git "^1.4.0" + lodash "^3.6.0" + normalize-package-data "^1.0.3" + conventional-commit-types@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-2.1.0.tgz#45d860386c9a2e6537ee91d8a1b61bd0411b3d04" @@ -1709,7 +1769,7 @@ core-js@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" -"core-util-is@>=1.0.1 <1.1.0-0", core-util-is@~1.0.0: +core-util-is@^1.0.1, "core-util-is@>=1.0.1 <1.1.0-0", core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -1835,6 +1895,13 @@ date-now@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/date-now/-/date-now-1.0.1.tgz#bb7d086438debe4182a485fb3df3fbfb99d6153c" +dateformat@^1.0.11: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + debounce@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.0.0.tgz#0948af513d2e4ce407916f8506a423d3f9cf72d8" @@ -1965,6 +2032,13 @@ detective@^4.0.0, detective@^4.3.1: acorn "^1.0.3" defined "^1.0.0" +dezalgo@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + dependencies: + asap "^2.0.0" + wrappy "1" + diff@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/diff/-/diff-3.0.1.tgz#a52d90cc08956994be00877bff97110062582c35" @@ -1988,6 +2062,10 @@ domain-browser@~1.1.0: version "1.1.7" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" @@ -2268,6 +2346,18 @@ event-emitter@~0.3.4: d "~0.1.1" es5-ext "~0.10.7" +event-stream@^3.3.0: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + eventemitter3@1.x.x: version "1.2.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" @@ -2489,6 +2579,10 @@ for-own@^0.1.3: dependencies: for-in "^0.1.5" +foreachasync@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/foreachasync/-/foreachasync-3.0.0.tgz#5502987dc8714be3392097f32e0071c9dee07cf6" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -2505,6 +2599,10 @@ fresh@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" +from@~0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.3.tgz#ef63ac2062ac32acf7862e0d40b44b896f22f3bc" + from2-string@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/from2-string/-/from2-string-1.1.0.tgz#18282b27d08a267cb3030cd2b8b4b0f212af752a" @@ -2569,6 +2667,16 @@ garnish@^5.0.0: stdout-stream "^1.4.0" url-trim "^1.0.0" +gauge@~1.2.0: + version "1.2.7" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-1.2.7.tgz#e9cec5483d3d4ee0ef44b60a7d99e4935e136d93" + dependencies: + ansi "^0.3.0" + has-unicode "^2.0.0" + lodash.pad "^4.1.0" + lodash.padend "^4.1.0" + lodash.padstart "^4.1.0" + gauge@~2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.6.0.tgz#d35301ad18e96902b4751dcbbe40f4218b942a46" @@ -2617,6 +2725,34 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" +git-head@^1.2.1: + version "1.14.0" + resolved "https://registry.yarnpkg.com/git-head/-/git-head-1.14.0.tgz#be31c107fb8402098561250ef1e9d88842c391b8" + dependencies: + git-refs "^1.1.3" + +git-refs@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/git-refs/-/git-refs-1.1.3.tgz#83097cb3a92585c4a4926ec54e2182df9e20e89d" + dependencies: + path-object "^2.3.0" + slash "^1.0.0" + walk "^2.3.9" + +github-url-from-git@^1.3.0, github-url-from-git@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/github-url-from-git/-/github-url-from-git-1.4.0.tgz#285e6b520819001bde128674704379e4ff03e0de" + +github-url-from-username-repo@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/github-url-from-username-repo/-/github-url-from-username-repo-1.0.2.tgz#7dd79330d2abe69c10c2cef79714c97215791dfa" + +github@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/github/-/github-0.2.4.tgz#24fa7f0e13fa11b946af91134c51982a91ce538b" + dependencies: + mime "^1.2.11" + glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" @@ -2818,7 +2954,7 @@ home-or-tmp@^2.0.0, home-or-tmp@2.0.0: os-homedir "^1.0.0" os-tmpdir "^1.0.1" -hosted-git-info@^2.1.4: +hosted-git-info@^2.1.4, hosted-git-info@^2.1.5: version "2.1.5" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" @@ -2913,7 +3049,7 @@ inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" -ini@^1.3.4, ini@~1.3.0: +ini@^1.2.0, ini@^1.3.4, ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" @@ -3786,14 +3922,34 @@ lodash._bindcallback@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" +lodash._createassigner@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" + dependencies: + lodash._bindcallback "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.restparam "^3.0.0" + lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + lodash._reinterpolate@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" +lodash.assign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" + dependencies: + lodash._baseassign "^3.0.0" + lodash._createassigner "^3.0.0" + lodash.keys "^3.0.0" + lodash.assign@^4.1.0, lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" @@ -3902,6 +4058,18 @@ lodash.merge: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" +lodash.pad@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz#4330949a833a7c8da22cc20f6a26c4d59debba70" + +lodash.padend@^4.1.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e" + +lodash.padstart@^4.1.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" + lodash.pick@^4.2.1: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" @@ -3910,6 +4078,10 @@ lodash.pickby@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + lodash.slice@^4.0.2: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.slice/-/lodash.slice-4.2.0.tgz#85fb9d49223c64d9d5890f32322777c7416cac27" @@ -3931,6 +4103,10 @@ lodash.uniq@^4.3.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" +lodash@^3.6.0, lodash@^3.9.3: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + lodash@^4.0.0, lodash@^4.1.0, lodash@^4.13.1, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: version "4.16.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.4.tgz#01ce306b9bad1319f2a5528674f88297aeb70127" @@ -3990,6 +4166,10 @@ map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + mapbox.js@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/mapbox.js/-/mapbox.js-2.4.0.tgz#c43b084a5dd71334c83ee1df28fa67443d73c29c" @@ -4123,7 +4303,7 @@ mime-types@^2.1.11, mime-types@~2.1.11, mime-types@~2.1.7: dependencies: mime-db "~1.24.0" -mime@^1.3.4, mime@1.3.4: +mime@^1.2.11, mime@^1.3.4, mime@1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" @@ -4240,6 +4420,10 @@ ncp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" +nerf-dart@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/nerf-dart/-/nerf-dart-1.0.0.tgz#e6dab7febf5ad816ea81cf5c629c5a0ebde72c1a" + netrc@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/netrc/-/netrc-0.1.4.tgz#6be94fcaca8d77ade0a9670dc460914c94472444" @@ -4304,13 +4488,21 @@ node.flow@1.2.3: dependencies: node.extend "1.0.8" -nopt@~3.0.1, nopt@3.x: +nopt@^3.0.3, nopt@~3.0.1, nopt@3.x: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: abbrev "1" -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: +normalize-package-data@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-1.0.3.tgz#8be955b8907af975f1a4584ea8bb9b41492312f5" + dependencies: + github-url-from-git "^1.3.0" + github-url-from-username-repo "^1.0.0" + semver "2 || 3 || 4" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, "normalize-package-data@~1.0.1 || ^2.0.0": version "2.3.5" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df" dependencies: @@ -4331,6 +4523,60 @@ normalize.css@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-5.0.0.tgz#7cec875ce8178a5333c4de80b68ea9c18b9d7c37" +"npm-package-arg@^3.0.0 || ^4.0.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-4.2.0.tgz#809bc61cabf54bd5ff94f6165c89ba8ee88c115c" + dependencies: + hosted-git-info "^2.1.5" + semver "^5.1.0" + +npm-registry-client@^7.0.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-7.2.1.tgz#c792266b088cc313f8525e7e35248626c723db75" + dependencies: + concat-stream "^1.5.2" + graceful-fs "^4.1.6" + normalize-package-data "~1.0.1 || ^2.0.0" + npm-package-arg "^3.0.0 || ^4.0.0" + once "^1.3.3" + request "^2.74.0" + retry "^0.10.0" + semver "2 >=2.2.1 || 3.x || 4 || 5" + slide "^1.1.3" + optionalDependencies: + npmlog "~2.0.0 || ~3.1.0" + +npmconf@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/npmconf/-/npmconf-2.1.2.tgz#66606a4a736f1e77a059aa071a79c94ab781853a" + dependencies: + config-chain "~1.1.8" + inherits "~2.0.0" + ini "^1.2.0" + mkdirp "^0.5.0" + nopt "~3.0.1" + once "~1.3.0" + osenv "^0.1.0" + semver "2 || 3 || 4" + uid-number "0.0.5" + +npmlog@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-1.2.1.tgz#28e7be619609b53f7ad1dd300a10d64d716268b6" + dependencies: + ansi "~0.3.0" + are-we-there-yet "~1.0.0" + gauge "~1.2.0" + +"npmlog@~2.0.0 || ~3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-3.1.2.tgz#2d46fa874337af9498a2f12bb43d8d0be4a36873" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.6.0" + set-blocking "~2.0.0" + npmlog@4.x: version "4.0.0" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.0.tgz#e094503961c70c1774eb76692080e8d578a9f88f" @@ -4381,7 +4627,7 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" -once@^1.3.0, once@^1.3.1, once@^1.3.2, once@1.x: +once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.3.3, once@1.x: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -4447,7 +4693,7 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" -osenv@^0.1.3: +osenv@^0.1.0, osenv@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.3.tgz#83cf05c6d6458fc4d5ac6362ea325d92f2754217" dependencies: @@ -4500,6 +4746,10 @@ parse-filepath@^1.0.1: map-cache "^0.2.0" path-root "^0.1.1" +parse-github-repo-url@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.3.0.tgz#d4de02d68e2e60f0d6a182e7a8cb21b6f38c730b" + parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" @@ -4553,6 +4803,13 @@ path-is-inside@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" +path-object@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/path-object/-/path-object-2.3.0.tgz#03e46653e5c375c60af1cabdd94bc6448a5d9110" + dependencies: + core-util-is "^1.0.1" + lodash.assign "^3.0.0" + path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" @@ -4579,6 +4836,12 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + dependencies: + through "~2.3" + pbkdf2@^3.0.3: version "3.0.9" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693" @@ -4945,6 +5208,10 @@ proper-lockfile@^1.1.2: graceful-fs "^4.1.2" retry "^0.10.0" +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" @@ -5030,6 +5297,10 @@ rc@~1.1.0: minimist "^1.2.0" strip-json-comments "~1.0.4" +react-addons-perf: + version "15.3.2" + resolved "https://registry.yarnpkg.com/react-addons-perf/-/react-addons-perf-15.3.2.tgz#bbdbebe8649f936f9636a5750ac145bf5c620213" + react-dock@^0.2.1: version "0.2.3" resolved "https://registry.yarnpkg.com/react-dock/-/react-dock-0.2.3.tgz#a25461564f3cf64ab5b7098e7546036066a9c0e2" @@ -5418,6 +5689,10 @@ require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" +require-relative@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" + require-uncached@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.2.tgz#67dad3b733089e77030124678a459589faf6a7ec" @@ -5527,10 +5802,20 @@ run-async@^2.2.0: is-promise "^2.1.0" pinkie-promise "^2.0.0" +run-auto@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/run-auto/-/run-auto-1.1.3.tgz#c2d5163fec1ab78b6345cdd3992fce032f671f88" + dependencies: + dezalgo "^1.0.1" + run-parallel@^1.1.2: version "1.1.6" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.6.tgz#29003c9a2163e01e2d2dfc90575f2c6c1d61a039" +run-series@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/run-series/-/run-series-1.1.4.tgz#89a73ddc5e75c9ef8ab6320c0a1600d6a41179b9" + rx-lite@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" @@ -5562,11 +5847,33 @@ sax@1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/sax/-/sax-1.1.5.tgz#1da50a8d00cdecd59405659f5ff85349fe773743" -semver@^4.3.3: +semantic-release@^4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-4.3.5.tgz#df7319e7b18cb980829e9492e78d1962af6e3911" + dependencies: + "@semantic-release/commit-analyzer" "^2.0.0" + "@semantic-release/condition-travis" "^4.1.2" + "@semantic-release/error" "^1.0.0" + "@semantic-release/last-release-npm" "^1.2.1" + "@semantic-release/release-notes-generator" "^2.0.0" + git-head "^1.2.1" + github "^0.2.4" + lodash "^3.9.3" + nerf-dart "^1.0.0" + nopt "^3.0.3" + npmconf "^2.1.2" + npmlog "^1.2.1" + parse-github-repo-url "^1.0.0" + require-relative "^0.8.7" + run-auto "^1.1.2" + run-series "^1.1.2" + semver "^5.0.1" + +semver@^4.3.3, "semver@2 || 3 || 4": version "4.3.6" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" -semver@^5.0.1, semver@^5.1.0, semver@^5.3.0, semver@~5.3.0, "semver@2 || 3 || 4 || 5": +semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@~5.3.0, "semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5": version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -5673,6 +5980,10 @@ slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" +slide@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + smart-mixin@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/smart-mixin/-/smart-mixin-1.2.1.tgz#11a2b3e4628dfee16ac9cb51edd301be21be1452" @@ -5738,6 +6049,12 @@ spdx-license-ids@^1.0.2: version "1.2.2" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + dependencies: + through "2" + split2@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/split2/-/split2-0.2.1.tgz#02ddac9adc03ec0bb78c1282ec079ca6e85ae900" @@ -5807,6 +6124,12 @@ stream-browserify@^2.0.0: inherits "~2.0.1" readable-stream "^2.0.2" +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + dependencies: + duplexer "~0.1.1" + stream-combiner2@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" @@ -6048,7 +6371,7 @@ throttleit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" -through@^2.3.6, through@^2.3.7, "through@>=2.2.7 <3", through@~2.3.4: +through@^2.3.6, through@^2.3.7, "through@>=2.2.7 <3", through@~2.3, through@~2.3.1, through@~2.3.4, through@2: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -6218,6 +6541,10 @@ uid-number@~0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" +uid-number@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.5.tgz#5a3db23ef5dbd55b81fce0ec9a2ac6fccdebb81e" + umd@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.1.tgz#8ae556e11011f63c2596708a8837259f01b3d60e" @@ -6309,6 +6636,12 @@ vm-browserify@~0.0.1: dependencies: indexof "0.0.1" +walk@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/walk/-/walk-2.3.9.tgz#31b4db6678f2ae01c39ea9fb8725a9031e558a7b" + dependencies: + foreachasync "^3.0.0" + walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"