From 6f16c8367651dda9c0e3966643b53b9298485488 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 12 Feb 2020 21:20:55 -0500 Subject: [PATCH 001/115] refactor(BaseMap,StopViewer,SetFromTo): Replace the buttons for setting from/to search locations wit --- lib/components/map/base-map.js | 15 +++------------ lib/components/map/set-from-to.js | 19 ++++--------------- lib/components/viewers/stop-viewer.js | 17 ++++------------- package.json | 2 ++ 4 files changed, 13 insertions(+), 40 deletions(-) diff --git a/lib/components/map/base-map.js b/lib/components/map/base-map.js index b0ace488f..d935186cc 100644 --- a/lib/components/map/base-map.js +++ b/lib/components/map/base-map.js @@ -2,12 +2,12 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import { connect } from 'react-redux' import isEqual from 'lodash.isequal' - import { Map, TileLayer, LayersControl, Popup, CircleMarker } from 'react-leaflet' +import FromToLocationPicker from '@opentripplanner/from-to-location-picker' + import { setLocation, setMapPopupLocation, setMapPopupLocationAndGeocode } from '../../actions/map' import { setMapZoom, updateOverlayVisibility } from '../../actions/config' -import LocationIcon from '../icons/location-icon' import { constructLocation } from '../../util/map' import { getActiveItinerary, getActiveSearch } from '../../util/state' import { getItineraryBounds, getLegBounds, legLocationAtDistance } from '../../util/itinerary' @@ -339,16 +339,7 @@ class BaseMap extends Component {
Plan a trip: - - {' '}|{' '} - - +
diff --git a/lib/components/map/set-from-to.js b/lib/components/map/set-from-to.js index 600771faa..b5aec9408 100644 --- a/lib/components/map/set-from-to.js +++ b/lib/components/map/set-from-to.js @@ -1,6 +1,7 @@ import React, { Component } from 'react' -import { Button } from 'react-bootstrap' -import LocationIcon from '../icons/location-icon' + +import FromToLocationPicker from '@opentripplanner/from-to-location-picker' + export default class SetFromToButtons extends Component { _setLocation = (type) => { @@ -18,19 +19,7 @@ export default class SetFromToButtons extends Component { render () { return ( -
- Plan a trip: - - -
+ ) } } diff --git a/lib/components/viewers/stop-viewer.js b/lib/components/viewers/stop-viewer.js index a1726dd1b..04ff28d15 100644 --- a/lib/components/viewers/stop-viewer.js +++ b/lib/components/viewers/stop-viewer.js @@ -6,9 +6,9 @@ import moment from 'moment' import 'moment-timezone' import { VelocityTransitionGroup } from 'velocity-react' -import Icon from '../narrative/icon' -import LocationIcon from '../icons/location-icon' +import FromToLocationPicker from '@opentripplanner/from-to-location-picker' +import Icon from '../narrative/icon' import { setMainPanelContent, toggleAutoRefresh } from '../../actions/ui' import { findStop, findStopTimesForStop } from '../../actions/api' import { forgetStop, rememberStop, setLocation } from '../../actions/map' @@ -217,17 +217,8 @@ class StopViewer extends Component { .format(timeFormat)} - Plan a trip:{' '} - {' '} - {' '}|{' '} - {' '} - + + {/* pattern listing */} diff --git a/package.json b/package.json index df3ffef9a..e0eaee52c 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "@conveyal/geocoder-arcgis-geojson": "^0.0.2", "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", + "@opentripplanner/from-to-location-picker": "^0.0.14", "bootstrap": "^3.3.7", "bowser": "^1.9.3", "clone": "^2.1.0", @@ -71,6 +72,7 @@ "redux-actions": "^1.2.1", "redux-logger": "^2.7.4", "redux-thunk": "^2.3.0", + "styled-components": "^5.0.1", "throttle-debounce": "^2.0.1", "transitive-js": "^0.13.0", "turf-along": "^3.0.12", From cce4340528610b21a55d71edabc652aaa03af842 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 13 Feb 2020 14:58:00 -0500 Subject: [PATCH 002/115] fix(set-from-to): Removed extra line. --- lib/components/map/base-map.js | 2 +- lib/components/map/set-from-to.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/components/map/base-map.js b/lib/components/map/base-map.js index d935186cc..9d83d0c39 100644 --- a/lib/components/map/base-map.js +++ b/lib/components/map/base-map.js @@ -66,7 +66,7 @@ class BaseMap extends Component { setMapPopupLocation({ location: null }) setLocation({ type, location, reverseGeocode: true }) if (typeof this.props.onSetLocation === 'function') { - this.props.onSetLocation({type, location}) + this.props.onSetLocation({ type, location }) } } diff --git a/lib/components/map/set-from-to.js b/lib/components/map/set-from-to.js index b5aec9408..80d383bb6 100644 --- a/lib/components/map/set-from-to.js +++ b/lib/components/map/set-from-to.js @@ -2,7 +2,6 @@ import React, { Component } from 'react' import FromToLocationPicker from '@opentripplanner/from-to-location-picker' - export default class SetFromToButtons extends Component { _setLocation = (type) => { this.props.setLocation({ From 55bc8a7c1945e8b1f26b6a583aca869958142e9d Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 13 Feb 2020 16:52:51 -0500 Subject: [PATCH 003/115] fix(stop-viewer): Update snapshot, cleanup whitespaces. --- .../viewers/__snapshots__/stop-viewer.js.snap | 180 ++---------------- __tests__/components/viewers/stop-viewer.js | 4 +- lib/components/viewers/stop-viewer.js | 2 +- 3 files changed, 23 insertions(+), 163 deletions(-) diff --git a/__tests__/components/viewers/__snapshots__/stop-viewer.js.snap b/__tests__/components/viewers/__snapshots__/stop-viewer.js.snap index 9030fa631..53be408c0 100644 --- a/__tests__/components/viewers/__snapshots__/stop-viewer.js.snap +++ b/__tests__/components/viewers/__snapshots__/stop-viewer.js.snap @@ -304,38 +304,10 @@ exports[`components > viewers > stop viewer should render countdown times after Plan a trip: - - - - - - - - | - - - - - - +
viewers > stop viewer should render countdown times for st Plan a trip: - - - - - - - - | - - - - - - +
viewers > stop viewer should render times after midnight w Plan a trip: - - - - - - - - | - - - - - - +
viewers > stop viewer should render with OTP transit index Plan a trip: - - - - - - - - | - - - - - - +
viewers > stop viewer should render with TriMet transit in Plan a trip: - - - - - - - - | - - - - - - +
viewers > stop viewer', () => { afterEach(restoreDateNowBehavior) diff --git a/lib/components/viewers/stop-viewer.js b/lib/components/viewers/stop-viewer.js index 04ff28d15..e5a841729 100644 --- a/lib/components/viewers/stop-viewer.js +++ b/lib/components/viewers/stop-viewer.js @@ -217,7 +217,7 @@ class StopViewer extends Component { .format(timeFormat)}
- + Plan a trip: From 985886b31bdb50881a05f91cabc7895002b93ec5 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 14 Feb 2020 09:50:51 -0500 Subject: [PATCH 004/115] fix(StopViewer): Update snapshot --- .../viewers/__snapshots__/stop-viewer.js.snap | 880 +++++++++++++++++- 1 file changed, 875 insertions(+), 5 deletions(-) diff --git a/__tests__/components/viewers/__snapshots__/stop-viewer.js.snap b/__tests__/components/viewers/__snapshots__/stop-viewer.js.snap index 53be408c0..80aa7a67b 100644 --- a/__tests__/components/viewers/__snapshots__/stop-viewer.js.snap +++ b/__tests__/components/viewers/__snapshots__/stop-viewer.js.snap @@ -305,9 +305,183 @@ exports[`components > viewers > stop viewer should render countdown times after Plan a trip: + setLocation={null} + showIcons={true} + toText="To here" + > + + + + + + + + + + + + From Location Icon + + + + + + + + + + + + + + + + + + + + + + + To Location Icon + + + + + + + + + + + + + + + +
viewers > stop viewer should render countdown times for st Plan a trip: + setLocation={null} + showIcons={true} + toText="To here" + > + + + + + + + + + + + + From Location Icon + + + + + + + + + + + + + + + + + + + + + + + To Location Icon + + + + + + + + + + + + + + + +
viewers > stop viewer should render times after midnight w Plan a trip: + setLocation={null} + showIcons={true} + toText="To here" + > + + + + + + + + + + + + From Location Icon + + + + + + + + + + + + + + + + + + + + + + + To Location Icon + + + + + + + + + + + + + + + +
viewers > stop viewer should render with OTP transit index Plan a trip: + setLocation={null} + showIcons={true} + toText="To here" + > + + + + + + + + + + + + From Location Icon + + + + + + + + + + + + + + + + + + + + + + + To Location Icon + + + + + + + + + + + + + + + +
viewers > stop viewer should render with TriMet transit in Plan a trip: + setLocation={null} + showIcons={true} + toText="To here" + > + + + + + + + + + + + + From Location Icon + + + + + + + + + + + + + + + + + + + + + + + To Location Icon + + + + + + + + + + + + + + + +
Date: Sun, 1 Mar 2020 15:57:21 -0800 Subject: [PATCH 005/115] refactor(location): use otp-ui location-search component --- lib/actions/map.js | 13 + .../form/connected-location-field.js | 76 +++ lib/components/form/default-search-form.js | 10 +- lib/components/form/location-field.js | 605 ------------------ lib/components/mobile/location-search.js | 10 +- lib/components/mobile/search-screen.js | 10 +- lib/components/mobile/welcome-screen.js | 8 +- lib/index.js | 2 +- package.json | 8 +- yarn.lock | 574 ++++++++++++++++- 10 files changed, 682 insertions(+), 634 deletions(-) create mode 100644 lib/components/form/connected-location-field.js delete mode 100644 lib/components/form/location-field.js diff --git a/lib/actions/map.js b/lib/actions/map.js index b1b0ece2e..afd409141 100644 --- a/lib/actions/map.js +++ b/lib/actions/map.js @@ -35,6 +35,19 @@ export function clearLocation (payload) { } } +/** + * Handler for @opentripplanner/location-field onLocationSelected + */ +export function onLocationSelected ({ locationType, location, resultType }) { + return function (dispatch, getState) { + if (resultType === 'CURRENT_LOCATION') { + dispatch(setLocationToCurrent({ type: locationType })) + } else { + dispatch(setLocation({ location, type: locationType })) + } + } +} + export function setLocation (payload) { return function (dispatch, getState) { const otpState = getState().otp diff --git a/lib/components/form/connected-location-field.js b/lib/components/form/connected-location-field.js new file mode 100644 index 000000000..ef9dfba6f --- /dev/null +++ b/lib/components/form/connected-location-field.js @@ -0,0 +1,76 @@ +import LocationField from '@opentripplanner/location-field' +import { + DropdownContainer, + FormGroup, + Input, + InputGroup, + InputGroupAddon +} from '@opentripplanner/location-field/lib/styled' +import { connect } from 'react-redux' +import styled from 'styled-components' + +import { clearLocation, onLocationSelected } from '../../actions/map' +import { addLocationSearch, getCurrentPosition } from '../../actions/location' +import { findNearbyStops } from '../../actions/api' +import { getActiveSearch, getShowUserSettings } from '../../util/state' + +const StyledLocationField = styled(LocationField)` + width: 100%; + + ${DropdownContainer} { + display: table-cell; + vertical-align: middle; + width: 1%; + } + + ${FormGroup} { + display: table; + padding: 6px 12px; + width: 100%; + } + + ${Input} { + display: table-cell; + padding: 6px 12px; + width: 100%; + } + + ${InputGroup} { + width: 100%; + } + + ${InputGroupAddon} { + display: table-cell; + vertical-align: middle; + width: 1%; + } +` + +// connect to redux store + +const mapStateToProps = (state, ownProps) => { + const { config, currentQuery, location, transitIndex, user } = state.otp + const { currentPosition, nearbyStops, sessionSearches } = location + const activeSearch = getActiveSearch(state.otp) + const query = activeSearch ? activeSearch.query : currentQuery + return { + currentPosition, + geocoderConfig: config.geocoder, + location: query[ownProps.locationType], + nearbyStops, + sessionSearches, + showUserSettings: getShowUserSettings(state.otp), + stopsIndex: transitIndex.stops, + userLocationsAndRecentPlaces: [...user.locations, ...user.recentPlaces] + } +} + +const mapDispatchToProps = { + addLocationSearch, + findNearbyStops, + getCurrentPosition, + onLocationSelected, + clearLocation +} + +export default connect(mapStateToProps, mapDispatchToProps)(StyledLocationField) diff --git a/lib/components/form/default-search-form.js b/lib/components/form/default-search-form.js index b6c72cd52..1f2578231 100644 --- a/lib/components/form/default-search-form.js +++ b/lib/components/form/default-search-form.js @@ -1,7 +1,7 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' -import LocationField from './location-field' +import LocationField from './connected-location-field' import SwitchButton from './switch-button' import TabbedFormPanel from './tabbed-form-panel' import defaultIcons from '../icons' @@ -34,14 +34,14 @@ export default class DefaultSearchForm extends Component {
diff --git a/lib/components/form/location-field.js b/lib/components/form/location-field.js deleted file mode 100644 index 7c52c6e6b..000000000 --- a/lib/components/form/location-field.js +++ /dev/null @@ -1,605 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import ReactDOM from 'react-dom' -import { - Button, - FormGroup, - FormControl, - InputGroup, - DropdownButton, - MenuItem -} from 'react-bootstrap' -import { connect } from 'react-redux' -import { throttle } from 'throttle-debounce' - -import LocationIcon from '../icons/location-icon' -import { setLocation, setLocationToCurrent, clearLocation } from '../../actions/map' -import { addLocationSearch, getCurrentPosition } from '../../actions/location' -import { findNearbyStops } from '../../actions/api' -import { distanceStringImperial } from '../../util/distance' -import getGeocoder from '../../util/geocoder' -import { formatStoredPlaceName } from '../../util/map' -import { getActiveSearch, getShowUserSettings } from '../../util/state' -import { isIE } from '../../util/ui' - -class LocationField extends Component { - static propTypes = { - config: PropTypes.object, - currentPosition: PropTypes.object, - hideExistingValue: PropTypes.bool, - location: PropTypes.object, - label: PropTypes.string, - nearbyStops: PropTypes.array, - sessionSearches: PropTypes.array, - showClearButton: PropTypes.bool, - static: PropTypes.bool, // show autocomplete options as fixed/inline element rather than dropdown - stopsIndex: PropTypes.object, - type: PropTypes.string, // replace with locationType? - - // callbacks - onClick: PropTypes.func, - onLocationSelected: PropTypes.func, - - // dispatch - addLocationSearch: PropTypes.func, - clearLocation: PropTypes.func, - setLocation: PropTypes.func, - setLocationToCurrent: PropTypes.func - } - - static defaultProps = { - showClearButton: true - } - - constructor (props) { - super(props) - this.state = { - value: props.location && !props.hideExistingValue - ? props.location.name - : '', - menuVisible: false, - geocodedFeatures: [], - activeIndex: null - } - } - - componentDidUpdate (prevProps) { - // If location is updated externally, replace value and geocoded features - // in internal state. - // TODO: This might be considered an anti-pattern. There may be a more - // effective way to handle this. - const { location } = this.props - if (location !== prevProps.location) { - this.setState({ - value: location !== null ? location.name : '', - geocodedFeatures: [] - }) - } - } - - _geocodeAutocomplete = throttle(1000, (text) => { - if (!text) { - console.warn('No text entry provided for geocode autocomplete search.') - return - } - getGeocoder(this.props.config.geocoder) - .autocomplete({ text }) - .then((result) => { - this.setState({ geocodedFeatures: result.features }) - }).catch((err) => { - console.error(err) - }) - }) - - _geocodeSearch (text) { - if (!text) { - console.warn('No text entry provided for geocode search.') - return - } - getGeocoder(this.props.config.geocoder) - .search({ text }) - .then((result) => { - if (result.features && result.features.length > 0) { - // Only replace geocode items if results were found - this.setState({ geocodedFeatures: result.features }) - } else { - console.warn('No results found for geocode search. Not replacing results.') - } - }).catch((err) => { - console.error(err) - }) - } - - _getFormControlClassname () { - return this.props.type + '-form-control' - } - - _onClearButtonClick = () => { - const { type } = this.props - this.props.clearLocation({ type }) - this.setState({ - value: '', - geocodedFeatures: [] - }) - ReactDOM.findDOMNode(this.formControl).focus() - this._onTextInputClick() - } - - _onDropdownToggle = (v, e) => { - // if clicked on input form control, keep dropdown open; otherwise, toggle - const targetIsInput = - e.target.className.indexOf(this._getFormControlClassname()) !== -1 - const menuVisible = targetIsInput ? true : !this.state.menuVisible - this.setState({ menuVisible }) - } - /** - * Only hide menu if the target clicked is not a menu item in the dropdown. - * Otherwise, the click will not "finish" and the menu will hide without the - * user having made a selection. - */ - _onBlurFormGroup = (e) => { - // IE does not use relatedTarget, so this check handles cross-browser support. - // see https://stackoverflow.com/a/49325196/915811 - const target = e.relatedTarget !== null ? e.relatedTarget : document.activeElement - if (!this.props.location && (!target || target.getAttribute('role') !== 'menuitem')) { - this.setState({ menuVisible: false, value: '', geocodedFeatures: [] }) - } - } - - _onTextInputChange = (evt) => { - this.setState({ value: evt.target.value, menuVisible: true }) - this._geocodeAutocomplete(evt.target.value) - } - - _onTextInputClick = () => { - const { config, currentPosition, nearbyStops, onClick } = this.props - if (typeof onClick === 'function') onClick() - this.setState({ menuVisible: true }) - if (nearbyStops.length === 0 && currentPosition && currentPosition.coords) { - this.props.findNearbyStops({ - lat: currentPosition.coords.latitude, - lon: currentPosition.coords.longitude, - max: config.geocoder.maxNearbyStops || 4 - }) - } - } - - _onKeyDown = (evt) => { - const { activeIndex, menuVisible } = this.state - switch (evt.key) { - // 'Down' arrow key pressed: move selected menu item down by one position - case 'ArrowDown': - // Suppress default 'ArrowDown' behavior which moves cursor to end - evt.preventDefault() - if (!menuVisible) { - // If the menu is not visible, simulate a text input click to show it. - return this._onTextInputClick() - } - if (activeIndex === this.menuItemCount - 1) { - return this.setState({ activeIndex: null }) - } - return this.setState({ - activeIndex: activeIndex === null - ? 0 - : activeIndex + 1 - }) - - // 'Up' arrow key pressed: move selection up by one position - case 'ArrowUp': - // Suppress default 'ArrowUp' behavior which moves cursor to beginning - evt.preventDefault() - if (activeIndex === 0) { - return this.setState({ activeIndex: null }) - } - return this.setState({ - activeIndex: activeIndex === null - ? this.menuItemCount - 1 - : activeIndex - 1 - }) - - // 'Enter' keypress serves two purposes: - // - If pressed when typing in search string, switch from 'autocomplete' - // to 'search' geocoding - // - If pressed when dropdown results menu is active, apply the location - // associated with current selected menu item - case 'Enter': - if (typeof activeIndex === 'number') { // Menu is active - // Retrieve location selection handler from lookup object and invoke - const locationSelected = this.locationSelectedLookup[activeIndex] - if (locationSelected) locationSelected() - - // Clear selection & hide the menu - this.setState({ - menuVisible: false, - activeIndex: null - }) - } else { // Menu not active; get geocode 'search' results - this._geocodeSearch(evt.target.value) - // Ensure menu is visible. - this.setState({ menuVisible: true }) - } - - // Suppress default 'Enter' behavior which causes page to reload - evt.preventDefault() - break - case 'Escape': - // Clear selection & hide the menu - return this.setState({ - menuVisible: false, - activeIndex: null - }) - // Any other key pressed: clear active selection - default: - return this.setState({ activeIndex: null }) - } - } - - _setLocation (location) { - const { onLocationSelected, setLocation, type } = this.props - onLocationSelected && onLocationSelected() - setLocation({ type, location }) - } - - _useCurrentLocation = () => { - const { - currentPosition, - getCurrentPosition, - onLocationSelected, - setLocationToCurrent, - type - } = this.props - if (currentPosition.coords) { - // We already have geolocation coordinates - setLocationToCurrent({ type }) - onLocationSelected && onLocationSelected() - } else { - // Call geolocation.getCurrentPosition and set as from/to type - this.setState({ fetchingLocation: true }) - getCurrentPosition(type, onLocationSelected) - } - } - - /** - * Provide alert to user with reason for geolocation error - */ - _geolocationAlert = () => { - window.alert( - `Geolocation either has been disabled for ${window.location.host} or is not available in your browser.\n\nReason: ${this.props.currentPosition.error.message || 'Unknown reason'}` - ) - } - - render () { - const { - currentPosition, - label, - location, - user, - showClearButton, - showUserSettings, - static: isStatic, - suppressNearby, - type, - nearbyStops - } = this.props - const locations = [...user.locations, ...user.recentPlaces] - const { activeIndex } = this.state - let geocodedFeatures = this.state.geocodedFeatures - if (geocodedFeatures.length > 5) geocodedFeatures = geocodedFeatures.slice(0, 5) - - let sessionSearches = this.props.sessionSearches - if (sessionSearches.length > 5) sessionSearches = sessionSearches.slice(0, 5) - - // Assemble menu contents, to be displayed either as dropdown or static panel. - // Menu items are created in four phases: (1) the current location, (2) any - // geocoder search results; (3) nearby transit stops; and (4) saved searches - - let menuItems = [] // array of menu items for display (may include non-selectable items e.g. dividers/headings) - let itemIndex = 0 // the index of the current location-associated menu item (excluding non-selectable items) - this.locationSelectedLookup = {} // maps itemIndex to a location selection handler (for use by the _onKeyDown method) - - /* 1) Process geocode search result option(s) */ - if (geocodedFeatures.length > 0) { - // Add the menu sub-heading (not a selectable item) - // menuItems.push(Search Results) - - // Iterate through the geocoder results - menuItems = menuItems.concat(geocodedFeatures.map((feature, i) => { - // Create the selection handler - const locationSelected = () => { - getGeocoder(this.props.config.geocoder) - .getLocationFromGeocodedFeature(feature) - .then(location => { - // Set the current location - this._setLocation(location) - // Add to the location search history - this.props.addLocationSearch({ location }) - }) - } - - // Add to the selection handler lookup (for use in _onKeyDown) - this.locationSelectedLookup[itemIndex] = locationSelected - - // Create and return the option menu item - const option = createOption('map-pin', feature.properties.label, locationSelected, itemIndex === activeIndex, i === geocodedFeatures.length - 1) - itemIndex++ - return option - })) - } - - /* 2) Process nearby transit stop options */ - if (nearbyStops.length > 0 && !suppressNearby) { - // Add the menu sub-heading (not a selectable item) - menuItems.push(Nearby Stops) - - // Iterate through the found nearby stops - menuItems = menuItems.concat(nearbyStops.map((stopId, i) => { - // Constuct the location - const stop = this.props.stopsIndex[stopId] - const location = { - name: stop.name, - lat: stop.lat, - lon: stop.lon - } - - // Create the location selected handler - const locationSelected = () => { this._setLocation(location) } - - // Add to the selection handler lookup (for use in _onKeyDown) - this.locationSelectedLookup[itemIndex] = locationSelected - - // Create and return the option menu item - const option = createTransitStopOption(stop, locationSelected, itemIndex === activeIndex, i === nearbyStops.length - 1) - itemIndex++ - return option - })) - } - - /* 3) Process recent search history options */ - if (sessionSearches.length > 0) { - // Add the menu sub-heading (not a selectable item) - menuItems.push(Recently Searched) - - // Iterate through any saved locations - menuItems = menuItems.concat(sessionSearches.map((location, i) => { - // Create the location-selected handler - const locationSelected = () => { this._setLocation(location) } - - // Add to the selection handler lookup (for use in _onKeyDown) - this.locationSelectedLookup[itemIndex] = locationSelected - - // Create and return the option menu item - const option = createOption('search', location.name, locationSelected, itemIndex === activeIndex, i === sessionSearches.length - 1) - itemIndex++ - return option - })) - } - - /* 3b) Process stored user locations */ - if (locations.length > 0 && showUserSettings) { - // Add the menu sub-heading (not a selectable item) - menuItems.push(My Places) - - // Iterate through any saved locations - menuItems = menuItems.concat(locations.map((location, i) => { - // Create the location-selected handler - const locationSelected = () => { this._setLocation(location) } - - // Add to the selection handler lookup (for use in _onKeyDown) - this.locationSelectedLookup[itemIndex] = locationSelected - - // Create and return the option menu item - const option = createOption( - location.icon, - formatStoredPlaceName(location), - locationSelected, - itemIndex === activeIndex, - i === locations.length - 1 - ) - itemIndex++ - return option - })) - } - - /* 4) Process the current location */ - let locationSelected, optionIcon, optionTitle - - if (!currentPosition.error) { // current position detected successfully - locationSelected = this._useCurrentLocation - optionIcon = 'location-arrow' - optionTitle = 'Use Current Location' - } else { // error detecting current position - locationSelected = this._geolocationAlert - optionIcon = 'ban' - optionTitle = 'Current location not available' - } - - // Add to the selection handler lookup (for use in _onKeyDown) - this.locationSelectedLookup[itemIndex] = locationSelected - - if (!suppressNearby) { - // Create and add the option item to the menu items array - const currentLocationOption = createOption( - optionIcon, - optionTitle, - locationSelected, - itemIndex === activeIndex - ) - menuItems.push(currentLocationOption) - itemIndex++ - } - - // Store the number of location-associated items for reference in the _onKeyDown method - this.menuItemCount = itemIndex - - /** the text input element **/ - const placeholder = currentPosition.fetching === type - ? 'Fetching location...' - : label || type - const textControl = { this.formControl = ctl }} - className={this._getFormControlClassname()} - type='text' - value={this.state.value} - placeholder={placeholder} - onChange={this._onTextInputChange} - onClick={this._onTextInputClick} - onKeyDown={this._onKeyDown} - /> - - // Only include the clear ('X') button add-on if a location is selected - // or if the input field has text. - const clearButton = showClearButton && location - ? - - - : null - if (isStatic) { - // 'static' mode (menu is displayed alongside input, e.g., for mobile view) - return ( -
-
- - - - - - {textControl} - {clearButton} - - -
-
    - {menuItems.length > 0 // Show typing prompt to avoid empty screen - ? menuItems - : - Begin typing to search for locations - - } -
-
- ) - } else { - // default display mode with dropdown menu - return ( -
- - - {/* location field icon -- also serves as dropdown anchor */} - } - noCaret - > - {menuItems} - - {textControl} - {clearButton} - - -
- ) - } - } -} - -// helper functions for dropdown options - -let itemKey = 0 - -function createOption (icon, title, onSelect, isActive, isLast) { - return - {isIE() - // In internet explorer 11, some really weird stuff is happening where it - // is not possible to click the text of the title, but if you click just - // above it, then it works. So, if using IE 11, just return the title text - // and avoid all the extra fancy stuff. - // See https://github.com/ibi-group/trimet-mod-otp/issues/237 - ? title - : ( -
-
-
- {title} -
-
- ) - } -
-} - -function createTransitStopOption (stop, onSelect, isActive) { - return -
-
- -
{distanceStringImperial(stop.dist, true)}
-
-
-
{stop.name} ({stop.code})
-
- {(stop.routes || []).map((route, i) => { - const name = route.shortName || route.longName - return ( - - {name} - - ) - })} -
-
-
-
- -} - -// connect to redux store - -const mapStateToProps = (state, ownProps) => { - const activeSearch = getActiveSearch(state.otp) - const query = activeSearch ? activeSearch.query : state.otp.currentQuery - const location = query[ownProps.type] - const showUserSettings = getShowUserSettings(state.otp) - return { - config: state.otp.config, - location, - user: state.otp.user, - currentPosition: state.otp.location.currentPosition, - sessionSearches: state.otp.location.sessionSearches, - nearbyStops: state.otp.location.nearbyStops, - showUserSettings, - stopsIndex: state.otp.transitIndex.stops - } -} - -const mapDispatchToProps = { - addLocationSearch, - findNearbyStops, - getCurrentPosition, - setLocation, - setLocationToCurrent, - clearLocation -} - -export default connect(mapStateToProps, mapDispatchToProps)(LocationField) diff --git a/lib/components/mobile/location-search.js b/lib/components/mobile/location-search.js index 5c7404947..11a7e02d6 100644 --- a/lib/components/mobile/location-search.js +++ b/lib/components/mobile/location-search.js @@ -4,7 +4,7 @@ import { connect } from 'react-redux' import MobileContainer from './container' import MobileNavigationBar from './navigation-bar' -import LocationField from '../form/location-field' +import LocationField from '../form/connected-location-field' import { MobileScreens, setMobileScreen } from '../../actions/ui' @@ -36,12 +36,12 @@ class MobileLocationSearch extends Component { />
diff --git a/lib/components/mobile/search-screen.js b/lib/components/mobile/search-screen.js index 364b3d17f..bfa2952cf 100644 --- a/lib/components/mobile/search-screen.js +++ b/lib/components/mobile/search-screen.js @@ -5,7 +5,7 @@ import { Row, Col } from 'react-bootstrap' import DateTimePreview from '../form/date-time-preview' import DefaultMap from '../map/default-map' -import LocationField from '../form/location-field' +import LocationField from '../form/connected-location-field' import PlanTripButton from '../form/plan-trip-button' import SettingsPreview from '../form/settings-preview' import SwitchButton from '../form/switch-button' @@ -51,13 +51,13 @@ class MobileSearchScreen extends Component {
diff --git a/lib/components/mobile/welcome-screen.js b/lib/components/mobile/welcome-screen.js index d162605a3..47d6ab4f0 100644 --- a/lib/components/mobile/welcome-screen.js +++ b/lib/components/mobile/welcome-screen.js @@ -3,8 +3,8 @@ import PropTypes from 'prop-types' import { connect } from 'react-redux' import MobileContainer from './container' -import LocationField from '../form/location-field' import UserSettings from '../form/user-settings' +import LocationField from '../form/connected-location-field' import DefaultMap from '../map/default-map' import MobileNavigationBar from './navigation-bar' @@ -44,9 +44,9 @@ class MobileWelcomeScreen extends Component {
diff --git a/lib/index.js b/lib/index.js index bd8f7a849..c671bff9c 100644 --- a/lib/index.js +++ b/lib/index.js @@ -4,7 +4,7 @@ import DateTimeSelector from './components/form/date-time-selector' import DefaultSearchForm from './components/form/default-search-form' import ErrorMessage from './components/form/error-message' import GeneralSettingsPanel from './components/form/general-settings-panel' -import LocationField from './components/form/location-field' +import LocationField from './components/form/connected-location-field' import ModeSelector from './components/form/mode-selector' import ModesPanel from './components/form/modes-panel' import PlanTripButton from './components/form/plan-trip-button' diff --git a/package.json b/package.json index 2662e82ef..00b272720 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", "@opentripplanner/from-to-location-picker": "^0.0.14", + "@opentripplanner/location-field": "^0.0.16", "bootstrap": "^3.3.7", "bowser": "^1.9.3", "clone": "^2.1.0", @@ -72,7 +73,6 @@ "redux-actions": "^1.2.1", "redux-logger": "^2.7.4", "redux-thunk": "^2.3.0", - "styled-components": "^5.0.1", "throttle-debounce": "^2.0.1", "transitive-js": "^0.13.0", "turf-along": "^3.0.12", @@ -90,11 +90,13 @@ "react": "^16.9.0", "react-dom": "^16.9.0", "redux-mock-store": "^1.5.3", - "semantic-release": "^15.13.12" + "semantic-release": "^15.13.12", + "styled-components": "^5.0.1" }, "peerDependencies": { "react": ">=15.0.0", - "react-dom": ">=15.0.0" + "react-dom": ">=15.0.0", + "styled-components": "^5.0.1" }, "jest": { "globalSetup": "/__tests__/test-utils/global-setup.js", diff --git a/yarn.lock b/yarn.lock index d6a58d096..bb5084d0a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,13 @@ dependencies: "@babel/highlight" "^7.0.0" +"@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + "@babel/core@^7.1.0", "@babel/core@^7.1.2", "@babel/core@^7.3.4": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" @@ -40,6 +47,16 @@ source-map "^0.5.0" trim-right "^1.0.1" +"@babel/generator@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.6.tgz#57adf96d370c9a63c241cd719f9111468578537a" + integrity sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg== + dependencies: + "@babel/types" "^7.8.6" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" @@ -110,6 +127,15 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" +"@babel/helper-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" + integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + "@babel/helper-get-function-arity@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" @@ -117,6 +143,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" + integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== + dependencies: + "@babel/types" "^7.8.3" + "@babel/helper-hoist-variables@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" @@ -205,6 +238,13 @@ dependencies: "@babel/types" "^7.4.4" +"@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" + integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== + dependencies: + "@babel/types" "^7.8.3" + "@babel/helper-wrap-function@^7.1.0", "@babel/helper-wrap-function@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" @@ -233,6 +273,15 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@babel/highlight@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" + integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + "@babel/parser@7.1.3": version "7.1.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" @@ -243,6 +292,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== +"@babel/parser@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.6.tgz#ba5c9910cddb77685a008e3c587af8d27b67962c" + integrity sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g== + "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" @@ -936,6 +990,15 @@ "@babel/parser" "^7.4.4" "@babel/types" "^7.4.4" +"@babel/template@^7.8.3": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" + integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.4", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" @@ -951,6 +1014,21 @@ globals "^11.1.0" lodash "^4.17.13" +"@babel/traverse@^7.4.5": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.6.tgz#acfe0c64e1cd991b3e32eae813a6eb564954b5ff" + integrity sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.6" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + "@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.1.3", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" @@ -960,6 +1038,15 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@babel/types@^7.8.3", "@babel/types@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.6.tgz#629ecc33c2557fcde7126e58053127afdb3e6d01" + integrity sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@cnakazawa/watch@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" @@ -976,7 +1063,7 @@ "@conveyal/lonlat" "^1.3.0" geocoder-arcgis "^2.0.4" -"@conveyal/lonlat@^1.1.0", "@conveyal/lonlat@^1.1.2", "@conveyal/lonlat@^1.3.0": +"@conveyal/lonlat@^1.1.0", "@conveyal/lonlat@^1.1.2", "@conveyal/lonlat@^1.3.0", "@conveyal/lonlat@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@conveyal/lonlat/-/lonlat-1.4.0.tgz#18a5c1349078a779e710d24af11bc02b24127ba0" integrity sha512-ag1FcRuwRGAZgeZ4e3sUq+gblf1Pgma2c9SaIVXluIrgsZ9Lrq7xhCbV0ErN8chyg/OCOoG8m/l3mgzbycQCnQ== @@ -986,6 +1073,28 @@ resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== +"@emotion/is-prop-valid@^0.8.3", "@emotion/is-prop-valid@^0.8.6": + version "0.8.7" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.7.tgz#803449993f436f9a6c67752251ea3fc492a1044c" + integrity sha512-OPkKzUeiid0vEKjZqnGcy2mzxjIlCffin+L2C02pdz/bVlt5zZZE2VzO0D3XOPnH0NEeF21QNKSXiZphjr4xiQ== + dependencies: + "@emotion/memoize" "0.7.4" + +"@emotion/memoize@0.7.4": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" + integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== + +"@emotion/stylis@^0.8.4": + version "0.8.5" + resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" + integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== + +"@emotion/unitless@^0.7.4": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" + integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== + "@jest/console@^24.7.1": version "24.7.1" resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545" @@ -1137,6 +1246,13 @@ resolved "https://registry.yarnpkg.com/@mapbox/polyline/-/polyline-0.2.0.tgz#6e25980744aa22331f94b645a542c02d3fcfee97" integrity sha1-biWYB0SqIjMflLZFpULALT/P7pc= +"@mapbox/polyline@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@mapbox/polyline/-/polyline-1.1.0.tgz#7bdd1da3a25c1d059af3897e0ee581b7c7b80243" + integrity sha512-NwiMS+AA/ZLIgd69YYXtQ0jtIBu8nQuVaRr4NxBoRjEd9ddKDoe4q8a51Ukk7Vj+jwQtbupqmvoLni1QhnJ4Pg== + dependencies: + meow "^5.0.0" + "@nodelib/fs.scandir@2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.1.tgz#7fa8fed654939e1a39753d286b48b4836d00e0eb" @@ -1208,6 +1324,85 @@ universal-user-agent "^3.0.0" url-template "^2.0.8" +"@opentripplanner/core-utils@^0.0.14": + version "0.0.14" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.14.tgz#9e58e78227759ab5c13e1dad22467c474bd102b7" + integrity sha512-JMtOermSYrpPN649DEexd/EKdMPisBrooHiUAeCSdapXgxN7y1h+fUZj+OglLgUoo48wPRv7ru/n5doqVrGSaQ== + dependencies: + "@mapbox/polyline" "^1.1.0" + "@turf/along" "^6.0.1" + bowser "^2.7.0" + lodash.isequal "^4.5.0" + moment "^2.24.0" + moment-timezone "^0.5.27" + prop-types "^15.7.2" + qs "^6.9.1" + +"@opentripplanner/core-utils@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.16.tgz#72b85f9e36fb5dc00d442d9c2e6d883efdc3fa8d" + integrity sha512-ekPxWC0woOJDbfj0Lxk+NX2fLpIGpbDRQbEsO/rF+UCCvg4sCcmobjHaMwtW6rAXtVzNMmFDYXctPW/49Qdq8A== + dependencies: + "@mapbox/polyline" "^1.1.0" + "@turf/along" "^6.0.1" + bowser "^2.7.0" + lodash.isequal "^4.5.0" + moment "^2.24.0" + moment-timezone "^0.5.27" + prop-types "^15.7.2" + qs "^6.9.1" + +"@opentripplanner/from-to-location-picker@^0.0.14": + version "0.0.14" + resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.14.tgz#efe2a3452d58d769bc0d5904753df8516279f6c7" + integrity sha512-w2jf+wErtH34CdxQkAyHf446JeCsVxOYej6JRK15jc3+LCWi4bct2A0tf1wp9uNdMvAnL06AZL6hwsED6WqrVA== + dependencies: + "@opentripplanner/core-utils" "^0.0.14" + "@opentripplanner/location-icon" "^0.0.13" + prop-types "^15.7.2" + +"@opentripplanner/geocoder@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.16.tgz#55bdff8be36b2b68b83d62008c0fd45e03dd2a11" + integrity sha512-wpIyKThP4FhNiXDLHGHyux+g7+BAWN43ZZzdOgSBhSHoKRYXee+Ga7ht3zsNtJroZhkDQkEISXiNejK16SCWvQ== + dependencies: + "@conveyal/geocoder-arcgis-geojson" "^0.0.2" + "@conveyal/lonlat" "^1.4.0" + isomorphic-mapzen-search "^1.4.1" + lodash.memoize "^4.1.2" + +"@opentripplanner/humanize-distance@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.16.tgz#e8197671b45719ce5c728d34c60e80b6d816d287" + integrity sha512-qec9FZGhITC1u+YIBn0+6drxvbJr4N7FX0+VdpXl4+op6xVPlH+LPRittQhdOXdwEjUwHA9qvmksIYE70mg9lw== + +"@opentripplanner/location-field@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.16.tgz#1d23792965e9bfcd1044521b9bef261fbba090a7" + integrity sha512-nnEspCddomJGJgWuGh8S2npUogKKa6oPCopCl0sdgU7UyI/xUpgwHwTHaxJyJNWQmd4RT+GgKv9jlzKRVtxFXA== + dependencies: + "@opentripplanner/core-utils" "^0.0.16" + "@opentripplanner/geocoder" "^0.0.16" + "@opentripplanner/humanize-distance" "^0.0.16" + "@opentripplanner/location-icon" "^0.0.16" + prop-types "^15.7.2" + styled-icons "^9.1.0" + throttle-debounce "^2.1.0" + +"@opentripplanner/location-icon@^0.0.13": + version "0.0.13" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.13.tgz#18e53e2dcd916814675340c9a69d2bc7797bb177" + integrity sha512-KeGm9xQLA2qdQHuPod706OUuoUk25cDjJrFA+waWaN9qQqcqSxOBavcLg5FH9yRQR8uuSTgi1yooIlccOUYnxQ== + dependencies: + styled-icons "^9.1.0" + +"@opentripplanner/location-icon@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.16.tgz#16824fb8dd522f59be39b28a2a31617b27532bcd" + integrity sha512-QcbmO7aOcbECpKfZc2VNGxYq/HY7JZP+7FW6W1PBG98ThIbdg4cSwWWf7kf8fl3LpJAhqMdV14AE1O/P/Sq8rw== + dependencies: + styled-icons "^9.1.0" + "@semantic-release/commit-analyzer@^6.1.0": version "6.2.0" resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.2.0.tgz#5cd25ce67ba9ba5b46e47457505e63629e186695" @@ -1281,6 +1476,237 @@ lodash "^4.17.4" read-pkg-up "^6.0.0" +"@styled-icons/boxicons-logos@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/boxicons-logos/-/boxicons-logos-9.4.1.tgz#774e7f73839e834445dcc0ae4c0c356221767664" + integrity sha512-DN6Za9paJeWkoIXI1newSSfDALIR8ecaAsgzP3ZD+NRJHy6idW+1ouC5p3DlRM29+Cp4yJ/z3bH9whBDbd7YXQ== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/boxicons-regular@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/boxicons-regular/-/boxicons-regular-9.4.1.tgz#742a1d0b5798c54f189b9278810d8110df8f9754" + integrity sha512-910zIWCB0JkEgk9I7zIIEdPc8xibg3xrT4Wo7gIu4lGEr4u9OOQT3c0ajJD7F+JlhWcWBVumzjfjOT8A5UjPJw== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/boxicons-solid@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/boxicons-solid/-/boxicons-solid-9.4.1.tgz#5219a0c900f2ccc5dc9056c4ee2d1c180d9dbdf1" + integrity sha512-7FvU6KSnxBprsidta3/0grTkimYWDUnSZCyLscT1OwjmfyFPpnLNmJASQDrEtORF2GPw5Y2gc/q6h2RI4OnYcA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/crypto@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/crypto/-/crypto-9.4.1.tgz#9abe2a3165f78a1592ea1d910aa1e1210b990fef" + integrity sha512-qIjzvaw0kFykDN7PTGD8d3HvFVoX7kW7nwlvvzW/pGhVzpUHE7Mh2Syc04HpoknCgO0fCjAzXaxi9Igu3nS9NA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/entypo-social@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/entypo-social/-/entypo-social-9.5.0.tgz#d5c69c928dbcb83c39d8359e50c148bd497bcaff" + integrity sha512-yEpaJtTUriZSZPT/iqxgNONgxDYr0MHXANvoUW2CB0Ey4zTZst+2x7EJ9KgL2CjdBgA0bs8hnx5etGHUi8BtuA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/entypo@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/entypo/-/entypo-9.5.0.tgz#170c484e53820ec683d338353e44bae71d773611" + integrity sha512-gy/CXs45g1o5c61BnSnpd/cb84sXIARPByOa354FkN0aUHqepbF2qtBjZ3Udho6zWpm1nGOOUiawQb53PnG9vg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/evil@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/evil/-/evil-9.4.1.tgz#159d5c026e7d0689b453684b719ecb13e4ea0fe5" + integrity sha512-ejCBH+aXrjtBM+iMJomYlZ/xiJ+NGHVlIfQmkgD6roxtJzMzAmhwXgC5S3p0no2n1EXluUdJiufrI/QtP7iNbA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/fa-brands@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/fa-brands/-/fa-brands-9.4.1.tgz#ad329324875bb7db00ff5fb68ce98203fbe03b7a" + integrity sha512-zqlS/Y3mQLdBgRhZo1op5+twKYYwfS7OjqL90N+etokIWPqv1b7nwPWzwKoRpqDfCt/gyqmgxXqWufFd0CAx7Q== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/fa-regular@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/fa-regular/-/fa-regular-9.4.1.tgz#556b1840e97db031b5c07a7175b57103e3fd988b" + integrity sha512-tpgLOUPECtWNwVs7G82IaDkb1T13yNyDNZBB85sEO02ldHAZe6tt0Yi5gGCBExtU/p+4/jLTcU+pcoh/mySlVg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/fa-solid@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/fa-solid/-/fa-solid-9.4.1.tgz#d30de755f8fee6e932032e97fa592cb1eaa21d8e" + integrity sha512-ZyPxbCFmuuy3XotCI0SgHyUn3gTvQXm+iVnh+8r0gR8Kd88iTTubTqxgtdS0lrefaB4ayl6vEg20Dv9e9PvYVg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/feather@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/feather/-/feather-9.4.1.tgz#5e8a4193e70d477e9ad249f921c6d637f9fc631c" + integrity sha512-ucMOPhvaCp6N4lxL+z/66Kech20jAdMfewER732jhjV8P3FknoAY2+0CXXE+tBvJoJ/SOJZDOsW58Gr7yAWXOQ== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/foundation@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/foundation/-/foundation-9.5.0.tgz#011ac022ffcb20868385b97bf4fb173cceaf634d" + integrity sha512-O4Y62bfZfZjhZDXYtJYd/RsID1vpmMtgLSP54b0KbvY70hjdlFQZ0ZVR2fAzA0YSK90VjbYBbQDCCyqim4v3qA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/heroicons-outline@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/heroicons-outline/-/heroicons-outline-9.5.0.tgz#235046e3310e10165b9587a122a60e83e94e51de" + integrity sha512-MMY5NjVVimhTHhk+ADR4/a2KpjIjbmzW+SNPRCKMWgGyqXx1NjBrD72bnvrzApLdMnDvEsM/DYK6DVUW7UZhKw== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/heroicons-solid@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/heroicons-solid/-/heroicons-solid-9.5.0.tgz#2ed99d05a9a82c742eb7667c75b0d9c319fdee10" + integrity sha512-dYQYdxZ0BkGpl3nGQmkvONF1+Yq+E6I9S7snba1mirCDWQpIdgylGm+Z9CM/OvdIlhr5da00D4oZu+2CiGdCFQ== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/icomoon@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/icomoon/-/icomoon-9.4.1.tgz#b75118a6d10cb8f5e7e15ae7a323009dd2f98e7e" + integrity sha512-oEw84P55EahJFdhQPBnUbvQqB08LuJKq75AkwaCSqk6w1DIEDbjY72lb6mbAwZB/AwNYeRVJJhTHaF1MNY103A== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/material@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/material/-/material-9.4.1.tgz#26169db802a10e333a5608aec2611878dd45f6fe" + integrity sha512-7Ucsm7RxCrnznZb+WDptBrGE45ZVBODm6J0e+fy0hvO9sjWAcuoKffYTcQEhDS2pqC1Rcc/nSZHDbqwZrpGJVw== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/octicons@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/octicons/-/octicons-9.4.1.tgz#9670b6a3fc70eb80961fa0771464d8dbde18a6ea" + integrity sha512-MHiMMah2agDpmk8JcNLgeZab74TO3elM8CIYIQahrucyVbHfCY7mX1z8OOyXZwrf/hgrBKK4nUM4jf0wxk70+Q== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/open-iconic@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/open-iconic/-/open-iconic-9.5.0.tgz#03c70256244ee4a1ed422563f3ce3d0270a6beb8" + integrity sha512-mSDnCPDKYXhXY+oNfgNKMj2+ltl63k8QIC6bCDsX18bYXDqkeEwKthfNw0minabyP4Tq+yJe/B03RH+EdQWmDg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/remix-fill@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/remix-fill/-/remix-fill-9.4.1.tgz#afc7141d0c5c0606ef190b0cebe4793a4449b389" + integrity sha512-OlxQudeM/u+IAHacSVwwiuSYBDSsQNKA4gr8WSFHpy1CEciLc/hE/aNJP+SLcBETdg/C/kJIj8JNme5B8aYIeg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/remix-line@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/remix-line/-/remix-line-9.4.1.tgz#1d4fdaef53f3c366a746f054d70dcd138a4e567e" + integrity sha512-NAdR8LD7ugeUhmd6W3v+GA5/6OBexe15fjQTt1kFHYclS+2nrLQ7MA4kF5SkwsRQNGPy+3CMN5cQoMy5R8NAtQ== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/styled-icon@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/styled-icon/-/styled-icon-9.4.1.tgz#9dc236c85afd89edc2bc7265ec7858cbc35d4234" + integrity sha512-qF0E2QOcyR1e6rh1QkKGsFt9vuayhZBJEKRa8erbHpOYLRNiEmoF1dLEVVMUKjnj5jAzzk0fNd8jSz0su3kpKg== + dependencies: + "@emotion/is-prop-valid" "^0.8.6" + tslib "^1.9.3" + +"@styled-icons/typicons@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/typicons/-/typicons-9.4.1.tgz#b201080bc3985cab1f0ff0e8827350aea14cb309" + integrity sha512-gV3W836B7k7FuNjZJt2H7WYcV+wPf7L5RYJQUL99lPdvADeOUhG2hIVIKvmS4F2Tc3XbyYbRmSBPTHtu4Fcftg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/zondicons@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/zondicons/-/zondicons-9.5.0.tgz#27f184764f586f31aa9256905ab3db1cd833bfa8" + integrity sha512-26PYTzSr85tf1+P/N1zaqbLuJLG1YP9rp3QN1TsCcM19gT0Y3WzVUmiNHdv15jGO9bH/jpV9b7TjuT+1gkMPCw== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@turf/along@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/along/-/along-6.0.1.tgz#595cecdc48fc7fcfa83c940a8e3eb24d4c2e04d4" + integrity sha512-6PptAcrsFR3o0Flpktk8Vo68W2txEVTh14zjoTVu+H5docd2+pv5/upA77bg3YFBoJgAxmUFt1leDdjReJ44BQ== + dependencies: + "@turf/bearing" "6.x" + "@turf/destination" "6.x" + "@turf/distance" "6.x" + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/bearing@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/bearing/-/bearing-6.0.1.tgz#8da5d17092e571f170cde7bfb2e5b0d74923c92d" + integrity sha512-mXY1NozqV9EFfBTbUItujwfqfQF0G/Xe2fzvnZle90ekPEUfhi4Dgf5JswJTd96J9LiT8kcd6Jonp5khnx0wIg== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/destination@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/destination/-/destination-6.0.1.tgz#5275887fa96ec463f44864a2c17f0b712361794a" + integrity sha512-MroK4nRdp7as174miCAugp8Uvorhe6rZ7MJiC9Hb4+hZR7gNFJyVKmkdDDXIoCYs6MJQsx0buI+gsCpKwgww0Q== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/distance@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/distance/-/distance-6.0.1.tgz#0761f28784286e7865a427c4e7e3593569c2dea8" + integrity sha512-q7t7rWIWfkg7MP1Vt4uLjSEhe5rPfCO2JjpKmk7JC+QZKEQkuvHEqy3ejW1iC7Kw5ZcZNR3qdMGGz+6HnVwqvg== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/helpers@6.x": + version "6.1.4" + resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-6.1.4.tgz#d6fd7ebe6782dd9c87dca5559bda5c48ae4c3836" + integrity sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g== + +"@turf/invariant@6.x": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-6.1.2.tgz#6013ed6219f9ac2edada9b31e1dfa5918eb0a2f7" + integrity sha512-WU08Ph8j0J2jVGlQCKChXoCtI50BB3yEH21V++V0T4cR1T27HKCxkehV2sYMwTierfMBgjwSwDIsxnR4/2mWXg== + dependencies: + "@turf/helpers" "6.x" + "@types/babel__core@^7.1.0": version "7.1.2" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f" @@ -2312,6 +2738,16 @@ babel-plugin-react-require@^3.1.1: resolved "https://registry.yarnpkg.com/babel-plugin-react-require/-/babel-plugin-react-require-3.1.1.tgz#5c3d2564fa16b1e45212ed52519db147b1596106" integrity sha512-XFz+B0dWx41fnGnugzCWn5rOgrDHb150N5gFhUfO3BgYDCT25o4sofRtd9uUfqUHoRu+t4/r5Cr2RMPIKuCt2g== +"babel-plugin-styled-components@>= 1": + version "1.10.7" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.7.tgz#3494e77914e9989b33cc2d7b3b29527a949d635c" + integrity sha512-MBMHGcIA22996n9hZRf/UJLVVgkEOITuR2SvjHLb5dSTUyR4ZRGn+ngITapes36FI3WLxZHfRhkA1ffHxihOrg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-module-imports" "^7.0.0" + babel-plugin-syntax-jsx "^6.18.0" + lodash "^4.17.11" + babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" @@ -2347,7 +2783,7 @@ babel-plugin-syntax-flow@^6.18.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" integrity sha1-TDqyCiryaqIM0lmVw5jE63AxDI0= -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: +babel-plugin-syntax-jsx@^6.18.0, babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= @@ -2966,6 +3402,11 @@ bowser@^1.9.3: resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a" integrity sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ== +bowser@^2.7.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz#3bed854233b419b9a7422d9ee3e85504373821c9" + integrity sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA== + boxen@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" @@ -3412,6 +3853,11 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelize@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" + integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= + caniuse-api@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" @@ -4321,6 +4767,11 @@ css-blank-pseudo@^0.1.4: dependencies: postcss "^7.0.5" +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU= + css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" @@ -4408,6 +4859,15 @@ css-selector-tokenizer@^0.7.0: fastparse "^1.1.1" regexpu-core "^1.0.0" +css-to-react-native@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" + integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + css-tree@1.0.0-alpha.29: version "1.0.0-alpha.29" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" @@ -6893,6 +7353,13 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoist-non-react-statics@^3.0.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" @@ -7842,7 +8309,7 @@ isomorphic-fetch@^2.1.1, isomorphic-fetch@^2.2.1: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" -isomorphic-mapzen-search@^1.5.1: +isomorphic-mapzen-search@^1.4.1, isomorphic-mapzen-search@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/isomorphic-mapzen-search/-/isomorphic-mapzen-search-1.5.1.tgz#5ac0214cec436fb550e8ef362cf8d11b17de8e9c" integrity sha512-38GcjidOqjVQkUzDovx+ceUXHwOliIoFq+qJ/zUzaZwn2h8qEANLMTjaZkFvYN2XdSGB65zBOH5n/iP/Vs1ejA== @@ -9462,6 +9929,21 @@ meow@^4.0.0: redent "^2.0.0" trim-newlines "^2.0.0" +meow@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" + integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + yargs-parser "^10.0.0" + merge-stream@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" @@ -9757,7 +10239,14 @@ moment-timezone@^0.5.23: dependencies: moment ">= 2.9.0" -"moment@>= 2.9.0", moment@>=1.6.0, moment@^2.17.1: +moment-timezone@^0.5.27: + version "0.5.28" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.28.tgz#f093d789d091ed7b055d82aa81a82467f72e4338" + integrity sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw== + dependencies: + moment ">= 2.9.0" + +"moment@>= 2.9.0", moment@>=1.6.0, moment@^2.17.1, moment@^2.24.0: version "2.24.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== @@ -11949,6 +12438,11 @@ postcss-value-parser@^4.0.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz#99a983d365f7b2ad8d0f9b8c3094926eab4b936d" integrity sha512-ESPktioptiSUchCKgggAkzdmkgzKfmp0EU8jXH+5kbIUB+unr0Y4CY9SRMvibuvYUBjNh1ACLbxqYNpdTQOteQ== +postcss-value-parser@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d" + integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg== + postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" @@ -12296,6 +12790,11 @@ qs@^6.3.0, qs@^6.4.0, qs@^6.5.1: resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@^6.9.1: + version "6.9.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9" + integrity sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA== + qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -13722,6 +14221,11 @@ sha@^3.0.0: dependencies: graceful-fs "^4.1.2" +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + shasum@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" @@ -14369,6 +14873,52 @@ style-loader@^0.13.0: dependencies: loader-utils "^1.0.2" +styled-components@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.0.1.tgz#57782a6471031abefb2db5820a1876ae853bc619" + integrity sha512-E0xKTRIjTs4DyvC1MHu/EcCXIj6+ENCP8hP01koyoADF++WdBUOrSGwU1scJRw7/YaYOhDvvoad6VlMG+0j53A== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/traverse" "^7.4.5" + "@emotion/is-prop-valid" "^0.8.3" + "@emotion/stylis" "^0.8.4" + "@emotion/unitless" "^0.7.4" + babel-plugin-styled-components ">= 1" + css-to-react-native "^3.0.0" + hoist-non-react-statics "^3.0.0" + shallowequal "^1.1.0" + supports-color "^5.5.0" + +styled-icons@^9.1.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/styled-icons/-/styled-icons-9.5.0.tgz#d1f6c8dcc3ea81c3d30fe20dfda5d39a8afc593c" + integrity sha512-nby51U6+SRY5010P15XogBZubrqblqXTV50+lA/xBkC1QrTap1BIgCvoJwH9FF5kYI+LKFl/xeco/drwqIR2Pw== + dependencies: + "@styled-icons/boxicons-logos" "^9.4.1" + "@styled-icons/boxicons-regular" "^9.4.1" + "@styled-icons/boxicons-solid" "^9.4.1" + "@styled-icons/crypto" "^9.4.1" + "@styled-icons/entypo" "^9.5.0" + "@styled-icons/entypo-social" "^9.5.0" + "@styled-icons/evil" "^9.4.1" + "@styled-icons/fa-brands" "^9.4.1" + "@styled-icons/fa-regular" "^9.4.1" + "@styled-icons/fa-solid" "^9.4.1" + "@styled-icons/feather" "^9.4.1" + "@styled-icons/foundation" "^9.5.0" + "@styled-icons/heroicons-outline" "^9.5.0" + "@styled-icons/heroicons-solid" "^9.5.0" + "@styled-icons/icomoon" "^9.4.1" + "@styled-icons/material" "^9.4.1" + "@styled-icons/octicons" "^9.4.1" + "@styled-icons/open-iconic" "^9.5.0" + "@styled-icons/remix-fill" "^9.4.1" + "@styled-icons/remix-line" "^9.4.1" + "@styled-icons/styled-icon" "^9.4.1" + "@styled-icons/typicons" "^9.4.1" + "@styled-icons/zondicons" "^9.5.0" + tslib "^1.9.3" + stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" @@ -14407,7 +14957,7 @@ supports-color@^3.1.0, supports-color@^3.2.3: dependencies: has-flag "^1.0.0" -supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -14565,7 +15115,7 @@ throat@^4.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= -throttle-debounce@^2.0.1: +throttle-debounce@^2.0.1, throttle-debounce@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.1.0.tgz#257e648f0a56bd9e54fe0f132c4ab8611df4e1d5" integrity sha512-AOvyNahXQuU7NN+VVvOOX+uW6FPaWdAOdRP5HfwYxAfCzXTFKRMoIMk+n+po318+ktcChx+F1Dd91G3YHeMKyg== @@ -14846,6 +15396,11 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== +tslib@^1.9.3: + version "1.11.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" + integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -15946,6 +16501,13 @@ yamljs@^0.3.0: argparse "^1.0.7" glob "^7.0.5" +yargs-parser@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + dependencies: + camelcase "^4.1.0" + yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" From 7457a62d4305ebe3b2645cc457e56806073280b9 Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Sun, 1 Mar 2020 15:57:57 -0800 Subject: [PATCH 006/115] fix(mobile): disable usersettings overlay on welcome screen - this only shows up when user data is stored and shown --- lib/components/mobile/welcome-screen.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/components/mobile/welcome-screen.js b/lib/components/mobile/welcome-screen.js index 47d6ab4f0..0d2414ea5 100644 --- a/lib/components/mobile/welcome-screen.js +++ b/lib/components/mobile/welcome-screen.js @@ -3,14 +3,12 @@ import PropTypes from 'prop-types' import { connect } from 'react-redux' import MobileContainer from './container' -import UserSettings from '../form/user-settings' import LocationField from '../form/connected-location-field' import DefaultMap from '../map/default-map' import MobileNavigationBar from './navigation-bar' import { MobileScreens, setMobileScreen } from '../../actions/ui' import { setLocationToCurrent } from '../../actions/map' -import { getShowUserSettings } from '../../util/state' class MobileWelcomeScreen extends Component { static propTypes = { @@ -38,7 +36,7 @@ class MobileWelcomeScreen extends Component { } render () { - const { showUserSettings, title } = this.props + const { title } = this.props return ( @@ -52,7 +50,6 @@ class MobileWelcomeScreen extends Component {
- {showUserSettings ? : null}
) @@ -62,8 +59,7 @@ class MobileWelcomeScreen extends Component { // connect to the redux store const mapStateToProps = (state, ownProps) => { - const showUserSettings = getShowUserSettings(state.otp) - return { showUserSettings } + return {} } const mapDispatchToProps = { From 7a1a489735abdf15bc37eb74417153a301e72103 Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Sun, 1 Mar 2020 16:16:27 -0800 Subject: [PATCH 007/115] refactor(geocoder): depend on otp-ui geocoder --- .../findAddressCandidates-response.json | 154 -------- .../arcgis/reverseGeocode-response.json | 32 -- .../geocoding/arcgis/suggest-response.json | 14 - .../pelias/autocomplete-response.json | 77 ---- .../geocoding/pelias/reverse-response.json | 121 ------ .../geocoding/pelias/search-response.json | 117 ------ __tests__/util/__snapshots__/geocoder.js.snap | 350 ------------------ __tests__/util/geocoder.js | 188 ---------- lib/actions/map.js | 2 +- lib/util/geocoder.js | 318 ---------------- lib/util/index.js | 2 - package.json | 3 +- yarn.lock | 4 +- 13 files changed, 4 insertions(+), 1378 deletions(-) delete mode 100644 __tests__/test-utils/fixtures/geocoding/arcgis/findAddressCandidates-response.json delete mode 100644 __tests__/test-utils/fixtures/geocoding/arcgis/reverseGeocode-response.json delete mode 100644 __tests__/test-utils/fixtures/geocoding/arcgis/suggest-response.json delete mode 100644 __tests__/test-utils/fixtures/geocoding/pelias/autocomplete-response.json delete mode 100644 __tests__/test-utils/fixtures/geocoding/pelias/reverse-response.json delete mode 100644 __tests__/test-utils/fixtures/geocoding/pelias/search-response.json delete mode 100644 __tests__/util/__snapshots__/geocoder.js.snap delete mode 100644 __tests__/util/geocoder.js delete mode 100644 lib/util/geocoder.js diff --git a/__tests__/test-utils/fixtures/geocoding/arcgis/findAddressCandidates-response.json b/__tests__/test-utils/fixtures/geocoding/arcgis/findAddressCandidates-response.json deleted file mode 100644 index 9c63ea07f..000000000 --- a/__tests__/test-utils/fixtures/geocoding/arcgis/findAddressCandidates-response.json +++ /dev/null @@ -1,154 +0,0 @@ -{ - "spatialReference": { - "wkid": 4326, - "latestWkid": 4326 - }, - "candidates": [ - { - "address": "Mill End, Clavering, Saffron Walden, Essex, England", - "location": { - "x": 0.12961000000007061, - "y": 51.973520000000065 - }, - "score": 87.5, - "attributes": { - "Loc_name": "World", - "Status": "T", - "Score": 87.5, - "Match_addr": "Mill End, Clavering, Saffron Walden, Essex, England", - "LongLabel": "Mill End, Clavering, Saffron Walden, Essex, England, GBR", - "ShortLabel": "Mill End", - "Addr_type": "Locality", - "Type": "Village", - "PlaceName": "Mill End", - "Place_addr": "Clavering, Saffron Walden, Essex, England", - "Phone": "", - "URL": "", - "Rank": 15, - "AddBldg": "", - "AddNum": "", - "AddNumFrom": "", - "AddNumTo": "", - "AddRange": "", - "Side": "", - "StPreDir": "", - "StPreType": "", - "StName": "", - "StType": "", - "StDir": "", - "BldgType": "", - "BldgName": "", - "LevelType": "", - "LevelName": "", - "UnitType": "", - "UnitName": "", - "SubAddr": "", - "StAddr": "", - "Block": "", - "Sector": "", - "Nbrhd": "Mill End", - "District": "Clavering", - "City": "Saffron Walden", - "MetroArea": "", - "Subregion": "Essex", - "Region": "England", - "RegionAbbr": "ENG", - "Territory": "", - "Zone": "", - "Postal": "", - "PostalExt": "", - "Country": "GBR", - "LangCode": "ENG", - "Distance": 0, - "X": 0.12961000000007061, - "Y": 51.973520000000065, - "DisplayX": 0.12961000000007061, - "DisplayY": 51.973520000000065, - "Xmin": 0.11961000000007062, - "Xmax": 0.13961000000007062, - "Ymin": 51.963520000000067, - "Ymax": 51.983520000000063, - "ExInfo": "" - }, - "extent": { - "xmin": 0.11961000000007062, - "ymin": 51.963520000000067, - "xmax": 0.13961000000007062, - "ymax": 51.983520000000063 - } - }, - { - "address": "Mill End, Hambleden, Henley-on-Thames, Oxfordshire, England", - "location": { - "x": -0.86689999999993006, - "y": 51.558340000000044 - }, - "score": 87.5, - "attributes": { - "Loc_name": "World", - "Status": "T", - "Score": 87.5, - "Match_addr": "Mill End, Hambleden, Henley-on-Thames, Oxfordshire, England", - "LongLabel": "Mill End, Hambleden, Henley-on-Thames, Oxfordshire, England, GBR", - "ShortLabel": "Mill End", - "Addr_type": "Locality", - "Type": "Village", - "PlaceName": "Mill End", - "Place_addr": "Hambleden, Henley-on-Thames, Oxfordshire, England", - "Phone": "", - "URL": "", - "Rank": 15, - "AddBldg": "", - "AddNum": "", - "AddNumFrom": "", - "AddNumTo": "", - "AddRange": "", - "Side": "", - "StPreDir": "", - "StPreType": "", - "StName": "", - "StType": "", - "StDir": "", - "BldgType": "", - "BldgName": "", - "LevelType": "", - "LevelName": "", - "UnitType": "", - "UnitName": "", - "SubAddr": "", - "StAddr": "", - "Block": "", - "Sector": "", - "Nbrhd": "Mill End", - "District": "Hambleden", - "City": "Henley-on-Thames", - "MetroArea": "", - "Subregion": "Oxfordshire", - "Region": "England", - "RegionAbbr": "ENG", - "Territory": "", - "Zone": "", - "Postal": "", - "PostalExt": "", - "Country": "GBR", - "LangCode": "ENG", - "Distance": 0, - "X": -0.86689999999993006, - "Y": 51.558340000000044, - "DisplayX": -0.86689999999993006, - "DisplayY": 51.558340000000044, - "Xmin": -0.87689999999993007, - "Xmax": -0.85689999999993005, - "Ymin": 51.548340000000046, - "Ymax": 51.568340000000042, - "ExInfo": "" - }, - "extent": { - "xmin": -0.87689999999993007, - "ymin": 51.548340000000046, - "xmax": -0.85689999999993005, - "ymax": 51.568340000000042 - } - } - ] -} diff --git a/__tests__/test-utils/fixtures/geocoding/arcgis/reverseGeocode-response.json b/__tests__/test-utils/fixtures/geocoding/arcgis/reverseGeocode-response.json deleted file mode 100644 index 2b73a1e4c..000000000 --- a/__tests__/test-utils/fixtures/geocoding/arcgis/reverseGeocode-response.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "address": { - "Match_addr": "SW Naito Pkwy, Portland, Oregon, 97204", - "LongLabel": "SW Naito Pkwy, Portland, OR, 97204, USA", - "ShortLabel": "SW Naito Pkwy", - "Addr_type": "StreetName", - "Type": "", - "PlaceName": "", - "AddNum": "", - "Address": "SW Naito Pkwy", - "Block": "", - "Sector": "", - "Neighborhood": "Downtown", - "District": "", - "City": "Portland", - "MetroArea": "Portland-Vancouver Metro Area", - "Subregion": "Multnomah County", - "Region": "Oregon", - "Territory": "", - "Postal": "97204", - "PostalExt": "", - "CountryCode": "USA" - }, - "location": { - "x": -122.67320084756255, - "y": 45.516175523600715, - "spatialReference": { - "wkid": 4326, - "latestWkid": 4326 - } - } -} diff --git a/__tests__/test-utils/fixtures/geocoding/arcgis/suggest-response.json b/__tests__/test-utils/fixtures/geocoding/arcgis/suggest-response.json deleted file mode 100644 index 61c72abaf..000000000 --- a/__tests__/test-utils/fixtures/geocoding/arcgis/suggest-response.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "suggestions": [ - { - "text": "Mill Ends City Park, Portland, OR, USA", - "magicKey": "dHA9MCNsb2M9ODU3OTE0NyNsbmc9MzMjcGw9MzI4OTA3MSNsYnM9MTQ6MjAwNTI3NTc=", - "isCollection": false - }, - { - "text": "Mill End Sports & Social, Penn Road, Mill End, Rickmansworth, Hertfordshire, England, WD3 8, GBR", - "magicKey": "dHA9MCNsb2M9OTY5Mzc0MiNsbmc9MzMjcGw9NTA4NTQ2NiNsYnM9MTQ6MjAwNTI3NTI=", - "isCollection": false - } - ] -} diff --git a/__tests__/test-utils/fixtures/geocoding/pelias/autocomplete-response.json b/__tests__/test-utils/fixtures/geocoding/pelias/autocomplete-response.json deleted file mode 100644 index ea9758c84..000000000 --- a/__tests__/test-utils/fixtures/geocoding/pelias/autocomplete-response.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "geocoding": { - "version": "0.2", - "attribution": "http://lb-st-mapgeo.tri-met.org:4000/attribution", - "query": { - "text": "Mill Ends", - "parser": "addressit", - "parsed_text": {}, - "tokens": [ - "Mill", - "Ends" - ], - "size": 10, - "private": false, - "focus.point.lat": 45.52, - "focus.point.lon": -122.67, - "lang": { - "name": "English", - "iso6391": "en", - "iso6393": "eng", - "defaulted": true - } - }, - "warnings": [ - "Invalid Parameter: api_key" - ], - "engine": { - "name": "Pelias", - "author": "Mapzen", - "version": "1.0" - }, - "timestamp": 1563948844191 - }, - "type": "FeatureCollection", - "features": [{ - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - -122.673377, - 45.516278 - ] - }, - "properties": { - "id": "node/4243944023", - "gid": "openstreetmap:venue:node/4243944023", - "layer": "venue", - "source": "openstreetmap", - "source_id": "node/4243944023", - "name": "Mill Ends Park", - "distance": 0.491, - "accuracy": "point", - "country": "United States", - "country_gid": "whosonfirst:country:85633793", - "country_a": "USA", - "region": "Oregon", - "region_gid": "whosonfirst:region:85688513", - "region_a": "OR", - "county": "Multnomah County", - "county_gid": "whosonfirst:county:102081631", - "county_a": "MU", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "label": "Mill Ends Park, Portland, OR, USA" - } - }], - "bbox": [ - -122.673377, - 45.516278, - -122.673377, - 45.516278 - ] -} diff --git a/__tests__/test-utils/fixtures/geocoding/pelias/reverse-response.json b/__tests__/test-utils/fixtures/geocoding/pelias/reverse-response.json deleted file mode 100644 index 0516458c4..000000000 --- a/__tests__/test-utils/fixtures/geocoding/pelias/reverse-response.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "geocoding": { - "version": "0.2", - "attribution": "http://lb-st-mapgeo.tri-met.org:4000/attribution", - "query": { - "size": 10, - "private": false, - "point.lat": 45.516198, - "point.lon": -122.67324, - "boundary.circle.lat": 45.516198, - "boundary.circle.lon": -122.67324, - "lang": { - "name": "English", - "iso6391": "en", - "iso6393": "eng", - "defaulted": true - }, - "querySize": 20 - }, - "warnings": [ - "Invalid Parameter: api_key" - ], - "engine": { - "name": "Pelias", - "author": "Mapzen", - "version": "1.0" - }, - "timestamp": 1563949092620 - }, - "type": "FeatureCollection", - "features": [{ - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - -122.673245, - 45.516201 - ] - }, - "properties": { - "id": "way/156366633", - "gid": "openstreetmap:venue:way/156366633", - "layer": "venue", - "source": "openstreetmap", - "source_id": "way/156366633", - "name": "Mill Ends Park", - "confidence": 0.9, - "distance": 0.001, - "accuracy": "point", - "country": "United States", - "country_gid": "whosonfirst:country:85633793", - "country_a": "USA", - "region": "Oregon", - "region_gid": "whosonfirst:region:85688513", - "region_a": "OR", - "county": "Multnomah County", - "county_gid": "whosonfirst:county:102081631", - "county_a": "MU", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "label": "Mill Ends Park, Portland, OR, USA" - }, - "bbox": [ - -122.6732557, - 45.5161964, - -122.673234, - 45.5162067 - ] - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - -122.673609, - 45.516337 - ] - }, - "properties": { - "id": "us/or/portland_metro:bd3f9863242e4ec7", - "gid": "openaddresses:address:us/or/portland_metro:bd3f9863242e4ec7", - "layer": "address", - "source": "openaddresses", - "source_id": "us/or/portland_metro:bd3f9863242e4ec7", - "name": "833 SW Naito Pkwy", - "housenumber": "833", - "street": "SW Naito Pkwy", - "postalcode": "97204", - "confidence": 0.8, - "distance": 0.033, - "accuracy": "point", - "country": "United States", - "country_gid": "whosonfirst:country:85633793", - "country_a": "USA", - "region": "Oregon", - "region_gid": "whosonfirst:region:85688513", - "region_a": "OR", - "county": "Multnomah County", - "county_gid": "whosonfirst:county:102081631", - "county_a": "MU", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "label": "833 SW Naito Pkwy, Portland, OR, USA" - } - } - ], - "bbox": [ - -122.673883, - 45.5161964, - -122.673234, - 45.516689 - ] -} diff --git a/__tests__/test-utils/fixtures/geocoding/pelias/search-response.json b/__tests__/test-utils/fixtures/geocoding/pelias/search-response.json deleted file mode 100644 index 61e6407a6..000000000 --- a/__tests__/test-utils/fixtures/geocoding/pelias/search-response.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "geocoding": { - "version": "0.2", - "attribution": "http://lb-st-mapgeo.tri-met.org:4000/attribution", - "query": { - "text": "Mill Ends", - "size": 10, - "private": false, - "focus.point.lat": 45.52, - "focus.point.lon": -122.67, - "lang": { - "name": "English", - "iso6391": "en", - "iso6393": "eng", - "defaulted": true - }, - "querySize": 20, - "parser": "addressit", - "parsed_text": {} - }, - "warnings": [ - "Invalid Parameter: api_key" - ], - "engine": { - "name": "Pelias", - "author": "Mapzen", - "version": "1.0" - }, - "timestamp": 1563949031708 - }, - "type": "FeatureCollection", - "features": [{ - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - -122.673377, - 45.516278 - ] - }, - "properties": { - "id": "node/4243944023", - "gid": "openstreetmap:venue:node/4243944023", - "layer": "venue", - "source": "openstreetmap", - "source_id": "node/4243944023", - "name": "Mill Ends Park", - "confidence": 1, - "match_type": "exact", - "distance": 0.491, - "accuracy": "point", - "country": "United States", - "country_gid": "whosonfirst:country:85633793", - "country_a": "USA", - "region": "Oregon", - "region_gid": "whosonfirst:region:85688513", - "region_a": "OR", - "county": "Multnomah County", - "county_gid": "whosonfirst:county:102081631", - "county_a": "MU", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "label": "Mill Ends Park, Portland, OR, USA" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - -122.681441, - 45.511851 - ] - }, - "properties": { - "id": "2584-1136::TRIMET::station", - "gid": "transit:station:2584-1136::TRIMET::station", - "layer": "station", - "source": "transit", - "source_id": "2584-1136::trimet::station", - "name": "PSU Urban Center/SW 5th & Mill MAX Station", - "street": "SW 5th & Mill", - "postalcode": "97201", - "confidence": 1, - "match_type": "exact", - "distance": 1.273, - "accuracy": "centroid", - "country": "United States", - "country_gid": "whosonfirst:country:85633793", - "country_a": "USA", - "region": "Oregon", - "region_gid": "whosonfirst:region:85688513", - "region_a": "OR", - "county": "Multnomah County", - "county_gid": "whosonfirst:county:102081631", - "county_a": "MU", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "label": "PSU Urban Center/SW 5th & Mill MAX Station, Portland, OR, USA" - } - } - ], - "bbox": [ - -122.821522, - 45.495264, - -122.475528, - 45.516278 - ] -} diff --git a/__tests__/util/__snapshots__/geocoder.js.snap b/__tests__/util/__snapshots__/geocoder.js.snap deleted file mode 100644 index 0ec26af09..000000000 --- a/__tests__/util/__snapshots__/geocoder.js.snap +++ /dev/null @@ -1,350 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`geocoder ARCGIS should get location from geocode feature 1`] = ` -Object { - "lat": 51.973520000000065, - "lon": 0.1296100000000706, - "name": "Mill End, Clavering, Saffron Walden, Essex, England, GBR", -} -`; - -exports[`geocoder ARCGIS should make autocomplete query 1`] = ` -Object { - "features": Array [ - Object { - "isCollection": false, - "magicKey": "dHA9MCNsb2M9ODU3OTE0NyNsbmc9MzMjcGw9MzI4OTA3MSNsYnM9MTQ6MjAwNTI3NTc=", - "properties": Object { - "label": "Mill Ends City Park, Portland, OR, USA", - }, - "text": "Mill Ends City Park, Portland, OR, USA", - }, - Object { - "isCollection": false, - "magicKey": "dHA9MCNsb2M9OTY5Mzc0MiNsbmc9MzMjcGw9NTA4NTQ2NiNsYnM9MTQ6MjAwNTI3NTI=", - "properties": Object { - "label": "Mill End Sports & Social, Penn Road, Mill End, Rickmansworth, Hertfordshire, England, WD3 8, GBR", - }, - "text": "Mill End Sports & Social, Penn Road, Mill End, Rickmansworth, Hertfordshire, England, WD3 8, GBR", - }, - ], -} -`; - -exports[`geocoder ARCGIS should make reverse query 1`] = ` -Object { - "lat": 45.516198, - "lon": -122.67324, - "name": "SW Naito Pkwy, Portland, OR, 97204, USA", -} -`; - -exports[`geocoder ARCGIS should make search query 1`] = ` -Object { - "features": Array [ - Object { - "geometry": Object { - "coordinates": Array [ - 0.1296100000000706, - 51.973520000000065, - ], - "type": "point", - }, - "properties": Object { - "confidence": 0.875, - "country": "GBR", - "country_a": "GBR", - "county": "Essex", - "label": "Mill End, Clavering, Saffron Walden, Essex, England, GBR", - "locality": "Saffron Walden", - "name": "Mill End", - "neighbourhood": "Mill End", - "region": "England", - "resultId": undefined, - }, - "type": "feature", - }, - Object { - "geometry": Object { - "coordinates": Array [ - -0.8668999999999301, - 51.558340000000044, - ], - "type": "point", - }, - "properties": Object { - "confidence": 0.875, - "country": "GBR", - "country_a": "GBR", - "county": "Oxfordshire", - "label": "Mill End, Hambleden, Henley-on-Thames, Oxfordshire, England, GBR", - "locality": "Henley-on-Thames", - "name": "Mill End", - "neighbourhood": "Mill End", - "region": "England", - "resultId": undefined, - }, - "type": "feature", - }, - ], - "query": Object { - "text": "Mill Ends", - }, -} -`; - -exports[`geocoder NoApiGeocoder should get location from geocode feature 1`] = ` -Object { - "lat": 45.516198, - "lon": -122.67324, - "name": "45.516198, -122.673240", -} -`; - -exports[`geocoder NoApiGeocoder should make autocomplete query 1`] = ` -Object { - "features": Array [], -} -`; - -exports[`geocoder NoApiGeocoder should make reverse query 1`] = ` -Object { - "lat": 45.5162, - "lon": -122.67324, - "name": "45.5162, -122.67324", -} -`; - -exports[`geocoder NoApiGeocoder should make search query 1`] = ` -Object { - "features": Array [], -} -`; - -exports[`geocoder PELIAS should get location from geocode feature 1`] = ` -Object { - "lat": 45.516198, - "lon": -122.67324, - "name": "Mill Ends Park, Portland, OR, USA", -} -`; - -exports[`geocoder PELIAS should make autocomplete query 1`] = ` -Object { - "bbox": Array [ - -122.673377, - 45.516278, - -122.673377, - 45.516278, - ], - "features": Array [ - Object { - "geometry": Object { - "coordinates": Array [ - -122.673377, - 45.516278, - ], - "type": "Point", - }, - "properties": Object { - "accuracy": "point", - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "country": "United States", - "country_a": "USA", - "country_gid": "whosonfirst:country:85633793", - "county": "Multnomah County", - "county_a": "MU", - "county_gid": "whosonfirst:county:102081631", - "distance": 0.491, - "gid": "openstreetmap:venue:node/4243944023", - "id": "node/4243944023", - "label": "Mill Ends Park, Portland, OR, USA", - "layer": "venue", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "name": "Mill Ends Park", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "region": "Oregon", - "region_a": "OR", - "region_gid": "whosonfirst:region:85688513", - "source": "openstreetmap", - "source_id": "node/4243944023", - }, - "type": "Feature", - }, - ], - "geocoding": Object { - "attribution": "http://lb-st-mapgeo.tri-met.org:4000/attribution", - "engine": Object { - "author": "Mapzen", - "name": "Pelias", - "version": "1.0", - }, - "query": Object { - "focus.point.lat": 45.52, - "focus.point.lon": -122.67, - "lang": Object { - "defaulted": true, - "iso6391": "en", - "iso6393": "eng", - "name": "English", - }, - "parsed_text": Object {}, - "parser": "addressit", - "private": false, - "size": 10, - "text": "Mill Ends", - "tokens": Array [ - "Mill", - "Ends", - ], - }, - "timestamp": 1563948844191, - "version": "0.2", - "warnings": Array [ - "Invalid Parameter: api_key", - ], - }, - "isomorphicMapzenSearchQuery": Object { - "api_key": "dummy-mapzen-key", - "text": "Mill Ends", - }, - "type": "FeatureCollection", -} -`; - -exports[`geocoder PELIAS should make reverse query 1`] = ` -Object { - "lat": 45.516198, - "lon": -122.67324, - "name": "Mill Ends Park, Portland, OR, USA", -} -`; - -exports[`geocoder PELIAS should make search query 1`] = ` -Object { - "bbox": Array [ - -122.821522, - 45.495264, - -122.475528, - 45.516278, - ], - "features": Array [ - Object { - "geometry": Object { - "coordinates": Array [ - -122.673377, - 45.516278, - ], - "type": "Point", - }, - "properties": Object { - "accuracy": "point", - "confidence": 1, - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "country": "United States", - "country_a": "USA", - "country_gid": "whosonfirst:country:85633793", - "county": "Multnomah County", - "county_a": "MU", - "county_gid": "whosonfirst:county:102081631", - "distance": 0.491, - "gid": "openstreetmap:venue:node/4243944023", - "id": "node/4243944023", - "label": "Mill Ends Park, Portland, OR, USA", - "layer": "venue", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "match_type": "exact", - "name": "Mill Ends Park", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "region": "Oregon", - "region_a": "OR", - "region_gid": "whosonfirst:region:85688513", - "source": "openstreetmap", - "source_id": "node/4243944023", - }, - "type": "Feature", - }, - Object { - "geometry": Object { - "coordinates": Array [ - -122.681441, - 45.511851, - ], - "type": "Point", - }, - "properties": Object { - "accuracy": "centroid", - "confidence": 1, - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "country": "United States", - "country_a": "USA", - "country_gid": "whosonfirst:country:85633793", - "county": "Multnomah County", - "county_a": "MU", - "county_gid": "whosonfirst:county:102081631", - "distance": 1.273, - "gid": "transit:station:2584-1136::TRIMET::station", - "id": "2584-1136::TRIMET::station", - "label": "PSU Urban Center/SW 5th & Mill MAX Station, Portland, OR, USA", - "layer": "station", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "match_type": "exact", - "name": "PSU Urban Center/SW 5th & Mill MAX Station", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "postalcode": "97201", - "region": "Oregon", - "region_a": "OR", - "region_gid": "whosonfirst:region:85688513", - "source": "transit", - "source_id": "2584-1136::trimet::station", - "street": "SW 5th & Mill", - }, - "type": "Feature", - }, - ], - "geocoding": Object { - "attribution": "http://lb-st-mapgeo.tri-met.org:4000/attribution", - "engine": Object { - "author": "Mapzen", - "name": "Pelias", - "version": "1.0", - }, - "query": Object { - "focus.point.lat": 45.52, - "focus.point.lon": -122.67, - "lang": Object { - "defaulted": true, - "iso6391": "en", - "iso6393": "eng", - "name": "English", - }, - "parsed_text": Object {}, - "parser": "addressit", - "private": false, - "querySize": 20, - "size": 10, - "text": "Mill Ends", - }, - "timestamp": 1563949031708, - "version": "0.2", - "warnings": Array [ - "Invalid Parameter: api_key", - ], - }, - "isomorphicMapzenSearchQuery": Object { - "api_key": "dummy-mapzen-key", - "size": 10, - "text": "Mill Ends", - }, - "type": "FeatureCollection", -} -`; diff --git a/__tests__/util/geocoder.js b/__tests__/util/geocoder.js deleted file mode 100644 index ada6e8601..000000000 --- a/__tests__/util/geocoder.js +++ /dev/null @@ -1,188 +0,0 @@ -import nock from 'nock' - -import getGeocoder, { PeliasGeocoder } from '../../lib/util/geocoder' - -function mockResponsePath (geocoder, file) { - return `__tests__/test-utils/fixtures/geocoding/${geocoder}/${file}` -} - -describe('geocoder', () => { - const geocoders = [ - { - type: 'ARCGIS' - }, { - apiKey: 'dummy-mapzen-key', - baseUrl: 'https://ws-st.trimet.org/pelias/v1', - type: 'PELIAS' - }, - // this entry represents no geocoder configuration. In this case it is - // expected that the NoApiGeocoder will be used. - undefined - ] - - // nocks for ARCGIS - const baseArcGisPath = '/arcgis/rest/services/World/GeocodeServer/' - nock('https://geocode.arcgis.com') - // autocomplete - .get(`${baseArcGisPath}suggest`) - .query(true) - .replyWithFile(200, mockResponsePath('arcgis', 'suggest-response.json')) - // reverse - .get(`${baseArcGisPath}reverseGeocode`) - .query(true) - .replyWithFile(200, mockResponsePath('arcgis', 'reverseGeocode-response.json')) - // search - .get(`${baseArcGisPath}findAddressCandidates`) - .query(true) - .replyWithFile(200, mockResponsePath('arcgis', 'findAddressCandidates-response.json')) - // a 2nd search for purposes of resolving getLocationFromGeocodedFeature test - .get(`${baseArcGisPath}findAddressCandidates`) - .query(true) - .replyWithFile(200, mockResponsePath('arcgis', 'findAddressCandidates-response.json')) - - // nocks for PELIAS - const basePeliasPath = '/pelias/v1/' - nock('https://ws-st.trimet.org') - // autocomplete - .get(`${basePeliasPath}autocomplete`) - .query(true) - .replyWithFile(200, mockResponsePath('pelias', 'autocomplete-response.json')) - // reverse - .get(`${basePeliasPath}search`) - .query(true) - .replyWithFile(200, mockResponsePath('pelias', 'search-response.json')) - // search - .get(`${basePeliasPath}reverse`) - .query(true) - .replyWithFile(200, mockResponsePath('pelias', 'reverse-response.json')) - - geocoders.forEach(geocoder => { - const geocoderType = geocoder - ? geocoder.type - : 'NoApiGeocoder' - // the describe is in quotes to bypass a lint rule - describe(`${geocoderType}`, () => { - it('should make autocomplete query', async () => { - const result = await getGeocoder(geocoder).autocomplete({ text: 'Mill Ends' }) - expect(result).toMatchSnapshot() - }) - - it('should make search query', async () => { - const result = await getGeocoder(geocoder).search({ text: 'Mill Ends' }) - expect(result).toMatchSnapshot() - }) - - it('should make reverse query', async () => { - const result = await getGeocoder(geocoder) - .reverse({ point: { lat: 45.516198, lon: -122.673240 } }) - expect(result).toMatchSnapshot() - }) - - it('should get location from geocode feature', async () => { - let mockFeature - switch (geocoderType) { - case 'ARCGIS': - mockFeature = { - magicKey: 'abcd', - properties: { - label: 'Mill Ends City Park, Portland, OR, USA' - }, - text: 'Mill Ends City Park, Portland, OR, USA' - } - break - case 'PELIAS': - mockFeature = { - geometry: { - coordinates: [-122.673240, 45.516198], - type: 'Point' - }, - properties: { - label: 'Mill Ends Park, Portland, OR, USA' - } - } - break - case 'NoApiGeocoder': - mockFeature = { - geometry: { - coordinates: [-122.673240, 45.516198], - type: 'Point' - }, - properties: { - label: '45.516198, -122.673240' - } - } - break - default: - throw new Error(`no mock feature defined for geocoder type: ${geocoder.type}`) - } - const result = await getGeocoder(geocoder).getLocationFromGeocodedFeature(mockFeature) - expect(result).toMatchSnapshot() - }) - - // geocoder-specific tests - if (geocoderType === 'PELIAS') { - const mockSources = 'gn,oa,osm,wof' - - // sources should not be sent unless they are explicitly defined in the - // query. See https://github.com/ibi-group/trimet-mod-otp/issues/239 - it('should not send sources in autocomplete by default', () => { - // create mock API to check query - const mockPeliasAPI = { - autocomplete: query => { - expect(query.sources).not.toBe(expect.anything()) - return Promise.resolve() - } - } - const pelias = new PeliasGeocoder(mockPeliasAPI, geocoder) - pelias.autocomplete({ text: 'Mill Ends' }) - }) - - // should send sources if they're defined in the config - it('should send sources in autocomplete if defined in config', () => { - // create mock API to check query - const mockPeliasAPI = { - autocomplete: query => { - expect(query.sources).toBe(mockSources) - return Promise.resolve() - } - } - const pelias = new PeliasGeocoder( - mockPeliasAPI, - { ...geocoder, sources: mockSources } - ) - pelias.autocomplete({ text: 'Mill Ends' }) - }) - - // sources should not be sent unless they are explicitly defined in the - // query. See https://github.com/ibi-group/trimet-mod-otp/issues/239 - it('should not send sources in search by default', () => { - // create mock API to check query - const mockPeliasAPI = { - search: query => { - expect(query.sources).not.toBe(expect.anything()) - return Promise.resolve() - } - } - const pelias = new PeliasGeocoder(mockPeliasAPI, geocoder) - pelias.search({ text: 'Mill Ends' }) - }) - - // should send sources if they're defined in the config - it('should send sources in search if defined in config', () => { - // create mock API to check query - const mockPeliasAPI = { - search: query => { - expect(query.sources).toBe(mockSources) - return Promise.resolve() - } - } - const pelias = new PeliasGeocoder( - mockPeliasAPI, - { ...geocoder, sources: mockSources } - ) - pelias.search({ text: 'Mill Ends' }) - }) - } - }) - }) -}) diff --git a/lib/actions/map.js b/lib/actions/map.js index afd409141..0de7887b0 100644 --- a/lib/actions/map.js +++ b/lib/actions/map.js @@ -1,8 +1,8 @@ +import getGeocoder from '@opentripplanner/geocoder' import { createAction } from 'redux-actions' import { routingQuery } from './api' import { clearActiveSearch } from './form' -import getGeocoder from '../util/geocoder' /* SET_LOCATION action creator. Updates a from or to location in the store * diff --git a/lib/util/geocoder.js b/lib/util/geocoder.js deleted file mode 100644 index c6ac8d6cf..000000000 --- a/lib/util/geocoder.js +++ /dev/null @@ -1,318 +0,0 @@ -import * as arcgis from '@conveyal/geocoder-arcgis-geojson' -import lonlat from '@conveyal/lonlat' -import * as pelias from 'isomorphic-mapzen-search' -import memoize from 'lodash.memoize' - -/** - * Create customized geocoder functions given a certain geocoding API, the - * config for the geocoder and response rewrite functions specific to this - * application. Any geocoder api that is added is expected to have an API that - * behaves very closely to https://github.com/conveyal/isomorphic-mapzen-search - */ -class Geocoder { - constructor (geocoderApi, geocoderConfig) { - this.api = geocoderApi - this.geocoderConfig = geocoderConfig - } - - /** - * Perform an autocomplete query. Eg, using partial text of a possible - * address or POI, attempt to find possible matches. - */ - autocomplete (query) { - return this.api.autocomplete(this.getAutocompleteQuery(query)) - .then(this.rewriteAutocompleteResponse) - } - - /** - * Get an application-specific data structure from a given feature. The - * feature is either the result of an autocomplete or a search query. This - * function returns a Promise because sometimes an asynchronous action - * needs to be taken to translate a feature into a location. For example, - * the ArcGIS autocomplete service returns results that lack full address - * data and GPS and it is expected that an extra call to the `search` API is - * done to obtain that detailed data. - */ - getLocationFromGeocodedFeature (feature) { - const location = lonlat.fromCoordinates(feature.geometry.coordinates) - location.name = feature.properties.label - return Promise.resolve(location) - } - - /** - * Do a reverse-geocode. ie get address information and attributes given a - * GPS coordiante. - */ - reverse (query) { - return this.api.reverse(this.getReverseQuery(query)) - .then(this.rewriteReverseResponse) - } - - /** - * Perform a search query. A search query is different from autocomplete in - * that it is assumed that the text provided is more or less a complete - * well-fromatted address. - */ - search (query) { - return this.api.search(this.getSearchQuery(query)) - .then(this.rewriteSearchResponse) - } - - /** - * Default autocomplete query generator - */ - getAutocompleteQuery (query) { - const {apiKey, baseUrl, boundary, options, focusPoint} = this.geocoderConfig - return { - apiKey, - boundary, - focusPoint, - options, - url: baseUrl ? `${baseUrl}/autocomplete` : undefined, - ...query - } - } - - /** - * Default reverse query generator - */ - getReverseQuery (query) { - const {apiKey, baseUrl, options} = this.geocoderConfig - return { - apiKey, - format: true, - options, - url: baseUrl ? `${baseUrl}/reverse` : undefined, - ...query - } - } - - /** - * Default search query generator. - */ - getSearchQuery (query) { - const {apiKey, baseUrl, boundary, focusPoint, options} = this.geocoderConfig - return { - apiKey, - boundary, - focusPoint, - options, - url: baseUrl ? `${baseUrl}/search` : undefined, - format: false, // keep as returned GeoJSON, - ...query - } - } - - /** - * Default rewriter for autocomplete responses - */ - rewriteAutocompleteResponse (response) { return response } - - /** - * Default rewriter for reverse responses - */ - rewriteReverseResponse (response) { return response } - - /** - * Default rewriter for search responses - */ - rewriteSearchResponse (response) { return response } -} - -/** - * Geocoder implementation for the ArcGIS geocoder. - * See https://developers.arcgis.com/rest/geocode/api-reference/overview-world-geocoding-service.htm - * - * @extends Geocoder - */ -class ArcGISGeocoder extends Geocoder { - /** - * Using the given magicKey and text, perform a search query to get detailed - * address and GPS data. Return data in an application-specific location - * format. - */ - getLocationFromGeocodedFeature (feature) { - return this.api.search({ magicKey: feature.magicKey, text: feature.text }) - .then(response => { - const feature = response.features[0] - const location = lonlat.fromCoordinates(feature.geometry.coordinates) - location.name = feature.properties.label - return location - }) - } - - /** - * Rewrite an autocomplete response into an application specific data format. - * Also, filter out any results that are collections. - */ - rewriteAutocompleteResponse (response) { - return { - // remove any autocomplete results that are collections - // (eg multiple Starbucks) - features: response.features.filter(feature => !feature.isCollection) - // add label property so location-field can handle things ok - .map(feature => ({ - ...feature, - properties: { - label: feature.text - } - })) - } - } - - /** - * Rewrite the response into an application-specific data format using the - * first feature returned from the geocoder. - */ - rewriteReverseResponse (response) { - const { features, query } = response - const { lat, lon } = query - return { - lat, - lon, - name: features[0].properties.label - } - } -} - -/** - * An implementation that doesn't use an API for geocoding. Merely allows - * clicking on the map and finding GPS coordinates by typing them in. - * - * @extends Geocoder - */ -class NoApiGeocoder extends Geocoder { - /** - * Use coordinate string parser. - */ - autocomplete (query) { - return this.parseCoordinateString(query.text) - } - - /** - * Always return the lat/lon. - */ - reverse (query) { - let { lat, lon } = query.point - lat = this.roundGPSDecimal(lat) - lon = this.roundGPSDecimal(lon) - return Promise.resolve({ lat, lon, name: `${lat}, ${lon}` }) - } - - /** - * Use coordinate string parser. - */ - search (query) { - return this.parseCoordinateString(query.text) - } - - /** - * Attempt to parse the input as a GPS coordinate. If parseable, return a - * feature. - */ - parseCoordinateString (string) { - let feature - try { - feature = { - geometry: { - coordinates: lonlat.toCoordinates(lonlat.fromLatFirstString(string)), - type: 'Point' - }, - properties: { - label: string - } - } - } catch (e) { - return Promise.resolve({ features: [] }) - } - return Promise.resolve({ features: [feature] }) - } - - roundGPSDecimal (number) { - const roundFactor = 100000 - return Math.round(number * roundFactor) / roundFactor - } -} - -/** - * Geocoder implementation for the Pelias geocoder. - * See https://pelias.io - * - * This is exported for testing purposes only. - * - * @extends Geocoder - */ -export class PeliasGeocoder extends Geocoder { - /** - * Generate an autocomplete query specifically for the Pelias API. The - * `sources` parameter is a Pelias-specific option. - */ - getAutocompleteQuery (query) { - const {apiKey, baseUrl, boundary, focusPoint, options, sources} = this.geocoderConfig - return { - apiKey, - boundary, - focusPoint, - options, - // explicitly send over null for sources if provided sources is not truthy - // in order to avoid default isomorphic-mapzen-search sources form being - // applied - sources: sources || null, - url: baseUrl ? `${baseUrl}/autocomplete` : undefined, - ...query - } - } - - /** - * Generate a search query specifically for the Pelias API. The - * `sources` parameter is a Pelias-specific option. - */ - getSearchQuery (query) { - const {apiKey, baseUrl, boundary, focusPoint, options, sources} = this.geocoderConfig - return { - apiKey, - boundary, - focusPoint, - // explicitly send over null for sources if provided sources is not truthy - // in order to avoid default isomorphic-mapzen-search sources form being - // applied - options, - sources: sources || null, - url: baseUrl ? `${baseUrl}/search` : undefined, - format: false, // keep as returned GeoJSON, - ...query - } - } - - /** - * Rewrite the response into an application-specific data format using the - * first feature returned from the geocoder. - */ - rewriteReverseResponse (response) { - const { 'point.lat': lat, 'point.lon': lon } = response.isomorphicMapzenSearchQuery - return { - lat, - lon, - name: response[0].address - } - } -} - -// Create a memoized getter to avoid recreating new geocoders each time. -const getGeocoder = memoize(geocoderConfig => { - if (!geocoderConfig || !geocoderConfig.type) { - return new NoApiGeocoder() - } - const {type} = geocoderConfig - switch (type) { - case 'ARCGIS': - return new ArcGISGeocoder(arcgis, geocoderConfig) - case 'PELIAS': - return new PeliasGeocoder(pelias, geocoderConfig) - default: - console.error(`Unkown geocoder type: "${type}". Using NoApiGeocoder.`) - return new NoApiGeocoder() - } -}) - -export default getGeocoder diff --git a/lib/util/index.js b/lib/util/index.js index b04bbc761..8d225a961 100644 --- a/lib/util/index.js +++ b/lib/util/index.js @@ -1,5 +1,4 @@ import * as distance from './distance' -import getGeocoder from './geocoder' import * as itinerary from './itinerary' import * as map from './map' import * as profile from './profile' @@ -11,7 +10,6 @@ import * as ui from './ui' const OtpUtils = { distance, - getGeocoder, itinerary, map, profile, diff --git a/package.json b/package.json index 00b272720..c8c983978 100644 --- a/package.json +++ b/package.json @@ -27,10 +27,10 @@ }, "homepage": "https://github.com/opentripplanner/otp-react-redux#readme", "dependencies": { - "@conveyal/geocoder-arcgis-geojson": "^0.0.2", "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", "@opentripplanner/from-to-location-picker": "^0.0.14", + "@opentripplanner/geocoder": "^0.0.16", "@opentripplanner/location-field": "^0.0.16", "bootstrap": "^3.3.7", "bowser": "^1.9.3", @@ -46,7 +46,6 @@ "history": "^4.7.2", "immutability-helper": "^2.1.1", "isomorphic-fetch": "^2.2.1", - "isomorphic-mapzen-search": "^1.5.1", "leaflet": "^1.5.1", "leaflet.polylinemeasure": "github:ppete2/Leaflet.PolylineMeasure", "lodash.debounce": "^4.0.8", diff --git a/yarn.lock b/yarn.lock index bb5084d0a..fe44815a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8309,7 +8309,7 @@ isomorphic-fetch@^2.1.1, isomorphic-fetch@^2.2.1: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" -isomorphic-mapzen-search@^1.4.1, isomorphic-mapzen-search@^1.5.1: +isomorphic-mapzen-search@^1.4.1: version "1.5.1" resolved "https://registry.yarnpkg.com/isomorphic-mapzen-search/-/isomorphic-mapzen-search-1.5.1.tgz#5ac0214cec436fb550e8ef362cf8d11b17de8e9c" integrity sha512-38GcjidOqjVQkUzDovx+ceUXHwOliIoFq+qJ/zUzaZwn2h8qEANLMTjaZkFvYN2XdSGB65zBOH5n/iP/Vs1ejA== @@ -15115,7 +15115,7 @@ throat@^4.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= -throttle-debounce@^2.0.1, throttle-debounce@^2.1.0: +throttle-debounce@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.1.0.tgz#257e648f0a56bd9e54fe0f132c4ab8611df4e1d5" integrity sha512-AOvyNahXQuU7NN+VVvOOX+uW6FPaWdAOdRP5HfwYxAfCzXTFKRMoIMk+n+po318+ktcChx+F1Dd91G3YHeMKyg== From 984e0c8a666ed039b1cc595ccc463fd7fbda9644 Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Sun, 1 Mar 2020 16:19:51 -0800 Subject: [PATCH 008/115] refactor(location): remove some stuff no longer needed after - @opentripplanner/location-field now provides this functionality --- lib/util/ui.js | 9 --------- package.json | 2 -- yarn.lock | 5 ----- 3 files changed, 16 deletions(-) diff --git a/lib/util/ui.js b/lib/util/ui.js index c430cc04e..bf5be4753 100644 --- a/lib/util/ui.js +++ b/lib/util/ui.js @@ -1,5 +1,3 @@ -import bowser from 'bowser' - import { MainPanelContent } from '../actions/ui' import { summarizeQuery } from './query' import { getActiveSearch } from './state' @@ -12,13 +10,6 @@ export function isMobile () { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) } -/** - * Returns true if the user is using a [redacted] browser - */ -export function isIE () { - return bowser.name === 'Internet Explorer' -} - /** * Enables scrolling for a specified selector, while disabling scrolling for all * other targets. This is adapted from https://stackoverflow.com/a/41601290/915811 diff --git a/package.json b/package.json index c8c983978..75f922e0a 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ "@opentripplanner/geocoder": "^0.0.16", "@opentripplanner/location-field": "^0.0.16", "bootstrap": "^3.3.7", - "bowser": "^1.9.3", "clone": "^2.1.0", "connected-react-router": "^6.5.2", "copy-to-clipboard": "^3.0.8", @@ -72,7 +71,6 @@ "redux-actions": "^1.2.1", "redux-logger": "^2.7.4", "redux-thunk": "^2.3.0", - "throttle-debounce": "^2.0.1", "transitive-js": "^0.13.0", "turf-along": "^3.0.12", "velocity-react": "^1.3.3" diff --git a/yarn.lock b/yarn.lock index fe44815a4..48d3fff61 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3397,11 +3397,6 @@ bottleneck@^2.18.1: resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.4.tgz#63c505687a0ddaf89a6f515225c75e05833bb079" integrity sha512-2poBdvpAGG+dkMVKZqtDhyuMN6JviD81h89W4bfmt3UO7O60F+qf/84V0alNqL8PM1RByl4SZ1fVMu/ZvxkmcA== -bowser@^1.9.3: - version "1.9.4" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a" - integrity sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ== - bowser@^2.7.0: version "2.9.0" resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz#3bed854233b419b9a7422d9ee3e85504373821c9" From 899e186ff576836d26d5b71cbe5b878fa71931ca Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Mon, 2 Mar 2020 15:39:09 -0800 Subject: [PATCH 009/115] refactor: use otp-ui location-icon package --- lib/components/icons/location-icon.js | 24 ------------------- lib/components/map/endpoint.js | 7 +++--- lib/components/mobile/results-screen.js | 15 ++++++++---- .../narrative/line-itin/place-row.js | 2 +- lib/index.css | 8 ------- lib/index.js | 5 ---- package.json | 1 + 7 files changed, 15 insertions(+), 47 deletions(-) delete mode 100644 lib/components/icons/location-icon.js diff --git a/lib/components/icons/location-icon.js b/lib/components/icons/location-icon.js deleted file mode 100644 index d1c245e72..000000000 --- a/lib/components/icons/location-icon.js +++ /dev/null @@ -1,24 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' - -export default class LocationIcon extends Component { - static propTypes = { - type: PropTypes.string, - className: PropTypes.string, - style: PropTypes.object - } - - render () { - const { type, className, style } = this.props - - // from: #f5a81c - // to: '#8ec449 - - let classNameArr = ['fa', `${type}-location-icon`] - if (type === 'from') classNameArr.push('fa-dot-circle-o') - else if (type === 'to') classNameArr.push('fa-map-marker') - if (className) classNameArr = classNameArr.concat(className.split(' ')) - - return - } -} diff --git a/lib/components/map/endpoint.js b/lib/components/map/endpoint.js index 3d625e912..11d428ea9 100644 --- a/lib/components/map/endpoint.js +++ b/lib/components/map/endpoint.js @@ -1,13 +1,12 @@ +import { divIcon } from 'leaflet' +import LocationIcon from '@opentripplanner/location-icon' import React, { Component } from 'react' -import ReactDOMServer from 'react-dom/server' - import { Button } from 'react-bootstrap' +import ReactDOMServer from 'react-dom/server' import { Marker, Popup } from 'react-leaflet' -import { divIcon } from 'leaflet' import Icon from '../narrative/icon' import { constructLocation, matchLatLon } from '../../util/map' -import LocationIcon from '../icons/location-icon' export default class Endpoint extends Component { _rememberAsHome = () => { diff --git a/lib/components/mobile/results-screen.js b/lib/components/mobile/results-screen.js index 125713358..3443cf34e 100644 --- a/lib/components/mobile/results-screen.js +++ b/lib/components/mobile/results-screen.js @@ -1,12 +1,13 @@ -import React, { Component } from 'react' +import LocationIcon from '@opentripplanner/location-icon' import PropTypes from 'prop-types' -import { connect } from 'react-redux' +import React, { Component } from 'react' import { Button, Col, Row } from 'react-bootstrap' +import { connect } from 'react-redux' +import styled from 'styled-components' import DefaultMap from '../map/default-map' import ErrorMessage from '../form/error-message' import ItineraryCarousel from '../narrative/itinerary-carousel' -import LocationIcon from '../icons/location-icon' import MobileContainer from './container' import MobileNavigationBar from './navigation-bar' @@ -17,6 +18,10 @@ import { clearActiveSearch } from '../../actions/form' import { getActiveSearch, getRealtimeEffects } from '../../util/state' import { enableScrollForSelector } from '../../util/ui' +const StyledLocationIcon = styled(LocationIcon)` + margin: 3px; +` + class MobileResultsScreen extends Component { static propTypes = { activeItineraryIndex: PropTypes.number, @@ -99,10 +104,10 @@ class MobileResultsScreen extends Component {
- { query.from ? query.from.name : '' } + { query.from ? query.from.name : '' }
- { query.to ? query.to.name : '' } + { query.to ? query.to.name : '' }
diff --git a/lib/components/narrative/line-itin/place-row.js b/lib/components/narrative/line-itin/place-row.js index cdb1526d2..24090a6d2 100644 --- a/lib/components/narrative/line-itin/place-row.js +++ b/lib/components/narrative/line-itin/place-row.js @@ -1,7 +1,7 @@ +import LocationIcon from '@opentripplanner/location-icon' import React, { Component, PureComponent } from 'react' import { connect } from 'react-redux' -import LocationIcon from '../../icons/location-icon' import ViewStopButton from '../../viewers/view-stop-button' import { getCompaniesLabelFromNetworks, diff --git a/lib/index.css b/lib/index.css index 41bd670a6..c987003c1 100644 --- a/lib/index.css +++ b/lib/index.css @@ -51,11 +51,3 @@ button.header, button.step, .clear-button-formatting { button.header, button.step { width: 100%; } - -.otp .from-location-icon { - color: #333; -} - -.otp .to-location-icon { - color: #f44256; -} diff --git a/lib/index.js b/lib/index.js index c671bff9c..e0cc82026 100644 --- a/lib/index.js +++ b/lib/index.js @@ -12,8 +12,6 @@ import SettingsPreview from './components/form/settings-preview' import SettingsSelectorPanel from './components/form/settings-selector-panel' import SwitchButton from './components/form/switch-button' -import LocationIcon from './components/icons/location-icon' - import BaseMap from './components/map/base-map' import DefaultMap from './components/map/default-map' import EndpointsOverlay from './components/map/endpoints-overlay' @@ -88,9 +86,6 @@ export { TileOverlay, TransitiveOverlay, - // icon components - LocationIcon, - // narrative components LegDiagramPreview, LineItinerary, diff --git a/package.json b/package.json index 75f922e0a..6a17b531f 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "@opentripplanner/from-to-location-picker": "^0.0.14", "@opentripplanner/geocoder": "^0.0.16", "@opentripplanner/location-field": "^0.0.16", + "@opentripplanner/location-icon": "^0.0.16", "bootstrap": "^3.3.7", "clone": "^2.1.0", "connected-react-router": "^6.5.2", From 332bad2e1e99e1af5122eb82bb688c580331743e Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Wed, 4 Mar 2020 21:18:14 -0800 Subject: [PATCH 010/115] refactor: WIP on transitioning map components to otp-ui --- lib/components/map/bounds-updating-overlay.js | 116 ++++++++ ...rlay.js => connected-endpoints-overlay.js} | 42 +-- .../map/connected-park-and-ride-overlay.js | 40 +++ lib/components/map/current-position-marker.js | 53 ---- lib/components/map/default-map.js | 146 +++++++---- lib/components/map/distance-measure.js | 21 -- lib/components/map/endpoint.js | 149 ----------- lib/components/map/itinerary-legs.js | 47 ---- lib/components/map/itinerary-overlay.js | 62 ----- lib/components/map/itinerary-steps.js | 53 ---- lib/components/map/itinerary-stops.js | 46 ---- lib/components/map/leaflet-canvas-layer.js | 168 ------------ lib/components/map/park-and-ride-overlay.js | 97 ------- lib/components/map/transitive-overlay.js | 171 ------------ lib/components/map/transitive-styles.js | 124 --------- lib/index.js | 10 - package.json | 17 +- yarn.lock | 247 +++++++++++++++++- 18 files changed, 505 insertions(+), 1104 deletions(-) create mode 100644 lib/components/map/bounds-updating-overlay.js rename lib/components/map/{endpoints-overlay.js => connected-endpoints-overlay.js} (51%) create mode 100644 lib/components/map/connected-park-and-ride-overlay.js delete mode 100644 lib/components/map/current-position-marker.js delete mode 100644 lib/components/map/distance-measure.js delete mode 100644 lib/components/map/endpoint.js delete mode 100644 lib/components/map/itinerary-legs.js delete mode 100644 lib/components/map/itinerary-overlay.js delete mode 100644 lib/components/map/itinerary-steps.js delete mode 100644 lib/components/map/itinerary-stops.js delete mode 100644 lib/components/map/leaflet-canvas-layer.js delete mode 100644 lib/components/map/park-and-ride-overlay.js delete mode 100644 lib/components/map/transitive-overlay.js delete mode 100644 lib/components/map/transitive-styles.js diff --git a/lib/components/map/bounds-updating-overlay.js b/lib/components/map/bounds-updating-overlay.js new file mode 100644 index 000000000..a8dcaaf55 --- /dev/null +++ b/lib/components/map/bounds-updating-overlay.js @@ -0,0 +1,116 @@ +import isEqual from 'lodash.isequal' +// import { +// getItineraryBounds, +// getLegBounds +// } from '@opentripplanner/core-utils/lib/itinerary' +import { isMobile } from '@opentripplanner/core-utils/lib/ui' +import { connect } from 'react-redux' +import { MapLayer, withLeaflet } from 'react-leaflet' + +import { + getItineraryBounds, + getLegBounds +} from '../../util/itinerary' +import { getActiveItinerary, getActiveSearch } from '../../util/state' + +class BoundsUpdatingOverlay extends MapLayer { + createLeafletElement () {} + + updateLeafletElement () {} + + componentDidMount () { + this.updateBounds(null, this.props) + } + + componentDidUpdate (prevProps) { + this.updateBounds(prevProps, this.props) + } + + /* eslint-disable-next-line complexity */ + updateBounds (oldProps, newProps) { + // TODO: maybe setting bounds ought to be handled in map props... + + oldProps = oldProps || {} + newProps = newProps || {} + + // Don't auto-fit if popup us active + if (oldProps.popupLocation || newProps.popupLocation) return + + const { map } = newProps.leaflet + if (!map) return + + const padding = [30, 30] + + // Fit map to to entire itinerary if active itinerary bounds changed + const oldItinBounds = oldProps.itinerary && getItineraryBounds(oldProps.itinerary) + const fromChanged = !isEqual(oldProps.query && oldProps.query.from, newProps.query && newProps.query.from) + const toChanged = !isEqual(oldProps.query && oldProps.query.to, newProps.query && newProps.query.to) + const newItinBounds = newProps.itinerary && getItineraryBounds(newProps.itinerary) + if ( + (!oldItinBounds && newItinBounds) || + (oldItinBounds && newItinBounds && !oldItinBounds.equals(newItinBounds)) + ) { + map.fitBounds(newItinBounds, { padding }) + // Pan to to itinerary leg if made active (clicked); newly active leg must be non-null + } else if (newProps.itinerary && newProps.activeLeg !== oldProps.activeLeg && newProps.activeLeg !== null) { + map.fitBounds( + getLegBounds(newProps.itinerary.legs[newProps.activeLeg]), + { padding } + ) + + // If no itinerary update but from/to locations are present, fit to those + } else if (newProps.query.from && newProps.query.to && (fromChanged || toChanged)) { + // On certain mobile devices (e.g., Android + Chrome), setting from and to + // locations via the location search component causes issues for this + // fitBounds invocation. The map does not appear to be visible when these + // prop changes are detected, so for now we should perhaps just skip this + // fitBounds on mobile. + // See https://github.com/opentripplanner/otp-react-redux/issues/133 for + // more info. + // TODO: Fix this so mobile devices will also update the bounds to the + // from/to locations. + if (!isMobile()) { + map.fitBounds([ + [newProps.query.from.lat, newProps.query.from.lon], + [newProps.query.to.lat, newProps.query.to.lon] + ], { padding }) + } + + // If only from or to is set, pan to that + } else if (newProps.query.from && fromChanged) { + map.panTo([newProps.query.from.lat, newProps.query.from.lon]) + } else if (newProps.query.to && toChanged) { + map.panTo([newProps.query.to.lat, newProps.query.to.lon]) + + // Pan to to itinerary step if made active (clicked) + } else if ( + newProps.itinerary && + newProps.activeLeg !== null && + newProps.activeStep !== null && + newProps.activeStep !== oldProps.activeStep + ) { + const leg = newProps.itinerary.legs[newProps.activeLeg] + const step = leg.steps[newProps.activeStep] + map.panTo([step.lat, step.lon]) + } + } +} + +// connect to the redux store + +const mapStateToProps = (state, ownProps) => { + const activeSearch = getActiveSearch(state.otp) + return { + activeLeg: activeSearch && activeSearch.activeLeg, + activeStep: activeSearch && activeSearch.activeStep, + itinerary: getActiveItinerary(state.otp), + popupLocation: state.otp.ui.mapPopupLocation, + query: state.otp.currentQuery + } +} + +const mapDispatchToProps = {} + +export default withLeaflet( + connect(mapStateToProps, mapDispatchToProps)(BoundsUpdatingOverlay) +) diff --git a/lib/components/map/endpoints-overlay.js b/lib/components/map/connected-endpoints-overlay.js similarity index 51% rename from lib/components/map/endpoints-overlay.js rename to lib/components/map/connected-endpoints-overlay.js index 5967034b8..c609ce12d 100644 --- a/lib/components/map/endpoints-overlay.js +++ b/lib/components/map/connected-endpoints-overlay.js @@ -1,35 +1,14 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' +import EndpointsOverlay from '@opentripplanner/endpoints-overlay' import { connect } from 'react-redux' -import Endpoint from './endpoint' -import { clearLocation, forgetPlace, rememberPlace, setLocation } from '../../actions/map' +import { + clearLocation, + forgetPlace, + rememberPlace, + setLocation +} from '../../actions/map' import { getActiveSearch, getShowUserSettings } from '../../util/state' -class EndpointsOverlay extends Component { - static propTypes = { - query: PropTypes.object - } - render () { - const { query, showUserSettings } = this.props - const { from, to } = query - return ( -
- - -
- ) - } -} - // connect to the redux store const mapStateToProps = (state, ownProps) => { @@ -38,10 +17,13 @@ const mapStateToProps = (state, ownProps) => { const activeSearch = getActiveSearch(state.otp) const query = activeSearch ? activeSearch.query : state.otp.currentQuery const showUserSettings = getShowUserSettings(state.otp) + const { from, to } = query return { + fromLocation: from, locations: state.otp.user.locations, - query, - showUserSettings + showUserSettings, + toLocation: to, + visible: true } } diff --git a/lib/components/map/connected-park-and-ride-overlay.js b/lib/components/map/connected-park-and-ride-overlay.js new file mode 100644 index 000000000..62d83a666 --- /dev/null +++ b/lib/components/map/connected-park-and-ride-overlay.js @@ -0,0 +1,40 @@ +import ParkAndRideOverlay from '@opentripplanner/park-and-ride-overlay' +import React, { Component } from 'react' +import { connect } from 'react-redux' + +import { setLocation } from '../../actions/map' +import { parkAndRideQuery } from '../../actions/api' + +class ConnectedParkAndRideOverlay extends Component { + componentDidMount () { + const params = {} + if (this.props.maxTransitDistance) { + params['maxTransitDistance'] = this.props.maxTransitDistance + } + // TODO: support config-defined bounding envelope + + this.props.parkAndRideQuery(params) + } + + render () { + return ( + + ) + } +} + +// connect to the redux store + +const mapStateToProps = (state, ownProps) => { + return { + parkAndRideLocations: state.otp.overlay.parkAndRide && + state.otp.overlay.parkAndRide.locations + } +} + +const mapDispatchToProps = { + setLocation, + parkAndRideQuery +} + +export default connect(mapStateToProps, mapDispatchToProps)(ConnectedParkAndRideOverlay) diff --git a/lib/components/map/current-position-marker.js b/lib/components/map/current-position-marker.js deleted file mode 100644 index b7c6348e7..000000000 --- a/lib/components/map/current-position-marker.js +++ /dev/null @@ -1,53 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' -import { connect } from 'react-redux' -import { FeatureGroup, MapLayer, CircleMarker } from 'react-leaflet' - -/* A small circular marker showing the user's current position. Intended - * primarily for use in mobile mode. - */ - -class CurrentPositionMarker extends MapLayer { - static propTypes = { - currentPosition: PropTypes.object - } - - // TODO: determine why the default MapLayer componentWillUnmount() method throws an error - componentWillUnmount () { } - componentDidMount () { } - - createLeafletElement () { - } - - updateLeafletElement () { - } - - render () { - const { currentPosition } = this.props - - if (!currentPosition || !currentPosition.coords) return - - return ( - - - - ) - } -} - -// connect to the redux store - -const mapStateToProps = (state, ownProps) => { - return { - currentPosition: state.otp.location.currentPosition - } -} - -export default connect(mapStateToProps)(CurrentPositionMarker) diff --git a/lib/components/map/default-map.js b/lib/components/map/default-map.js index b9432ffce..7c3e32d35 100644 --- a/lib/components/map/default-map.js +++ b/lib/components/map/default-map.js @@ -1,22 +1,38 @@ +import BaseMap from '@opentripplanner/base-map' import React, { Component } from 'react' import { connect } from 'react-redux' +import styled from 'styled-components' import { bikeRentalQuery, carRentalQuery, vehicleRentalQuery } from '../../actions/api' -import BaseMap from './base-map' -import EndpointsOverlay from './endpoints-overlay' -import ParkAndRideOverlay from './park-and-ride-overlay' -import StopsOverlay from './stops-overlay' -import StopViewerOverlay from './stop-viewer-overlay' -import TileOverlay from './tile-overlay' -import TransitiveOverlay from './transitive-overlay' -import TripViewerOverlay from './trip-viewer-overlay' -import RouteViewerOverlay from './route-viewer-overlay' -import VehicleRentalOverlay from './vehicle-rental-overlay' -import ZipcarOverlay from './zipcar-overlay' +import BoundsUpdatingOverlay from './bounds-updating-overlay' +import EndpointsOverlay from './connected-endpoints-overlay' +import ParkAndRideOverlay from './connected-park-and-ride-overlay' +// import StopsOverlay from './connected-stops-overlay' +// import StopViewerOverlay from '@opentripplanner/stop-viewer-overlay' +// import TileOverlay from './tile-overlay' +import TransitiveOverlay from './connected-transitive-overlay' +// import TripViewerOverlay from '@opentripplanner/trip-viewer-overlay' +// import RouteViewerOverlay from '@opentripplanner/route-viewer-overlay' +// import VehicleRentalOverlay from '@opentripplanner/vehicle-rental-overlay' +// import ZipcarOverlay from './zipcar-overlay' + +const MapContainer = styled.div` + height: 100%; + width: 100%; + + .map { + height: 100%; + width: 100%; + } + + * { + box-sizing: unset; + } +` class DefaultMap extends Component { render () { @@ -29,55 +45,69 @@ class DefaultMap extends Component { vehicleRentalQuery, vehicleRentalStations } = this.props + + const center = mapConfig && mapConfig.initLat && mapConfig.initLon + ? [mapConfig.initLat, mapConfig.initLon] + : null + return ( - Map View} - {...this.props} - > - {/* The default overlays */} - - - - - + + console.log('map click', arguments)} + onOverlayAdd={() => console.log('overlay add', arguments)} + onOverlayRemove={() => console.log('overlay remove', arguments)} + onViewportChanged={() => console.log('viewport change', arguments)} + zoom={mapConfig.initZoom || 13} + > + {/* The default overlays */} + {/* + + */} + + + - {/* The configurable overlays */} - {mapConfig.overlays && mapConfig.overlays.map((overlayConfig, k) => { - switch (overlayConfig.type) { - case 'bike-rental': return ( - - ) - case 'car-rental': return ( - - ) - case 'park-and-ride': return - case 'stops': return - case 'tile': return - case 'micromobility-rental': return ( - - ) - case 'zipcar': return - default: return null - } - })} - + {/* The configurable overlays */} + {mapConfig.overlays && mapConfig.overlays.map((overlayConfig, k) => { + switch (overlayConfig.type) { + // case 'bike-rental': return ( + // + // ) + // case 'car-rental': return ( + // + // ) + case 'park-and-ride': + return + // case 'stops': return + // case 'tile': return + // case 'micromobility-rental': return ( + // + // ) + // case 'zipcar': return + default: return null + } + })} + + ) } } diff --git a/lib/components/map/distance-measure.js b/lib/components/map/distance-measure.js deleted file mode 100644 index 0d331b27d..000000000 --- a/lib/components/map/distance-measure.js +++ /dev/null @@ -1,21 +0,0 @@ -import { MapControl, withLeaflet } from 'react-leaflet' -import L from 'leaflet' -import 'leaflet.polylinemeasure/Leaflet.PolylineMeasure.js' - -class DistanceMeasure extends MapControl { - createLeafletElement (props) { - return L.control.polylineMeasure({ - unit: 'landmiles', - measureControlLabel: '📏', - backgroundColor: '#f3dd2d', - clearMeasurementsOnStop: true - }) - } - - componentDidMount () { - const { map } = this.props.leaflet - this.leafletElement.addTo(map) - } -} - -export default withLeaflet(DistanceMeasure) diff --git a/lib/components/map/endpoint.js b/lib/components/map/endpoint.js deleted file mode 100644 index 11d428ea9..000000000 --- a/lib/components/map/endpoint.js +++ /dev/null @@ -1,149 +0,0 @@ -import { divIcon } from 'leaflet' -import LocationIcon from '@opentripplanner/location-icon' -import React, { Component } from 'react' -import { Button } from 'react-bootstrap' -import ReactDOMServer from 'react-dom/server' -import { Marker, Popup } from 'react-leaflet' - -import Icon from '../narrative/icon' -import { constructLocation, matchLatLon } from '../../util/map' - -export default class Endpoint extends Component { - _rememberAsHome = () => { - const { rememberPlace } = this.props - const location = Object.assign({}, this.props.location) - location.id = 'home' - location.icon = 'home' - location.type = 'home' - rememberPlace({ type: 'home', location }) - } - - _rememberAsWork = () => { - const { rememberPlace } = this.props - const location = Object.assign({}, this.props.location) - location.id = 'work' - location.icon = 'briefcase' - location.type = 'work' - rememberPlace({ type: 'work', location }) - } - - _forgetHome = () => this.props.forgetPlace('home') - - _forgetWork = () => this.props.forgetPlace('work') - - _clearLocation = () => { - const { clearLocation, type } = this.props - clearLocation({ type }) - } - - _swapLocation = () => { - const { location, setLocation, type } = this.props - this._clearLocation() - const otherType = type === 'from' ? 'to' : 'from' - setLocation({ type: otherType, location }) - } - - _onDragEnd = (e) => { - const { setLocation, type } = this.props - const location = constructLocation(e.target.getLatLng()) - setLocation({ type, location, reverseGeocode: true }) - } - - render () { - const { type, location, locations, showPopup } = this.props - const position = location && location.lat && location.lon ? [location.lat, location.lon] : null - if (!position) return null - const fgStyle = { fontSize: 24, width: 32, height: 32 } - const bgStyle = { fontSize: 32, width: 32, height: 32, paddingTop: 1 } - const match = locations.find(l => matchLatLon(l, location)) - const isWork = match && match.type === 'work' - const isHome = match && match.type === 'home' - const iconHtml = ReactDOMServer.renderToStaticMarkup( - - {type === 'from' - // From icon should have white circle background - ? - : - - - - } - - - ) - const otherType = type === 'from' ? 'to' : 'from' - const icon = isWork - ? 'briefcase' - : isHome - ? 'home' - : 'map-marker' - return ( - - {showPopup && - -
- - {location.name} - -
- -
-
- -
-
- -
-
- -
-
-
- } -
- ) - } -} diff --git a/lib/components/map/itinerary-legs.js b/lib/components/map/itinerary-legs.js deleted file mode 100644 index f43e18a99..000000000 --- a/lib/components/map/itinerary-legs.js +++ /dev/null @@ -1,47 +0,0 @@ -import React, {Component} from 'react' -import PropTypes from 'prop-types' -import { FeatureGroup, GeoJSON } from 'react-leaflet' -import polyline from '@mapbox/polyline' - -import { isTransit } from '../../util/itinerary' - -export default class ItineraryLegs extends Component { - static propTypes = { - itinerary: PropTypes.object, - activeLeg: PropTypes.number, - setActiveLeg: PropTypes.func - } - _onLegClick = (e) => { - const index = e.layer.feature.geometry.index - const leg = this.props.itinerary.legs[index] - if (index === this.props.activeLeg) { - this.props.setActiveLeg(null) - } else { - this.props.setActiveLeg(index, leg) - } - } - render () { - const { itinerary, activeLeg } = this.props - return ( - - {itinerary.legs.map((leg, index) => { - const geojson = polyline.toGeoJSON(leg.legGeometry.points) - geojson.index = index - const active = activeLeg === index - const color = active - ? 'yellow' - : isTransit(leg.mode) - ? 'blue' - : 'black' - return ( - - ) - })} - - ) - } -} diff --git a/lib/components/map/itinerary-overlay.js b/lib/components/map/itinerary-overlay.js deleted file mode 100644 index 55f47b130..000000000 --- a/lib/components/map/itinerary-overlay.js +++ /dev/null @@ -1,62 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import { connect } from 'react-redux' - -import { - setActiveLeg -} from '../../actions/narrative' -import { getActiveItinerary, getActiveSearch } from '../../util/state' -import ItinerarySteps from './itinerary-steps' -import ItineraryStops from './itinerary-stops' -import ItineraryLegs from './itinerary-legs' - -class ItineraryOverlay extends Component { - static propTypes = { - activeLeg: PropTypes.number, - activeStep: PropTypes.number, - itinerary: PropTypes.object - } - - render () { - const { activeLeg, activeStep, itinerary } = this.props - if (!itinerary) return null - return ( -
- - - -
- ) - } -} - -// connect to the redux store - -const mapStateToProps = (state, ownProps) => { - const activeSearch = getActiveSearch(state.otp) - return { - itinerary: getActiveItinerary(state.otp), - activeLeg: activeSearch && activeSearch.activeLeg, - activeStep: activeSearch && activeSearch.activeStep - } -} - -const mapDispatchToProps = (dispatch, ownProps) => { - return { - setActiveLeg: (index, leg) => { dispatch(setActiveLeg({ index, leg })) } - } -} - -export default connect(mapStateToProps, mapDispatchToProps)(ItineraryOverlay) diff --git a/lib/components/map/itinerary-steps.js b/lib/components/map/itinerary-steps.js deleted file mode 100644 index 4f4bea8d8..000000000 --- a/lib/components/map/itinerary-steps.js +++ /dev/null @@ -1,53 +0,0 @@ -import { divIcon } from 'leaflet' -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import { Marker } from 'react-leaflet' - -import { getStepInstructions } from '../../util/itinerary' - -export default class ItinerarySteps extends Component { - static propTypes = { - itinerary: PropTypes.object - } - addItineraryStop (array, item) { - if (item.stopId && array.indexOf(item.stopId) === -1) { - array.push(item) - } - } - render () { - const { itinerary, activeLeg, activeStep } = this.props - let steps = [] - itinerary.legs.map((l, legIndex) => { - steps = [ - ...steps, - ...l.steps.map((s, stepIndex) => { - s.legIndex = legIndex - s.stepIndex = stepIndex - return s - }) - ] - }) - return ( -
- {steps.map((step, index) => { - if (step.relativeDirection === 'DEPART') { - return null - } - const active = step.legIndex === activeLeg && step.stepIndex === activeStep - const icon = divIcon({ - html: ``, - className: '' - }) - return ( - - ) - })} -
- ) - } -} diff --git a/lib/components/map/itinerary-stops.js b/lib/components/map/itinerary-stops.js deleted file mode 100644 index f1b669145..000000000 --- a/lib/components/map/itinerary-stops.js +++ /dev/null @@ -1,46 +0,0 @@ -import { divIcon } from 'leaflet' -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import { Marker } from 'react-leaflet' -// import polyline from '@mapbox/polyline' - -// import { isTransit } from '../../util/itinerary' - -export default class ItineraryStops extends Component { - static propTypes = { - itinerary: PropTypes.object - } - addItineraryStop (array, item) { - if (item.stopId && array.indexOf(item.stopId) === -1) { - array.push(item) - } - } - render () { - const { itinerary } = this.props - const stops = [] - itinerary.legs.map(l => { - this.addItineraryStop(stops, l.from) - this.addItineraryStop(stops, l.to) - }) - return ( -
- {stops.map((stop, index) => { - const icon = divIcon({ - html: ` - - - `, - className: '' - }) - return ( - - ) - })} -
- ) - } -} diff --git a/lib/components/map/leaflet-canvas-layer.js b/lib/components/map/leaflet-canvas-layer.js deleted file mode 100644 index 0fd96ae38..000000000 --- a/lib/components/map/leaflet-canvas-layer.js +++ /dev/null @@ -1,168 +0,0 @@ -/* - Generic Canvas Layer for leaflet 0.7 and 1.0-rc, - copyright Stanislav Sumbera, 2016 , sumbera.com , license MIT - originally created and motivated by L.CanvasOverlay available here: https://gist.github.com/Sumbera/11114288 - -*/ - -/* eslint-disable */ - -// -- L.DomUtil.setTransform from leaflet 1.0.0 to work on 0.0.7 -//------------------------------------------------------------------------------ -L.DomUtil.setTransform = L.DomUtil.setTransform || function (el, offset, scale) { - var pos = offset || new L.Point(0, 0); - - el.style[L.DomUtil.TRANSFORM] = - (L.Browser.ie3d ? - 'translate(' + pos.x + 'px,' + pos.y + 'px)' : - 'translate3d(' + pos.x + 'px,' + pos.y + 'px,0)') + - (scale ? ' scale(' + scale + ')' : ''); -}; - -// -- support for both 0.0.7 and 1.0.0 rc2 leaflet -L.CanvasLayer = (L.Layer ? L.Layer : L.Class).extend({ - // -- initialized is called on prototype - initialize: function (options) { - this._map = null; - this._canvas = null; - this._frame = null; - this._delegate = null; - L.setOptions(this, options); - }, - - delegate :function(del){ - this._delegate = del; - return this; - }, - - needRedraw: function () { - if (!this._frame) { - this._frame = L.Util.requestAnimFrame(this.drawLayer, this); - } - return this; - }, - - //------------------------------------------------------------- - _onLayerDidResize: function (resizeEvent) { - this._canvas.width = resizeEvent.newSize.x; - this._canvas.height = resizeEvent.newSize.y; - }, - //------------------------------------------------------------- - _onLayerDidMove: function () { - var topLeft = this._map.containerPointToLayerPoint([0, 0]); - L.DomUtil.setPosition(this._canvas, topLeft); - this.drawLayer(); - }, - //------------------------------------------------------------- - getEvents: function () { - var events = { - resize: this._onLayerDidResize, - moveend: this._onLayerDidMove, - zoom: this._onLayerDidMove - }; - if (this._map.options.zoomAnimation && L.Browser.any3d) { - events.zoomanim = this._animateZoom; - } - - return events; - }, - //------------------------------------------------------------- - onAdd: function (map) { - this._map = map; - this._canvas = L.DomUtil.create('canvas', 'leaflet-layer'); - this.tiles = {}; - - var size = this._map.getSize(); - this._canvas.width = size.x; - this._canvas.height = size.y; - - var animated = this._map.options.zoomAnimation && L.Browser.any3d; - L.DomUtil.addClass(this._canvas, 'leaflet-zoom-' + (animated ? 'animated' : 'hide')); - - - map._panes.overlayPane.appendChild(this._canvas); - - map.on(this.getEvents(),this); - - var del = this._delegate || this; - del.onLayerDidMount && del.onLayerDidMount(); // -- callback - this.needRedraw(); - }, - - //------------------------------------------------------------- - onRemove: function (map) { - var del = this._delegate || this; - del.onLayerWillUnmount && del.onLayerWillUnmount(); // -- callback - - - map.getPanes().overlayPane.removeChild(this._canvas); - - map.off(this.getEvents(),this); - - this._canvas = null; - - }, - - //------------------------------------------------------------ - addTo: function (map) { - map.addLayer(this); - return this; - }, - // -------------------------------------------------------------------------------- - LatLonToMercator: function (latlon) { - return { - x: latlon.lng * 6378137 * Math.PI / 180, - y: Math.log(Math.tan((90 + latlon.lat) * Math.PI / 360)) * 6378137 - }; - }, - - //------------------------------------------------------------------------------ - drawLayer: function () { - // -- todo make the viewInfo properties flat objects. - var size = this._map.getSize(); - var bounds = this._map.getBounds(); - var zoom = this._map.getZoom(); - - var center = this.LatLonToMercator(this._map.getCenter()); - var corner = this.LatLonToMercator(this._map.containerPointToLatLng(this._map.getSize())); - - var del = this._delegate || this; - del.onDrawLayer && del.onDrawLayer( { - layer : this, - canvas: this._canvas, - bounds: bounds, - size: size, - zoom: zoom, - center : center, - corner : corner - }); - this._frame = null; - }, - // -- L.DomUtil.setTransform from leaflet 1.0.0 to work on 0.0.7 - //------------------------------------------------------------------------------ - _setTransform: function (el, offset, scale) { - var pos = offset || new L.Point(0, 0); - - el.style[L.DomUtil.TRANSFORM] = - (L.Browser.ie3d ? - 'translate(' + pos.x + 'px,' + pos.y + 'px)' : - 'translate3d(' + pos.x + 'px,' + pos.y + 'px,0)') + - (scale ? ' scale(' + scale + ')' : ''); - }, - - //------------------------------------------------------------------------------ - _animateZoom: function (e) { - var scale = this._map.getZoomScale(e.zoom); - // -- different calc of animation zoom in leaflet 1.0.3 thanks @peterkarabinovic, @jduggan1 - var offset = L.Layer ? this._map._latLngBoundsToNewLayerBounds(this._map.getBounds(), e.zoom, e.center).min : - this._map._getCenterOffset(e.center)._multiplyBy(-scale).subtract(this._map._getMapPanePos()); - - L.DomUtil.setTransform(this._canvas, offset, scale); - - - } -}); - -L.canvasLayer = function () { - return new L.CanvasLayer(); -}; diff --git a/lib/components/map/park-and-ride-overlay.js b/lib/components/map/park-and-ride-overlay.js deleted file mode 100644 index 3cbc66d5e..000000000 --- a/lib/components/map/park-and-ride-overlay.js +++ /dev/null @@ -1,97 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' -import { connect } from 'react-redux' -import { FeatureGroup, MapLayer, Marker, Popup, withLeaflet } from 'react-leaflet' -import { divIcon } from 'leaflet' - -import SetFromToButtons from './set-from-to' -import { setLocation } from '../../actions/map' -import { parkAndRideQuery } from '../../actions/api' - -class ParkAndRideOverlay extends MapLayer { - static propTypes = { - locations: PropTypes.array, - zipcarLocationsQuery: PropTypes.func, - setLocation: PropTypes.func - } - - componentDidMount () { - const params = {} - if (this.props.maxTransitDistance) { - params['maxTransitDistance'] = this.props.maxTransitDistance - } - // TODO: support config-defined bounding envelope - - this.props.parkAndRideQuery(params) - } - - componentWillUnmount () {} - - createLeafletElement () {} - - updateLeafletElement () {} - - render () { - const { locations } = this.props - if (!locations || locations.length === 0) return - - const markerIcon = divIcon({ - iconSize: [20, 20], - popupAnchor: [0, -10], - html: '
P
', - className: '' - }) - - return ( - - {locations.map((location, k) => { - const name = location.name.startsWith('P+R ') ? location.name.substring(4) : location.name - return ( - - -
- {/* Popup title */} -
- {name} -
- - {/* Set as from/to toolbar */} -
- -
-
-
-
- ) - })} -
- ) - } -} - -// connect to the redux store - -const mapStateToProps = (state, ownProps) => { - return { - locations: state.otp.overlay.parkAndRide && state.otp.overlay.parkAndRide.locations - } -} - -const mapDispatchToProps = { - setLocation, - parkAndRideQuery -} - -export default connect(mapStateToProps, mapDispatchToProps)(withLeaflet(ParkAndRideOverlay)) diff --git a/lib/components/map/transitive-overlay.js b/lib/components/map/transitive-overlay.js deleted file mode 100644 index 6ca8258c1..000000000 --- a/lib/components/map/transitive-overlay.js +++ /dev/null @@ -1,171 +0,0 @@ -import PropTypes from 'prop-types' -import { MapLayer, withLeaflet } from 'react-leaflet' -import L from 'leaflet' -import { connect } from 'react-redux' -import Transitive from 'transitive-js' -import isEqual from 'lodash.isequal' - -import { getActiveSearch, getActiveItineraries } from '../../util/state' -import { itineraryToTransitive } from '../../util/map' - -require('./leaflet-canvas-layer') - -// TODO: move to util? -function checkHiPPI (canvas) { - if (window.devicePixelRatio > 1) { - const PIXEL_RATIO = 2 - canvas.style.width = canvas.width + 'px' - canvas.style.height = canvas.height + 'px' - - canvas.width *= PIXEL_RATIO - canvas.height *= PIXEL_RATIO - - var context = canvas.getContext('2d') - context.scale(PIXEL_RATIO, PIXEL_RATIO) - } -} - -const zoomFactors = [{ - minScale: 0, - gridCellSize: 0, - internalVertexFactor: 0, - angleConstraint: 5, - mergeVertexThreshold: 0, - useGeographicRendering: true -}] - -class TransitiveCanvasOverlay extends MapLayer { - static propTypes = { - transitiveData: PropTypes.object - } - - // React Lifecycle Methods - - componentDidMount () { - const { map } = this.props.leaflet - L.canvasLayer() - .delegate(this) // -- if we do not inherit from L.CanvasLayer we can setup a delegate to receive events from L.CanvasLayer - .addTo(map) - } - - componentDidUpdate (prevProps) { - // Check if we received new transitive data - if (this._transitive && !isEqual(prevProps.transitiveData, this.props.transitiveData)) { - this._transitive.updateData(this.props.transitiveData) - if (!this.props.transitiveData) this._transitive.render() - else this._updateBoundsAndRender() - } - - if ( // this block only applies for profile trips where active option changed - this.props.routingType === 'PROFILE' && - prevProps.activeItinerary !== this.props.activeItinerary - ) { - if (this.props.activeItinerary == null) { // no option selected; clear focus - this._transitive.focusJourney(null) - this._transitive.render() - } else if (this.props.transitiveData) { - this._transitive.focusJourney(this.props.transitiveData.journeys[this.props.activeItinerary].journey_id) - this._transitive.render() - } - } - } - - componentWillUnmount () { - if (this._transitive) { - this._transitive.updateData(null) - this._transitive.render() - } - } - - // Internal Methods - - _initTransitive (canvas) { - const { map } = this.props.leaflet - - // set up the transitive instance - const mapBounds = map.getBounds() - this._transitive = new Transitive({ - data: this.props.transitiveData, - initialBounds: [[mapBounds.getWest(), mapBounds.getSouth()], [mapBounds.getEast(), mapBounds.getNorth()]], - zoomEnabled: false, - autoResize: false, - styles: require('./transitive-styles'), - zoomFactors, - display: 'canvas', - canvas - }) - - checkHiPPI(canvas) - - // the initial map draw - this._updateBoundsAndRender() - } - - _updateBoundsAndRender () { - if (!this._transitive) { - console.log('WARNING: Transitive object not set in transitive-canvas-overlay') - return - } - - const mapBounds = this.props.leaflet.map.getBounds() - this._transitive.setDisplayBounds([[mapBounds.getWest(), mapBounds.getSouth()], [mapBounds.getEast(), mapBounds.getNorth()]]) - this._transitive.render() - } - - // Leaflet Layer API Methods - - onDrawLayer (info) { - if (!this._transitive) this._initTransitive(info.canvas) - - const mapSize = this.props.leaflet.map.getSize() - if ( - this._lastMapSize && ( - mapSize.x !== this._lastMapSize.x || - mapSize.y !== this._lastMapSize.y - ) - ) { - const canvas = info.canvas - checkHiPPI(canvas) - this._transitive.display.setDimensions(mapSize.x, mapSize.y) - this._transitive.display.setCanvas(canvas) - } - - this._updateBoundsAndRender() - - this._lastMapSize = this.props.leaflet.map.getSize() - } - - createTile (coords) { - } - - createLeafletElement (props) { - } - - updateLeafletElement (fromProps, toProps) { - } -} - -// connect to the redux store - -const mapStateToProps = (state, ownProps) => { - const activeSearch = getActiveSearch(state.otp) - let transitiveData = null - if (activeSearch && activeSearch.query.routingType === 'ITINERARY' && activeSearch.response && activeSearch.response.plan) { - const itins = getActiveItineraries(state.otp) - // TODO: prevent itineraryToTransitive() from being called more than needed - transitiveData = itineraryToTransitive(itins[activeSearch.activeItinerary]) - } else if (activeSearch && activeSearch.response && activeSearch.response.otp) { - transitiveData = activeSearch.response.otp - } - - return { - transitiveData, - activeItinerary: activeSearch && activeSearch.activeItinerary, - routingType: activeSearch && activeSearch.query && activeSearch.query.routingType - } -} - -const mapDispatchToProps = { -} - -export default connect(mapStateToProps, mapDispatchToProps)(withLeaflet(TransitiveCanvasOverlay)) diff --git a/lib/components/map/transitive-styles.js b/lib/components/map/transitive-styles.js deleted file mode 100644 index 73621c583..000000000 --- a/lib/components/map/transitive-styles.js +++ /dev/null @@ -1,124 +0,0 @@ -import { isBikeshareStation } from '../../util/map' - -var STYLES = {} - -/* STYLES.segments = { - - // override the default stroke color - stroke: (display, segment) => { - if (!segment.focused) return - - switch (segment.type) { - case 'CAR': - return '#888' - case 'WALK': - return '#86cdf9' - case 'BICYCLE': - case 'BICYCLE_RENT': - return '#f00' - } - }, - - // override the default stroke width - 'stroke-width': (display, segment, index, utils) => { - switch (segment.type) { - case 'CAR': - return utils.pixels(display.zoom.scale(), 2, 4, 6) + 'px' - case 'WALK': - return '5px' - case 'BICYCLE': - case 'BICYCLE_RENT': - return '4px' - case 'TRANSIT': - // bus segments: - if (segment.mode === 3) { - return utils.pixels(display.zoom.scale(), 2, 4, 8) + 'px' - } - // all others: - return utils.pixels(display.zoom.scale(), 4, 8, 12) + 'px' - } - }, - - // specify the dash-array - 'stroke-dasharray': (display, segment) => { - switch (segment.type) { - case 'CAR': - return '3,2' - case 'WALK': - return '0.01,7' - case 'BICYCLE': - case 'BICYCLE_RENT': - return '6,3' - } - }, - - // specify the line cap type - 'stroke-linecap': (display, segment) => { - switch (segment.type) { - case 'WALK': - return 'round' - case 'CAR': - case 'BICYCLE': - case 'BICYCLE_RENT': - return 'butt' - } - } -} */ - -/** style overrides for places (i.e. the start and end icons) **/ - -STYLES.places = { - display: function (display, place) { - if (!isBikeshareStation(place)) return 'none' - }, - fill: '#f00', - stroke: '#fff', - 'stroke-width': 2, - r: 7 -} - -/* function getIconSize (data) { - return isBikeshareStation(data.owner) ? 14 : 30 -} - -STYLES.places_icon = { - display: function (display, data) { - if (!isBikeshareStation(data.owner)) return 'none' - }, - - // center the icon by offsetting by half the width/height - x: function (display, data) { - return -getIconSize(data) / 2 - }, - y: function (display, data) { - return -getIconSize(data) / 2 - }, - width: function (display, data) { - return getIconSize(data) - }, - height: function (display, data) { - return getIconSize(data) - }, - 'xlink:href': function (display, data) { - const place = data.owner - if (place.getId() === 'from') return `data:image/svg+xml;utf8,${fromSvg}` - if (place.getId() === 'to') return `data:image/svg+xml;utf8,${toSvg}` - if (isBikeshareStation(place)) return `data:image/svg+xml;utf8,${bikeSvg}` - }, - stroke: 0 -} */ - -/* STYLES.segments_halo = { - 'stroke-width': function (display, data, index, utils) { - return data.computeLineWidth(display) + 7 - }, - opacity: 0.75 -} */ - -STYLES.stops_merged = { - r: function (display, data, index, utils) { - return 6 - } -} - -export default STYLES diff --git a/lib/index.js b/lib/index.js index e0cc82026..99d41cd80 100644 --- a/lib/index.js +++ b/lib/index.js @@ -12,15 +12,10 @@ import SettingsPreview from './components/form/settings-preview' import SettingsSelectorPanel from './components/form/settings-selector-panel' import SwitchButton from './components/form/switch-button' -import BaseMap from './components/map/base-map' import DefaultMap from './components/map/default-map' -import EndpointsOverlay from './components/map/endpoints-overlay' -import ItineraryOverlay from './components/map/itinerary-overlay' import Map from './components/map/map' -import TransitiveOverlay from './components/map/transitive-overlay' import StylizedMap from './components/map/stylized-map' import OsmBaseLayer from './components/map/osm-base-layer' -import StopsOverlay from './components/map/stops-overlay' import TileOverlay from './components/map/tile-overlay' import ItineraryCarousel from './components/narrative/itinerary-carousel' @@ -75,16 +70,11 @@ export { SwitchButton, // map components - BaseMap, DefaultMap, - EndpointsOverlay, ItineraryCarousel, - ItineraryOverlay, Map, OsmBaseLayer, - StopsOverlay, TileOverlay, - TransitiveOverlay, // narrative components LegDiagramPreview, diff --git a/package.json b/package.json index 6a17b531f..b8ac0b02d 100644 --- a/package.json +++ b/package.json @@ -29,10 +29,21 @@ "dependencies": { "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", + "@opentripplanner/base-map": "^0.0.17", + "@opentripplanner/core-utils": "^0.0.16", + "@opentripplanner/endpoints-overlay": "^0.0.17", "@opentripplanner/from-to-location-picker": "^0.0.14", "@opentripplanner/geocoder": "^0.0.16", "@opentripplanner/location-field": "^0.0.16", "@opentripplanner/location-icon": "^0.0.16", + "@opentripplanner/park-and-ride-overlay": "^0.0.17", + "@opentripplanner/route-viewer-overlay": "^0.0.17", + "@opentripplanner/stop-viewer-overlay": "^0.0.17", + "@opentripplanner/stops-overlay": "^0.0.17", + "@opentripplanner/transit-vehicle-overlay": "^0.0.17", + "@opentripplanner/transitive-overlay": "^0.0.17", + "@opentripplanner/trip-viewer-overlay": "^0.0.17", + "@opentripplanner/vehicle-rental-overlay": "^0.0.17", "bootstrap": "^3.3.7", "clone": "^2.1.0", "connected-react-router": "^6.5.2", @@ -46,7 +57,6 @@ "history": "^4.7.2", "immutability-helper": "^2.1.1", "isomorphic-fetch": "^2.2.1", - "leaflet": "^1.5.1", "leaflet.polylinemeasure": "github:ppete2/Leaflet.PolylineMeasure", "lodash.debounce": "^4.0.8", "lodash.isequal": "^4.5.0", @@ -63,7 +73,6 @@ "react-dates": "^6.0.2", "react-dom": "^16.9.0", "react-fontawesome": "^1.5.0", - "react-leaflet": "^2.4.0", "react-redux": "^7.1.0", "react-resize-detector": "^2.1.0", "react-router": "^5.0.1", @@ -82,18 +91,22 @@ "enzyme-adapter-react-16": "^1.4.0", "enzyme-to-json": "^3.4.0", "es6-math": "^1.0.0", + "leaflet": "^1.6.0", "lodash.clonedeep": "^4.5.0", "mastarm": "^5.1.3", "nock": "^9.0.9", "react": "^16.9.0", "react-dom": "^16.9.0", + "react-leaflet": "^2.6.1", "redux-mock-store": "^1.5.3", "semantic-release": "^15.13.12", "styled-components": "^5.0.1" }, "peerDependencies": { + "leaflet": "^1.6.0", "react": ">=15.0.0", "react-dom": ">=15.0.0", + "react-leaflet": "^2.6.1", "styled-components": "^5.0.1" }, "jest": { diff --git a/yarn.lock b/yarn.lock index 48d3fff61..e1d2704c1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -981,6 +981,13 @@ dependencies: regenerator-runtime "^0.13.2" +"@babel/runtime@^7.7.6": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.4.tgz#d79f5a2040f7caa24d53e563aad49cbc05581308" + integrity sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ== + dependencies: + regenerator-runtime "^0.13.2" + "@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" @@ -1324,6 +1331,14 @@ universal-user-agent "^3.0.0" url-template "^2.0.8" +"@opentripplanner/base-map@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/base-map/-/base-map-0.0.17.tgz#e106ec122040e83979eb6a2595048a80bf32e03a" + integrity sha512-ZfKxoUWuh679yqSrBlUwX4SdxMNnjtoW4/SQ+g+xh3m0SdxM69BPtInfzWBH7ZT6nhSYcklAMVwr/g7mpUfs8w== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + prop-types "^15.7.2" + "@opentripplanner/core-utils@^0.0.14": version "0.0.14" resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.14.tgz#9e58e78227759ab5c13e1dad22467c474bd102b7" @@ -1352,6 +1367,30 @@ prop-types "^15.7.2" qs "^6.9.1" +"@opentripplanner/core-utils@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.17.tgz#6d436183e63615730e6ed05f87bf873d8885e8c3" + integrity sha512-JU+YA/DxCrKyfjFrWC34pPaMxDy3K7ABY+psnGzq7Y940qB3PeOMZyI6ZuoYnqMymtF4Y53zBpvMeMjkVoH3vw== + dependencies: + "@mapbox/polyline" "^1.1.0" + "@turf/along" "^6.0.1" + bowser "^2.7.0" + lodash.isequal "^4.5.0" + moment "^2.24.0" + moment-timezone "^0.5.27" + prop-types "^15.7.2" + qs "^6.9.1" + +"@opentripplanner/endpoints-overlay@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/endpoints-overlay/-/endpoints-overlay-0.0.17.tgz#19152d7f333e48c9e45ecb0b9e6dbde9af20f16f" + integrity sha512-TNgOK9eCYknTXY5RDHy7y5LZFQowbshadvXEn+i7BfLUpity1ECHSzRuVShnxp3keECgmBM0NSfoLZf2Q9A5sw== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + "@opentripplanner/location-icon" "^0.0.17" + prop-types "^15.7.2" + styled-icons "^9.1.0" + "@opentripplanner/from-to-location-picker@^0.0.14": version "0.0.14" resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.14.tgz#efe2a3452d58d769bc0d5904753df8516279f6c7" @@ -1361,6 +1400,15 @@ "@opentripplanner/location-icon" "^0.0.13" prop-types "^15.7.2" +"@opentripplanner/from-to-location-picker@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.17.tgz#41b594c7f047c5884a5f97630d452305b3151a85" + integrity sha512-PNIO3dXAbSFkG4qKgmw21wmDiDIordNtRBC8f7H9ruT4Fjo1SnDxW6Prj+5plPnVkhh5SzmXR8PfdDe13XsljA== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + "@opentripplanner/location-icon" "^0.0.17" + prop-types "^15.7.2" + "@opentripplanner/geocoder@^0.0.16": version "0.0.16" resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.16.tgz#55bdff8be36b2b68b83d62008c0fd45e03dd2a11" @@ -1376,6 +1424,14 @@ resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.16.tgz#e8197671b45719ce5c728d34c60e80b6d816d287" integrity sha512-qec9FZGhITC1u+YIBn0+6drxvbJr4N7FX0+VdpXl4+op6xVPlH+LPRittQhdOXdwEjUwHA9qvmksIYE70mg9lw== +"@opentripplanner/icons@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.17.tgz#8843bbb9b35210714d62e3c5c74b94dee0631f94" + integrity sha512-1Ov1DgcFx7GwR3qO/NWdcyqtGDbXR/IZUEvUrb5mHPDrthejmuVYOCGUiDGl7avTxM7k85SKXMaRbQ3qSbp/eg== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + prop-types "^15.7.2" + "@opentripplanner/location-field@^0.0.16": version "0.0.16" resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.16.tgz#1d23792965e9bfcd1044521b9bef261fbba090a7" @@ -1403,6 +1459,91 @@ dependencies: styled-icons "^9.1.0" +"@opentripplanner/location-icon@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.17.tgz#2793df54da3b1f50767f723236c30f0f87ca275a" + integrity sha512-kbIImQ/IHre/6gCifjuZGpuHWLddAAt9IF64Fhp4Lilou8nVJgdx9P3VyIcjt0nJmtLEV/p5zPJVVp+NzvGU9A== + dependencies: + styled-icons "^9.1.0" + +"@opentripplanner/park-and-ride-overlay@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/park-and-ride-overlay/-/park-and-ride-overlay-0.0.17.tgz#2a6cc9a45c839bfafe3e6ca3823fa5577c653db8" + integrity sha512-t3nQEIAj48McXXG+pabhaX/6Z7OlbIQRLYLI/YC8gwEHty8C4/OPySdLc5GNdhdGxgr1YHl8720+8c9+odpGfQ== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + "@opentripplanner/from-to-location-picker" "^0.0.17" + prop-types "^15.7.2" + +"@opentripplanner/route-viewer-overlay@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/route-viewer-overlay/-/route-viewer-overlay-0.0.17.tgz#52acf1c677cae14733cb232ed44c3c70276ee84f" + integrity sha512-esUC2J04/ep5Dt71b+lZlsepQOXHVsFn33bOY5PCSzCyQvDeTpCXbibesBpOawl1EwcUb5f5iTaVUH5/Dx0v/w== + dependencies: + "@mapbox/polyline" "^1.1.0" + "@opentripplanner/core-utils" "^0.0.17" + prop-types "^15.7.2" + +"@opentripplanner/stop-viewer-overlay@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/stop-viewer-overlay/-/stop-viewer-overlay-0.0.17.tgz#573b3b55d54a5cc65a5536d545ba5c5d111960cb" + integrity sha512-Y9fnCHLL/0BQsk7gOBKSzlRIIGjLfLPVwmAmMXgQqKjeOB+8g+DznnmUaGHOcPA3CQWO/1BW+oeHK9RRAy5lNw== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + prop-types "^15.7.2" + +"@opentripplanner/stops-overlay@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/stops-overlay/-/stops-overlay-0.0.17.tgz#8d9fedc90e858098163fd6896187c7d62ca5ad67" + integrity sha512-Idbicb8N/Lc7G8vg+eyqjvprgtpTTb6uS6FmnpmbP6E7IXG3zUmR4dwoKxxdIvR5g96cO5BM8hgrdoagIFBkcw== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + "@opentripplanner/from-to-location-picker" "^0.0.17" + +"@opentripplanner/transit-vehicle-overlay@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/transit-vehicle-overlay/-/transit-vehicle-overlay-0.0.17.tgz#3b23799bc69b5ba9a5c6e07866dfb2b3a7b02c38" + integrity sha512-mi4GSLnxhR1XA2Sl4C5XuWkRjlaw390+c7Xw3rbqYJVDp9CY9Sq2W3YtlVgtbzAWaLOwts2rhkD76BBBS3J70Q== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + "@opentripplanner/icons" "^0.0.17" + "@turf/nearest-point-on-line" "^6.0.1" + es6-promise "^4.2.8" + isomorphic-fetch "^2.2.1" + leaflet-rotatedmarker "^0.2.0" + lodash.clonedeep "^4.5.0" + styled-icons "^9.1.0" + throttle-debounce "^2.1.0" + +"@opentripplanner/transitive-overlay@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/transitive-overlay/-/transitive-overlay-0.0.17.tgz#9184a94183cd1eef7b9f496caeb7f9c62f9bb416" + integrity sha512-35xQFs/TBQrGVdsM/X2zM/DKxCyPOXsxJyMqTFSZTWidt4ggC03FKR/TeuK369sHBMJmDWkl4Gv5un7yB5Iz3w== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + lodash.isequal "^4.5.0" + transitive-js "^0.13.0" + +"@opentripplanner/trip-viewer-overlay@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-viewer-overlay/-/trip-viewer-overlay-0.0.17.tgz#d15b90e8020bd0a957b607c9e876288f90b64a59" + integrity sha512-6CVvrWwBkB2vpGpMPg6+Aom5KRTYEO3Vm8MHXCSl24zKEpX2+B2czsxopJtLhn2eD0DICPjgZ5k1x4kYfATUiw== + dependencies: + "@mapbox/polyline" "^1.1.0" + "@opentripplanner/core-utils" "^0.0.17" + prop-types "^15.7.2" + +"@opentripplanner/vehicle-rental-overlay@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/vehicle-rental-overlay/-/vehicle-rental-overlay-0.0.17.tgz#6e55a9ab242f709b6e2af7d76da1da78c6471666" + integrity sha512-6FhSXLsqVzcn78cpacCd7Cwr1w8e+3HUreLbz+E/L+VzueKBdEoCTjXTHN7vdpWSoEtyW+gUMAeFNP22pclIcw== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + "@opentripplanner/from-to-location-picker" "^0.0.17" + lodash.memoize "^4.1.2" + prop-types "^15.7.2" + styled-icons "^9.1.0" + "@semantic-release/commit-analyzer@^6.1.0": version "6.2.0" resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.2.0.tgz#5cd25ce67ba9ba5b46e47457505e63629e186695" @@ -1671,6 +1812,14 @@ "@turf/helpers" "6.x" "@turf/invariant" "6.x" +"@turf/bbox@*": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/bbox/-/bbox-6.0.1.tgz#b966075771475940ee1c16be2a12cf389e6e923a" + integrity sha512-EGgaRLettBG25Iyx7VyUINsPpVj1x3nFQFiGS3ER8KCI1MximzNLsam3eXRabqQDjyAKyAE1bJ4EZEpGvspQxw== + dependencies: + "@turf/helpers" "6.x" + "@turf/meta" "6.x" + "@turf/bearing@6.x": version "6.0.1" resolved "https://registry.yarnpkg.com/@turf/bearing/-/bearing-6.0.1.tgz#8da5d17092e571f170cde7bfb2e5b0d74923c92d" @@ -1707,6 +1856,46 @@ dependencies: "@turf/helpers" "6.x" +"@turf/line-intersect@6.x": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@turf/line-intersect/-/line-intersect-6.0.2.tgz#b45b7a4e7e08c39a0e4e91099580ed377ef7335f" + integrity sha512-pfL/lBu7ukBPdTjvSCmcNUzZ83V4R95htwqs5NqU8zeS4R+5KTwacbrOYKztjpmHBwUmPEIIpSbqkUoD0Fp7kg== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + "@turf/line-segment" "6.x" + "@turf/meta" "6.x" + geojson-rbush "3.x" + +"@turf/line-segment@6.x": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@turf/line-segment/-/line-segment-6.0.2.tgz#e280bcde70d28b694028ec1623dc406c928e59b6" + integrity sha512-8AkzDHoNw3X68y115josal+lvdAi4b2P1K0YNTKGyLRBaUhPXVSuMBpMd53FRF1hYEb9UJgMbugF9ZE7m5L6zg== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + "@turf/meta" "6.x" + +"@turf/meta@6.x": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-6.0.2.tgz#eb92951126d24a613ac1b7b99d733fcc20fd30cf" + integrity sha512-VA7HJkx7qF1l3+GNGkDVn2oXy4+QoLP6LktXAaZKjuT1JI0YESat7quUkbCMy4zP9lAUuvS4YMslLyTtr919FA== + dependencies: + "@turf/helpers" "6.x" + +"@turf/nearest-point-on-line@^6.0.1": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@turf/nearest-point-on-line/-/nearest-point-on-line-6.0.2.tgz#4b2c1177595d9a1743af76905a9013ced03bc0dc" + integrity sha512-re9tSEwYyG1EMo4ObXXAKYVhkMVANPIIJQ1V/J1lKcNfHVc1pYmd3D5jkTNBh+oriI9VL4PVML3eqYE+Zcg0mg== + dependencies: + "@turf/bearing" "6.x" + "@turf/destination" "6.x" + "@turf/distance" "6.x" + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + "@turf/line-intersect" "6.x" + "@turf/meta" "6.x" + "@types/babel__core@^7.1.0": version "7.1.2" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f" @@ -5909,7 +6098,7 @@ es6-math@^1.0.0: resolved "https://registry.yarnpkg.com/es6-math/-/es6-math-1.0.0.tgz#5eac891860c2024b728e7122444df388e1d8177a" integrity sha1-XqyJGGDCAktyjnEiRE3ziOHYF3o= -es6-promise@^4.0.3, es6-promise@^4.1.1: +es6-promise@^4.0.3, es6-promise@^4.1.1, es6-promise@^4.2.8: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== @@ -6402,6 +6591,11 @@ fast-deep-equal@^2.0.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + fast-glob@^3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.0.4.tgz#d484a41005cb6faeb399b951fd1bd70ddaebb602" @@ -6890,6 +7084,16 @@ geocoder-arcgis@^2.0.4: lodash.isobject "^3.0.2" lodash.isstring "^4.0.1" +geojson-rbush@3.x: + version "3.1.2" + resolved "https://registry.yarnpkg.com/geojson-rbush/-/geojson-rbush-3.1.2.tgz#577d6ec70ba986d4e60b741f1df5147faeb82c97" + integrity sha512-grkfdg3HIeTjwTfiJe5FT8+fGU3fABCc+vRJDBwdQz9kkLF0Sbif2gs2JUzjewwgmnvLGy9fInySDeADoNuk7w== + dependencies: + "@turf/bbox" "*" + "@turf/helpers" "6.x" + "@turf/meta" "6.x" + rbush "^2.0.0" + get-assigned-identifiers@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" @@ -7348,7 +7552,7 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.0.0: +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -9017,14 +9221,19 @@ lead@^1.0.0: dependencies: flush-write-stream "^1.0.2" +leaflet-rotatedmarker@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/leaflet-rotatedmarker/-/leaflet-rotatedmarker-0.2.0.tgz#4467f49f98d1bfd56959bd9c6705203dd2601277" + integrity sha1-RGf0n5jRv9VpWb2cZwUgPdJgEnc= + "leaflet.polylinemeasure@github:ppete2/Leaflet.PolylineMeasure": version "1.0.0" resolved "https://codeload.github.com/ppete2/Leaflet.PolylineMeasure/tar.gz/8fed0cbe7c17dae4e1ce0852fa243d8467325a77" -leaflet@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.5.1.tgz#9afb9d963d66c870066b1342e7a06f92840f46bf" - integrity sha512-ekM9KAeG99tYisNBg0IzEywAlp0hYI5XRipsqRXyRTeuU8jcuntilpp+eFf5gaE0xubc9RuSNIVtByEKwqFV0w== +leaflet@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.6.0.tgz#aecbb044b949ec29469eeb31c77a88e2f448f308" + integrity sha512-CPkhyqWUKZKFJ6K8umN5/D2wrJ2+/8UIpXppY7QDnUZW5bZL5+SEI2J7GBpwh4LIupOKqbNSQXgqmrEJopHVNQ== left-pad@^1.3.0: version "1.3.0" @@ -12832,6 +13041,11 @@ quick-lru@^4.0.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== +quickselect@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-1.1.1.tgz#852e412ce418f237ad5b660d70cffac647ae94c2" + integrity sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ== + qw@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" @@ -12894,6 +13108,13 @@ raw-body@~1.1.0: bytes "1" string_decoder "0.10" +rbush@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/rbush/-/rbush-2.0.2.tgz#bb6005c2731b7ba1d5a9a035772927d16a614605" + integrity sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA== + dependencies: + quickselect "^1.0.1" + rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -12977,14 +13198,14 @@ react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== -react-leaflet@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-2.4.0.tgz#9cef74e14aeeb094bfe662b46de1682623c090ea" - integrity sha512-ex9MAz2cUAmdUucsjv180OYszdqxHIyEwzWAuMOOuxE7yUmRscxZKR5h0f+vG4shR+SekZYUBk0+gCv8apRADQ== +react-leaflet@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-2.6.1.tgz#e5d6514d2358c51a28e614b8a0ddf8dca56e7179" + integrity sha512-pqXQegdX4EL4R+zL33J92aLUcznp5TksNdW6CerwEwmi5m6CHt5k2YTkvyPVroZPA7pLAPB3ZAjmLLEmZh7yLw== dependencies: - "@babel/runtime" "^7.4.5" - fast-deep-equal "^2.0.1" - hoist-non-react-statics "^3.3.0" + "@babel/runtime" "^7.7.6" + fast-deep-equal "^3.1.1" + hoist-non-react-statics "^3.3.1" warning "^4.0.3" react-lifecycles-compat@^3.0.4: From 38673f26036f7923769d1b541627cf3215a2aa41 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 11 Mar 2020 16:25:26 -0400 Subject: [PATCH 011/115] refactor(DateTimeSelector): Replace DateTimeSelector with the one from OTP-ui. --- lib/components/form/date-time-modal.js | 106 +++++++++++++++++++++++-- package.json | 4 +- 2 files changed, 103 insertions(+), 7 deletions(-) diff --git a/lib/components/form/date-time-modal.js b/lib/components/form/date-time-modal.js index 74e839fa4..dd355b874 100644 --- a/lib/components/form/date-time-modal.js +++ b/lib/components/form/date-time-modal.js @@ -3,20 +3,99 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import { connect } from 'react-redux' import { Button, ButtonGroup } from 'react-bootstrap' +import styled from 'styled-components' +import { getTimeFormat, getDateFormat } from '@opentripplanner/core-utils/lib/time' +import { DateTimeSelector } from '@opentripplanner/trip-form' +import * as TripFormClasses from '@opentripplanner/trip-form/lib/styled' -import DateTimeSelector from './date-time-selector' import { setQueryParam } from '../../actions/form' +const StyledDateTimeSelector = styled(DateTimeSelector)` + margin: 0 -15px 20px; + ${TripFormClasses.DateTimeSelector.DateTimeRow} { + margin-top: 20px; + } + + input { + -webkit-appearance: textfield; + -moz-appearance: textfield; + appearance: textfield; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + box-shadow: none; + color: #555; + font-family: inherit; + font-size: 16px; + height: 34px; + padding: 6px 12px; + text-align: center; + &.focused { + outline: 0; + border-color: #66afe9; + font-weight: 400; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + } + } + + button { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + background-color: #fff; + border: 1px solid #ccc; + border-radius: 4px; + color: #333; + cursor: pointer; + font-family: inherit; + font-weight: 400; + font-size: 14px; + line-height: 1.42857143; + outline-offset:-2px; + padding: 6px 12px; + text-align: center; + touch-action: manipulation; + user-select: none; + white-space: nowrap; + + &.active { + background-color: #e6e6e6; + border-color: #adadad; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + font-weight: 400; + } + &:hover { + background-color: #e6e6e6; + border-color: #adadad; + } + &.active { + background-color: #e6e6e6; + border-color: #adadad; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + font-weight: 400; + &:hover { + background-color: #d4d4d4; + border-color: #8c8c8c; + } + } + } +` +// ^ ^ TODO: On Chrome on MacOS, here is a one-pixel gap between the selection highlight and the control +// that didn't occur in the old version. + // Define default routingType labels and components const rtDefaults = [ { key: 'ITINERARY', text: 'Itinerary', - component: + component: , + componentClass: StyledDateTimeSelector }, { key: 'PROFILE', text: 'Profile', - component: + component: , // TODO: Profile in DateTimeSelector. + componentClass: StyledDateTimeSelector } ] @@ -27,7 +106,8 @@ class DateTimeModal extends Component { } render () { - const { config, routingType, setQueryParam } = this.props + const { config, date, dateFormatLegacy, departArrive, routingType, setQueryParam, time, timeFormatLegacy } = this.props + const ActualDateSelector = rtDefaults.find(d => d.key === routingType).componentClass return (
@@ -55,7 +135,15 @@ class DateTimeModal extends Component { {/* The main panel for the selected routing type */}
- {rtDefaults.find(d => d.key === routingType).component} +
) @@ -69,7 +157,13 @@ const mapStateToProps = (state, ownProps) => { departArrive, date, time, - routingType + // startTime, // Not used right now, was once used in "Profile mode". + // endTime, // Not used right now, was once used in "Profile mode". + routingType, + // These props below are for very old browsers + Safari on MacOS that don't support ``. + // Otherwise, `` in modern browsers displays the time|date according to user/local settings. + timeFormatLegacy: getTimeFormat(state.otp.config), + dateFormatLegacy: getDateFormat(state.otp.config) } } diff --git a/package.json b/package.json index 2662e82ef..701124d4f 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,9 @@ "@conveyal/geocoder-arcgis-geojson": "^0.0.2", "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", - "@opentripplanner/from-to-location-picker": "^0.0.14", + "@opentripplanner/core-utils": "^0.0.17", + "@opentripplanner/from-to-location-picker": "^0.0.17", + "@opentripplanner/trip-form": "^0.0.17", "bootstrap": "^3.3.7", "bowser": "^1.9.3", "clone": "^2.1.0", From c5904ab6806d6df9b996629e2c58a62d649d7bd5 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 11 Mar 2020 16:43:11 -0400 Subject: [PATCH 012/115] fix(Yarn): Update yarn file; Remove unused stuff in DateTimeModal --- lib/components/form/date-time-modal.js | 23 +- lib/components/form/date-time-selector.js | 254 ---------- yarn.lock | 536 +++++++++++++++++++++- 3 files changed, 542 insertions(+), 271 deletions(-) delete mode 100644 lib/components/form/date-time-selector.js diff --git a/lib/components/form/date-time-modal.js b/lib/components/form/date-time-modal.js index dd355b874..db1b43544 100644 --- a/lib/components/form/date-time-modal.js +++ b/lib/components/form/date-time-modal.js @@ -10,6 +10,8 @@ import * as TripFormClasses from '@opentripplanner/trip-form/lib/styled' import { setQueryParam } from '../../actions/form' +// Styles for the DateTimeSelector. +// TODO: Find a way to bring OTP CSS classes in here. const StyledDateTimeSelector = styled(DateTimeSelector)` margin: 0 -15px 20px; ${TripFormClasses.DateTimeSelector.DateTimeRow} { @@ -81,21 +83,15 @@ const StyledDateTimeSelector = styled(DateTimeSelector)` } } ` -// ^ ^ TODO: On Chrome on MacOS, here is a one-pixel gap between the selection highlight and the control -// that didn't occur in the old version. // Define default routingType labels and components const rtDefaults = [ { key: 'ITINERARY', - text: 'Itinerary', - component: , - componentClass: StyledDateTimeSelector + text: 'Itinerary' }, { key: 'PROFILE', - text: 'Profile', - component: , // TODO: Profile in DateTimeSelector. - componentClass: StyledDateTimeSelector + text: 'Profile' } ] @@ -107,7 +103,6 @@ class DateTimeModal extends Component { render () { const { config, date, dateFormatLegacy, departArrive, routingType, setQueryParam, time, timeFormatLegacy } = this.props - const ActualDateSelector = rtDefaults.find(d => d.key === routingType).componentClass return (
@@ -135,7 +130,7 @@ class DateTimeModal extends Component { {/* The main panel for the selected routing type */}
- { departArrive, date, time, - // startTime, // Not used right now, was once used in "Profile mode". - // endTime, // Not used right now, was once used in "Profile mode". routingType, - // These props below are for very old browsers + Safari on MacOS that don't support ``. - // Otherwise, `` in modern browsers displays the time|date according to user/local settings. + // These props below are for Safari on MacOS, and old browsers + // that don't support ``. + // In modern browsers, `` already + // formats the time|date according to the OS settings. timeFormatLegacy: getTimeFormat(state.otp.config), dateFormatLegacy: getDateFormat(state.otp.config) } diff --git a/lib/components/form/date-time-selector.js b/lib/components/form/date-time-selector.js deleted file mode 100644 index e7a409816..000000000 --- a/lib/components/form/date-time-selector.js +++ /dev/null @@ -1,254 +0,0 @@ -// import moment from 'moment' -import React, {Component} from 'react' -import PropTypes from 'prop-types' -import { Form, FormGroup, FormControl, Row, Col, Button } from 'react-bootstrap' -// import { SingleDatePicker } from 'react-dates' -import { connect } from 'react-redux' -import moment from 'moment' - -import { setQueryParam } from '../../actions/form' -import { - OTP_API_DATE_FORMAT, - OTP_API_TIME_FORMAT, - getTimeFormat, - getDateFormat -} from '../../util/time' - -function checkInput (type) { - var input = document.createElement('input') - input.setAttribute('type', type) - return input.type === type -} - -class DateTimeSelector extends Component { - static propTypes = { - date: PropTypes.string, - departArrive: PropTypes.string, - time: PropTypes.string, - location: PropTypes.object, - label: PropTypes.string, - profile: PropTypes.bool, - startTime: PropTypes.string, - endTime: PropTypes.string, - - setQueryParam: PropTypes.func, - type: PropTypes.string // replace with locationType? - } - - constructor (props) { - super(props) - this.state = { - dateFocused: false - } - this._supportsDateTimeInputs = checkInput('date') && checkInput('time') - console.log(`supports date time: ${this._supportsDateTimeInputs}`) - } - - _onDateChange = (evt) => { - this.props.setQueryParam({ date: evt.target.value }) - } - - _onDayOfWeekChange = evt => { - this.props.setQueryParam({ - date: moment().weekday(evt.target.value).format(OTP_API_DATE_FORMAT) - }) - } - - _onEndTimeChange = (evt) => { - this.props.setQueryParam({ endTime: evt.target.value }) - } - - _onStartTimeChange = (evt) => { - this.props.setQueryParam({ startTime: evt.target.value }) - } - - _onTimeChange = (evt) => { - this.props.setQueryParam({ time: evt.target.value }) - } - - _onBackupTimeChange = (evt) => { - const {setQueryParam, timeFormat} = this.props - const time = moment(evt.target.value, timeFormat).format(OTP_API_TIME_FORMAT) - setQueryParam({ time }) - } - - _onBackupDateChange = (evt) => { - const {setQueryParam, dateFormat} = this.props - const date = moment(evt.target.value, dateFormat).format(OTP_API_DATE_FORMAT) - setQueryParam({ date }) - } - - _setDepartArrive = (type) => { - const {setQueryParam} = this.props - setQueryParam({ departArrive: type }) - if (type === 'NOW') { - setQueryParam({ - date: moment().format(OTP_API_DATE_FORMAT), - time: moment().format(OTP_API_TIME_FORMAT) - }) - } - } - - render () { - const { departArrive, date, time, timeFormat, dateFormat } = this.props - - // TODO: restore for profile mode - /* if (this.props.profile) { - const dowOptions = [{ - text: 'WEEKDAY', - weekday: 3 - }, { - text: 'SATURDAY', - weekday: 6 - }, { - text: 'SUNDAY', - weekday: 0 - }] - - return ( -
- - - - - {dowOptions.map((o, i) => ( - - ))} - - - - - - - - TO - - - - - -
- ) - } */ - - return ( -
- - - {['NOW', 'DEPART', 'ARRIVE'].map((type, i) => ( - - - - ))} - - {departArrive !== 'NOW' && !this._supportsDateTimeInputs && ( - - - - - - - - - )} - {departArrive !== 'NOW' && this._supportsDateTimeInputs && ( - - - - - - - - - )} - -
- ) - } -} - -class DateOptionButton extends Component { - _onClick = () => { - this.props.setDepartArrive(this.props.type) - } - - render () { - const { active, type } = this.props - let text = type - if (type === 'NOW') text = 'Leave now' - if (type === 'DEPART') text = 'Depart at' - if (type === 'ARRIVE') text = 'Arrive by' - const classNames = ['date-option-button', 'select-button'] - if (active) classNames.push('active') - return - } -} - -const mapStateToProps = (state, ownProps) => { - const { departArrive, date, time, startTime, endTime } = state.otp.currentQuery - return { - config: state.otp.config, - departArrive, - date, - time, - startTime, - endTime, - timeFormat: getTimeFormat(state.otp.config), - dateFormat: getDateFormat(state.otp.config) - } -} - -const mapDispatchToProps = { - setQueryParam -} - -export default connect(mapStateToProps, mapDispatchToProps)(DateTimeSelector) diff --git a/yarn.lock b/yarn.lock index d6a58d096..af43cfd36 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,13 @@ dependencies: "@babel/highlight" "^7.0.0" +"@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + "@babel/core@^7.1.0", "@babel/core@^7.1.2", "@babel/core@^7.3.4": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" @@ -40,6 +47,16 @@ source-map "^0.5.0" trim-right "^1.0.1" +"@babel/generator@^7.8.6": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.7.tgz#870b3cf7984f5297998152af625c4f3e341400f7" + integrity sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew== + dependencies: + "@babel/types" "^7.8.7" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" @@ -110,6 +127,15 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" +"@babel/helper-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" + integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + "@babel/helper-get-function-arity@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" @@ -117,6 +143,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" + integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== + dependencies: + "@babel/types" "^7.8.3" + "@babel/helper-hoist-variables@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" @@ -205,6 +238,13 @@ dependencies: "@babel/types" "^7.4.4" +"@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" + integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== + dependencies: + "@babel/types" "^7.8.3" + "@babel/helper-wrap-function@^7.1.0", "@babel/helper-wrap-function@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" @@ -233,6 +273,15 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@babel/highlight@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" + integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + "@babel/parser@7.1.3": version "7.1.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" @@ -243,6 +292,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== +"@babel/parser@^7.8.6": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.7.tgz#7b8facf95d25fef9534aad51c4ffecde1a61e26a" + integrity sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A== + "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" @@ -936,6 +990,15 @@ "@babel/parser" "^7.4.4" "@babel/types" "^7.4.4" +"@babel/template@^7.8.3": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" + integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.4", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" @@ -951,6 +1014,21 @@ globals "^11.1.0" lodash "^4.17.13" +"@babel/traverse@^7.4.5": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.6.tgz#acfe0c64e1cd991b3e32eae813a6eb564954b5ff" + integrity sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.6" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + "@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.1.3", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" @@ -960,6 +1038,15 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.8.7": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.7.tgz#1fc9729e1acbb2337d5b6977a63979b4819f5d1d" + integrity sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@cnakazawa/watch@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" @@ -986,6 +1073,28 @@ resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== +"@emotion/is-prop-valid@^0.8.3", "@emotion/is-prop-valid@^0.8.6": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" + integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== + dependencies: + "@emotion/memoize" "0.7.4" + +"@emotion/memoize@0.7.4": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" + integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== + +"@emotion/stylis@^0.8.4": + version "0.8.5" + resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" + integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== + +"@emotion/unitless@^0.7.4": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" + integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== + "@jest/console@^24.7.1": version "24.7.1" resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545" @@ -1137,6 +1246,13 @@ resolved "https://registry.yarnpkg.com/@mapbox/polyline/-/polyline-0.2.0.tgz#6e25980744aa22331f94b645a542c02d3fcfee97" integrity sha1-biWYB0SqIjMflLZFpULALT/P7pc= +"@mapbox/polyline@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@mapbox/polyline/-/polyline-1.1.0.tgz#7bdd1da3a25c1d059af3897e0ee581b7c7b80243" + integrity sha512-NwiMS+AA/ZLIgd69YYXtQ0jtIBu8nQuVaRr4NxBoRjEd9ddKDoe4q8a51Ukk7Vj+jwQtbupqmvoLni1QhnJ4Pg== + dependencies: + meow "^5.0.0" + "@nodelib/fs.scandir@2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.1.tgz#7fa8fed654939e1a39753d286b48b4836d00e0eb" @@ -1208,6 +1324,53 @@ universal-user-agent "^3.0.0" url-template "^2.0.8" +"@opentripplanner/core-utils@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.17.tgz#6d436183e63615730e6ed05f87bf873d8885e8c3" + integrity sha512-JU+YA/DxCrKyfjFrWC34pPaMxDy3K7ABY+psnGzq7Y940qB3PeOMZyI6ZuoYnqMymtF4Y53zBpvMeMjkVoH3vw== + dependencies: + "@mapbox/polyline" "^1.1.0" + "@turf/along" "^6.0.1" + bowser "^2.7.0" + lodash.isequal "^4.5.0" + moment "^2.24.0" + moment-timezone "^0.5.27" + prop-types "^15.7.2" + qs "^6.9.1" + +"@opentripplanner/from-to-location-picker@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.17.tgz#41b594c7f047c5884a5f97630d452305b3151a85" + integrity sha512-PNIO3dXAbSFkG4qKgmw21wmDiDIordNtRBC8f7H9ruT4Fjo1SnDxW6Prj+5plPnVkhh5SzmXR8PfdDe13XsljA== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + "@opentripplanner/location-icon" "^0.0.17" + prop-types "^15.7.2" + +"@opentripplanner/icons@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.17.tgz#8843bbb9b35210714d62e3c5c74b94dee0631f94" + integrity sha512-1Ov1DgcFx7GwR3qO/NWdcyqtGDbXR/IZUEvUrb5mHPDrthejmuVYOCGUiDGl7avTxM7k85SKXMaRbQ3qSbp/eg== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + prop-types "^15.7.2" + +"@opentripplanner/location-icon@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.17.tgz#2793df54da3b1f50767f723236c30f0f87ca275a" + integrity sha512-kbIImQ/IHre/6gCifjuZGpuHWLddAAt9IF64Fhp4Lilou8nVJgdx9P3VyIcjt0nJmtLEV/p5zPJVVp+NzvGU9A== + dependencies: + styled-icons "^9.1.0" + +"@opentripplanner/trip-form@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-form/-/trip-form-0.0.17.tgz#1b52e938c9202e8f4acfc103aa7ba47bae940b21" + integrity sha512-taHdT9slB9WvuJBCZn7pjO+4i1KOvow789khzgLICA7Gp4xexMotn3e0lyyFyyNMoIo0Qod1J1B8sXjisU19kA== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + "@opentripplanner/icons" "^0.0.17" + moment "^2.17.1" + "@semantic-release/commit-analyzer@^6.1.0": version "6.2.0" resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.2.0.tgz#5cd25ce67ba9ba5b46e47457505e63629e186695" @@ -1281,6 +1444,237 @@ lodash "^4.17.4" read-pkg-up "^6.0.0" +"@styled-icons/boxicons-logos@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/boxicons-logos/-/boxicons-logos-9.4.1.tgz#774e7f73839e834445dcc0ae4c0c356221767664" + integrity sha512-DN6Za9paJeWkoIXI1newSSfDALIR8ecaAsgzP3ZD+NRJHy6idW+1ouC5p3DlRM29+Cp4yJ/z3bH9whBDbd7YXQ== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/boxicons-regular@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/boxicons-regular/-/boxicons-regular-9.4.1.tgz#742a1d0b5798c54f189b9278810d8110df8f9754" + integrity sha512-910zIWCB0JkEgk9I7zIIEdPc8xibg3xrT4Wo7gIu4lGEr4u9OOQT3c0ajJD7F+JlhWcWBVumzjfjOT8A5UjPJw== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/boxicons-solid@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/boxicons-solid/-/boxicons-solid-9.4.1.tgz#5219a0c900f2ccc5dc9056c4ee2d1c180d9dbdf1" + integrity sha512-7FvU6KSnxBprsidta3/0grTkimYWDUnSZCyLscT1OwjmfyFPpnLNmJASQDrEtORF2GPw5Y2gc/q6h2RI4OnYcA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/crypto@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/crypto/-/crypto-9.4.1.tgz#9abe2a3165f78a1592ea1d910aa1e1210b990fef" + integrity sha512-qIjzvaw0kFykDN7PTGD8d3HvFVoX7kW7nwlvvzW/pGhVzpUHE7Mh2Syc04HpoknCgO0fCjAzXaxi9Igu3nS9NA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/entypo-social@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/entypo-social/-/entypo-social-9.5.0.tgz#d5c69c928dbcb83c39d8359e50c148bd497bcaff" + integrity sha512-yEpaJtTUriZSZPT/iqxgNONgxDYr0MHXANvoUW2CB0Ey4zTZst+2x7EJ9KgL2CjdBgA0bs8hnx5etGHUi8BtuA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/entypo@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/entypo/-/entypo-9.5.0.tgz#170c484e53820ec683d338353e44bae71d773611" + integrity sha512-gy/CXs45g1o5c61BnSnpd/cb84sXIARPByOa354FkN0aUHqepbF2qtBjZ3Udho6zWpm1nGOOUiawQb53PnG9vg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/evil@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/evil/-/evil-9.4.1.tgz#159d5c026e7d0689b453684b719ecb13e4ea0fe5" + integrity sha512-ejCBH+aXrjtBM+iMJomYlZ/xiJ+NGHVlIfQmkgD6roxtJzMzAmhwXgC5S3p0no2n1EXluUdJiufrI/QtP7iNbA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/fa-brands@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/fa-brands/-/fa-brands-9.4.1.tgz#ad329324875bb7db00ff5fb68ce98203fbe03b7a" + integrity sha512-zqlS/Y3mQLdBgRhZo1op5+twKYYwfS7OjqL90N+etokIWPqv1b7nwPWzwKoRpqDfCt/gyqmgxXqWufFd0CAx7Q== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/fa-regular@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/fa-regular/-/fa-regular-9.4.1.tgz#556b1840e97db031b5c07a7175b57103e3fd988b" + integrity sha512-tpgLOUPECtWNwVs7G82IaDkb1T13yNyDNZBB85sEO02ldHAZe6tt0Yi5gGCBExtU/p+4/jLTcU+pcoh/mySlVg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/fa-solid@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/fa-solid/-/fa-solid-9.4.1.tgz#d30de755f8fee6e932032e97fa592cb1eaa21d8e" + integrity sha512-ZyPxbCFmuuy3XotCI0SgHyUn3gTvQXm+iVnh+8r0gR8Kd88iTTubTqxgtdS0lrefaB4ayl6vEg20Dv9e9PvYVg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/feather@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/feather/-/feather-9.4.1.tgz#5e8a4193e70d477e9ad249f921c6d637f9fc631c" + integrity sha512-ucMOPhvaCp6N4lxL+z/66Kech20jAdMfewER732jhjV8P3FknoAY2+0CXXE+tBvJoJ/SOJZDOsW58Gr7yAWXOQ== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/foundation@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/foundation/-/foundation-9.5.0.tgz#011ac022ffcb20868385b97bf4fb173cceaf634d" + integrity sha512-O4Y62bfZfZjhZDXYtJYd/RsID1vpmMtgLSP54b0KbvY70hjdlFQZ0ZVR2fAzA0YSK90VjbYBbQDCCyqim4v3qA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/heroicons-outline@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/heroicons-outline/-/heroicons-outline-9.5.0.tgz#235046e3310e10165b9587a122a60e83e94e51de" + integrity sha512-MMY5NjVVimhTHhk+ADR4/a2KpjIjbmzW+SNPRCKMWgGyqXx1NjBrD72bnvrzApLdMnDvEsM/DYK6DVUW7UZhKw== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/heroicons-solid@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/heroicons-solid/-/heroicons-solid-9.5.0.tgz#2ed99d05a9a82c742eb7667c75b0d9c319fdee10" + integrity sha512-dYQYdxZ0BkGpl3nGQmkvONF1+Yq+E6I9S7snba1mirCDWQpIdgylGm+Z9CM/OvdIlhr5da00D4oZu+2CiGdCFQ== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/icomoon@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/icomoon/-/icomoon-9.4.1.tgz#b75118a6d10cb8f5e7e15ae7a323009dd2f98e7e" + integrity sha512-oEw84P55EahJFdhQPBnUbvQqB08LuJKq75AkwaCSqk6w1DIEDbjY72lb6mbAwZB/AwNYeRVJJhTHaF1MNY103A== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/material@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/material/-/material-9.4.1.tgz#26169db802a10e333a5608aec2611878dd45f6fe" + integrity sha512-7Ucsm7RxCrnznZb+WDptBrGE45ZVBODm6J0e+fy0hvO9sjWAcuoKffYTcQEhDS2pqC1Rcc/nSZHDbqwZrpGJVw== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/octicons@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/octicons/-/octicons-9.4.1.tgz#9670b6a3fc70eb80961fa0771464d8dbde18a6ea" + integrity sha512-MHiMMah2agDpmk8JcNLgeZab74TO3elM8CIYIQahrucyVbHfCY7mX1z8OOyXZwrf/hgrBKK4nUM4jf0wxk70+Q== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/open-iconic@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/open-iconic/-/open-iconic-9.5.0.tgz#03c70256244ee4a1ed422563f3ce3d0270a6beb8" + integrity sha512-mSDnCPDKYXhXY+oNfgNKMj2+ltl63k8QIC6bCDsX18bYXDqkeEwKthfNw0minabyP4Tq+yJe/B03RH+EdQWmDg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/remix-fill@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/remix-fill/-/remix-fill-9.4.1.tgz#afc7141d0c5c0606ef190b0cebe4793a4449b389" + integrity sha512-OlxQudeM/u+IAHacSVwwiuSYBDSsQNKA4gr8WSFHpy1CEciLc/hE/aNJP+SLcBETdg/C/kJIj8JNme5B8aYIeg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/remix-line@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/remix-line/-/remix-line-9.4.1.tgz#1d4fdaef53f3c366a746f054d70dcd138a4e567e" + integrity sha512-NAdR8LD7ugeUhmd6W3v+GA5/6OBexe15fjQTt1kFHYclS+2nrLQ7MA4kF5SkwsRQNGPy+3CMN5cQoMy5R8NAtQ== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/styled-icon@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/styled-icon/-/styled-icon-9.4.1.tgz#9dc236c85afd89edc2bc7265ec7858cbc35d4234" + integrity sha512-qF0E2QOcyR1e6rh1QkKGsFt9vuayhZBJEKRa8erbHpOYLRNiEmoF1dLEVVMUKjnj5jAzzk0fNd8jSz0su3kpKg== + dependencies: + "@emotion/is-prop-valid" "^0.8.6" + tslib "^1.9.3" + +"@styled-icons/typicons@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/typicons/-/typicons-9.4.1.tgz#b201080bc3985cab1f0ff0e8827350aea14cb309" + integrity sha512-gV3W836B7k7FuNjZJt2H7WYcV+wPf7L5RYJQUL99lPdvADeOUhG2hIVIKvmS4F2Tc3XbyYbRmSBPTHtu4Fcftg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/zondicons@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/zondicons/-/zondicons-9.5.0.tgz#27f184764f586f31aa9256905ab3db1cd833bfa8" + integrity sha512-26PYTzSr85tf1+P/N1zaqbLuJLG1YP9rp3QN1TsCcM19gT0Y3WzVUmiNHdv15jGO9bH/jpV9b7TjuT+1gkMPCw== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@turf/along@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/along/-/along-6.0.1.tgz#595cecdc48fc7fcfa83c940a8e3eb24d4c2e04d4" + integrity sha512-6PptAcrsFR3o0Flpktk8Vo68W2txEVTh14zjoTVu+H5docd2+pv5/upA77bg3YFBoJgAxmUFt1leDdjReJ44BQ== + dependencies: + "@turf/bearing" "6.x" + "@turf/destination" "6.x" + "@turf/distance" "6.x" + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/bearing@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/bearing/-/bearing-6.0.1.tgz#8da5d17092e571f170cde7bfb2e5b0d74923c92d" + integrity sha512-mXY1NozqV9EFfBTbUItujwfqfQF0G/Xe2fzvnZle90ekPEUfhi4Dgf5JswJTd96J9LiT8kcd6Jonp5khnx0wIg== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/destination@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/destination/-/destination-6.0.1.tgz#5275887fa96ec463f44864a2c17f0b712361794a" + integrity sha512-MroK4nRdp7as174miCAugp8Uvorhe6rZ7MJiC9Hb4+hZR7gNFJyVKmkdDDXIoCYs6MJQsx0buI+gsCpKwgww0Q== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/distance@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/distance/-/distance-6.0.1.tgz#0761f28784286e7865a427c4e7e3593569c2dea8" + integrity sha512-q7t7rWIWfkg7MP1Vt4uLjSEhe5rPfCO2JjpKmk7JC+QZKEQkuvHEqy3ejW1iC7Kw5ZcZNR3qdMGGz+6HnVwqvg== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/helpers@6.x": + version "6.1.4" + resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-6.1.4.tgz#d6fd7ebe6782dd9c87dca5559bda5c48ae4c3836" + integrity sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g== + +"@turf/invariant@6.x": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-6.1.2.tgz#6013ed6219f9ac2edada9b31e1dfa5918eb0a2f7" + integrity sha512-WU08Ph8j0J2jVGlQCKChXoCtI50BB3yEH21V++V0T4cR1T27HKCxkehV2sYMwTierfMBgjwSwDIsxnR4/2mWXg== + dependencies: + "@turf/helpers" "6.x" + "@types/babel__core@^7.1.0": version "7.1.2" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f" @@ -2312,6 +2706,16 @@ babel-plugin-react-require@^3.1.1: resolved "https://registry.yarnpkg.com/babel-plugin-react-require/-/babel-plugin-react-require-3.1.1.tgz#5c3d2564fa16b1e45212ed52519db147b1596106" integrity sha512-XFz+B0dWx41fnGnugzCWn5rOgrDHb150N5gFhUfO3BgYDCT25o4sofRtd9uUfqUHoRu+t4/r5Cr2RMPIKuCt2g== +"babel-plugin-styled-components@>= 1": + version "1.10.7" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.7.tgz#3494e77914e9989b33cc2d7b3b29527a949d635c" + integrity sha512-MBMHGcIA22996n9hZRf/UJLVVgkEOITuR2SvjHLb5dSTUyR4ZRGn+ngITapes36FI3WLxZHfRhkA1ffHxihOrg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-module-imports" "^7.0.0" + babel-plugin-syntax-jsx "^6.18.0" + lodash "^4.17.11" + babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" @@ -2347,7 +2751,7 @@ babel-plugin-syntax-flow@^6.18.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" integrity sha1-TDqyCiryaqIM0lmVw5jE63AxDI0= -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: +babel-plugin-syntax-jsx@^6.18.0, babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= @@ -2966,6 +3370,11 @@ bowser@^1.9.3: resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a" integrity sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ== +bowser@^2.7.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz#3bed854233b419b9a7422d9ee3e85504373821c9" + integrity sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA== + boxen@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" @@ -3412,6 +3821,11 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelize@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" + integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= + caniuse-api@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" @@ -4321,6 +4735,11 @@ css-blank-pseudo@^0.1.4: dependencies: postcss "^7.0.5" +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU= + css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" @@ -4408,6 +4827,15 @@ css-selector-tokenizer@^0.7.0: fastparse "^1.1.1" regexpu-core "^1.0.0" +css-to-react-native@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" + integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + css-tree@1.0.0-alpha.29: version "1.0.0-alpha.29" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" @@ -6893,6 +7321,13 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoist-non-react-statics@^3.0.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" @@ -9462,6 +9897,21 @@ meow@^4.0.0: redent "^2.0.0" trim-newlines "^2.0.0" +meow@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" + integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + yargs-parser "^10.0.0" + merge-stream@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" @@ -9757,7 +10207,14 @@ moment-timezone@^0.5.23: dependencies: moment ">= 2.9.0" -"moment@>= 2.9.0", moment@>=1.6.0, moment@^2.17.1: +moment-timezone@^0.5.27: + version "0.5.28" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.28.tgz#f093d789d091ed7b055d82aa81a82467f72e4338" + integrity sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw== + dependencies: + moment ">= 2.9.0" + +"moment@>= 2.9.0", moment@>=1.6.0, moment@^2.17.1, moment@^2.24.0: version "2.24.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== @@ -11949,6 +12406,11 @@ postcss-value-parser@^4.0.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz#99a983d365f7b2ad8d0f9b8c3094926eab4b936d" integrity sha512-ESPktioptiSUchCKgggAkzdmkgzKfmp0EU8jXH+5kbIUB+unr0Y4CY9SRMvibuvYUBjNh1ACLbxqYNpdTQOteQ== +postcss-value-parser@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d" + integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg== + postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" @@ -12296,6 +12758,11 @@ qs@^6.3.0, qs@^6.4.0, qs@^6.5.1: resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@^6.9.1: + version "6.9.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9" + integrity sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA== + qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -13722,6 +14189,11 @@ sha@^3.0.0: dependencies: graceful-fs "^4.1.2" +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + shasum@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" @@ -14369,6 +14841,52 @@ style-loader@^0.13.0: dependencies: loader-utils "^1.0.2" +styled-components@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.0.1.tgz#57782a6471031abefb2db5820a1876ae853bc619" + integrity sha512-E0xKTRIjTs4DyvC1MHu/EcCXIj6+ENCP8hP01koyoADF++WdBUOrSGwU1scJRw7/YaYOhDvvoad6VlMG+0j53A== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/traverse" "^7.4.5" + "@emotion/is-prop-valid" "^0.8.3" + "@emotion/stylis" "^0.8.4" + "@emotion/unitless" "^0.7.4" + babel-plugin-styled-components ">= 1" + css-to-react-native "^3.0.0" + hoist-non-react-statics "^3.0.0" + shallowequal "^1.1.0" + supports-color "^5.5.0" + +styled-icons@^9.1.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/styled-icons/-/styled-icons-9.5.0.tgz#d1f6c8dcc3ea81c3d30fe20dfda5d39a8afc593c" + integrity sha512-nby51U6+SRY5010P15XogBZubrqblqXTV50+lA/xBkC1QrTap1BIgCvoJwH9FF5kYI+LKFl/xeco/drwqIR2Pw== + dependencies: + "@styled-icons/boxicons-logos" "^9.4.1" + "@styled-icons/boxicons-regular" "^9.4.1" + "@styled-icons/boxicons-solid" "^9.4.1" + "@styled-icons/crypto" "^9.4.1" + "@styled-icons/entypo" "^9.5.0" + "@styled-icons/entypo-social" "^9.5.0" + "@styled-icons/evil" "^9.4.1" + "@styled-icons/fa-brands" "^9.4.1" + "@styled-icons/fa-regular" "^9.4.1" + "@styled-icons/fa-solid" "^9.4.1" + "@styled-icons/feather" "^9.4.1" + "@styled-icons/foundation" "^9.5.0" + "@styled-icons/heroicons-outline" "^9.5.0" + "@styled-icons/heroicons-solid" "^9.5.0" + "@styled-icons/icomoon" "^9.4.1" + "@styled-icons/material" "^9.4.1" + "@styled-icons/octicons" "^9.4.1" + "@styled-icons/open-iconic" "^9.5.0" + "@styled-icons/remix-fill" "^9.4.1" + "@styled-icons/remix-line" "^9.4.1" + "@styled-icons/styled-icon" "^9.4.1" + "@styled-icons/typicons" "^9.4.1" + "@styled-icons/zondicons" "^9.5.0" + tslib "^1.9.3" + stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" @@ -14407,7 +14925,7 @@ supports-color@^3.1.0, supports-color@^3.2.3: dependencies: has-flag "^1.0.0" -supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -14846,6 +15364,11 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== +tslib@^1.9.3: + version "1.11.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" + integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -15946,6 +16469,13 @@ yamljs@^0.3.0: argparse "^1.0.7" glob "^7.0.5" +yargs-parser@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + dependencies: + camelcase "^4.1.0" + yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" From cf83afdc9210b8dd82fca037b5183ae99bcd548f Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 11 Mar 2020 16:52:40 -0400 Subject: [PATCH 013/115] fix(index): Remove DateTimeSelector from /lib/index.js --- lib/index.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/index.js b/lib/index.js index bd8f7a849..ecb9053b1 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,6 +1,5 @@ import DateTimeModal from './components/form/date-time-modal' import DateTimePreview from './components/form/date-time-preview' -import DateTimeSelector from './components/form/date-time-selector' import DefaultSearchForm from './components/form/default-search-form' import ErrorMessage from './components/form/error-message' import GeneralSettingsPanel from './components/form/general-settings-panel' @@ -63,7 +62,6 @@ export { // form components DateTimeModal, DateTimePreview, - DateTimeSelector, DefaultSearchForm, ErrorMessage, GeneralSettingsPanel, From defce4fbdd408fd6c1378c96d68bfe4ba9e1a2ad Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 11 Mar 2020 17:03:30 -0400 Subject: [PATCH 014/115] refactor(DateTimeModal): Remove routing profile content. --- lib/components/form/date-time-modal.js | 41 ++------------------------ 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/lib/components/form/date-time-modal.js b/lib/components/form/date-time-modal.js index db1b43544..aea415edd 100644 --- a/lib/components/form/date-time-modal.js +++ b/lib/components/form/date-time-modal.js @@ -2,7 +2,6 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import { connect } from 'react-redux' -import { Button, ButtonGroup } from 'react-bootstrap' import styled from 'styled-components' import { getTimeFormat, getDateFormat } from '@opentripplanner/core-utils/lib/time' import { DateTimeSelector } from '@opentripplanner/trip-form' @@ -84,51 +83,16 @@ const StyledDateTimeSelector = styled(DateTimeSelector)` } ` -// Define default routingType labels and components -const rtDefaults = [ - { - key: 'ITINERARY', - text: 'Itinerary' - }, { - key: 'PROFILE', - text: 'Profile' - } -] - class DateTimeModal extends Component { static propTypes = { - routingType: PropTypes.string, setQueryParam: PropTypes.func } render () { - const { config, date, dateFormatLegacy, departArrive, routingType, setQueryParam, time, timeFormatLegacy } = this.props + const { date, dateFormatLegacy, departArrive, setQueryParam, time, timeFormatLegacy } = this.props return (
- {/* The routing-type selection button row. Only show if more than one configured */} - {config.routingTypes.length > 1 && ( -
- - {config.routingTypes.map(rtConfig => { - return ( - - - - ) - })} - -
- )} - - {/* The main panel for the selected routing type */}
{ - const {departArrive, date, time, routingType} = state.otp.currentQuery + const { departArrive, date, time } = state.otp.currentQuery return { config: state.otp.config, departArrive, date, time, - routingType, // These props below are for Safari on MacOS, and old browsers // that don't support ``. // In modern browsers, `` already From ffd28d82ea69ac228d714ddce52a28699c1d8295 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 12 Mar 2020 10:29:10 -0400 Subject: [PATCH 015/115] fix(date-time-modal): Merge from git stash --- lib/components/form/date-time-modal.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/components/form/date-time-modal.js b/lib/components/form/date-time-modal.js index aea415edd..4b3356017 100644 --- a/lib/components/form/date-time-modal.js +++ b/lib/components/form/date-time-modal.js @@ -11,6 +11,10 @@ import { setQueryParam } from '../../actions/form' // Styles for the DateTimeSelector. // TODO: Find a way to bring OTP CSS classes in here. +// See for instance: +// https://github.com/theKashey/styled-components-mixins +// https://github.com/kingpowerclick/styled-bootstrap-mixins + const StyledDateTimeSelector = styled(DateTimeSelector)` margin: 0 -15px 20px; ${TripFormClasses.DateTimeSelector.DateTimeRow} { From ba3c868f607975cf895193c8216d4c15b9577ec9 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 12 Mar 2020 11:52:30 -0400 Subject: [PATCH 016/115] build(package): Add deps --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 2662e82ef..701124d4f 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,9 @@ "@conveyal/geocoder-arcgis-geojson": "^0.0.2", "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", - "@opentripplanner/from-to-location-picker": "^0.0.14", + "@opentripplanner/core-utils": "^0.0.17", + "@opentripplanner/from-to-location-picker": "^0.0.17", + "@opentripplanner/trip-form": "^0.0.17", "bootstrap": "^3.3.7", "bowser": "^1.9.3", "clone": "^2.1.0", From e4f4b8876230f8fc1b9a712bb948938864471930 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 12 Mar 2020 16:45:35 -0400 Subject: [PATCH 017/115] improvement(SettingsSelectorPanel): Use component from OTP-UI, create `styled.js`. Extract UserTripS --- .../form/settings-selector-panel.js | 573 +----------------- lib/components/form/styled.js | 159 +++++ lib/components/form/user-trip-settings.js | 78 +++ 3 files changed, 263 insertions(+), 547 deletions(-) create mode 100644 lib/components/form/styled.js create mode 100644 lib/components/form/user-trip-settings.js diff --git a/lib/components/form/settings-selector-panel.js b/lib/components/form/settings-selector-panel.js index 9718fcd45..94ae76b93 100644 --- a/lib/components/form/settings-selector-panel.js +++ b/lib/components/form/settings-selector-panel.js @@ -1,558 +1,49 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' -import { Row, Col, Button } from 'react-bootstrap' import { connect } from 'react-redux' -import { - clearDefaultSettings, - resetForm, - setQueryParam, - storeDefaultSettings -} from '../../actions/form' -import GeneralSettingsPanel from './general-settings-panel' -import Icon from '../narrative/icon' -import ModeButton from './mode-button' -import { - getIcon, - isAccessMode, - hasBike, - isTransit, - hasMicromobility, - hasHail, - hasRental, - hasTransit, - getTransitModes -} from '../../util/itinerary' -import { getTripOptionsFromQuery, isNotDefaultQuery } from '../../util/query' +import { setQueryParam } from '../../actions/form' import { getShowUserSettings } from '../../util/state' +import { StyledSettingsSelectorPanel } from './styled' +import UserTripSettings from './user-trip-settings' + +// TODO: Button title should be bold when button is selected. + class SettingsSelectorPanel extends Component { static propTypes = { icons: PropTypes.object } - constructor (props) { - super(props) - this.state = { activePanel: 'MODES' } - } - - // returns whether a micromobility company is selected or not - _companyIsActive (company) { - const {companies} = this.props - return companies && companies.indexOf(company.id) > -1 - } - - // Returns whether a particular mode or TNC agency is active - _modeIsActive (mode) { - const { companies, queryModes } = this.props - if (mode.mode === 'CAR_HAIL' || mode.mode === 'CAR_RENT') { - return Boolean(companies && mode.company && companies.includes(mode.company.toUpperCase())) - } - - for (const m of queryModes) { - if (m === mode.mode) return true - } - // All transit modes are selected - // if (isTransit(mode.mode) && queryModes.indexOf('TRANSIT') !== -1) return true - return false - } - - _setSoloMode (mode) { - // save current access/transit modes - if (hasTransit(this.props.mode)) this._lastTransitMode = this.props.mode - this.props.setQueryParam({ mode }) - } - - _setWalkOnly = () => { this._setSoloMode('WALK') } - - _setBikeOnly = () => { this._setSoloMode('BICYCLE') } - - _setMicromobilityOnly = () => { this._setSoloMode('MICROMOBILITY') } - - /** - * Replace own mode with new mode. The only mode will have already been set, - * so this toggles whether the own mode includes a rental. - */ - _replaceOwnMode = (newMode, referenceOwnMode) => { - const { queryModes, setQueryParam } = this.props - const nonOwnModes = queryModes.filter(m => !m.startsWith(referenceOwnMode)) - setQueryParam({ mode: [...nonOwnModes, newMode].join(',') }) - } - - _setOwnBike = () => this._replaceOwnMode('BICYCLE', 'BICYCLE') - - _setRentedBike = () => this._replaceOwnMode('BICYCLE_RENT', 'BICYCLE') - - _setOwnMicromobility = () => this._replaceOwnMode('MICROMOBILITY', 'MICROMOBILITY') - - _setRentedMicromobility = () => { - this._replaceOwnMode('MICROMOBILITY_RENT', 'MICROMOBILITY') - this.props.setQueryParam({ companies: this._getCompaniesForMode('MICROMOBILITY_RENT') }) - } - - _getCompaniesForMode = (modeStr) => { - const {config} = this.props - return config.companies - .filter(co => co.modes.indexOf(modeStr) > -1) - .map(co => co.id) - .join(',') - } - - _toggleCompany (company) { - const {companies, setQueryParam} = this.props - - // set company if no companies set yet - if (!companies) { - setQueryParam({ companies: company }) - return - } - - // add or remove from existing companies - if (companies.indexOf(company) > -1) { - // company already present in query, remove - setQueryParam({ - companies: companies - .split(',') - .filter(co => co !== company) - .join(',') - }) - } else { - // company not yet present, add to string list - setQueryParam({ companies: `${companies},${company}` }) - } - } - - _toggleTransitMode (mode) { - const {queryModes, setQueryParam} = this.props - const modeStr = mode.mode || mode - let newQueryModes = queryModes.slice(0) // Clone the modes array - - // do not allow the last transit mode to be deselected - const transitModes = newQueryModes.filter(m => isTransit(m)) - if (transitModes.length === 1 && transitModes[0] === modeStr) return - - // If mode is currently selected, deselect it - if (newQueryModes.includes(modeStr)) { - newQueryModes = newQueryModes.filter(m => m !== modeStr) - // Or, if mode is currently not selected, select it - } else if (!newQueryModes.includes(modeStr)) { - newQueryModes.push(modeStr) - } - setQueryParam({ mode: newQueryModes.join(',') }) - } - - _toggleStoredSettings = () => { - const options = getTripOptionsFromQuery(this.props.query) - // If user defaults are set, clear them. Otherwise, store them. - if (this.props.defaults) this.props.clearDefaultSettings() - else this.props.storeDefaultSettings(options) - } - - _resetForm = () => this.props.resetForm() - - _setAccessMode = (mode) => { - const {config, queryModes} = this.props - let newQueryModes = queryModes.slice(0) // Clone the modes array - const modeStr = mode.mode || mode - - // Create object to contain multiple parameter updates if needed (i.e. 'mode', 'compainies') - const queryParamUpdate = {} - - if (this._lastTransitMode) { - // Restore previous transit selection, if present - newQueryModes = this._lastTransitMode.split(',').filter(m => !isAccessMode(m)) - this._lastTransitMode = null - } else { - // Otherwise, retain any currently selected transit modes - newQueryModes = newQueryModes.filter(m => !isAccessMode(m)) - } - - // If no transit modes selected, select all - if (!newQueryModes || newQueryModes.length === 0) { - newQueryModes = getTransitModes(config) - } - - // Add the access mode - newQueryModes.push(modeStr) - - // apply needed companies to query - queryParamUpdate.companies = mode.company - // mode is associated with a specific company - ? mode.company.toUpperCase() - // mode is either a rental or hailing mode, but not associated with - // a specific company - : (hasRental(modeStr) || hasHail(modeStr)) - // when switching, add all companies at first - ? this._getCompaniesForMode(modeStr) - // mode is not renting or hailing and not associated with any company - : null - - queryParamUpdate.mode = newQueryModes.join(',') - - this.props.setQueryParam(queryParamUpdate) - } - - _renderCompanies = () => { - const {companies: queryCompanies, config, icons, mode} = this.props - const {companies: configCompanies, modes} = config - const {accessModes} = modes - - // check if a single company has an exclusive button - if (queryCompanies && accessModes.some( - accessMode => accessMode.company === queryCompanies.toUpperCase()) - ) { - // a match has been found for an access mode that exclusively belongs to - // a particular company - return null - } - - // hack for TriMet-MOD project, don't show companies if Biketown enabled - // when using just bike rentals - if (mode && mode.indexOf('BICYCLE_RENT') > -1) { - return null - } - - // check if renting or hailing - if (hasRental(mode) || hasHail(mode)) { - const queryModes = mode.split(',') - const activeCompanies = configCompanies - .filter(company => - company.modes - .split(',') - .some(companyMode => queryModes.indexOf(companyMode) > -1) - ) - - return ( -
-
Use Companies
-
- {activeCompanies.length === 0 && -

No comapnies available for this mode!

- } - {activeCompanies.map((company) => { - let classNames = ['select-button'] - if (this._companyIsActive(company)) classNames.push('active') - return - })} -
-
-
- ) - } - } - - _renderExclusiveAccessSelectors = () => { - const {config, mode, icons} = this.props - const {exclusiveModes} = config.modes - const modeHasTransit = hasTransit(mode) - // Use int for array element keys - let key = 0 - if (!exclusiveModes) return null - - // create an array of children to display within a mode-group-row - // at most 2 exclusive modes will be displayed side-by-side - const children = [] - const spacer = () => ( -   - ) - - exclusiveModes.forEach((exclusiveMode, idx) => { - // add left padding for every evenly indexed exclusiveMode - if (idx % 2 === 0) { - children.push(spacer()) - } - - switch (exclusiveMode) { - case 'WALK': - children.push( - - - - ) - break - case 'BICYCLE': - children.push( - - - - ) - break - case 'MICROMOBILITY': - children.push( - - - - ) - break - default: - throw new Error(`Unsupported exclusive mode: ${exclusiveMode}`) - } - - // add right padding for every odd indexed exclusiveMode - if (idx % 2 !== 0) { - children.push(spacer()) - } - }) - - return ( - - {children} - - ) - } - render () { const { config, - defaults, - mode, - icons, + // icons, // TODO: Add support for this prop. query, - queryModes, + setQueryParam, showUserSettings } = this.props - const modeHasTransit = hasTransit(mode) - const { transitModes, accessModes, bicycleModes, micromobilityModes } = config.modes - // Do not permit remembering trip options if they do not differ from the - // defaults and nothing has been stored - const queryIsDefault = !isNotDefaultQuery(query, config) - const rememberIsDisabled = queryIsDefault && !defaults + const configModes = { + ...config.modes, + exclusiveModes: config.modes.exclusiveModes || [], + micromobilityModes: config.modes.micromobilityModes || [] + } + const configCompanies = config.companies || [] return (
- {showUserSettings && -
- - -
- } - {/* Take Transit button */} - - - this._setAccessMode('WALK')} - /> - - - - {/* transit access mode selector */} - - {accessModes.map((mode, k) => { - return - this._setAccessMode(mode)} - /> - - })} - - - {this._renderExclusiveAccessSelectors()} - - {/* Transit mode selector */} - {/* - -
-
Filter Transit Modes
-
- - - {transitModes.map((mode, k) => { - return (
- this._toggleTransitMode(mode)} - /> -
) - })} - -
*/} - + {showUserSettings && } + +
- - {/* Travel Preferences */} - - -
Travel Preferences
- - {/* The bike trip type selector */} - {hasBike(mode) && !hasTransit(mode) && ( -
-
Use
-
- {bicycleModes.map((option, k) => { - let action = this._setOwnBike - if (option.mode === 'BICYCLE_RENT') action = this._setRentedBike - let classNames = ['select-button'] - if (queryModes.includes(option.mode)) classNames.push('active') - // TODO: Handle different bikeshare networks - return ( - - ) - })} -
-
- )} - - {/* The micromobility trip type selector */} - {hasMicromobility(mode) && !hasTransit(mode) && ( -
-
Use
-
- {micromobilityModes.map((option, k) => { - let action = this._setOwnMicromobility - if (option.mode === 'MICROMOBILITY_RENT') action = this._setRentedMicromobility - let classNames = ['select-button'] - if (queryModes.includes(option.mode)) classNames.push('active') - // TODO: Handle different bikeshare networks - return ( - - ) - })} -
-
- )} - - {this._renderCompanies()} - - {/* The transit mode selected */} - {hasTransit(mode) && (
-
Use
-
- {transitModes.map((mode, k) => { - let classNames = ['select-button'] - if (this._modeIsActive(mode)) classNames.push('active') - return - })} -
-
-
)} - - {/* Other general settings */} - - -
) } @@ -561,28 +52,16 @@ class SettingsSelectorPanel extends Component { // connect to redux store const mapStateToProps = (state, ownProps) => { - const { config, currentQuery, user } = state.otp - const { defaults } = user - const showUserSettings = getShowUserSettings(state.otp) - const { companies, mode, routingType } = currentQuery + const { config, currentQuery } = state.otp return { - defaults, query: currentQuery, config, - mode, - companies, - modeGroups: config.modeGroups, - queryModes: !mode || mode.length === 0 ? [] : mode.split(','), - routingType, - showUserSettings + showUserSettings: getShowUserSettings(state.otp) } } const mapDispatchToProps = { - clearDefaultSettings, - resetForm, - setQueryParam, - storeDefaultSettings + setQueryParam } export default connect(mapStateToProps, mapDispatchToProps)(SettingsSelectorPanel) diff --git a/lib/components/form/styled.js b/lib/components/form/styled.js new file mode 100644 index 000000000..b6de08174 --- /dev/null +++ b/lib/components/form/styled.js @@ -0,0 +1,159 @@ +import styled from 'styled-components' +import { SettingsSelectorPanel } from '@opentripplanner/trip-form' +import * as TripFormClasses from '@opentripplanner/trip-form/lib/styled' + +// TODO: Extract button CSS properties into their own const. + +export const StyledSettingsSelectorPanel = styled(SettingsSelectorPanel)` + ${TripFormClasses.SettingLabel} { + font-weight: 400; + margin-bottom: 0; + } + ${TripFormClasses.SettingsHeader} { + font-size: 18px; + margin: 16px 0px; + } + ${TripFormClasses.SettingsSection} { + margin-bottom: 16px; + } + ${TripFormClasses.DropdownSelector} { + margin-bottom:20px; + select { + background-color: #fff; + border: 1px solid #ccc; + border-radius: 4px; + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + color: #555; + font-size: 14px; + height: 34px; + line-height: 1.42857143; + padding: 6px 12px; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + + &:focus { + border-color: #66afe9; + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102,175,233,.6); + outline: 0; + } + } + } + + ${TripFormClasses.ModeSelector} { + ${TripFormClasses.ModeButton.Button} { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + background: none; + border: 1px solid rgb(187, 187, 187); + border-radius: 3px; + box-shadow: none; + outline: 0; + padding: 3px; + text-align: center; + user-select: none; + + &.active { + background-color: rgb(173, 216, 230); + border: 2px solid rgb(0, 0, 0); + } + } + ${TripFormClasses.ModeButton.Title} { + font-size: 10px; + font-weight: 300; + line-height: 12px; + padding: 4px 0px 0px; + } + } + ${TripFormClasses.ModeSelector.MainRow} { + margin: 0 -10px 18px; + padding: 0 5px; + + ${TripFormClasses.ModeButton.Button} { + font-size: 200%; + font-weight: 300; + height: 54px; + width: 100%; + &.active { + font-weight: 600; + } + } + } + ${TripFormClasses.ModeSelector.SecondaryRow} { + margin: 0 -10px 10px; + ${TripFormClasses.ModeButton.Button} { + font-size: 150%; + font-weight: 600; + height: 46px; + } + } + ${TripFormClasses.ModeSelector.TertiaryRow} { + margin: 0 -10px 10px; + ${TripFormClasses.ModeButton.Button} + { + font-size: 90%; + height: 36px; + } + } + + ${TripFormClasses.SubmodeSelector.Row} { + > * { + padding: 3px 5px 3px 0px; + } + > :last-child { + padding-right: 0px; + } + ${TripFormClasses.ModeButton.Button} { + padding: 6px 12px; + } + svg, + img { + margin-left: 0px; + } + } + ${TripFormClasses.SubmodeSelector.InlineRow} { + margin: -3px 0px; + } + + ${TripFormClasses.SubmodeSelector} { + ${TripFormClasses.ModeButton.Button} { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + background-color: #fff; + border: 1px solid #ccc; + border-radius: 4px; + color: #333; + cursor: pointer; + font-family: inherit; + font-weight: 400; + font-size: 14px; + line-height: 1.42857143; + outline-offset:-2px; + padding: 6px 12px; + text-align: center; + touch-action: manipulation; + user-select: none; + white-space: nowrap; + &.active { + background-color: #e6e6e6; + border-color: #adadad; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + font-weight: 400; + } + &:hover { + background-color: #e6e6e6; + border-color: #adadad; + } + &.active { + background-color: #e6e6e6; + border-color: #adadad; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + font-weight: 400; + &:hover { + background-color: #d4d4d4; + border-color: #8c8c8c; + } + } + } + } +` diff --git a/lib/components/form/user-trip-settings.js b/lib/components/form/user-trip-settings.js new file mode 100644 index 000000000..fc567b3b9 --- /dev/null +++ b/lib/components/form/user-trip-settings.js @@ -0,0 +1,78 @@ +import React, { Component } from 'react' +import { Button } from 'react-bootstrap' +import { connect } from 'react-redux' + +import Icon from '../narrative/icon' +import { + clearDefaultSettings, + resetForm, + storeDefaultSettings +} from '../../actions/form' +import { getTripOptionsFromQuery, isNotDefaultQuery } from '../../util/query' + +class UserTripSettings extends Component { + _toggleStoredSettings = () => { + const options = getTripOptionsFromQuery(this.props.query) + // If user defaults are set, clear them. Otherwise, store them. + if (this.props.defaults) this.props.clearDefaultSettings() + else this.props.storeDefaultSettings(options) + } + + render () { + const { + config, + defaults, + query, + resetForm + } = this.props + + // Do not permit remembering trip options if they do not differ from the + // defaults and nothing has been stored + const queryIsDefault = !isNotDefaultQuery(query, config) + const rememberIsDisabled = queryIsDefault && !defaults + + return ( +
+ + +
+ ) + } +} + +// connect to redux store + +const mapStateToProps = (state, ownProps) => { + const { config, currentQuery, user } = state.otp + const { defaults } = user + + return { + config, + defaults, + query: currentQuery + } +} + +const mapDispatchToProps = { + clearDefaultSettings, + resetForm, + storeDefaultSettings +} + +export default connect(mapStateToProps, mapDispatchToProps)(UserTripSettings) From 7a673272860c78a49bf648e9c11eb5be39c235ad Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 13 Mar 2020 16:49:00 -0400 Subject: [PATCH 018/115] refactor(styled.js): Reorganize styles --- .../form/settings-selector-panel.js | 3 +- lib/components/form/styled.js | 100 +- yarn.lock | 6200 ++++++++++------- 3 files changed, 3561 insertions(+), 2742 deletions(-) diff --git a/lib/components/form/settings-selector-panel.js b/lib/components/form/settings-selector-panel.js index 94ae76b93..343a976ff 100644 --- a/lib/components/form/settings-selector-panel.js +++ b/lib/components/form/settings-selector-panel.js @@ -18,7 +18,7 @@ class SettingsSelectorPanel extends Component { render () { const { config, - // icons, // TODO: Add support for this prop. + icons, query, setQueryParam, showUserSettings @@ -38,6 +38,7 @@ class SettingsSelectorPanel extends Component { = 8" + +"@opentripplanner/core-utils@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.17.tgz#6d436183e63615730e6ed05f87bf873d8885e8c3" + integrity sha512-JU+YA/DxCrKyfjFrWC34pPaMxDy3K7ABY+psnGzq7Y940qB3PeOMZyI6ZuoYnqMymtF4Y53zBpvMeMjkVoH3vw== + dependencies: + "@mapbox/polyline" "^1.1.0" + "@turf/along" "^6.0.1" + bowser "^2.7.0" + lodash.isequal "^4.5.0" + moment "^2.24.0" + moment-timezone "^0.5.27" + prop-types "^15.7.2" + qs "^6.9.1" + +"@opentripplanner/from-to-location-picker@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.17.tgz#41b594c7f047c5884a5f97630d452305b3151a85" + integrity sha512-PNIO3dXAbSFkG4qKgmw21wmDiDIordNtRBC8f7H9ruT4Fjo1SnDxW6Prj+5plPnVkhh5SzmXR8PfdDe13XsljA== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + "@opentripplanner/location-icon" "^0.0.17" + prop-types "^15.7.2" + +"@opentripplanner/icons@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.17.tgz#8843bbb9b35210714d62e3c5c74b94dee0631f94" + integrity sha512-1Ov1DgcFx7GwR3qO/NWdcyqtGDbXR/IZUEvUrb5mHPDrthejmuVYOCGUiDGl7avTxM7k85SKXMaRbQ3qSbp/eg== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + prop-types "^15.7.2" + +"@opentripplanner/location-icon@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.17.tgz#2793df54da3b1f50767f723236c30f0f87ca275a" + integrity sha512-kbIImQ/IHre/6gCifjuZGpuHWLddAAt9IF64Fhp4Lilou8nVJgdx9P3VyIcjt0nJmtLEV/p5zPJVVp+NzvGU9A== + dependencies: + styled-icons "^9.1.0" + +"@opentripplanner/trip-form@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-form/-/trip-form-0.0.17.tgz#1b52e938c9202e8f4acfc103aa7ba47bae940b21" + integrity sha512-taHdT9slB9WvuJBCZn7pjO+4i1KOvow789khzgLICA7Gp4xexMotn3e0lyyFyyNMoIo0Qod1J1B8sXjisU19kA== + dependencies: + "@opentripplanner/core-utils" "^0.0.17" + "@opentripplanner/icons" "^0.0.17" + moment "^2.17.1" "@semantic-release/commit-analyzer@^6.1.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.2.0.tgz#5cd25ce67ba9ba5b46e47457505e63629e186695" - integrity sha512-oUtPydYcbtJsEY6WCPi4wynTgRecK5zCkKaGmHi+9Xl7d6jGf7LomnJCg++6dNF1tyavrbGMSdXTCPH6Dx9LbA== + version "6.3.3" + resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.3.3.tgz#885f7e46e2f0aef23a23be0904dbf18d6ece45ca" + integrity sha512-Pyv1ZL2u5AIOY4YbxFCAB5J1PEh5yON8ylbfiPiriDGGW6Uu1U3Y8lysMtWu+FUD5x7tSnyIzhqx0+fxPxqbgw== dependencies: conventional-changelog-angular "^5.0.0" conventional-commits-filter "^2.0.0" - conventional-commits-parser "^3.0.0" + conventional-commits-parser "^3.0.7" debug "^4.0.0" import-from "^3.0.0" lodash "^4.17.4" @@ -1226,9 +1401,9 @@ integrity sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg== "@semantic-release/github@^5.1.0": - version "5.4.2" - resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-5.4.2.tgz#1dbde876228c03ff9a000893a18aff5c6ab2cd61" - integrity sha512-8gkOa5tED/+sjAPwZRYsLaGr6VuAGLZinSvLsuF9/l4qLeYV8gvj7fhjFJepGu6y31t7PR2J9SWzmsqsBAyyKQ== + version "5.5.8" + resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-5.5.8.tgz#2c16d212ca057ba0b0553b6eb62ff0949cfbca6a" + integrity sha512-YxbBXbCThs/Xk3E4QU01AMIUM8eb0UTvjHJtclTDR3/DEW7kUpmXQqBMnSh3qCTuk4scRFIoaF0fGU/0xByZug== dependencies: "@octokit/rest" "^16.27.0" "@semantic-release/error" "^2.2.0" @@ -1238,53 +1413,284 @@ dir-glob "^3.0.0" fs-extra "^8.0.0" globby "^10.0.0" - http-proxy-agent "^2.1.0" - https-proxy-agent "^2.2.1" - issue-parser "^4.0.0" + http-proxy-agent "^3.0.0" + https-proxy-agent "^4.0.0" + issue-parser "^5.0.0" lodash "^4.17.4" mime "^2.4.3" p-filter "^2.0.0" p-retry "^4.0.0" - parse-github-url "^1.0.1" url-join "^4.0.0" -"@semantic-release/npm@^5.0.5": - version "5.1.13" - resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-5.1.13.tgz#7b06d62b4d9c8336ae5a5c85eede26fb89f19e3b" - integrity sha512-pONvpoEtGH1nd6Wj3SryACNJ/YXXsvSSekE9Pdk6mnaRv7lGhXdaeJJr6Lr4L8WK98oZv4aJOr68vTac2Oc+dA== +"@semantic-release/npm@^5.0.5": + version "5.3.5" + resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-5.3.5.tgz#4a83952056d32e1401e1078c3910a159afc0cba8" + integrity sha512-AOREQ6rUT8OAiqXvWCp0kMNjcdnLLq1JdP0voZL4l5zf6Tgs/65YA7ctP+9shthW01Ps85Nu0pILW3p9GkaYuw== + dependencies: + "@semantic-release/error" "^2.2.0" + aggregate-error "^3.0.0" + execa "^3.2.0" + fs-extra "^8.0.0" + lodash "^4.17.15" + nerf-dart "^1.0.0" + normalize-url "^4.0.0" + npm "^6.10.3" + rc "^1.2.8" + read-pkg "^5.0.0" + registry-auth-token "^4.0.0" + tempy "^0.3.0" + +"@semantic-release/release-notes-generator@^7.1.2": + version "7.3.5" + resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-7.3.5.tgz#ed0941d5b594f18fa1d2667493c03e811f97c0ff" + integrity sha512-LGjgPBGjjmjap/76O0Md3wc04Y7IlLnzZceLsAkcYRwGQdRPTTFUJKqDQTuieWTs7zfHzQoZqsqPfFxEN+g2+Q== + dependencies: + conventional-changelog-angular "^5.0.0" + conventional-changelog-writer "^4.0.0" + conventional-commits-filter "^2.0.0" + conventional-commits-parser "^3.0.0" + debug "^4.0.0" + get-stream "^5.0.0" + import-from "^3.0.0" + into-stream "^5.0.0" + lodash "^4.17.4" + read-pkg-up "^7.0.0" + +"@styled-icons/boxicons-logos@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/boxicons-logos/-/boxicons-logos-9.4.1.tgz#774e7f73839e834445dcc0ae4c0c356221767664" + integrity sha512-DN6Za9paJeWkoIXI1newSSfDALIR8ecaAsgzP3ZD+NRJHy6idW+1ouC5p3DlRM29+Cp4yJ/z3bH9whBDbd7YXQ== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/boxicons-regular@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/boxicons-regular/-/boxicons-regular-9.4.1.tgz#742a1d0b5798c54f189b9278810d8110df8f9754" + integrity sha512-910zIWCB0JkEgk9I7zIIEdPc8xibg3xrT4Wo7gIu4lGEr4u9OOQT3c0ajJD7F+JlhWcWBVumzjfjOT8A5UjPJw== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/boxicons-solid@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/boxicons-solid/-/boxicons-solid-9.4.1.tgz#5219a0c900f2ccc5dc9056c4ee2d1c180d9dbdf1" + integrity sha512-7FvU6KSnxBprsidta3/0grTkimYWDUnSZCyLscT1OwjmfyFPpnLNmJASQDrEtORF2GPw5Y2gc/q6h2RI4OnYcA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/crypto@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/crypto/-/crypto-9.4.1.tgz#9abe2a3165f78a1592ea1d910aa1e1210b990fef" + integrity sha512-qIjzvaw0kFykDN7PTGD8d3HvFVoX7kW7nwlvvzW/pGhVzpUHE7Mh2Syc04HpoknCgO0fCjAzXaxi9Igu3nS9NA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/entypo-social@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/entypo-social/-/entypo-social-9.5.0.tgz#d5c69c928dbcb83c39d8359e50c148bd497bcaff" + integrity sha512-yEpaJtTUriZSZPT/iqxgNONgxDYr0MHXANvoUW2CB0Ey4zTZst+2x7EJ9KgL2CjdBgA0bs8hnx5etGHUi8BtuA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/entypo@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/entypo/-/entypo-9.5.0.tgz#170c484e53820ec683d338353e44bae71d773611" + integrity sha512-gy/CXs45g1o5c61BnSnpd/cb84sXIARPByOa354FkN0aUHqepbF2qtBjZ3Udho6zWpm1nGOOUiawQb53PnG9vg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/evil@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/evil/-/evil-9.4.1.tgz#159d5c026e7d0689b453684b719ecb13e4ea0fe5" + integrity sha512-ejCBH+aXrjtBM+iMJomYlZ/xiJ+NGHVlIfQmkgD6roxtJzMzAmhwXgC5S3p0no2n1EXluUdJiufrI/QtP7iNbA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/fa-brands@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/fa-brands/-/fa-brands-9.4.1.tgz#ad329324875bb7db00ff5fb68ce98203fbe03b7a" + integrity sha512-zqlS/Y3mQLdBgRhZo1op5+twKYYwfS7OjqL90N+etokIWPqv1b7nwPWzwKoRpqDfCt/gyqmgxXqWufFd0CAx7Q== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/fa-regular@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/fa-regular/-/fa-regular-9.4.1.tgz#556b1840e97db031b5c07a7175b57103e3fd988b" + integrity sha512-tpgLOUPECtWNwVs7G82IaDkb1T13yNyDNZBB85sEO02ldHAZe6tt0Yi5gGCBExtU/p+4/jLTcU+pcoh/mySlVg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/fa-solid@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/fa-solid/-/fa-solid-9.4.1.tgz#d30de755f8fee6e932032e97fa592cb1eaa21d8e" + integrity sha512-ZyPxbCFmuuy3XotCI0SgHyUn3gTvQXm+iVnh+8r0gR8Kd88iTTubTqxgtdS0lrefaB4ayl6vEg20Dv9e9PvYVg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/feather@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/feather/-/feather-9.4.1.tgz#5e8a4193e70d477e9ad249f921c6d637f9fc631c" + integrity sha512-ucMOPhvaCp6N4lxL+z/66Kech20jAdMfewER732jhjV8P3FknoAY2+0CXXE+tBvJoJ/SOJZDOsW58Gr7yAWXOQ== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/foundation@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/foundation/-/foundation-9.5.0.tgz#011ac022ffcb20868385b97bf4fb173cceaf634d" + integrity sha512-O4Y62bfZfZjhZDXYtJYd/RsID1vpmMtgLSP54b0KbvY70hjdlFQZ0ZVR2fAzA0YSK90VjbYBbQDCCyqim4v3qA== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/heroicons-outline@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/heroicons-outline/-/heroicons-outline-9.5.0.tgz#235046e3310e10165b9587a122a60e83e94e51de" + integrity sha512-MMY5NjVVimhTHhk+ADR4/a2KpjIjbmzW+SNPRCKMWgGyqXx1NjBrD72bnvrzApLdMnDvEsM/DYK6DVUW7UZhKw== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/heroicons-solid@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/heroicons-solid/-/heroicons-solid-9.5.0.tgz#2ed99d05a9a82c742eb7667c75b0d9c319fdee10" + integrity sha512-dYQYdxZ0BkGpl3nGQmkvONF1+Yq+E6I9S7snba1mirCDWQpIdgylGm+Z9CM/OvdIlhr5da00D4oZu+2CiGdCFQ== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/icomoon@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/icomoon/-/icomoon-9.4.1.tgz#b75118a6d10cb8f5e7e15ae7a323009dd2f98e7e" + integrity sha512-oEw84P55EahJFdhQPBnUbvQqB08LuJKq75AkwaCSqk6w1DIEDbjY72lb6mbAwZB/AwNYeRVJJhTHaF1MNY103A== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/material@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/material/-/material-9.4.1.tgz#26169db802a10e333a5608aec2611878dd45f6fe" + integrity sha512-7Ucsm7RxCrnznZb+WDptBrGE45ZVBODm6J0e+fy0hvO9sjWAcuoKffYTcQEhDS2pqC1Rcc/nSZHDbqwZrpGJVw== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/octicons@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/octicons/-/octicons-9.4.1.tgz#9670b6a3fc70eb80961fa0771464d8dbde18a6ea" + integrity sha512-MHiMMah2agDpmk8JcNLgeZab74TO3elM8CIYIQahrucyVbHfCY7mX1z8OOyXZwrf/hgrBKK4nUM4jf0wxk70+Q== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/open-iconic@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/open-iconic/-/open-iconic-9.5.0.tgz#03c70256244ee4a1ed422563f3ce3d0270a6beb8" + integrity sha512-mSDnCPDKYXhXY+oNfgNKMj2+ltl63k8QIC6bCDsX18bYXDqkeEwKthfNw0minabyP4Tq+yJe/B03RH+EdQWmDg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/remix-fill@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/remix-fill/-/remix-fill-9.4.1.tgz#afc7141d0c5c0606ef190b0cebe4793a4449b389" + integrity sha512-OlxQudeM/u+IAHacSVwwiuSYBDSsQNKA4gr8WSFHpy1CEciLc/hE/aNJP+SLcBETdg/C/kJIj8JNme5B8aYIeg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/remix-line@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/remix-line/-/remix-line-9.4.1.tgz#1d4fdaef53f3c366a746f054d70dcd138a4e567e" + integrity sha512-NAdR8LD7ugeUhmd6W3v+GA5/6OBexe15fjQTt1kFHYclS+2nrLQ7MA4kF5SkwsRQNGPy+3CMN5cQoMy5R8NAtQ== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/styled-icon@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/styled-icon/-/styled-icon-9.4.1.tgz#9dc236c85afd89edc2bc7265ec7858cbc35d4234" + integrity sha512-qF0E2QOcyR1e6rh1QkKGsFt9vuayhZBJEKRa8erbHpOYLRNiEmoF1dLEVVMUKjnj5jAzzk0fNd8jSz0su3kpKg== + dependencies: + "@emotion/is-prop-valid" "^0.8.6" + tslib "^1.9.3" + +"@styled-icons/typicons@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@styled-icons/typicons/-/typicons-9.4.1.tgz#b201080bc3985cab1f0ff0e8827350aea14cb309" + integrity sha512-gV3W836B7k7FuNjZJt2H7WYcV+wPf7L5RYJQUL99lPdvADeOUhG2hIVIKvmS4F2Tc3XbyYbRmSBPTHtu4Fcftg== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@styled-icons/zondicons@^9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@styled-icons/zondicons/-/zondicons-9.5.0.tgz#27f184764f586f31aa9256905ab3db1cd833bfa8" + integrity sha512-26PYTzSr85tf1+P/N1zaqbLuJLG1YP9rp3QN1TsCcM19gT0Y3WzVUmiNHdv15jGO9bH/jpV9b7TjuT+1gkMPCw== + dependencies: + "@styled-icons/styled-icon" "^9.4.1" + tslib "^1.9.3" + +"@turf/along@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/along/-/along-6.0.1.tgz#595cecdc48fc7fcfa83c940a8e3eb24d4c2e04d4" + integrity sha512-6PptAcrsFR3o0Flpktk8Vo68W2txEVTh14zjoTVu+H5docd2+pv5/upA77bg3YFBoJgAxmUFt1leDdjReJ44BQ== + dependencies: + "@turf/bearing" "6.x" + "@turf/destination" "6.x" + "@turf/distance" "6.x" + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/bearing@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/bearing/-/bearing-6.0.1.tgz#8da5d17092e571f170cde7bfb2e5b0d74923c92d" + integrity sha512-mXY1NozqV9EFfBTbUItujwfqfQF0G/Xe2fzvnZle90ekPEUfhi4Dgf5JswJTd96J9LiT8kcd6Jonp5khnx0wIg== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/destination@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/destination/-/destination-6.0.1.tgz#5275887fa96ec463f44864a2c17f0b712361794a" + integrity sha512-MroK4nRdp7as174miCAugp8Uvorhe6rZ7MJiC9Hb4+hZR7gNFJyVKmkdDDXIoCYs6MJQsx0buI+gsCpKwgww0Q== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/distance@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/distance/-/distance-6.0.1.tgz#0761f28784286e7865a427c4e7e3593569c2dea8" + integrity sha512-q7t7rWIWfkg7MP1Vt4uLjSEhe5rPfCO2JjpKmk7JC+QZKEQkuvHEqy3ejW1iC7Kw5ZcZNR3qdMGGz+6HnVwqvg== dependencies: - "@semantic-release/error" "^2.2.0" - aggregate-error "^3.0.0" - execa "^1.0.0" - fs-extra "^8.0.0" - lodash "^4.17.4" - nerf-dart "^1.0.0" - normalize-url "^4.0.0" - npm "^6.8.0" - rc "^1.2.8" - read-pkg "^5.0.0" - registry-auth-token "^4.0.0" + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" -"@semantic-release/release-notes-generator@^7.1.2": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-7.2.1.tgz#2c0c340e7be2a3d27c28cb869b6737a70f2862fe" - integrity sha512-TdlYgYH6amhE80i9L9HPcTwYzk4Rma7qM1g7XJEEfip7dNXWgmrBeibN4DJmTg/qrUFDd4GD86lFDcYXNZDNow== +"@turf/helpers@6.x": + version "6.1.4" + resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-6.1.4.tgz#d6fd7ebe6782dd9c87dca5559bda5c48ae4c3836" + integrity sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g== + +"@turf/invariant@6.x": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-6.1.2.tgz#6013ed6219f9ac2edada9b31e1dfa5918eb0a2f7" + integrity sha512-WU08Ph8j0J2jVGlQCKChXoCtI50BB3yEH21V++V0T4cR1T27HKCxkehV2sYMwTierfMBgjwSwDIsxnR4/2mWXg== dependencies: - conventional-changelog-angular "^5.0.0" - conventional-changelog-writer "^4.0.0" - conventional-commits-filter "^2.0.0" - conventional-commits-parser "^3.0.0" - debug "^4.0.0" - get-stream "^5.0.0" - import-from "^3.0.0" - into-stream "^5.0.0" - lodash "^4.17.4" - read-pkg-up "^6.0.0" + "@turf/helpers" "6.x" "@types/babel__core@^7.1.0": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f" - integrity sha512-cfCCrFmiGY/yq0NuKNxIQvZFy9kY/1immpSpTngOnyIbD4+eJOG5mxphhHDv3CHL9GltO4GcKr54kGBg3RNdbg== + version "7.1.6" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.6.tgz#16ff42a5ae203c9af1c6e190ed1f30f83207b610" + integrity sha512-tTnhWszAqvXnhW7m5jQU9PomXSiKXk2sFxpahXvI20SZKu9ylPi8WtIxueZ6ehDWikPT0jeFujMj3X4ZHuf3Tg== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1293,9 +1699,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc" - integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ== + version "7.6.1" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" + integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== dependencies: "@babel/types" "^7.0.0" @@ -1308,12 +1714,17 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.7.tgz#2496e9ff56196cc1429c72034e07eab6121b6f3f" - integrity sha512-CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw== + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.9.tgz#be82fab304b141c3eee81a4ce3b034d0eba1590a" + integrity sha512-jEFQ8L1tuvPjOI8lnpaf73oCJe+aoxL6ygqSy6c8LcW98zaC+4mzWuQIRCEvKeCOu+lbqdXcg4Uqmm1S8AP1tw== dependencies: "@babel/types" "^7.3.0" +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + "@types/eslint-visitor-keys@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" @@ -1339,9 +1750,9 @@ integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== "@types/istanbul-lib-report@*": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c" - integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg== + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== dependencies: "@types/istanbul-lib-coverage" "*" @@ -1354,25 +1765,30 @@ "@types/istanbul-lib-report" "*" "@types/json-schema@^7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636" - integrity sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A== + version "7.0.4" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" + integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/node@*": - version "12.6.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.8.tgz#e469b4bf9d1c9832aee4907ba8a051494357c12c" - integrity sha512-aX+gFgA5GHcDi89KG5keey2zf0WfZk/HAQotEamsK2kbey+8yGKcson0hbK8E+v0NArlCJQCqMP161YhV6ZXLg== +"@types/node@*", "@types/node@>= 8": + version "13.9.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.1.tgz#96f606f8cd67fb018847d9b61e93997dabdefc72" + integrity sha512-E6M6N0blf/jiZx8Q3nb0vNaswQeEyn0XlupO+xN6DtJ6r6IT4nXrTry7zhIfYvFCl3/8Cu6WIysmUBKiqV0bqQ== "@types/normalize-package-data@^2.4.0": version "2.4.0" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + "@types/q@^1.5.1": version "1.5.2" resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" @@ -1393,10 +1809,17 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== -"@types/yargs@^12.0.2", "@types/yargs@^12.0.9": - version "12.0.12" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916" - integrity sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw== +"@types/yargs-parser@*": + version "15.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" + integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + +"@types/yargs@^13.0.0": + version "13.0.8" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.8.tgz#a38c22def2f1c2068f8971acb3ea734eb3c64a99" + integrity sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA== + dependencies: + "@types/yargs-parser" "*" "@typescript-eslint/experimental-utils@1.13.0", "@typescript-eslint/experimental-utils@^1.13.0": version "1.13.0" @@ -1434,9 +1857,9 @@ JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@^1.3.4, JSONStream@^1.3.5: through ">=2.2.7 <3" abab@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" - integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== + version "2.0.3" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" + integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== abbrev@1, abbrev@~1.1.1: version "1.1.1" @@ -1455,15 +1878,10 @@ acorn-dynamic-import@^2.0.0: dependencies: acorn "^4.0.3" -acorn-dynamic-import@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" - integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== - acorn-globals@^4.1.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.2.tgz#4e2c2313a597fd589720395f6354b41cd5ec8006" - integrity sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ== + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== dependencies: acorn "^6.0.1" acorn-walk "^6.0.1" @@ -1476,25 +1894,29 @@ acorn-jsx@^3.0.0: acorn "^3.0.4" acorn-jsx@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" - integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.7.0.tgz#aac6a559d27af6176b076ab6fb13c5974c213e3b" - integrity sha512-XhahLSsCB6X6CJbe+uNu3Mn9sJBNFxtBN9NLgAOQovfS6Kh0lDUtmlclhjn9CvEK7A7YyRU13PXlNcpSiLI9Yw== + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== dependencies: - acorn "^6.1.1" - acorn-dynamic-import "^4.0.0" - acorn-walk "^6.1.1" - xtend "^4.0.1" + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" -acorn-walk@^6.0.1, acorn-walk@^6.1.1: +acorn-walk@^6.0.1: version "6.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== +acorn-walk@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e" + integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ== + acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" @@ -1506,14 +1928,19 @@ acorn@^4.0.3: integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= acorn@^5.0.0, acorn@^5.2.1, acorn@^5.5.0, acorn@^5.5.3: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== -acorn@^6.0.1, acorn@^6.0.7, acorn@^6.1.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.2.1.tgz#3ed8422d6dec09e6121cc7a843ca86a330a86b51" - integrity sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q== +acorn@^6.0.1, acorn@^6.0.7: + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + +acorn@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" + integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== agent-base@4, agent-base@^4.3.0: version "4.3.0" @@ -1522,6 +1949,11 @@ agent-base@4, agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" +agent-base@5: + version "5.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" + integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== + agent-base@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" @@ -1537,17 +1969,17 @@ agentkeepalive@^3.4.1: humanize-ms "^1.2.1" aggregate-error@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.0.tgz#5b5a3c95e9095f311c9ab16c19fb4f3527cd3f79" - integrity sha512-yKD9kEoJIR+2IFqhMwayIBgheLYbB3PS2OBhWae1L/ODTd/JF/30cW0bc9TqzRL3k4U41Dieu3BF4I29p8xesA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== dependencies: clean-stack "^2.0.0" - indent-string "^3.2.0" + indent-string "^4.0.0" -airbnb-prop-types@^2.1.0, airbnb-prop-types@^2.13.2: - version "2.14.0" - resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.14.0.tgz#3d45cb1459f4ce78fdf1240563d1aa2315391168" - integrity sha512-Yb09vUkr3KP9r9NqfRuYtDYZG76wt8mhTUi2Vfzsghk+qkg01/gOc9NU8n63ZcMCLzpAdMEXyKjCHlxV62yN1A== +airbnb-prop-types@^2.1.0, airbnb-prop-types@^2.15.0: + version "2.15.0" + resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.15.0.tgz#5287820043af1eb469f5b0af0d6f70da6c52aaef" + integrity sha512-jUh2/hfKsRjNFC4XONQrxo/n/3GG4Tn6Hl0WlFQN5PY9OMC9loSCoAYKnZsWaP8wEfd5xcrPloK0Zg6iS1xwVA== dependencies: array.prototype.find "^2.1.0" function.prototype.name "^1.1.1" @@ -1558,7 +1990,7 @@ airbnb-prop-types@^2.1.0, airbnb-prop-types@^2.13.2: object.entries "^1.1.0" prop-types "^15.7.2" prop-types-exact "^1.2.0" - react-is "^16.8.6" + react-is "^16.9.0" ajv-keywords@^1.1.1: version "1.5.1" @@ -1574,11 +2006,11 @@ ajv@^4.7.0: json-stable-stringify "^1.0.1" ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + version "6.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" + integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== dependencies: - fast-deep-equal "^2.0.1" + fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" @@ -1634,6 +2066,11 @@ ansi-regex@^4.0.0, ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.0.1.tgz#b033f57f93e2d28adeb8bc11138fa13da0fd20a3" @@ -1656,6 +2093,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + ansicolors@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" @@ -1772,11 +2217,6 @@ array-filter@^1.0.0: resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= -array-filter@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" - integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= - array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" @@ -1787,34 +2227,20 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= -array-includes@^3.0.2, array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= +array-includes@^3.0.2, array-includes@^3.0.3, array-includes@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" + integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" - -array-map@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" - integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= - -array-reduce@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" - integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= + define-properties "^1.1.3" + es-abstract "^1.17.0" + is-string "^1.0.5" array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-uniq@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-2.1.0.tgz#46603d5e28e79bfd02b046fcc1d77c6820bd8e98" - integrity sha512-bdHxtev7FN6+MXI1YFW0Q8mQ8dTJc2S8AMfju+ZR77pbg2yAdVyDlwkaUI7Har0LyOMRFPHrJ9lYdyjZZswdlQ== - array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" @@ -1826,21 +2252,20 @@ array-unique@^0.3.2: integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= array.prototype.find@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.0.tgz#630f2eaf70a39e608ac3573e45cf8ccd0ede9ad7" - integrity sha512-Wn41+K1yuO5p7wRZDl7890c3xvv5UBrfVXTVIe28rSQb6LS0fZMDrQB6PAcxQFRFy6vJTLDc3A2+3CjQdzVKRg== + version "2.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c" + integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA== dependencies: define-properties "^1.1.3" - es-abstract "^1.13.0" + es-abstract "^1.17.4" -array.prototype.flat@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz#812db8f02cad24d3fab65dd67eabe3b8903494a4" - integrity sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw== +array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== dependencies: - define-properties "^1.1.2" - es-abstract "^1.10.0" - function-bind "^1.1.1" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" arrify@^1.0.1: version "1.0.1" @@ -1912,9 +2337,9 @@ async-each@^1.0.0, async-each@^1.0.1: integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== async-limiter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" - integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== async@^2.1.2: version "2.6.3" @@ -1933,7 +2358,7 @@ atob-lite@^2.0.0: resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= -atob@^2.1.1: +atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== @@ -1961,26 +2386,26 @@ autoprefixer@^6.3.1: postcss-value-parser "^3.2.3" autoprefixer@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.1.tgz#51967a02d2d2300bb01866c1611ec8348d355a47" - integrity sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw== + version "9.7.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.4.tgz#f8bf3e06707d047f0641d87aee8cfb174b2a5378" + integrity sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g== dependencies: - browserslist "^4.6.3" - caniuse-lite "^1.0.30000980" + browserslist "^4.8.3" + caniuse-lite "^1.0.30001020" chalk "^2.4.2" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^7.0.17" - postcss-value-parser "^4.0.0" + postcss "^7.0.26" + postcss-value-parser "^4.0.2" aws-sdk@^2.414.0: - version "2.502.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.502.0.tgz#b3192f82389db982605462c8394cc3fa8c475b3e" - integrity sha512-VHFdbnJLuzON/35qE4x33PwzWFxAR/0A1wCIvc3sfOVisiGFuvBhQKC24uBlvFMrdPDnrL+8wKCHwfICgCqZtw== + version "2.639.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.639.0.tgz#ae887a179939750de240ddeb680668300256900f" + integrity sha512-cbH69oV0ObZ4tapbjDqu0j3I779uscQNhRaewjIJY5O5At4RULtd7us24n72FtT4HIwM9cwORzVxA9rK6DHKOA== dependencies: buffer "4.9.1" events "1.1.1" - ieee754 "1.1.8" + ieee754 "1.1.13" jmespath "0.15.0" querystring "0.2.0" sax "1.2.1" @@ -1994,16 +2419,14 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.0.tgz#24390e6ad61386b0a747265754d2a17219de862c" - integrity sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A== + version "1.9.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" + integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== axobject-query@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" - integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww== - dependencies: - ast-types-flow "0.0.7" + version "2.1.2" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.1.2.tgz#2bdffc0371e643e5f03ba99065d5179b9ca79799" + integrity sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ== babel-cli@^6.4.5: version "6.26.0" @@ -2062,16 +2485,16 @@ babel-core@^6.26.0, babel-core@^6.4.5: source-map "^0.5.7" babel-eslint@^10.0.1: - version "10.0.2" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.2.tgz#182d5ac204579ff0881684b040560fdcc1558456" - integrity sha512-UdsurWPtgiPgpJ06ryUnuaSXC2s0WoSZnQmEpbAH65XZSdwowgN5MvyP7e88nW07FYXv72erVtpBkxyDVKhH1Q== + version "10.1.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - eslint-scope "3.7.1" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" babel-generator@^6.26.0: version "6.26.1" @@ -2228,16 +2651,16 @@ babel-helpers@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^24.1.0, babel-jest@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.8.0.tgz#5c15ff2b28e20b0f45df43fe6b7f2aae93dba589" - integrity sha512-+5/kaZt4I9efoXzPlZASyK/lN9qdRKmmUav9smVc0ruPQD7IsfucQ87gpOE8mn2jbDuS6M/YOW6n3v9ZoIfgnw== +babel-jest@^24.1.0, babel-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" + integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== dependencies: - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" "@types/babel__core" "^7.1.0" babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.6.0" + babel-preset-jest "^24.9.0" chalk "^2.4.2" slash "^2.0.0" @@ -2289,10 +2712,10 @@ babel-plugin-istanbul@^5.1.0: istanbul-lib-instrument "^3.3.0" test-exclude "^5.2.3" -babel-plugin-jest-hoist@^24.6.0: - version "24.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.6.0.tgz#f7f7f7ad150ee96d7a5e8e2c5da8319579e78019" - integrity sha512-3pKNH6hMt9SbOv0F3WVmy5CWQ4uogS3k0GY5XLyQHJ9EGpAT9XWkFd2ZiXXtkwFHdAHa5j7w7kfxSP5lAIwu7w== +babel-plugin-jest-hoist@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" + integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== dependencies: "@types/babel__traverse" "^7.0.6" @@ -2308,9 +2731,19 @@ babel-plugin-lodash@^3.3.4: require-package-name "^2.0.1" babel-plugin-react-require@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-react-require/-/babel-plugin-react-require-3.1.1.tgz#5c3d2564fa16b1e45212ed52519db147b1596106" - integrity sha512-XFz+B0dWx41fnGnugzCWn5rOgrDHb150N5gFhUfO3BgYDCT25o4sofRtd9uUfqUHoRu+t4/r5Cr2RMPIKuCt2g== + version "3.1.3" + resolved "https://registry.yarnpkg.com/babel-plugin-react-require/-/babel-plugin-react-require-3.1.3.tgz#ba3d7305b044a90c35c32c5a9ab943fd68e1638d" + integrity sha512-kDXhW2iPTL81x4Ye2aUMdEXQ56JP0sBJmRQRXJPH5FsNB7fOc/YCsHTqHv8IovPyw9Rk07gdd7MVUz8tUmRBCA== + +"babel-plugin-styled-components@>= 1": + version "1.10.7" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.7.tgz#3494e77914e9989b33cc2d7b3b29527a949d635c" + integrity sha512-MBMHGcIA22996n9hZRf/UJLVVgkEOITuR2SvjHLb5dSTUyR4ZRGn+ngITapes36FI3WLxZHfRhkA1ffHxihOrg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-module-imports" "^7.0.0" + babel-plugin-syntax-jsx "^6.18.0" + lodash "^4.17.11" babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" @@ -2347,7 +2780,7 @@ babel-plugin-syntax-flow@^6.18.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" integrity sha1-TDqyCiryaqIM0lmVw5jE63AxDI0= -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: +babel-plugin-syntax-jsx@^6.18.0, babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= @@ -2732,13 +3165,13 @@ babel-preset-flow@^6.23.0: dependencies: babel-plugin-transform-flow-strip-types "^6.22.0" -babel-preset-jest@^24.6.0: - version "24.6.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz#66f06136eefce87797539c0d63f1769cc3915984" - integrity sha512-pdZqLEdmy1ZK5kyRUfvBb2IfTPb2BUvIJczlPspS8fWmBQslNNDBqVfh7BW5leOVJMDZKzjD8XEyABTk6gQ5yw== +babel-preset-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" + integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== dependencies: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.6.0" + babel-plugin-jest-hoist "^24.9.0" babel-preset-react@^6.3.13: version "6.24.1" @@ -2841,9 +3274,9 @@ babylon@^6.18.0: integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== bail@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.4.tgz#7181b66d508aa3055d3f6c13f0a0c720641dde9b" - integrity sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww== + version "1.0.5" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" + integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== balanced-match@^0.4.2: version "0.4.2" @@ -2856,9 +3289,9 @@ balanced-match@^1.0.0: integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-js@^1.0.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" - integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== base@^0.11.1: version "0.11.2" @@ -2895,10 +3328,10 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -bin-links@^1.1.2, bin-links@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.6.tgz#30d33e810829305e5e61b90cfcb9a3a4f65eb516" - integrity sha512-b5rV3uVyrlrJWLI3mawUUf5t2f9mCEQm/TqT5zNj6DPYhYDZaNp0AYaYd/CVASkSEklayNDLliZHVdo2J3niPw== +bin-links@^1.1.2, bin-links@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.7.tgz#34b79ea9d0e575d7308afeff0c6b2fc24c793359" + integrity sha512-/eaLaTu7G7/o7PV04QPy1HRT65zf+1tFkPGv0sPTV0tRwufooYBQO3zrcyGgm+ja+ZtBf2GEuKjDRJ2pPG+yqA== dependencies: bluebird "^3.5.3" cmd-shim "^3.0.0" @@ -2912,6 +3345,13 @@ binary-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -2957,15 +3397,20 @@ bootstrap@^3.3.7: integrity sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA== bottleneck@^2.18.1: - version "2.19.4" - resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.4.tgz#63c505687a0ddaf89a6f515225c75e05833bb079" - integrity sha512-2poBdvpAGG+dkMVKZqtDhyuMN6JviD81h89W4bfmt3UO7O60F+qf/84V0alNqL8PM1RByl4SZ1fVMu/ZvxkmcA== + version "2.19.5" + resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" + integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw== bowser@^1.9.3: version "1.9.4" resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a" integrity sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ== +bowser@^2.7.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz#3bed854233b419b9a7422d9ee3e85504373821c9" + integrity sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA== + boxen@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" @@ -3036,10 +3481,10 @@ browser-pack@^6.0.1: through2 "^2.0.0" umd "^3.0.0" -browser-process-hrtime@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" - integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== browser-resolve@^1.11.0, browser-resolve@^1.11.3, browser-resolve@^1.7.0: version "1.11.3" @@ -3119,9 +3564,9 @@ browserify-zlib@^0.2.0, browserify-zlib@~0.2.0: pako "~1.0.5" browserify@^16.1.0, browserify@^16.2.3: - version "16.3.0" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.3.0.tgz#4d414466e0b07492fff493a009ea883a9f2db230" - integrity sha512-BWaaD7alyGZVEBBwSTYx4iJF5DswIGzK17o8ai9w4iKRbYpk3EOiprRHMRRA8DCZFmFeOdx7A385w2XdFvxWmg== + version "16.5.0" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.5.0.tgz#a1c2bc0431bec11fd29151941582e3f645ede881" + integrity sha512-6bfI3cl76YLAnCZ75AGu/XPOsqUhRyc0F/olGIJeCxtfxF2HvPKEcmjU9M8oAPxl4uBY1U7Nry33Q6koV3f2iw== dependencies: JSONStream "^1.0.3" assert "^1.4.0" @@ -3160,7 +3605,7 @@ browserify@^16.1.0, browserify@^16.2.3: shasum "^1.0.0" shell-quote "^1.6.1" stream-browserify "^2.0.0" - stream-http "^2.0.0" + stream-http "^3.0.0" string_decoder "^1.1.1" subarg "^1.0.0" syntax-error "^1.1.1" @@ -3180,19 +3625,19 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.2, browserslist@^4.6.3, browserslist@^4.6.4: - version "4.6.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453" - integrity sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA== +browserslist@^4.0.0, browserslist@^4.6.4, browserslist@^4.8.3, browserslist@^4.8.5, browserslist@^4.9.1: + version "4.9.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.9.1.tgz#01ffb9ca31a1aef7678128fc6a2253316aa7287c" + integrity sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw== dependencies: - caniuse-lite "^1.0.30000984" - electron-to-chromium "^1.3.191" - node-releases "^1.1.25" + caniuse-lite "^1.0.30001030" + electron-to-chromium "^1.3.363" + node-releases "^1.1.50" -bser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.0.tgz#65fc784bf7f87c009b973c12db6546902fa9c7b5" - integrity sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg== +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== dependencies: node-int64 "^0.4.0" @@ -3202,9 +3647,9 @@ btoa-lite@^1.0.0: integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= budo@^11.6.1: - version "11.6.2" - resolved "https://registry.yarnpkg.com/budo/-/budo-11.6.2.tgz#0f26fc3db54fe4ab9561a0387bf34ae2a617c7e6" - integrity sha512-y6rcQHf//rqY1hsVJOUXGCHD0IZyVbbzAR1Cs1CYwI/akS7A8VMDhUNU9eXdQF2kM92ogPXEDsHo5ESdv5ZwPA== + version "11.6.3" + resolved "https://registry.yarnpkg.com/budo/-/budo-11.6.3.tgz#146408e1f646b2b30528bef88fb491e3fd34fdf3" + integrity sha512-U9pV6SoSxGduY/wnoIlDwEEUhxtTFqYqoyWvi3B5nJ/abSxuNmolfAfzgOQIEXqtHhPEA4FlM+VNzdEDOjpIjw== dependencies: bole "^2.0.0" browserify "^16.2.3" @@ -3234,7 +3679,7 @@ budo@^11.6.1: term-color "^1.0.1" url-trim "^1.0.0" watchify-middleware "^1.8.2" - ws "^1.1.1" + ws "^6.2.1" xtend "^4.0.0" buffer-equal@^1.0.0: @@ -3257,7 +3702,7 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= -buffer@4.9.1, buffer@^4.3.0: +buffer@4.9.1: version "4.9.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= @@ -3266,10 +3711,19 @@ buffer@4.9.1, buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + buffer@^5.0.2: - version "5.2.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" - integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== + version "5.5.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.5.0.tgz#9c3caa3d623c33dd1c7ef584b89b88bf9c9bc1ce" + integrity sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" @@ -3384,9 +3838,9 @@ camelcase-keys@^4.0.0: quick-lru "^1.0.0" camelcase-keys@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.0.0.tgz#12a07a6f50189213c3e8626c4069e28b997d01d1" - integrity sha512-NW1C7M9/uDZlfDP0+pWv0yAtgni7AZ9bYKtWgIfJylNXUFfis2BxsX3lCVuZE12wtRePEfJjnG6T9CnMohEybw== + version "6.2.1" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.1.tgz#cd3e2d2d7db767aa3f247e4c2df93b4661008945" + integrity sha512-BPCNVH56RVIxQQIXskp5tLQXUNGQ6sXr7iCv1FHDt81xBOQ/1r6H8SPxf19InVP6DexWar4s87q9thfuk8X9HA== dependencies: camelcase "^5.3.1" map-obj "^4.0.0" @@ -3412,6 +3866,11 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelize@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" + integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= + caniuse-api@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" @@ -3433,14 +3892,14 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000986" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000986.tgz#0439a4052bbd3243fa01c9998601b9226e7ea6b7" - integrity sha512-8SKJ12AFwG0ReMjPwRH+keFsX/ucw2bi6LC7upeXBvxjgrMqHaTxgYhkRGm+eOwUWvVcqXDgqM7QNlRJMhvXZg== + version "1.0.30001035" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001035.tgz#3a182cab9d556a4a02d945f1f739e81c18e73bfa" + integrity sha512-kLUON4XN3tq5Nwl7ZICDw+7/vMynSpRMVYDRkzLL31lgnpa6M2YXYdjst3h+xbzjMgdcveRTnRGE1h/1IcKK6A== -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000941, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000984: - version "1.0.30000986" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000986.tgz#f34350e367cc900509511574817ac092112bf7ab" - integrity sha512-pM+LnkoAX0+QnIH3tpW5EnkmfpEoqOD8FAcoBvsl3Xh6DXkgctiCxeCbXphP/k3XJtJzm+zOAJbi6U6IVkpWZQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000941, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001030: + version "1.0.30001035" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz#2bb53b8aa4716b2ed08e088d4dc816a5fe089a1e" + integrity sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ== capture-exit@^2.0.0: version "2.0.0" @@ -3468,9 +3927,9 @@ caseless@~0.12.0: integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= ccount@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.4.tgz#9cf2de494ca84060a2a8d2854edd6dfb0445f386" - integrity sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w== + version "1.0.5" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.5.tgz#ac82a944905a65ce204eb03023157edf29425c17" + integrity sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw== center-align@^0.1.1: version "0.1.3" @@ -3524,24 +3983,24 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4 supports-color "^5.3.0" character-entities-html4@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.3.tgz#5ce6e01618e47048ac22f34f7f39db5c6fd679ef" - integrity sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg== + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" + integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g== character-entities-legacy@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz#3c729991d9293da0ede6dddcaf1f2ce1009ee8b4" - integrity sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww== + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== character-entities@^1.0.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.3.tgz#bbed4a52fe7ef98cc713c6d80d9faa26916d54e6" - integrity sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w== + version "1.2.4" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== character-reference-invalid@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz#1647f4f726638d3ea4a750cf5d1975c1c7919a85" - integrity sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg== + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== chardet@^0.7.0: version "0.7.0" @@ -3558,7 +4017,7 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= -cheerio@^1.0.0-rc.2: +cheerio@^1.0.0-rc.3: version "1.0.0-rc.3" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== @@ -3587,9 +4046,9 @@ chokidar@^1.6.1: fsevents "^1.0.0" chokidar@^2.0.2, chokidar@^2.0.4, chokidar@^2.1.1, chokidar@^2.1.2: - version "2.1.6" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" - integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== dependencies: anymatch "^2.0.0" async-each "^1.0.1" @@ -3605,10 +4064,10 @@ chokidar@^2.0.2, chokidar@^2.0.4, chokidar@^2.1.1, chokidar@^2.1.2: optionalDependencies: fsevents "^1.2.7" -chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" - integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== +chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== ci-info@^1.5.0: version "1.6.0" @@ -3658,9 +4117,9 @@ classnames@^2.2.5: integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== clean-stack@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.1.0.tgz#9e7fec7f3f8340a2ab4f127c80273085e8fbbdd0" - integrity sha512-uQWrpRm+iZZUCAp7ZZJQbd4Za9I3AjR/3YTjmcnAtkauaIm/T5CT6U8zVI6e60T6OANqBFAzuR9/HB3NzuZCRA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-boxes@^1.0.0: version "1.0.0" @@ -3740,6 +4199,15 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + clone-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" @@ -3804,9 +4272,9 @@ code-point-at@^1.0.0: integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= collapse-white-space@^1.0.0, collapse-white-space@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.5.tgz#c2495b699ab1ed380d29a1091e01063e75dbbe3a" - integrity sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" + integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== collection-visit@^1.0.0: version "1.0.0" @@ -3823,12 +4291,19 @@ color-convert@^1.3.0, color-convert@^1.9.0, color-convert@^1.9.1: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -3915,16 +4390,11 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: delayed-stream "~1.0.0" comma-separated-tokens@^1.0.1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.7.tgz#419cd7fb3258b1ed838dc0953167a25e152f5b59" - integrity sha512-Jrx3xsP4pPv4AwJUDWY9wOXGtwPXARej6Xd99h4TUGotmf8APuquKMpK+dnD3UgyxK7OEWaisjZz+3b5jtL6xQ== - -commander@^2.11.0, commander@^2.19.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" - integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== + version "1.0.8" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" + integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== -commander@~2.20.3: +commander@^2.11.0, commander@^2.19.0, commander@~2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -4056,20 +4526,16 @@ connect-pushstate@^1.1.0: integrity sha1-vKsiQnHEOWBKD7D2FMCl9WPojiQ= connected-react-router@^6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/connected-react-router/-/connected-react-router-6.5.2.tgz#422af70f86cb276681e20ab4295cf27dd9b6c7e3" - integrity sha512-qzsLPZCofSI80fwy+HgxtEgSGS4ndYUUZAWaw1dqaOGPLKX/FVwIOEb7q+hjHdnZ4v5pKZcNv5GG4urjujIoyA== + version "6.7.0" + resolved "https://registry.yarnpkg.com/connected-react-router/-/connected-react-router-6.7.0.tgz#1c37a65684f1729533264c1b1903ee91c8ca3a15" + integrity sha512-RDmcmiwSfUWQ3U7J7RVkc9cwNtek26fUn0DWpA8pS7JylC97VNeosrsIxjJ/3CGDrzZPqnc0Hr/kZxjh75JGlw== dependencies: - immutable "^3.8.1" prop-types "^15.7.2" - seamless-immutable "^7.1.3" console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= - dependencies: - date-now "^0.1.4" + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" @@ -4092,43 +4558,35 @@ continuable-cache@^0.3.1: integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8= conventional-changelog-angular@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz#299fdd43df5a1f095283ac16aeedfb0a682ecab0" - integrity sha512-YD1xzH7r9yXQte/HF9JBuEDfvjxxwDGGwZU1+ndanbY0oFgA+Po1T9JDSpPLdP0pZT6MhCAsdvFKC4TJ4MTJTA== + version "5.0.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz#269540c624553aded809c29a3508fdc2b544c059" + integrity sha512-QDEmLa+7qdhVIv8sFZfVxU1VSyVvnXPsxq8Vam49mKUcO1Z8VTLEJk9uI21uiJUsnmm0I4Hrsdc9TgkOQo9WSA== dependencies: compare-func "^1.3.1" q "^1.5.1" conventional-changelog-writer@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.7.tgz#e4b7d9cbea902394ad671f67108a71fa90c7095f" - integrity sha512-p/wzs9eYaxhFbrmX/mCJNwJuvvHR+j4Fd0SQa2xyAhYed6KBiZ780LvoqUUvsayP4R1DtC27czalGUhKV2oabw== + version "4.0.11" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.11.tgz#9f56d2122d20c96eb48baae0bf1deffaed1edba4" + integrity sha512-g81GQOR392I+57Cw3IyP1f+f42ME6aEkbR+L7v1FBBWolB0xkjKTeCWVguzRrp6UiT1O6gBpJbEy2eq7AnV1rw== dependencies: compare-func "^1.3.1" conventional-commits-filter "^2.0.2" dateformat "^3.0.0" - handlebars "^4.1.2" + handlebars "^4.4.0" json-stringify-safe "^5.0.1" - lodash "^4.2.1" - meow "^4.0.0" + lodash "^4.17.15" + meow "^5.0.0" semver "^6.0.0" split "^1.0.0" through2 "^3.0.0" conventional-commit-types@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-2.1.1.tgz#352eb53f56fbc7c1a6c1ba059c2b6670c90b2a8a" - integrity sha512-0Ts+fEdmjqYDOQ1yZ+LNgdSPO335XZw9qC10M7CxtLP3nIMGmeMhmkM8Taffa4+MXN13bRPlp0CtH+QfOzKTzw== - -conventional-commits-filter@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz#55a135de1802f6510b6758e0a6aa9e0b28618db3" - integrity sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A== - dependencies: - is-subset "^0.1.1" - modify-values "^1.0.0" + version "2.3.0" + resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-2.3.0.tgz#bc3c8ebba0a9e4b3ecc548f1d0674e251ab8be22" + integrity sha512-6iB39PrcGYdz0n3z31kj6/Km6mK9hm9oMRhwcLnKxE7WNoeRKZbTAobliKrbYZ5jqyCvtcVEfjCiaEzhL3AVmQ== -conventional-commits-filter@^2.0.2: +conventional-commits-filter@^2.0.0, conventional-commits-filter@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz#f122f89fbcd5bb81e2af2fcac0254d062d1039c1" integrity sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ== @@ -4136,23 +4594,23 @@ conventional-commits-filter@^2.0.2: lodash.ismatch "^4.4.0" modify-values "^1.0.0" -conventional-commits-parser@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz#fe1c49753df3f98edb2285a5e485e11ffa7f2e4c" - integrity sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg== +conventional-commits-parser@^3.0.0, conventional-commits-parser@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz#23310a9bda6c93c874224375e72b09fb275fe710" + integrity sha512-YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ== dependencies: JSONStream "^1.0.4" - is-text-path "^1.0.0" - lodash "^4.2.1" - meow "^4.0.0" + is-text-path "^1.0.1" + lodash "^4.17.15" + meow "^5.0.0" split2 "^2.0.0" - through2 "^2.0.0" + through2 "^3.0.0" trim-off-newlines "^1.0.0" -convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" @@ -4179,30 +4637,29 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= copy-to-clipboard@^3.0.8: - version "3.2.0" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.2.0.tgz#d2724a3ccbfed89706fac8a894872c979ac74467" - integrity sha512-eOZERzvCmxS8HWzugj4Uxl8OJxa7T2k1Gi0X5qavwydHIfuSHq2dTD09LOg/XyGq4Zpb5IsR/2OJ5lbOegz78w== + version "3.3.1" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" + integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== dependencies: toggle-selection "^1.0.6" -core-js-compat@^3.1.1: - version "3.1.4" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.4.tgz#e4d0c40fbd01e65b1d457980fe4112d4358a7408" - integrity sha512-Z5zbO9f1d0YrJdoaQhphVAnKPimX92D6z8lCGphH89MNRxlL1prI9ExJPqVwP0/kgkQCv8c4GJGT8X16yUncOg== +core-js-compat@^3.6.2: + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" + integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA== dependencies: - browserslist "^4.6.2" - core-js-pure "3.1.4" - semver "^6.1.1" + browserslist "^4.8.3" + semver "7.0.0" -core-js-pure@3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.4.tgz#5fa17dc77002a169a3566cc48dc774d2e13e3769" - integrity sha512-uJ4Z7iPNwiu1foygbcZYJsJs1jiXrTTCvxfLDXNhI/I+NHbSIEyr548y4fcsCEyWY0XgfAG/qqaunJ1SThHenA== +core-js-pure@^3.0.0: + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a" + integrity sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw== core-js@2, core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: - version "2.6.9" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" - integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== + version "2.6.11" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== core-js@^1.0.0: version "1.2.7" @@ -4210,16 +4667,16 @@ core-js@^1.0.0: integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= core-js@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.1.4.tgz#3a2837fc48e582e1ae25907afcd6cf03b0cc7a07" - integrity sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ== + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" + integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw== core-util-is@1.0.2, "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" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cosmiconfig@^5.0.0, cosmiconfig@^5.0.1: +cosmiconfig@^5.0.0: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== @@ -4229,6 +4686,17 @@ cosmiconfig@^5.0.0, cosmiconfig@^5.0.1: js-yaml "^3.13.1" parse-json "^4.0.0" +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + create-ecdh@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" @@ -4287,6 +4755,15 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" + integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypt@~0.0.1: version "0.0.2" resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" @@ -4321,6 +4798,11 @@ css-blank-pseudo@^0.1.4: dependencies: postcss "^7.0.5" +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU= + css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" @@ -4372,12 +4854,12 @@ css-select-base-adapter@^0.1.1: integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== css-select@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" - integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== dependencies: boolbase "^1.0.0" - css-what "^2.1.2" + css-what "^3.2.1" domutils "^1.7.0" nth-check "^1.0.2" @@ -4400,40 +4882,41 @@ css-selector-tokenizer@^0.5.1: fastparse "^1.1.1" css-selector-tokenizer@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" - integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== + version "0.7.2" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz#11e5e27c9a48d90284f22d45061c303d7a25ad87" + integrity sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw== dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" + cssesc "^3.0.0" + fastparse "^1.1.2" + regexpu-core "^4.6.0" -css-tree@1.0.0-alpha.29: - version "1.0.0-alpha.29" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" - integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== +css-to-react-native@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" + integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== dependencies: - mdn-data "~1.1.0" - source-map "^0.5.3" + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" -css-tree@1.0.0-alpha.33: - version "1.0.0-alpha.33" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.33.tgz#970e20e5a91f7a378ddd0fc58d0b6c8d4f3be93e" - integrity sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w== +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== dependencies: mdn-data "2.0.4" - source-map "^0.5.3" - -css-unit-converter@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" - integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= + source-map "^0.6.1" -css-what@2.1, css-what@^2.1.2: +css-what@2.1: version "2.1.3" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== +css-what@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" + integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== + cssdb@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" @@ -4449,6 +4932,11 @@ cssesc@^2.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + cssnano-preset-default@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" @@ -4555,12 +5043,12 @@ cssnano@^4.1.10: is-resolvable "^1.0.0" postcss "^7.0.0" -csso@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" - integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg== +csso@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.2.tgz#e5f81ab3a56b8eefb7f0092ce7279329f454de3d" + integrity sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg== dependencies: - css-tree "1.0.0-alpha.29" + css-tree "1.0.0-alpha.37" csso@~2.3.1: version "2.3.2" @@ -4583,9 +5071,9 @@ cssstyle@^1.0.0: cssom "0.3.x" currency-formatter@^1.4.2: - version "1.5.4" - resolved "https://registry.yarnpkg.com/currency-formatter/-/currency-formatter-1.5.4.tgz#115ebd438a3f94ab335516ce27ef9511a5e05c02" - integrity sha512-8qyGfrJO2ulabrlP4AidcV4kXpuTMqWJ61NW16QK3u+1L/9R0x7XM4f4hQ8HVlJyzBcxJV4SZMYx7zYoAhpArA== + version "1.5.5" + resolved "https://registry.yarnpkg.com/currency-formatter/-/currency-formatter-1.5.5.tgz#907790bb0b7f129c4a64d2924e0d7fa36db0cf52" + integrity sha512-PEsZ9fK2AwPBYgzWTtqpSckam7hFDkT8ZKFAOrsooR0XbydZEKuFioUzcc3DoT2mCDkscjf1XdT6Qq53ababZQ== dependencies: accounting "^0.4.1" locale-currency "0.0.2" @@ -4615,49 +5103,49 @@ cz-conventional-changelog@2.1.0, cz-conventional-changelog@^2.1.0: word-wrap "^1.0.3" d3-color@1: - version "1.2.8" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.2.8.tgz#4eaf9b60ef188c893fcf8b28f3546aafebfbd9f4" - integrity sha512-yeANXzP37PHk0DbSTMNPhnJD+Nn4G//O5E825bR6fAfHH43hobSBpgB9G9oWVl9+XgUaQ4yCnsX1H+l8DoaL9A== + version "1.4.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.0.tgz#89c45a995ed773b13314f06460df26d60ba0ecaf" + integrity sha512-TzNPeJy2+iEepfiL92LAAB7fvnp/dV2YwANPVHdDWmYMm23qIJBYww3qT8I8C1wXrmrg4UWs7BKc2tKIgyjzHg== d3-dispatch@1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.5.tgz#e25c10a186517cd6c82dd19ea018f07e01e39015" - integrity sha512-vwKx+lAqB1UuCeklr6Jh1bvC4SZgbSqbkGBLClItFBIYH4vqDJCA7qfoy14lXmJdnBOdxndAMxjCbImJYW7e6g== + version "1.0.6" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" + integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== d3-drag@1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.3.tgz#46e206ad863ec465d88c588098a1df444cd33c64" - integrity sha512-8S3HWCAg+ilzjJsNtWW1Mutl74Nmzhb9yU6igspilaJzeZVFktmY6oO9xOh5TDk+BM2KrNFjttZNoJJmDnkjkg== + version "1.2.5" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" + integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== dependencies: d3-dispatch "1" d3-selection "1" d3-ease@1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.5.tgz#8ce59276d81241b1b72042d6af2d40e76d936ffb" - integrity sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.6.tgz#ebdb6da22dfac0a22222f2d4da06f66c416a0ec0" + integrity sha512-SZ/lVU7LRXafqp7XtIcBdxnWl8yyLpgOmzAk0mWBI9gXNzLDx5ybZgnRbH9dN/yY5tzVBqCQ9avltSnqVwessQ== d3-interpolate@1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.3.2.tgz#417d3ebdeb4bc4efcc8fd4361c55e4040211fd68" - integrity sha512-NlNKGopqaz9qM1PXh9gBF1KSCVh+jSFErrSlD/4hybwoNX/gt1d8CDbDW+3i+5UOHhjC6s6nMvRxcuoMVNgL2w== + version "1.4.0" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" + integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== dependencies: d3-color "1" d3-selection@1, d3-selection@^1.1.0, d3-selection@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.0.tgz#ab9ac1e664cf967ebf1b479cc07e28ce9908c474" - integrity sha512-EYVwBxQGEjLCKF2pJ4+yrErskDnz5v403qvAid96cNdCMr8rmCYfY5RGzWz24mdIbxmDf6/4EAH+K9xperD5jg== + version "1.4.1" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.1.tgz#98eedbbe085fbda5bafa2f9e3f3a2f4d7d622a98" + integrity sha512-BTIbRjv/m5rcVTfBs4AMBLKs4x8XaaLkwm28KWu9S2vKNqXkXt2AH2Qf0sdPZHjFxcWg/YL53zcqAz+3g4/7PA== d3-timer@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.9.tgz#f7bb8c0d597d792ff7131e1c24a36dd471a471ba" - integrity sha512-rT34J5HnQUHhcLvhSB9GjCkN0Ddd5Y8nCwDBG2u6wQEeYxT/Lf51fTFFkldeib/sE/J0clIe0pnCfs6g/lRbyg== + version "1.0.10" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" + integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== d3-transition@1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.2.0.tgz#f538c0e21b2aa1f05f3e965f8567e81284b3b2b8" - integrity sha512-VJ7cmX/FPIPJYuaL2r1o1EMHLttvoIuZhhuAlRoOxDzogV8iQS6jYulDm3xEU3TqL80IZIhI551/ebmCMrkvhw== + version "1.3.2" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" + integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== dependencies: d3-color "1" d3-dispatch "1" @@ -4667,9 +5155,9 @@ d3-transition@1: d3-timer "1" d3-zoom@^1.7.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.7.3.tgz#f444effdc9055c38077c4299b4df999eb1d47ccb" - integrity sha512-xEBSwFx5Z9T3/VrwDkMt+mr0HCzv7XjpGURJ8lWmIC8wxe32L39eWHIasEe/e7Ox8MPU4p1hvH8PKN2olLzIBg== + version "1.8.3" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a" + integrity sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ== dependencies: d3-dispatch "1" d3-drag "1" @@ -4683,9 +5171,9 @@ d3@^3.5.8: integrity sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g= damerau-levenshtein@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414" - integrity sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA== + version "1.0.6" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" + integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== dash-ast@^1.0.0: version "1.0.0" @@ -4708,11 +5196,6 @@ data-urls@^1.0.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= - dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -4742,6 +5225,13 @@ debug@3.1.0: dependencies: ms "2.0.0" +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + debug@^3.1.0, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" @@ -4749,14 +5239,7 @@ debug@^3.1.0, debug@^3.2.6: dependencies: ms "^2.1.1" -debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -debuglog@^1.0.1: +debuglog@*, debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= @@ -4797,9 +5280,16 @@ deep-eql@^3.0.1: type-detect "^4.0.0" deep-equal@^1.0.0, deep-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" deep-extend@^0.6.0: version "0.6.0" @@ -4811,11 +5301,6 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -deepmerge@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.0.0.tgz#3e3110ca29205f120d7cb064960a39c3d2087c09" - integrity sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww== - default-gateway@^2.6.0: version "2.7.2" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-2.7.2.tgz#b7ef339e5e024b045467af403d50348db4642d0f" @@ -4880,25 +5365,25 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -deprecation@^2.0.0: +deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== deps-sort@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" - integrity sha1-CRckkC6EZYJg65EHSMzNGvbiH7U= + version "2.0.1" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" + integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw== dependencies: JSONStream "^1.0.3" - shasum "^1.0.0" + shasum-object "^1.0.0" subarg "^1.0.0" through2 "^2.0.0" des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" @@ -4909,9 +5394,9 @@ destroy@~1.0.4: integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= detab@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.2.tgz#074970d1a807b045d0258a4235df5928dd683561" - integrity sha512-Q57yPrxScy816TTE1P/uLRXLDKjXhvYTbfxS/e6lPD+YrqghbsMlGB9nQzj/zVtSPaF0DFPSdO916EWO4sQUyQ== + version "2.0.3" + resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.3.tgz#33e5dd74d230501bd69985a0d2b9a3382699a130" + integrity sha512-Up8P0clUVwq0FnFjDclzZsy9PadzRn5FFxrr47tQQvMHqyiFYVbpH8oXDzWtF0Q7pYy3l+RPmtBl+BsFF6wH0A== dependencies: repeat-string "^1.5.4" @@ -4950,7 +5435,7 @@ detective@^4.0.0: acorn "^5.2.1" defined "^1.0.0" -detective@^5.0.2: +detective@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== @@ -4967,15 +5452,15 @@ dezalgo@^1.0.0, dezalgo@~1.0.3: asap "^2.0.0" wrappy "1" -diff-sequences@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975" - integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw== +diff-sequences@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" + integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== diff@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" - integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q== + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== diffie-hellman@^5.0.0: version "5.0.3" @@ -5033,9 +5518,9 @@ doctrine@^3.0.0: esutils "^2.0.2" documentation@^12.0.3: - version "12.0.3" - resolved "https://registry.yarnpkg.com/documentation/-/documentation-12.0.3.tgz#32f91da8e5cb4104f69db9fd32c87773a1ad6240" - integrity sha512-RoqkH+mQ4Vi/nFMxG0BaqPAnjKfsJ9lbLWB8KqoKVAZy+urSpk1K1zBzaFesdDkKeaR3aBgeR3RjtHp8Ut/1Wg== + version "12.1.4" + resolved "https://registry.yarnpkg.com/documentation/-/documentation-12.1.4.tgz#ec0aafbd9d3879a44189d2d4434953ae3a258598" + integrity sha512-GGS635tR8bBR/m/AuUZ6MCZmFXZA25Wk9S/TTHNe+EMkTCoDdlcft56dZCjF7voCmfnMqKRo8sXAukf/ciA5IA== dependencies: "@babel/core" "^7.1.2" "@babel/generator" "^7.1.3" @@ -5070,11 +5555,12 @@ documentation@^12.0.3: diff "^4.0.1" doctrine-temporary-fork "2.1.0" get-port "^4.0.0" - git-url-parse "^10.0.1" + git-url-parse "^11.1.2" github-slugger "1.2.0" glob "^7.1.2" globals-docs "^2.4.0" highlight.js "^9.15.5" + ini "^1.3.5" js-yaml "^3.10.0" lodash "^4.17.10" mdast-util-inject "^1.1.0" @@ -5088,7 +5574,6 @@ documentation@^12.0.3: remark-html "^8.0.0" remark-reference-links "^4.0.1" remark-toc "^5.0.0" - remote-origin-url "0.4.0" resolve "^1.8.1" stream-array "^1.1.2" strip-json-comments "^2.0.1" @@ -5110,7 +5595,15 @@ dom-helpers@^3.2.0, dom-helpers@^3.2.1, dom-helpers@^3.4.0: dependencies: "@babel/runtime" "^7.1.2" -dom-serializer@0, dom-serializer@~0.1.1: +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== @@ -5128,6 +5621,11 @@ domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" @@ -5165,13 +5663,20 @@ dot-prop@^3.0.0: dependencies: is-obj "^1.0.0" -dot-prop@^4.1.0, dot-prop@^4.1.1: +dot-prop@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== dependencies: is-obj "^1.0.0" +dot-prop@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" + integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + dependencies: + is-obj "^2.0.0" + dotenv@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" @@ -5217,15 +5722,15 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.191: - version "1.3.204" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.204.tgz#1ea5c6d495bab77995aa135dbcbc1d383dd4e21e" - integrity sha512-T0eXE6hfbtpzRUaI7aHI/HYJ29Ndk84aVSborRAmXfWvBvz2EuB2OWYUxNcUX9d+jtqEIjgZjWMdoxS0hp5j1g== +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.363: + version "1.3.376" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.376.tgz#7cb7b5205564a06c8f8ecfbe832cbd47a1224bb1" + integrity sha512-cv/PYVz5szeMz192ngilmezyPNFkUjuynuL2vNdiqIrio440nfTDdc0JJU0TS2KHLSVCs9gBbt4CFqM+HcBnjw== elliptic@^6.0.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.0.tgz#2b8ed4c891b7de3200e14412a5b8248c7af505ca" - integrity sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg== + version "6.5.2" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" + integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -5255,6 +5760,11 @@ emojis-list@^2.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -5289,18 +5799,23 @@ entities@^1.1.1, entities@~1.1.1: resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + env-ci@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/env-ci/-/env-ci-4.1.1.tgz#b8438fc7258a0dc7a4f4c4816de730767946a718" - integrity sha512-eTgpkALDeYRGNhYM2fO9LKsWDifoUgKL7hxpPZqFMP2IU7f+r89DtKqCmk3yQB/jxS8CmZTfKnWO5TiIDFs9Hw== + version "4.5.2" + resolved "https://registry.yarnpkg.com/env-ci/-/env-ci-4.5.2.tgz#40b08825dcf4ed5b2cddd3d638190571cf96347a" + integrity sha512-lS+edpNp2+QXEPkx6raEMIjKxKKWnJ4+VWzovYJ2NLYiJAYenSAXotFfVdgaFxdbVnvAbUI8epQDa1u12ERxfQ== dependencies: - execa "^1.0.0" + execa "^3.2.0" java-properties "^1.0.0" -env-paths@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" - integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA= +env-paths@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" + integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== envify@^4.1.0: version "4.1.0" @@ -5311,64 +5826,75 @@ envify@^4.1.0: through "~2.3.4" enzyme-adapter-react-16@^1.4.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.14.0.tgz#204722b769172bcf096cb250d33e6795c1f1858f" - integrity sha512-7PcOF7pb4hJUvjY7oAuPGpq3BmlCig3kxXGi2kFx0YzJHppqX1K8IIV9skT1IirxXlu8W7bneKi+oQ10QRnhcA== + version "1.15.2" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz#b16db2f0ea424d58a808f9df86ab6212895a4501" + integrity sha512-SkvDrb8xU3lSxID8Qic9rB8pvevDbLybxPK6D/vW7PrT0s2Cl/zJYuXvsd1EBTz0q4o3iqG3FJhpYz3nUNpM2Q== dependencies: - enzyme-adapter-utils "^1.12.0" + enzyme-adapter-utils "^1.13.0" + enzyme-shallow-equal "^1.0.1" has "^1.0.3" object.assign "^4.1.0" - object.values "^1.1.0" + object.values "^1.1.1" prop-types "^15.7.2" - react-is "^16.8.6" + react-is "^16.12.0" react-test-renderer "^16.0.0-0" semver "^5.7.0" -enzyme-adapter-utils@^1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.12.0.tgz#96e3730d76b872f593e54ce1c51fa3a451422d93" - integrity sha512-wkZvE0VxcFx/8ZsBw0iAbk3gR1d9hK447ebnSYBf95+r32ezBq+XDSAvRErkc4LZosgH8J7et7H7/7CtUuQfBA== +enzyme-adapter-utils@^1.13.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.0.tgz#01c885dde2114b4690bf741f8dc94cee3060eb78" + integrity sha512-YuEtfQp76Lj5TG1NvtP2eGJnFKogk/zT70fyYHXK2j3v6CtuHqc8YmgH/vaiBfL8K1SgVVbQXtTcgQZFwzTVyQ== dependencies: - airbnb-prop-types "^2.13.2" - function.prototype.name "^1.1.0" + airbnb-prop-types "^2.15.0" + function.prototype.name "^1.1.2" object.assign "^4.1.0" - object.fromentries "^2.0.0" + object.fromentries "^2.0.2" prop-types "^15.7.2" - semver "^5.6.0" + semver "^5.7.1" + +enzyme-shallow-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.1.tgz#7afe03db3801c9b76de8440694096412a8d9d49e" + integrity sha512-hGA3i1so8OrYOZSM9whlkNmVHOicJpsjgTzC+wn2JMJXhq1oO4kA4bJ5MsfzSIcC71aLDKzJ6gZpIxrqt3QTAQ== + dependencies: + has "^1.0.3" + object-is "^1.0.2" enzyme-to-json@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.4.0.tgz#2b6330a784a57ba68298e3c0d6cef17ee4fedc0e" - integrity sha512-gbu8P8PMAtb+qtKuGVRdZIYxWHC03q1dGS3EKRmUzmTDIracu3o6cQ0d4xI2YWojbelbxjYOsmqM5EgAL0WgIA== + version "3.4.4" + resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.4.4.tgz#b30726c59091d273521b6568c859e8831e94d00e" + integrity sha512-50LELP/SCPJJGic5rAARvU7pgE3m1YaNj7JLM+Qkhl5t7PAs6fiyc8xzc50RnkKPFQCv0EeFVjEWdIFRGPWMsA== dependencies: - lodash "^4.17.12" + lodash "^4.17.15" + react-is "^16.12.0" enzyme@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.10.0.tgz#7218e347c4a7746e133f8e964aada4a3523452f6" - integrity sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg== - dependencies: - array.prototype.flat "^1.2.1" - cheerio "^1.0.0-rc.2" - function.prototype.name "^1.1.0" + version "3.11.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" + integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== + dependencies: + array.prototype.flat "^1.2.3" + cheerio "^1.0.0-rc.3" + enzyme-shallow-equal "^1.0.1" + function.prototype.name "^1.1.2" has "^1.0.3" - html-element-map "^1.0.0" - is-boolean-object "^1.0.0" - is-callable "^1.1.4" - is-number-object "^1.0.3" - is-regex "^1.0.4" - is-string "^1.0.4" + html-element-map "^1.2.0" + is-boolean-object "^1.0.1" + is-callable "^1.1.5" + is-number-object "^1.0.4" + is-regex "^1.0.5" + is-string "^1.0.5" is-subset "^0.1.1" lodash.escape "^4.0.1" lodash.isequal "^4.5.0" - object-inspect "^1.6.0" - object-is "^1.0.1" + object-inspect "^1.7.0" + object-is "^1.0.2" object.assign "^4.1.0" - object.entries "^1.0.4" - object.values "^1.0.4" - raf "^3.4.0" + object.entries "^1.1.1" + object.values "^1.1.1" + raf "^3.4.1" rst-selector-parser "^2.2.3" - string.prototype.trim "^1.1.2" + string.prototype.trim "^1.2.1" err-code@^1.0.0: version "1.1.2" @@ -5390,55 +5916,33 @@ error-ex@^1.2.0, error-ex@^1.3.1: is-arrayish "^0.2.1" error@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" - integrity sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI= + version "7.2.1" + resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" + integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== dependencies: string-template "~0.2.1" - xtend "~4.0.0" errorify@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/errorify/-/errorify-0.3.1.tgz#53e0aaeeb18adc3e55f9f1eb4e2d95929f41b79b" integrity sha1-U+Cq7rGK3D5V+fHrTi2Vkp9Bt5s= -es-abstract@^1.10.0, es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.7.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" - -es-abstract@^1.17.0-next.1: - version "1.17.0-next.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0-next.1.tgz#94acc93e20b05a6e96dacb5ab2f1cb3a81fc2172" - integrity sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw== +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.4: + version "1.17.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" + integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" - is-callable "^1.1.4" - is-regex "^1.0.4" + is-callable "^1.1.5" + is-regex "^1.0.5" object-inspect "^1.7.0" object-keys "^1.1.1" object.assign "^4.1.0" - string.prototype.trimleft "^2.1.0" - string.prototype.trimright "^2.1.0" - -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -5467,9 +5971,9 @@ es6-promisify@^5.0.0: es6-promise "^4.0.3" es6-promisify@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.0.1.tgz#6edaa45f3bd570ffe08febce66f7116be4b1cdb6" - integrity sha512-J3ZkwbEnnO+fGAKrjVpeUAnZshAdfZvbhQpqfIH9kSAspReRC4nJnu8ewm55b4y9ElyeuhCTzJD0XiH8Tsbhlw== + version "6.0.2" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.0.2.tgz#525c23725b8510f5f1f2feb5a1fbad93a93e29b4" + integrity sha512-eO6vFm0JvqGzjWIQA6QVKjxpmELfhWbDUWHm1rPfIbn55mhKPiAa5xpLmQWJrNa629ZIeQ8ZvMAi13kvrjK6Mg== escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" @@ -5482,11 +5986,11 @@ escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escodegen@^1.9.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" - integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw== + version "1.14.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" + integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ== dependencies: - esprima "^3.1.3" + esprima "^4.0.1" estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" @@ -5504,57 +6008,58 @@ eslint-config-standard@^12.0.0: integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== eslint-import-resolver-node@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" - integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== + version "0.3.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" + integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== dependencies: debug "^2.6.9" - resolve "^1.5.0" + resolve "^1.13.1" -eslint-module-utils@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c" - integrity sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw== +eslint-module-utils@^2.4.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz#7878f7504824e1b857dd2505b59a8e5eda26a708" + integrity sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q== dependencies: - debug "^2.6.8" + debug "^2.6.9" pkg-dir "^2.0.0" eslint-plugin-es@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6" - integrity sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw== + version "1.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz#12acae0f4953e76ba444bfd1b2271081ac620998" + integrity sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA== dependencies: - eslint-utils "^1.3.0" + eslint-utils "^1.4.2" regexpp "^2.0.1" eslint-plugin-flowtype@^3.4.2: - version "3.12.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.12.2.tgz#f02fb8a4e20993bff860292bdd39b93d511d7326" - integrity sha512-Fky+noPK7WPEAuclGRBsRHNukmSc9h2cUMpht9+tVd30YoJwz3xK7ma1QQ69wIjVTbk2N0sA6QjEo2DlIf9LlA== + version "3.13.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz#e241ebd39c0ce519345a3f074ec1ebde4cf80f2c" + integrity sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw== dependencies: - lodash "^4.17.11" + lodash "^4.17.15" eslint-plugin-import@^2.16.0: - version "2.18.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6" - integrity sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ== + version "2.20.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3" + integrity sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw== dependencies: array-includes "^3.0.3" + array.prototype.flat "^1.2.1" contains-path "^0.1.0" debug "^2.6.9" doctrine "1.5.0" eslint-import-resolver-node "^0.3.2" - eslint-module-utils "^2.4.0" + eslint-module-utils "^2.4.1" has "^1.0.3" minimatch "^3.0.4" object.values "^1.1.0" read-pkg-up "^2.0.0" - resolve "^1.11.0" + resolve "^1.12.0" eslint-plugin-jest@^22.3.0: - version "22.14.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.14.0.tgz#f9b09837f665cfe360b55c08866904255294cc16" - integrity sha512-Xtc9ZTtxdYFC7vu0PHxDeQ9lOMQ8gjwMmSQq/ni83TdflgL3eVh/qg3t99I7gcDxpeXfcp+lHu9C0vN3QAhATw== + version "22.21.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.21.0.tgz#8137294645866636160487d9764224b9a43e2eb1" + integrity sha512-OaqnSS7uBgcGiqXUiEnjoqxPNKvR4JWG5mSRkzVoR6+vDwlqqp11beeql1hYs0HTbdhiwrxWLxbX0Vx7roG3Ew== dependencies: "@typescript-eslint/experimental-utils" "^1.13.0" @@ -5591,32 +6096,27 @@ eslint-plugin-promise@^4.0.1: integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== eslint-plugin-react@^7.12.4: - version "7.14.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz#911030dd7e98ba49e1b2208599571846a66bdf13" - integrity sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA== + version "7.19.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666" + integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ== dependencies: - array-includes "^3.0.3" + array-includes "^3.1.1" doctrine "^2.1.0" has "^1.0.3" - jsx-ast-utils "^2.1.0" - object.entries "^1.1.0" - object.fromentries "^2.0.0" - object.values "^1.1.0" + jsx-ast-utils "^2.2.3" + object.entries "^1.1.1" + object.fromentries "^2.0.2" + object.values "^1.1.1" prop-types "^15.7.2" - resolve "^1.10.1" + resolve "^1.15.1" + semver "^6.3.0" + string.prototype.matchall "^4.0.2" + xregexp "^4.3.0" eslint-plugin-standard@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz#f845b45109c99cd90e77796940a344546c8f6b5c" - integrity sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA== - -eslint-scope@3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" - integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug= - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" + version "4.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz#ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4" + integrity sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ== eslint-scope@^3.7.1: version "3.7.3" @@ -5634,17 +6134,17 @@ eslint-scope@^4.0.0, eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.3.0, eslint-utils@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.0.tgz#e2c3c8dba768425f897cf0f9e51fe2e241485d4c" - integrity sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ== +eslint-utils@^1.3.1, eslint-utils@^1.4.2: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== dependencies: - eslint-visitor-keys "^1.0.0" + eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" - integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== eslint@^5.0.0, eslint@^5.15.1: version "5.16.0" @@ -5710,20 +6210,15 @@ esprima@^2.6.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= - -esprima@^4.0.0, esprima@~4.0.0: +esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.0.0, esquery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.1.0.tgz#c5c0b66f383e7656404f86b31334d72524eddb48" + integrity sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q== dependencies: estraverse "^4.0.0" @@ -5735,14 +6230,14 @@ esrecurse@^4.1.0: estraverse "^4.1.0" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== esutils@^2.0.0, esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== etag@~1.8.1: version "1.8.1" @@ -5760,9 +6255,9 @@ events@^2.0.0: integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== events@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" - integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" + integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -5773,9 +6268,9 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: safe-buffer "^5.1.1" exec-sh@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b" - integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg== + version "0.3.4" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== execa@^0.10.0: version "0.10.0" @@ -5816,6 +6311,37 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" + integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^3.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^3.2.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -5865,17 +6391,17 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.8.0.tgz#471f8ec256b7b6129ca2524b2a62f030df38718d" - integrity sha512-/zYvP8iMDrzaaxHVa724eJBCKqSHmO0FA7EDkBiRHxg6OipmMn1fN+C8T9L9K8yr7UONkOifu6+LLH+z76CnaA== +expect@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" + integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" ansi-styles "^3.2.0" - jest-get-type "^24.8.0" - jest-matcher-utils "^24.8.0" - jest-message-util "^24.8.0" - jest-regex-util "^24.3.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.9.0" extend-shallow@^2.0.1: version "2.0.1" @@ -5892,11 +6418,6 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extend/-/extend-1.3.0.tgz#d1516fb0ff5624d2ebf9123ea1dac5a1994004f8" - integrity sha1-0VFvsP9WJNLr+RI+odrFoZlABPg= - extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" @@ -5942,44 +6463,49 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== fast-glob@^3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.0.4.tgz#d484a41005cb6faeb399b951fd1bd70ddaebb602" - integrity sha512-wkIbV6qg37xTJwqSsdnIphL1e+LaGz4AIQqr00mIubMaEhv1/HEmJ0uuCGZRNRUkZZmOB5mJKO0ZUTVq+SxMQg== + version "3.2.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.2.tgz#ade1a9d91148965d4bf7c51f72e1ca662d32e63d" + integrity sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A== dependencies: - "@nodelib/fs.stat" "^2.0.1" - "@nodelib/fs.walk" "^1.2.1" - glob-parent "^5.0.0" - is-glob "^4.0.1" - merge2 "^1.2.3" + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" micromatch "^4.0.2" + picomatch "^2.2.1" fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.4: +fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -fastparse@^1.1.1: +fast-safe-stringify@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" + integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== + +fastparse@^1.1.1, fastparse@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== fastq@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2" - integrity sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA== + version "1.6.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.1.tgz#4570c74f2ded173e71cf0beb08ac70bb85826791" + integrity sha512-mpIH5sKYueh3YyeJwqtVo8sORi0CgtmkVbK6kZStpQlZBYQuTzG2CZ7idSiJuA7bY0SFCWUc5WIs+oYumGCQNw== dependencies: - reusify "^1.0.0" + reusify "^1.0.4" faye-websocket@~0.10.0: version "0.10.0" @@ -5989,11 +6515,11 @@ faye-websocket@~0.10.0: websocket-driver ">=0.5.1" fb-watchman@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" - integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg= + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== dependencies: - bser "^2.0.0" + bser "2.1.1" fbjs@^0.8.4: version "0.8.17" @@ -6029,9 +6555,9 @@ figures@^2.0.0: escape-string-regexp "^1.0.5" figures@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.0.0.tgz#756275c964646163cc6f9197c7a0295dbfd04de9" - integrity sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g== + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" @@ -6049,6 +6575,11 @@ file-loader@^0.8.5: dependencies: loader-utils "~0.2.5" +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" @@ -6131,7 +6662,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0, find-up@^4.1.0: +find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -6140,11 +6671,10 @@ find-up@^4.0.0, find-up@^4.1.0: path-exists "^4.0.0" find-versions@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.1.0.tgz#10161f29cf3eb4350dec10a29bdde75bff0df32d" - integrity sha512-NCTfNiVzeE/xL+roNDffGuRbrWI6atI18lTJ22vKp7rs2OhYzMK3W1dIdO2TUndH/QMcacM4d1uWwgcZcHK69Q== + version "3.2.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" + integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== dependencies: - array-uniq "^2.1.0" semver-regex "^2.0.0" findup-sync@^3.0.0: @@ -6179,9 +6709,9 @@ flatted@^2.0.0: integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== flatten@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" - integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I= + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== flow-bin@0.84.0: version "0.84.0" @@ -6224,9 +6754,9 @@ forever-agent@~0.6.1: integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@^2.3.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.0.tgz#094ec359dc4b55e7d62e0db4acd76e89fe874d37" - integrity sha512-WXieX3G/8side6VIqx44ablyULoGruSde5PNTxoUyo5CeyAMX6nVWUd0rgist/EuX655cjhUhTo1Fo3tRYqbcA== + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== dependencies: asynckit "^0.4.0" combined-stream "^1.0.6" @@ -6285,7 +6815,7 @@ fs-extra@^7.0.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^8.0.0: +fs-extra@^8.0.0, fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== @@ -6339,37 +6869,36 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.0.0, fsevents@^1.2.7: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + version "1.2.11" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3" + integrity sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw== dependencies: + bindings "^1.5.0" nan "^2.12.1" - node-pre-gyp "^0.12.0" function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.0, function.prototype.name@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.1.tgz#6d252350803085abc2ad423d4fe3be2f9cbda392" - integrity sha512-e1NzkiJuw6xqVH7YSdiW/qDHebcmMhPNe6w+4ZYYEg0VA+LaLzx37RimbPLuonHhYGFGPx1ME2nSi74JiaCr/Q== +function.prototype.name@^1.1.1, function.prototype.name@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45" + integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" - functions-have-names "^1.1.1" - is-callable "^1.1.4" + es-abstract "^1.17.0-next.1" + functions-have-names "^1.2.0" functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -functions-have-names@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.1.1.tgz#79d35927f07b8e7103d819fed475b64ccf7225ea" - integrity sha512-U0kNHUoxwPNPWOJaMG7Z00d4a/qZVrFtzWJRaK8V9goaVOCXBSQSJpt3MYGNtkScKEBKovxLjnNdC9MlXwo5Pw== +functions-have-names@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91" + integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA== garnish@^5.0.0: version "5.2.0" @@ -6406,6 +6935,11 @@ genfun@^5.0.0: resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + gentle-fs@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.3.0.tgz#13538db5029400f98684be4894e8a7d8f0d1ea7f" @@ -6515,20 +7049,48 @@ git-log-parser@^1.2.0: through2 "~2.0.0" traverse "~0.6.6" -git-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-2.1.0.tgz#2f14cfe78327e7c4a2b92fcac7bfc674fdfad40c" - integrity sha512-MJgwfcSd9qxgDyEYpRU/CDxNpUadrK80JHuEQDG4Urn0m7tpSOgCBrtiSIa9S9KH8Tbuo/TN8SSQmJBvsw1HkA== +git-remote-origin-url@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-3.1.0.tgz#c90c1cb0f66658566bbc900509ab093a1522d2b3" + integrity sha512-yVSfaTMO7Bqk6Xx3696ufNfjdrajX7Ig9GuAeO2V3Ji7stkDoBNFldnWIAsy0qviUd0Z+X2P6ziJENKztW7cBQ== + dependencies: + gitconfiglocal "^2.1.0" + +git-repo-info@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/git-repo-info/-/git-repo-info-2.1.1.tgz#220ffed8cbae74ef8a80e3052f2ccb5179aed058" + integrity sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg== + +git-repo-is-up-to-date@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/git-repo-is-up-to-date/-/git-repo-is-up-to-date-1.1.0.tgz#00e9f5dab56e420e4f6baca4000facdc4bbe7d2a" + integrity sha512-1wmqIbQc9KaK03Szd655uFuZwW9iRcSFb5ail+CMtYy6I7pmbk1XGrewB34hGmJFndHzYr9BtA+mGUYdfWqw1w== + dependencies: + execa "^2.0.4" + git-remote-origin-url "^3.0.0" + git-repo-info "^2.1.0" + +git-up@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.1.tgz#cb2ef086653640e721d2042fe3104857d89007c0" + integrity sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw== dependencies: is-ssh "^1.3.0" - parse-url "^3.0.2" + parse-url "^5.0.0" -git-url-parse@^10.0.1: - version "10.1.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-10.1.0.tgz#a27813218f8777e91d15f1c121b83bf14721b67e" - integrity sha512-goZOORAtFjU1iG+4zZgWq+N7It09PqS3Xsy43ZwhP5unDD0tTSmXTpqULHodMdJXGejm3COwXIhIRT6Z8DYVZQ== +git-url-parse@^11.1.2: + version "11.1.2" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.1.2.tgz#aff1a897c36cc93699270587bea3dbcbbb95de67" + integrity sha512-gZeLVGY8QVKMIkckncX+iCq2/L8PlwncvDFKiWkBn9EtCfYDbliRTTp6qzyQ1VMdITUfq7293zDzfpjdiGASSQ== + dependencies: + git-up "^4.0.0" + +gitconfiglocal@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-2.1.0.tgz#07c28685c55cc5338b27b5acbcfe34aeb92e43d1" + integrity sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg== dependencies: - git-up "^2.0.0" + ini "^1.3.2" github-slugger@1.2.0: version "1.2.0" @@ -6538,9 +7100,9 @@ github-slugger@1.2.0: emoji-regex ">=6.0.0 <=6.1.1" github-slugger@^1.0.0, github-slugger@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.2.1.tgz#47e904e70bf2dccd0014748142d31126cfd49508" - integrity sha512-SsZUjg/P03KPzQBt7OxJPasGw6NRO5uOgiZ5RGXVud5iSIZ0eNZeNp5rTwCxtavrRUa/A77j8mePVc5lEvk0KQ== + version "1.3.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" + integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== dependencies: emoji-regex ">=6.0.0 <=6.1.1" @@ -6567,10 +7129,10 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" - integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== +glob-parent@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" + integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== dependencies: is-glob "^4.0.1" @@ -6602,7 +7164,7 @@ glob@7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@^7.0.0, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -6642,9 +7204,9 @@ global-prefix@^1.0.1: which "^1.2.14" globals-docs@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/globals-docs/-/globals-docs-2.4.0.tgz#f2c647544eb6161c7c38452808e16e693c2dafbb" - integrity sha512-B69mWcqCmT3jNYmSxRxxOXWfzu3Go8NQXPfl2o0qPd1EEFhwW0dFUg9ztTu915zPQzqwIhWAlw6hmfIcCK4kkQ== + version "2.4.1" + resolved "https://registry.yarnpkg.com/globals-docs/-/globals-docs-2.4.1.tgz#d16887709f4a15eb22d97e96343591f87a2ee3db" + integrity sha512-qpPnUKkWnz8NESjrCvnlGklsgiQzlq+rcCxoG5uNQ+dNA7cFMCmn231slLAwS2N/PlkzZ3COL8CcS10jXmLHqg== globals@^11.1.0, globals@^11.7.0: version "11.12.0" @@ -6657,9 +7219,9 @@ globals@^9.18.0: integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== globby@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22" - integrity sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A== + version "10.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" + integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== dependencies: "@types/glob" "^7.1.1" array-union "^2.1.0" @@ -6687,7 +7249,7 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3: +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== @@ -6702,10 +7264,10 @@ gud@^1.0.0: resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== -handlebars@^4.1.2: - version "4.5.3" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482" - integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA== +handlebars@^4.4.0: + version "4.7.3" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.3.tgz#8ece2797826886cf8082d1726ff21d2a022550ee" + integrity sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg== dependencies: neo-async "^2.6.0" optimist "^0.6.1" @@ -6718,7 +7280,7 @@ har-schema@^2.0.0: resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= -har-validator@~5.1.0: +har-validator@~5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== @@ -6820,9 +7382,9 @@ hash.js@^1.0.0, hash.js@^1.0.3: minimalistic-assert "^1.0.1" hast-util-is-element@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.0.3.tgz#423b4b26fe8bf1f25950fe052e9ce8f83fd5f6a4" - integrity sha512-C62CVn7jbjp89yOhhy7vrkSaB7Vk906Gtcw/Ihd+Iufnq+2pwOZjdPmpzpKLWJXPJBMDX3wXg4FqmdOayPcewA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.0.4.tgz#059090a05cc02e275df1ad02caf8cb422fcd2e02" + integrity sha512-NFR6ljJRvDcyPP5SbV7MyPBgF47X3BsskLnmw1U34yL+X6YC0MoBx9EyMg8Jtx4FzGH95jw8+c1VPLHaRA0wDQ== hast-util-sanitize@^1.0.0: version "1.3.1" @@ -6848,9 +7410,9 @@ hast-util-to-html@^4.0.0: xtend "^4.0.1" hast-util-whitespace@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-1.0.3.tgz#6d161b307bd0693b5ec000c7c7e8b5445109ee34" - integrity sha512-AlkYiLTTwPOyxZ8axq2/bCwRUPjIPBfrHkXuCR92B38b3lSdU22R5F/Z4DL6a2kxWpekWq1w6Nj48tWat6GeRA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz#e4fe77c4a9ae1cb2e6c25e02df0043d0164f6e41" + integrity sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A== haversine@^1.1.0: version "1.1.1" @@ -6868,21 +7430,21 @@ hex-color-regex@^1.1.0: integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== highlight.js@^9.15.5, highlight.js@^9.7.0: - version "9.15.8" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.15.8.tgz#f344fda123f36f1a65490e932cf90569e4999971" - integrity sha512-RrapkKQWwE+wKdF73VsOa2RQdIoO3mxwJ4P8mhbI6KYJUraUHRKM5w5zQQKXNk0xNL4UVRdulV9SBJcmzJNzVA== + version "9.18.1" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c" + integrity sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg== history@^4.7.2, history@^4.9.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/history/-/history-4.9.0.tgz#84587c2068039ead8af769e9d6a6860a14fa1bca" - integrity sha512-H2DkjCjXf0Op9OAr6nJ56fcRkTSNrUiv41vNJ6IswJjif6wlpZK0BTfFbi7qK9dXLSYZxkq5lBsj3vUjlYBYZA== + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== dependencies: "@babel/runtime" "^7.1.2" loose-envify "^1.2.0" - resolve-pathname "^2.2.0" + resolve-pathname "^3.0.0" tiny-invariant "^1.0.2" tiny-warning "^1.0.0" - value-equal "^0.4.0" + value-equal "^1.0.1" hmac-drbg@^1.0.0: version "1.0.1" @@ -6893,10 +7455,10 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" - integrity sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA== +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== dependencies: react-is "^16.7.0" @@ -6920,10 +7482,17 @@ hook-std@^2.0.0: resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-2.0.0.tgz#ff9aafdebb6a989a354f729bb6445cf4a3a7077c" integrity sha512-zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g== -hosted-git-info@^2.1.4, hosted-git-info@^2.7.1, hosted-git-info@^2.8.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" - integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== +hosted-git-info@^2.1.4, hosted-git-info@^2.7.1, hosted-git-info@^2.8.8: + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +hosted-git-info@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.4.tgz#be4973eb1fd2737b11c9c7c19380739bb249f60d" + integrity sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ== + dependencies: + lru-cache "^5.1.1" hsl-regex@^1.0.0: version "1.0.0" @@ -6940,10 +7509,10 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== -html-element-map@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.1.0.tgz#e5aab9a834caf883b421f8bd9eaedcaac887d63c" - integrity sha512-iqiG3dTZmy+uUaTmHarTL+3/A2VW9ox/9uasKEZC+R/wAtUrTcRlXPSaPqsnWPfIu8wqn09jQNwMRqzL54jSYA== +html-element-map@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.2.0.tgz#dfbb09efe882806af63d990cf6db37993f099f22" + integrity sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw== dependencies: array-filter "^1.0.0" @@ -6954,10 +7523,15 @@ html-encoding-sniffer@^1.0.2: dependencies: whatwg-encoding "^1.0.1" +html-escaper@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.0.tgz#71e87f931de3fe09e56661ab9a29aadec707b491" + integrity sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig== + html-void-elements@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.4.tgz#95e8bb5ecd6b88766569c2645f2b5f1591db9ba5" - integrity sha512-yMk3naGPLrfvUV9TdDbuYXngh/TpHbA6TrOw3HL9kS8yhwx7i309BReNg7CbAJXGE+UMJ6je5OqJ7lC63o6YuQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" + integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== htmlescape@^1.1.0: version "1.1.1" @@ -7005,6 +7579,14 @@ http-proxy-agent@^2.1.0: agent-base "4" debug "3.1.0" +http-proxy-agent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-3.0.0.tgz#598f42dc815949a11e2c6dbfdf24cd8a4c165327" + integrity sha512-uGuJaBWQWDQCJI5ip0d/VTYZW0nRrlLWXA4A7P1jrsa+f77rW2yXz315oBt6zGCF6l8C2tlMxY7ffULCj+5FhA== + dependencies: + agent-base "5" + debug "4" + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -7019,14 +7601,6 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -https-proxy-agent@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" - integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg== - dependencies: - agent-base "^4.3.0" - debug "^3.1.0" - https-proxy-agent@^2.2.3: version "2.2.4" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" @@ -7035,6 +7609,19 @@ https-proxy-agent@^2.2.3: agent-base "^4.3.0" debug "^3.1.0" +https-proxy-agent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" + integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== + dependencies: + agent-base "5" + debug "4" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -7054,12 +7641,7 @@ icss-replace-symbols@^1.1.0: resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= -ieee754@1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" - integrity sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q= - -ieee754@^1.1.4: +ieee754@1.1.13, ieee754@^1.1.4: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== @@ -7087,9 +7669,9 @@ ignore@^4.0.6: integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== ignore@^5.0.2, ignore@^5.1.1, ignore@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.2.tgz#e28e584d43ad7e92f96995019cc43b9e1ac49558" - integrity sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ== + version "5.1.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" + integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== immutability-helper@^2.1.1: version "2.9.1" @@ -7098,11 +7680,6 @@ immutability-helper@^2.1.1: dependencies: invariant "^2.2.0" -immutable@^3.8.1: - version "3.8.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" - integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= - import-fresh@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" @@ -7111,10 +7688,10 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" -import-fresh@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" - integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== +import-fresh@^3.0.0, import-fresh@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -7139,12 +7716,12 @@ import-local@^2.0.0: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" -imurmurhash@^0.1.4: +imurmurhash@*, imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^3.0.0, indent-string@^3.2.0: +indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= @@ -7177,7 +7754,7 @@ inflight@^1.0.4, inflight@~1.0.6: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -7192,7 +7769,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.3, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== @@ -7212,9 +7789,9 @@ init-package-json@^1.10.3: validate-npm-package-name "^3.0.0" inject-lr-script@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/inject-lr-script/-/inject-lr-script-2.1.0.tgz#e61b5e84c118733906cbea01ec3d746698a39f65" - integrity sha1-5htehMEYczkGy+oB7D10Zpijn2U= + version "2.2.0" + resolved "https://registry.yarnpkg.com/inject-lr-script/-/inject-lr-script-2.2.0.tgz#58d91cd99e5de1a3f172aa076f7db8651ee72db2" + integrity sha512-lFLjCOg2XP8233AiET5vFePo910vhNIkKHDzUptNhc+4Y7dsp/TNBiusUUpaxzaGd6UDHy0Lozfl9AwmteK6DQ== dependencies: resp-modifier "^6.0.0" @@ -7245,9 +7822,9 @@ inquirer@6.2.0: through "^2.3.6" inquirer@^6.2.2: - version "6.5.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" - integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA== + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== dependencies: ansi-escapes "^3.2.0" chalk "^2.4.2" @@ -7287,18 +7864,27 @@ internal-ip@^3.0.1: default-gateway "^2.6.0" ipaddr.js "^1.5.2" +internal-slot@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" + integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== + dependencies: + es-abstract "^1.17.0-next.1" + has "^1.0.3" + side-channel "^1.0.2" + interpret@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== into-stream@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-5.1.0.tgz#b05f37d8fed05c06a0b43b556d74e53e5af23878" - integrity sha512-cbDhb8qlxKMxPBk/QxTtYg1DQ4CwXmadu7quG3B7nrJsgSncEreF2kwWKZFdnjc/lSNNIkFPsjI7SM0Cx/QXPw== + version "5.1.1" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-5.1.1.tgz#f9a20a348a11f3c13face22763f2d02e127f4db8" + integrity sha512-krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA== dependencies: from2 "^2.3.0" - p-is-promise "^2.0.0" + p-is-promise "^3.0.0" invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" @@ -7360,9 +7946,9 @@ is-accessor-descriptor@^1.0.0: kind-of "^6.0.0" is-alphabetical@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.3.tgz#eb04cc47219a8895d8450ace4715abff2258a1f8" - integrity sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== is-alphanumeric@^1.0.0: version "1.0.0" @@ -7370,13 +7956,18 @@ is-alphanumeric@^1.0.0: integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ= is-alphanumerical@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz#57ae21c374277b3defe0274c640a5704b8f6657c" - integrity sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== dependencies: is-alphabetical "^1.0.0" is-decimal "^1.0.0" +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -7394,10 +7985,10 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" -is-boolean-object@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" - integrity sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M= +is-boolean-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.1.tgz#10edc0900dd127697a92f6f9807c7617d68ac48e" + integrity sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ== is-buffer@^1.1.0, is-buffer@^1.1.4, is-buffer@^1.1.5, is-buffer@~1.1.1: version "1.1.6" @@ -7405,14 +7996,14 @@ is-buffer@^1.1.0, is-buffer@^1.1.4, is-buffer@^1.1.5, is-buffer@~1.1.1: integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-buffer@^2.0.0, is-buffer@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" - integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" + integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== is-ci@^1.0.10: version "1.2.1" @@ -7462,14 +8053,14 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== is-decimal@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.3.tgz#381068759b9dc807d8c0dc0bfbae2b68e1da48b7" - integrity sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== is-descriptor@^0.1.0: version "0.1.6" @@ -7529,11 +8120,9 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-finite@^1.0.0, is-finite@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= - dependencies: - number-is-nan "^1.0.0" + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== is-fullwidth-code-point@^1.0.0: version "1.0.0" @@ -7579,9 +8168,9 @@ is-glob@^4.0.0, is-glob@^4.0.1: is-extglob "^2.1.1" is-hexadecimal@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz#e8a426a69b6d31470d3a33a47bb825cda02506ee" - integrity sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== is-installed-globally@^0.1.0: version "0.1.0" @@ -7601,10 +8190,10 @@ is-npm@^1.0.0: resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= -is-number-object@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" - integrity sha1-8mWrian0RQNO9q/xWo8AsA9VF5k= +is-number-object@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== is-number@^2.1.0: version "2.1.0" @@ -7635,6 +8224,11 @@ is-obj@^1.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + is-path-inside@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" @@ -7681,12 +8275,12 @@ is-redirect@^1.0.0: resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= +is-regex@^1.0.4, is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== dependencies: - has "^1.0.1" + has "^1.0.3" is-relative@^1.0.0: version "1.0.0" @@ -7717,10 +8311,15 @@ is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0, is-stream@~1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= -is-string@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64" - integrity sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ= +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== is-subset@^0.1.1: version "0.1.1" @@ -7748,7 +8347,7 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.1" -is-text-path@^1.0.0: +is-text-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= @@ -7778,9 +8377,9 @@ is-valid-glob@^1.0.0: integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= is-whitespace-character@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz#b3ad9546d916d7d3ffa78204bca0c26b56257fac" - integrity sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" + integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" @@ -7788,9 +8387,9 @@ is-windows@^1.0.1, is-windows@^1.0.2: integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-word-character@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.3.tgz#264d15541cbad0ba833d3992c34e6b40873b08aa" - integrity sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" + integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== is-wsl@^1.1.0: version "1.1.0" @@ -7856,10 +8455,10 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -issue-parser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-4.0.0.tgz#397817323abbb70c7c29cea2ff62448cf83b686c" - integrity sha512-1RmmAXHl5+cqTZ9dRr861xWy0Gkc9TWTEklgjKv+nhlB1dY1NmGBV8b20jTWRL5cPGpOIXkz84kEcDBM8Nc0cw== +issue-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-5.0.0.tgz#0e22a40bc275b6c7da6ddf4a9b979e8ca9faf0d4" + integrity sha512-q/16W7EPHRL0FKVz9NU++TUsoygXGj6JOi88oulyAcQG+IEZ0T6teVdE+VLbe19OfL/tbV8Wi3Dfo0HedeHW0Q== dependencies: lodash.capitalize "^4.2.1" lodash.escaperegexp "^4.1.2" @@ -7905,321 +8504,323 @@ istanbul-lib-source-maps@^3.0.1: rimraf "^2.6.3" source-map "^0.6.1" -istanbul-reports@^2.1.1: - version "2.2.6" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" - integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA== +istanbul-reports@^2.2.6: + version "2.2.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" + integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== dependencies: - handlebars "^4.1.2" + html-escaper "^2.0.0" java-properties@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211" integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ== -jest-changed-files@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.8.0.tgz#7e7eb21cf687587a85e50f3d249d1327e15b157b" - integrity sha512-qgANC1Yrivsq+UrLXsvJefBKVoCsKB0Hv+mBb6NMjjZ90wwxCDmU3hsCXBya30cH+LnPYjwgcU65i6yJ5Nfuug== +jest-changed-files@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" + integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" execa "^1.0.0" throat "^4.0.0" -jest-cli@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.8.0.tgz#b075ac914492ed114fa338ade7362a301693e989" - integrity sha512-+p6J00jSMPQ116ZLlHJJvdf8wbjNbZdeSX9ptfHX06/MSNaXmKihQzx5vQcw0q2G6JsdVkUIdWbOWtSnaYs3yA== +jest-cli@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" + integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== dependencies: - "@jest/core" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/core" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" exit "^0.1.2" import-local "^2.0.0" is-ci "^2.0.0" - jest-config "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" + jest-config "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" prompts "^2.0.1" realpath-native "^1.1.0" - yargs "^12.0.2" + yargs "^13.3.0" -jest-config@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.8.0.tgz#77db3d265a6f726294687cbbccc36f8a76ee0f4f" - integrity sha512-Czl3Nn2uEzVGsOeaewGWoDPD8GStxCpAe0zOYs2x2l0fZAgPbCr3uwUkgNKV3LwE13VXythM946cd5rdGkkBZw== +jest-config@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" + integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.8.0" - "@jest/types" "^24.8.0" - babel-jest "^24.8.0" + "@jest/test-sequencer" "^24.9.0" + "@jest/types" "^24.9.0" + babel-jest "^24.9.0" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^24.8.0" - jest-environment-node "^24.8.0" - jest-get-type "^24.8.0" - jest-jasmine2 "^24.8.0" + jest-environment-jsdom "^24.9.0" + jest-environment-node "^24.9.0" + jest-get-type "^24.9.0" + jest-jasmine2 "^24.9.0" jest-regex-util "^24.3.0" - jest-resolve "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" + jest-resolve "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" micromatch "^3.1.10" - pretty-format "^24.8.0" + pretty-format "^24.9.0" realpath-native "^1.1.0" -jest-diff@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.8.0.tgz#146435e7d1e3ffdf293d53ff97e193f1d1546172" - integrity sha512-wxetCEl49zUpJ/bvUmIFjd/o52J+yWcoc5ZyPq4/W1LUKGEhRYDIbP1KcF6t+PvqNrGAFk4/JhtxDq/Nnzs66g== +jest-diff@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" + integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== dependencies: chalk "^2.0.1" - diff-sequences "^24.3.0" - jest-get-type "^24.8.0" - pretty-format "^24.8.0" + diff-sequences "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" jest-docblock@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz#b9c32dac70f72e4464520d2ba4aec02ab14db5dd" - integrity sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg== + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" + integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== dependencies: detect-newline "^2.1.0" -jest-each@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.8.0.tgz#a05fd2bf94ddc0b1da66c6d13ec2457f35e52775" - integrity sha512-NrwK9gaL5+XgrgoCsd9svsoWdVkK4gnvyhcpzd6m487tXHqIdYeykgq3MKI1u4I+5Zf0tofr70at9dWJDeb+BA== +jest-each@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" + integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" - jest-get-type "^24.8.0" - jest-util "^24.8.0" - pretty-format "^24.8.0" - -jest-environment-jsdom@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz#300f6949a146cabe1c9357ad9e9ecf9f43f38857" - integrity sha512-qbvgLmR7PpwjoFjM/sbuqHJt/NCkviuq9vus9NBn/76hhSidO+Z6Bn9tU8friecegbJL8gzZQEMZBQlFWDCwAQ== - dependencies: - "@jest/environment" "^24.8.0" - "@jest/fake-timers" "^24.8.0" - "@jest/types" "^24.8.0" - jest-mock "^24.8.0" - jest-util "^24.8.0" + jest-get-type "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" + +jest-environment-jsdom@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" + integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" jsdom "^11.5.1" -jest-environment-node@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.8.0.tgz#d3f726ba8bc53087a60e7a84ca08883a4c892231" - integrity sha512-vIGUEScd1cdDgR6sqn2M08sJTRLQp6Dk/eIkCeO4PFHxZMOgy+uYLPMC4ix3PEfM5Au/x3uQ/5Tl0DpXXZsJ/Q== +jest-environment-node@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" + integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== dependencies: - "@jest/environment" "^24.8.0" - "@jest/fake-timers" "^24.8.0" - "@jest/types" "^24.8.0" - jest-mock "^24.8.0" - jest-util "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" -jest-get-type@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.8.0.tgz#a7440de30b651f5a70ea3ed7ff073a32dfe646fc" - integrity sha512-RR4fo8jEmMD9zSz2nLbs2j0zvPpk/KCEz3a62jJWbd2ayNo0cb+KFRxPHVhE4ZmgGJEQp0fosmNz84IfqM8cMQ== +jest-get-type@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" + integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== -jest-haste-map@^24.8.0: - version "24.8.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.8.1.tgz#f39cc1d2b1d907e014165b4bd5a957afcb992982" - integrity sha512-SwaxMGVdAZk3ernAx2Uv2sorA7jm3Kx+lR0grp6rMmnY06Kn/urtKx1LPN2mGTea4fCT38impYT28FfcLUhX0g== +jest-haste-map@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" + integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" anymatch "^2.0.0" fb-watchman "^2.0.0" graceful-fs "^4.1.15" invariant "^2.2.4" - jest-serializer "^24.4.0" - jest-util "^24.8.0" - jest-worker "^24.6.0" + jest-serializer "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.9.0" micromatch "^3.1.10" sane "^4.0.3" walker "^1.0.7" optionalDependencies: fsevents "^1.2.7" -jest-jasmine2@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz#a9c7e14c83dd77d8b15e820549ce8987cc8cd898" - integrity sha512-cEky88npEE5LKd5jPpTdDCLvKkdyklnaRycBXL6GNmpxe41F0WN44+i7lpQKa/hcbXaQ+rc9RMaM4dsebrYong== +jest-jasmine2@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" + integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" co "^4.6.0" - expect "^24.8.0" + expect "^24.9.0" is-generator-fn "^2.0.0" - jest-each "^24.8.0" - jest-matcher-utils "^24.8.0" - jest-message-util "^24.8.0" - jest-runtime "^24.8.0" - jest-snapshot "^24.8.0" - jest-util "^24.8.0" - pretty-format "^24.8.0" + jest-each "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" throat "^4.0.0" -jest-leak-detector@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz#c0086384e1f650c2d8348095df769f29b48e6980" - integrity sha512-cG0yRSK8A831LN8lIHxI3AblB40uhv0z+SsQdW3GoMMVcK+sJwrIIyax5tu3eHHNJ8Fu6IMDpnLda2jhn2pD/g== +jest-leak-detector@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" + integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== dependencies: - pretty-format "^24.8.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" -jest-matcher-utils@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz#2bce42204c9af12bde46f83dc839efe8be832495" - integrity sha512-lex1yASY51FvUuHgm0GOVj7DCYEouWSlIYmCW7APSqB9v8mXmKSn5+sWVF0MhuASG0bnYY106/49JU1FZNl5hw== +jest-matcher-utils@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" + integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== dependencies: chalk "^2.0.1" - jest-diff "^24.8.0" - jest-get-type "^24.8.0" - pretty-format "^24.8.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" -jest-message-util@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.8.0.tgz#0d6891e72a4beacc0292b638685df42e28d6218b" - integrity sha512-p2k71rf/b6ns8btdB0uVdljWo9h0ovpnEe05ZKWceQGfXYr4KkzgKo3PBi8wdnd9OtNh46VpNIJynUn/3MKm1g== +jest-message-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" + integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" "@types/stack-utils" "^1.0.1" chalk "^2.0.1" micromatch "^3.1.10" slash "^2.0.0" stack-utils "^1.0.1" -jest-mock@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.8.0.tgz#2f9d14d37699e863f1febf4e4d5a33b7fdbbde56" - integrity sha512-6kWugwjGjJw+ZkK4mDa0Df3sDlUTsV47MSrT0nGQ0RBWJbpODDQ8MHDVtGtUYBne3IwZUhtB7elxHspU79WH3A== +jest-mock@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" + integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" jest-pnp-resolver@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== -jest-regex-util@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" - integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== +jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" + integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== -jest-resolve-dependencies@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz#19eec3241f2045d3f990dba331d0d7526acff8e0" - integrity sha512-hyK1qfIf/krV+fSNyhyJeq3elVMhK9Eijlwy+j5jqmZ9QsxwKBiP6qukQxaHtK8k6zql/KYWwCTQ+fDGTIJauw== +jest-resolve-dependencies@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" + integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" jest-regex-util "^24.3.0" - jest-snapshot "^24.8.0" + jest-snapshot "^24.9.0" -jest-resolve@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.8.0.tgz#84b8e5408c1f6a11539793e2b5feb1b6e722439f" - integrity sha512-+hjSzi1PoRvnuOICoYd5V/KpIQmkAsfjFO71458hQ2Whi/yf1GDeBOFj8Gxw4LrApHsVJvn5fmjcPdmoUHaVKw== +jest-resolve@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" + integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" browser-resolve "^1.11.3" chalk "^2.0.1" jest-pnp-resolver "^1.2.1" realpath-native "^1.1.0" -jest-runner@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.8.0.tgz#4f9ae07b767db27b740d7deffad0cf67ccb4c5bb" - integrity sha512-utFqC5BaA3JmznbissSs95X1ZF+d+4WuOWwpM9+Ak356YtMhHE/GXUondZdcyAAOTBEsRGAgH/0TwLzfI9h7ow== +jest-runner@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" + integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== dependencies: "@jest/console" "^24.7.1" - "@jest/environment" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.4.2" exit "^0.1.2" graceful-fs "^4.1.15" - jest-config "^24.8.0" + jest-config "^24.9.0" jest-docblock "^24.3.0" - jest-haste-map "^24.8.0" - jest-jasmine2 "^24.8.0" - jest-leak-detector "^24.8.0" - jest-message-util "^24.8.0" - jest-resolve "^24.8.0" - jest-runtime "^24.8.0" - jest-util "^24.8.0" + jest-haste-map "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-leak-detector "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" jest-worker "^24.6.0" source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.8.0.tgz#05f94d5b05c21f6dc54e427cd2e4980923350620" - integrity sha512-Mq0aIXhvO/3bX44ccT+czU1/57IgOMyy80oM0XR/nyD5zgBcesF84BPabZi39pJVA6UXw+fY2Q1N+4BiVUBWOA== +jest-runtime@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" + integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== dependencies: "@jest/console" "^24.7.1" - "@jest/environment" "^24.8.0" + "@jest/environment" "^24.9.0" "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" - "@types/yargs" "^12.0.2" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.1.15" - jest-config "^24.8.0" - jest-haste-map "^24.8.0" - jest-message-util "^24.8.0" - jest-mock "^24.8.0" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" jest-regex-util "^24.3.0" - jest-resolve "^24.8.0" - jest-snapshot "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" + jest-resolve "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" realpath-native "^1.1.0" slash "^2.0.0" strip-bom "^3.0.0" - yargs "^12.0.2" + yargs "^13.3.0" -jest-serializer@^24.4.0: - version "24.4.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" - integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q== +jest-serializer@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" + integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== -jest-snapshot@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.8.0.tgz#3bec6a59da2ff7bc7d097a853fb67f9d415cb7c6" - integrity sha512-5ehtWoc8oU9/cAPe6fez6QofVJLBKyqkY2+TlKTOf0VllBB/mqUNdARdcjlZrs9F1Cv+/HKoCS/BknT0+tmfPg== +jest-snapshot@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" + integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" - expect "^24.8.0" - jest-diff "^24.8.0" - jest-matcher-utils "^24.8.0" - jest-message-util "^24.8.0" - jest-resolve "^24.8.0" + expect "^24.9.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^24.8.0" - semver "^5.5.0" - -jest-util@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.8.0.tgz#41f0e945da11df44cc76d64ffb915d0716f46cd1" - integrity sha512-DYZeE+XyAnbNt0BG1OQqKy/4GVLPtzwGx5tsnDrFcax36rVE3lTA5fbvgmbVPUZf9w77AJ8otqR4VBbfFJkUZA== - dependencies: - "@jest/console" "^24.7.1" - "@jest/fake-timers" "^24.8.0" - "@jest/source-map" "^24.3.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + pretty-format "^24.9.0" + semver "^6.2.0" + +jest-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" + integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== + dependencies: + "@jest/console" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/source-map" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" callsites "^3.0.0" chalk "^2.0.1" graceful-fs "^4.1.15" @@ -8228,37 +8829,37 @@ jest-util@^24.8.0: slash "^2.0.0" source-map "^0.6.0" -jest-validate@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.8.0.tgz#624c41533e6dfe356ffadc6e2423a35c2d3b4849" - integrity sha512-+/N7VOEMW1Vzsrk3UWBDYTExTPwf68tavEPKDnJzrC6UlHtUDU/fuEdXqFoHzv9XnQ+zW6X3qMZhJ3YexfeLDA== +jest-validate@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" + integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== dependencies: - "@jest/types" "^24.8.0" - camelcase "^5.0.0" + "@jest/types" "^24.9.0" + camelcase "^5.3.1" chalk "^2.0.1" - jest-get-type "^24.8.0" - leven "^2.1.0" - pretty-format "^24.8.0" - -jest-watcher@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.8.0.tgz#58d49915ceddd2de85e238f6213cef1c93715de4" - integrity sha512-SBjwHt5NedQoVu54M5GEx7cl7IGEFFznvd/HNT8ier7cCAx/Qgu9ZMlaTQkvK22G1YOpcWBLQPFSImmxdn3DAw== - dependencies: - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" - "@types/yargs" "^12.0.9" + jest-get-type "^24.9.0" + leven "^3.1.0" + pretty-format "^24.9.0" + +jest-watcher@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" + integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== + dependencies: + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" ansi-escapes "^3.0.0" chalk "^2.0.1" - jest-util "^24.8.0" + jest-util "^24.9.0" string-length "^2.0.0" -jest-worker@^24.6.0: - version "24.6.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.6.0.tgz#7f81ceae34b7cde0c9827a6980c35b7cdc0161b3" - integrity sha512-jDwgW5W9qGNvpI1tNnvajh0a5IE/PuGLFmHk6aR/BZFz8tSgGw17GsDPXAJ6p91IvYDjOw8GpFbvvZGAK+DPQQ== +jest-worker@^24.6.0, jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== dependencies: - merge-stream "^1.0.1" + merge-stream "^2.0.0" supports-color "^6.1.0" jest-yaml-transform@^0.2.0: @@ -8270,12 +8871,12 @@ jest-yaml-transform@^0.2.0: js-yaml "^3.9.1" jest@^24.1.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.8.0.tgz#d5dff1984d0d1002196e9b7f12f75af1b2809081" - integrity sha512-o0HM90RKFRNWmAWvlyV8i5jGZ97pFwkeVoGvPW1EtLTgJc2+jcuqcbbqcSZLE/3f2S5pt0y2ZBETuhpWNl1Reg== + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" + integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== dependencies: import-local "^2.0.0" - jest-cli "^24.8.0" + jest-cli "^24.9.0" jmespath@0.15.0: version "0.15.0" @@ -8283,14 +8884,9 @@ jmespath@0.15.0: integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= js-base64@^2.1.9: - version "2.5.1" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" - integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw== - -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== + version "2.5.2" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.2.tgz#313b6274dda718f714d00b3330bbae6e38e90209" + integrity sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -8427,9 +9023,9 @@ json5@^1.0.1: minimist "^1.2.0" json5@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" + integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== dependencies: minimist "^1.2.0" @@ -8460,10 +9056,10 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jsx-ast-utils@^2.1.0, jsx-ast-utils@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz#4d4973ebf8b9d2837ee91a8208cc66f3a2776cfb" - integrity sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ== +jsx-ast-utils@^2.2.1, jsx-ast-utils@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f" + integrity sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA== dependencies: array-includes "^3.0.3" object.assign "^4.1.0" @@ -8493,11 +9089,11 @@ kind-of@^5.0.0: integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -kleur@^3.0.2: +kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== @@ -8557,22 +9153,29 @@ lead@^1.0.0: "leaflet.polylinemeasure@github:ppete2/Leaflet.PolylineMeasure": version "1.0.0" - resolved "https://codeload.github.com/ppete2/Leaflet.PolylineMeasure/tar.gz/8fed0cbe7c17dae4e1ce0852fa243d8467325a77" + resolved "https://codeload.github.com/ppete2/Leaflet.PolylineMeasure/tar.gz/b85a4b9d3541e4339f9b25ca2264f5af8b42344d" leaflet@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.5.1.tgz#9afb9d963d66c870066b1342e7a06f92840f46bf" - integrity sha512-ekM9KAeG99tYisNBg0IzEywAlp0hYI5XRipsqRXyRTeuU8jcuntilpp+eFf5gaE0xubc9RuSNIVtByEKwqFV0w== + version "1.6.0" + resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.6.0.tgz#aecbb044b949ec29469eeb31c77a88e2f448f308" + integrity sha512-CPkhyqWUKZKFJ6K8umN5/D2wrJ2+/8UIpXppY7QDnUZW5bZL5+SEI2J7GBpwh4LIupOKqbNSQXgqmrEJopHVNQ== left-pad@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== -leven@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levenary@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" + integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== + dependencies: + leven "^3.1.0" levn@^0.3.0, levn@~0.3.0: version "0.3.0" @@ -8702,10 +9305,10 @@ libnpmteam@^1.0.2: get-stream "^4.0.0" npm-registry-fetch "^4.0.0" -libnpx@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.0.tgz#1bf4a1c9f36081f64935eb014041da10855e3102" - integrity sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ== +libnpx@^10.2.2: + version "10.2.2" + resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.2.tgz#5a4171b9b92dd031463ef66a4af9f5cbd6b09572" + integrity sha512-ujaYToga1SAX5r7FU5ShMFi88CWpY75meNZtr6RtEyv4l2ZK3+Wgvxq2IqlwWBiDZOqhumdeiocPS1aKrCMe3A== dependencies: dotenv "^5.0.1" npm-package-arg "^6.0.0" @@ -8773,12 +9376,12 @@ loader-utils@^0.2.16, loader-utils@~0.2.2, loader-utils@~0.2.5: object-assign "^4.0.1" loader-utils@^1.0.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== dependencies: big.js "^5.2.2" - emojis-list "^2.0.0" + emojis-list "^3.0.0" json5 "^1.0.1" locale-currency@0.0.2: @@ -8810,10 +9413,11 @@ locate-path@^5.0.0: p-locate "^4.1.0" lock-verify@^2.0.2, lock-verify@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.1.0.tgz#fff4c918b8db9497af0c5fa7f6d71555de3ceb47" - integrity sha512-vcLpxnGvrqisKvLQ2C2v0/u7LVly17ak2YSgoK4PrdsYBXQIax19vhKiLfvKNFx7FRrpTnitrpzF/uuCMuorIg== + version "2.2.0" + resolved "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.2.0.tgz#12432feb68bb647071c78c44bde16029a0f7d935" + integrity sha512-BhM1Vqsu7x0s+EalTifNjdDPks+ZjdAhComvnA6VcCIlDOI5ouELXqAe1BYuEIP4zGN0W08xVm6byJV1LnCiJg== dependencies: + "@iarna/cli" "^1.2.0" npm-package-arg "^6.1.0" semver "^5.4.1" @@ -8824,6 +9428,11 @@ lockfile@^1.0.4: dependencies: signal-exit "^3.0.2" +lodash._baseindexof@*: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" + integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw= + lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -8832,6 +9441,23 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" +lodash._bindcallback@*: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= + +lodash._cacheindexof@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" + integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI= + +lodash._createcache@*: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" + integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM= + dependencies: + lodash._getnative "^3.0.0" + lodash._createcompounder@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz#5dd2cb55372d6e70e0e2392fb2304d6631091075" @@ -8845,6 +9471,11 @@ lodash._createset@~4.0.0: resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= +lodash._getnative@*, lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= + lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -8964,6 +9595,11 @@ lodash.omit@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= +lodash.restparam@*: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= + lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" @@ -9036,7 +9672,7 @@ lodash@4.17.14: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.14.tgz#9ce487ae66c96254fe20b599f21b6816028078ba" integrity sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw== -lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1: +lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -9057,14 +9693,14 @@ loglevel-colored-level-prefix@^1.0.0: loglevel "^1.4.1" loglevel@^1.4.1: - version "1.6.3" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280" - integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA== + version "1.6.7" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz#b3e034233188c68b889f5b862415306f565e2c56" + integrity sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A== longest-streak@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.3.tgz#3de7a3f47ee18e9074ded8575b5c091f5d0a4105" - integrity sha512-9lz5IVdpwsKLMzQi0MQ+oD9EA0mIGcWYP7jXMTZVXP8D42PwuAk+M/HBFYQoxt1G5OR8m7aSIgb1UymfWGBWEw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" + integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== longest@^1.0.1: version "1.0.1" @@ -9199,9 +9835,9 @@ map-visit@^1.0.0: object-visit "^1.0.0" markdown-escapes@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.3.tgz#6155e10416efaafab665d466ce598216375195f5" - integrity sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" + integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== markdown-table@^1.1.0: version "1.1.3" @@ -9209,9 +9845,9 @@ markdown-table@^1.1.0: integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== marked-terminal@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-3.2.0.tgz#3fc91d54569332bcf096292af178d82219000474" - integrity sha512-Yr1yVS0BbDG55vx7be1D0mdv+jGs9AW563o/Tt/7FTsId2J0yqhrTeXAqq/Q0DyyXltIn6CSxzesQuFqXgafjQ== + version "3.3.0" + resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-3.3.0.tgz#25ce0c0299285998c7636beaefc87055341ba1bd" + integrity sha512-+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A== dependencies: ansi-escapes "^3.1.0" cardinal "^2.1.1" @@ -9220,15 +9856,15 @@ marked-terminal@^3.2.0: node-emoji "^1.4.1" supports-hyperlinks "^1.0.1" -marked@^0.6.0: - version "0.6.3" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.3.tgz#79babad78af638ba4d522a9e715cdfdd2429e946" - integrity sha512-Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ== +marked@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.7.0.tgz#b64201f051d271b1edc10a04d1ae9b74bb8e5c0e" + integrity sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg== mastarm@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/mastarm/-/mastarm-5.1.3.tgz#954258f4db34e908dc2e3b923b7caaaa5e24655e" - integrity sha512-tPlZP/DSPMEKmB+j9Bjvu8vATOW4DuI1y0X77vttKUA/e0BsoWsb3imteEP0OAu6eQW47n/PU7EdEodqurdinA== + version "5.3.1" + resolved "https://registry.yarnpkg.com/mastarm/-/mastarm-5.3.1.tgz#37511b77e9974e142719d00343a45ad6e51bfa47" + integrity sha512-SRVWXGT8x2Iwx/GiWeLZOfgh2JH/NsHo++CzV+gW3ZPv7cNglKjQjW1YvekdFQlba5OzGwSYTKfnS6C6x59XnA== dependencies: "@babel/core" "^7.3.4" "@babel/plugin-proposal-class-properties" "^7.3.4" @@ -9271,9 +9907,12 @@ mastarm@^5.1.3: eslint-plugin-promise "^4.0.1" eslint-plugin-react "^7.12.4" eslint-plugin-standard "^4.0.0" + execa "^2.0.4" exorcist "^1.0.1" flow-bin "0.84.0" flow-runtime "^0.17.0" + fs-extra "^8.1.0" + git-repo-is-up-to-date "^1.1.0" glob "^7.1.3" isomorphic-fetch "^2.2.1" jest "^24.1.0" @@ -9301,9 +9940,9 @@ mastarm@^5.1.3: yamljs "^0.3.0" math-expression-evaluator@^1.2.14: - version "1.2.17" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" - integrity sha1-3oGf282E3M2PrlnGrreWFbnSZqw= + version "1.2.22" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz#c14dcb3d8b4d150e5dcea9c68c8dad80309b0d5e" + integrity sha512-L0j0tFVZBQQLeEjmWOvDLoRciIY8gQGWahvkztXUal8jH8R5Rlqo9GCvgqvXcy9LQhEWdQCVvzqAbxgYNt4blQ== math-random@^1.0.1: version "1.0.4" @@ -9329,16 +9968,16 @@ md5@^2.2.1: is-buffer "~1.1.1" mdast-util-compact@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.3.tgz#98a25cc8a7865761a41477b3a87d1dcef0b1e79d" - integrity sha512-nRiU5GpNy62rZppDKbLwhhtw5DXoFMqw9UNZFmlPsNaQCZ//WLjGKUwWMdJrUH+Se7UvtO2gXtAMe0g/N+eI5w== + version "1.0.4" + resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz#d531bb7667b5123abf20859be086c4d06c894593" + integrity sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg== dependencies: unist-util-visit "^1.1.0" mdast-util-definitions@^1.2.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-1.2.4.tgz#2b54ad4eecaff9d9fcb6bf6f9f6b68b232d77ca7" - integrity sha512-HfUArPog1j4Z78Xlzy9Q4aHLnrF/7fb57cooTHypyGoe2XFNbcx/kWZDoOz+ra8CkUzvg3+VHV434yqEd1DRmA== + version "1.2.5" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-1.2.5.tgz#3fe622a4171c774ebd06f11e9f8af7ec53ea5c74" + integrity sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA== dependencies: unist-util-visit "^1.0.0" @@ -9367,9 +10006,9 @@ mdast-util-to-hast@^3.0.0: xtend "^4.0.1" mdast-util-to-string@^1.0.0, mdast-util-to-string@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.6.tgz#7d85421021343b33de1552fc71cb8e5b4ae7536d" - integrity sha512-868pp48gUPmZIhfKrLbaDneuzGiw3OTDjHc5M1kAepR2CWBJ+HpEsm252K4aXdiP5coVZaJPOqGtVU6Po8xnXg== + version "1.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" + integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== mdast-util-toc@^3.0.0: version "3.1.0" @@ -9386,11 +10025,6 @@ mdn-data@2.0.4: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== -mdn-data@~1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" - integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== - mdurl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" @@ -9430,6 +10064,13 @@ measure-text@^0.0.4: url-loader "~0.5.7" webpack "^2.0.7-beta" +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= + dependencies: + mimic-fn "^1.0.0" + mem@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" @@ -9447,32 +10088,30 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" -meow@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" - integrity sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A== +meow@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" + integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== dependencies: camelcase-keys "^4.0.0" decamelize-keys "^1.0.0" loud-rejection "^1.0.0" - minimist "^1.1.3" minimist-options "^3.0.1" normalize-package-data "^2.3.4" read-pkg-up "^3.0.0" redent "^2.0.0" trim-newlines "^2.0.0" + yargs-parser "^10.0.0" -merge-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= - dependencies: - readable-stream "^2.0.1" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" - integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA== +merge2@^1.2.3, merge2@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== merge@^1.2.1: version "1.2.1" @@ -9559,17 +10198,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.42.0: - version "1.42.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" - integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== +mime-db@1.43.0: + version "1.43.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" + integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.25" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.25.tgz#39772d46621f93e2a80a856c53b86a62156a6437" - integrity sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg== + version "2.1.26" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" + integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== dependencies: - mime-db "1.42.0" + mime-db "1.43.0" mime@1.3.x: version "1.3.6" @@ -9591,7 +10230,7 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== -mimic-fn@^2.0.0: +mimic-fn@^2.0.0, mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== @@ -9640,11 +10279,16 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: +minimist@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" @@ -9722,16 +10366,16 @@ module-deps-sortable@5.0.0: xtend "^4.0.0" module-deps@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.1.tgz#cfe558784060e926824f474b4e647287837cda50" - integrity sha512-UnEn6Ah36Tu4jFiBbJVUtt0h+iXqxpLqDvPS8nllbw5RZFmNJ1+Mz5BjYnM9ieH80zyxHkARGLnMIHlPK5bu6A== + version "6.2.2" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.2.tgz#d8a15c2265dfc119153c29bb47386987d0ee423b" + integrity sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w== dependencies: JSONStream "^1.0.3" browser-resolve "^1.7.0" cached-path-relative "^1.0.2" concat-stream "~1.6.0" defined "^1.0.0" - detective "^5.0.2" + detective "^5.2.0" duplexer2 "^0.1.2" inherits "^2.0.1" parents "^1.0.0" @@ -9750,22 +10394,22 @@ mold-source-map@~0.4.0: convert-source-map "^1.1.0" through "~2.2.7" -moment-timezone@^0.5.23: - version "0.5.26" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.26.tgz#c0267ca09ae84631aa3dc33f65bedbe6e8e0d772" - integrity sha512-sFP4cgEKTCymBBKgoxZjYzlSovC20Y6J7y3nanDc5RoBIXKlZhoYwBoZGe3flwU6A372AcRwScH8KiwV6zjy1g== +moment-timezone@^0.5.23, moment-timezone@^0.5.27: + version "0.5.28" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.28.tgz#f093d789d091ed7b055d82aa81a82467f72e4338" + integrity sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw== dependencies: moment ">= 2.9.0" -"moment@>= 2.9.0", moment@>=1.6.0, moment@^2.17.1: +"moment@>= 2.9.0", moment@>=1.6.0, moment@^2.17.1, moment@^2.24.0: version "2.24.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== -moo@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e" - integrity sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw== +moo@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" + integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== move-concurrently@^1.0.1: version "1.0.1" @@ -9832,20 +10476,20 @@ natural-compare@^1.4.0: integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= nearley@^2.7.10: - version "2.18.0" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.18.0.tgz#a9193612dd6d528a2e47e743b1dc694cfe105223" - integrity sha512-/zQOMCeJcioI0xJtd5RpBiWw2WP7wLe6vq8/3Yu0rEwgus/G/+pViX80oA87JdVgjRt2895mZSv2VfZmy4W1uw== + version "2.19.1" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.19.1.tgz#4af4006e16645ff800e9f993c3af039857d9dbdc" + integrity sha512-xq47GIUGXxU9vQg7g/y1o1xuKnkO7ev4nRWqftmQrLkfnE/FjRqDaGOUakM8XHPn/6pW3bGjU2wgoJyId90rqg== dependencies: commander "^2.19.0" - moo "^0.4.3" + moo "^0.5.0" railroad-diagrams "^1.0.0" randexp "0.4.6" semver "^5.4.1" needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== + version "2.3.3" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.3.tgz#a041ad1d04a871b0ebb666f40baaf1fb47867117" + integrity sha512-EkY0GeSq87rWp1hoq/sH/wnTWgFVhYlnIkbJ0YJFfRgEFlz2RraCjBpFQ+vrEgEdp0ThfyHADmkChEhcb7PKyw== dependencies: debug "^3.2.6" iconv-lite "^0.4.4" @@ -9889,9 +10533,9 @@ node-emoji@^1.10.0, node-emoji@^1.4.1: lodash.toarray "^4.4.0" node-fetch-npm@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" - integrity sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.3.tgz#efae4aacb0500444e449a51fc1467397775ebc38" + integrity sha512-DgwoKEsqLnFZtk3ap7GWBHcHwnUhsNmQqEDcdjfQ8GofLEFJ081NAd4Uin3R7RFZBWVJCwHISw1oaEqPgSLloA== dependencies: encoding "^0.1.11" json-parse-better-errors "^1.0.0" @@ -9910,22 +10554,22 @@ node-fetch@^2.3.0: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== -node-gyp@^5.0.2, node-gyp@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.0.5.tgz#f6cf1da246eb8c42b097d7cd4d6c3ce23a4163af" - integrity sha512-WABl9s4/mqQdZneZHVWVG4TVr6QQJZUC6PAx47ITSk9lreZ1n+7Z9mMAIbA3vnO4J9W20P7LhCxtzfWsAD/KDw== +node-gyp@^5.0.2, node-gyp@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.0.tgz#8e31260a7af4a2e2f994b0673d4e0b3866156332" + integrity sha512-OUTryc5bt/P8zVgNUmC6xdXiDJxLMAW8cF5tLQOT9E5sOQj+UeQxnnPy74K3CLCa/SOjjBlbuzDLR8ANwA+wmw== dependencies: - env-paths "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - request "^2.87.0" - rimraf "2" - semver "~5.3.0" + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.2" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.1.2" + request "^2.88.0" + rimraf "^2.6.3" + semver "^5.7.1" tar "^4.4.12" - which "1" + which "^1.3.1" node-int64@^0.4.0: version "0.4.0" @@ -9966,10 +10610,10 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^5.2.1: - version "5.4.0" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.0.tgz#7b455fdce9f7de0c63538297354f3db468426e6a" - integrity sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ== +node-notifier@^5.4.2: + version "5.4.3" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" + integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== dependencies: growly "^1.3.0" is-wsl "^1.1.0" @@ -9977,10 +10621,10 @@ node-notifier@^5.2.1: shellwords "^0.1.1" which "^1.3.0" -node-pre-gyp@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== +node-pre-gyp@*: + version "0.14.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" + integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== dependencies: detect-libc "^1.0.2" mkdirp "^0.5.1" @@ -9991,26 +10635,19 @@ node-pre-gyp@^0.12.0: rc "^1.2.7" rimraf "^2.6.1" semver "^5.3.0" - tar "^4" - -node-releases@^1.1.25: - version "1.1.26" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.26.tgz#f30563edc5c7dc20cf524cc8652ffa7be0762937" - integrity sha512-fZPsuhhUHMTlfkhDLGtfY80DSJTjOcx+qD1j5pqPkuhUHVS7xHZIg9EE4DHK8O3f0zTxXHX5VIkDG8pu98/wfQ== - dependencies: - semver "^5.3.0" + tar "^4.4.2" -"nopt@2 || 3": - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= +node-releases@^1.1.50: + version "1.1.52" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9" + integrity sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ== dependencies: - abbrev "1" + semver "^6.3.0" nopt@^4.0.1, nopt@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + version "4.0.3" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== dependencies: abbrev "1" osenv "^0.1.4" @@ -10042,7 +10679,7 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= -normalize-url@^1.4.0, normalize-url@^1.9.1: +normalize-url@^1.4.0: version "1.9.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= @@ -10052,15 +10689,15 @@ normalize-url@^1.4.0, normalize-url@^1.9.1: query-string "^4.1.0" sort-keys "^1.0.0" -normalize-url@^3.0.0: +normalize-url@^3.0.0, normalize-url@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== normalize-url@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" - integrity sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ== + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== now-and-later@^2.0.0: version "2.0.1" @@ -10130,13 +10767,14 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848" - integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ== +npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" npm-pick-manifest@^3.0.0, npm-pick-manifest@^3.0.2: version "3.0.2" @@ -10147,19 +10785,19 @@ npm-pick-manifest@^3.0.0, npm-pick-manifest@^3.0.2: npm-package-arg "^6.0.0" semver "^5.4.1" -npm-profile@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.2.tgz#8272a71c19634d0dce9c35a5daf8ee589cbb0f52" - integrity sha512-VRsC04pvRH+9cF+PoVh2nTmJjiG21yu59IHpsBpkxk+jaGAV8lxx96G4SDc0jOHAkfWLXbc6kIph3dGAuRnotQ== +npm-profile@^4.0.2, npm-profile@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.4.tgz#28ee94390e936df6d084263ee2061336a6a1581b" + integrity sha512-Ta8xq8TLMpqssF0H60BXS1A90iMoM6GeKwsmravJ6wYjWwSzcYBTdyWa3DZCYqPutacBMEm7cxiOkiIeCUAHDQ== dependencies: aproba "^1.1.2 || 2" figgy-pudding "^3.4.1" npm-registry-fetch "^4.0.0" -npm-registry-fetch@^4.0.0, npm-registry-fetch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.2.tgz#2b1434f93ccbe6b6385f8e45f45db93e16921d7a" - integrity sha512-Z0IFtPEozNdeZRPh3aHHxdG+ZRpzcbQaJLthsm3VhNf6DScicTFRHZzK82u8RsJUsUHkX+QH/zcB/5pmd20H4A== +npm-registry-fetch@^4.0.0, npm-registry-fetch@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.3.tgz#3c2179e39e04f9348b1c2979545951d36bee8766" + integrity sha512-WGvUx0lkKFhu9MbiGFuT9nG2NpfQ+4dCJwRwwtK2HK5izJEvwDxMeUyqbuMS7N/OkpVCqDorV6rO5E4V9F8lJw== dependencies: JSONStream "^1.3.4" bluebird "^3.5.1" @@ -10176,15 +10814,29 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +npm-run-path@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" + integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== + dependencies: + path-key "^3.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + npm-user-validate@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz#8ceca0f5cea04d4e93519ef72d0557a75122e951" integrity sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE= -npm@^6.8.0: - version "6.13.4" - resolved "https://registry.yarnpkg.com/npm/-/npm-6.13.4.tgz#1e95b0f311999cf682384c38865dfeb3127203bb" - integrity sha512-vTcUL4SCg3AzwInWTbqg1OIaOXlzKSS8Mb8kc5avwrJpcvevDA5J9BhYSuei+fNs3pwOp4lzA5x2FVDXACvoXA== +npm@^6.10.3: + version "6.14.2" + resolved "https://registry.yarnpkg.com/npm/-/npm-6.14.2.tgz#f057d35cd4792c4c511bb1fa332edb43143d07b0" + integrity sha512-eBVjzvGJ9v2/jRJZFtIkvUVKmJ0sCJNNwc9Z1gI6llwaT7EBYWJe5o61Ipc1QR0FaDCKM3l1GizI09Ro3STJEw== dependencies: JSONStream "^1.3.5" abbrev "~1.1.1" @@ -10192,12 +10844,12 @@ npm@^6.8.0: ansistyles "~0.1.3" aproba "^2.0.0" archy "~1.0.0" - bin-links "^1.1.6" + bin-links "^1.1.7" bluebird "^3.5.5" byte-size "^5.0.1" cacache "^12.0.3" call-limit "^1.1.1" - chownr "^1.1.3" + chownr "^1.1.4" ci-info "^2.0.0" cli-columns "^3.1.2" cli-table3 "^0.5.1" @@ -10213,10 +10865,10 @@ npm@^6.8.0: fs-vacuum "~1.2.10" fs-write-stream-atomic "~1.0.10" gentle-fs "^2.3.0" - glob "^7.1.4" + glob "^7.1.6" graceful-fs "^4.2.3" has-unicode "~2.0.1" - hosted-git-info "^2.8.5" + hosted-git-info "^2.8.8" iferr "^1.0.2" infer-owner "^1.0.4" inflight "~1.0.6" @@ -10233,7 +10885,7 @@ npm@^6.8.0: libnpmorg "^1.0.1" libnpmsearch "^2.0.2" libnpmteam "^1.0.2" - libnpx "^10.2.0" + libnpx "^10.2.2" lock-verify "^2.1.0" lockfile "^1.0.4" lodash._baseuniq "~4.6.0" @@ -10246,7 +10898,7 @@ npm@^6.8.0: mississippi "^3.0.0" mkdirp "~0.5.1" move-concurrently "^1.0.1" - node-gyp "^5.0.5" + node-gyp "^5.1.0" nopt "~4.0.1" normalize-package-data "^2.5.0" npm-audit-report "^1.3.2" @@ -10254,16 +10906,16 @@ npm@^6.8.0: npm-install-checks "^3.0.2" npm-lifecycle "^3.1.4" npm-package-arg "^6.1.1" - npm-packlist "^1.4.7" + npm-packlist "^1.4.8" npm-pick-manifest "^3.0.2" - npm-profile "^4.0.2" - npm-registry-fetch "^4.0.2" + npm-profile "^4.0.4" + npm-registry-fetch "^4.0.3" npm-user-validate "~1.0.0" npmlog "~4.1.2" once "~1.4.0" opener "^1.5.1" osenv "^0.1.5" - pacote "^9.5.11" + pacote "^9.5.12" path-is-inside "~1.0.2" promise-inflight "~1.0.1" qrcode-terminal "^0.12.0" @@ -10274,7 +10926,7 @@ npm@^6.8.0: read-installed "~4.0.3" read-package-json "^2.1.1" read-package-tree "^5.3.1" - readable-stream "^3.4.0" + readable-stream "^3.6.0" readdir-scoped-modules "^1.1.0" request "^2.88.0" retry "^0.12.0" @@ -10302,7 +10954,7 @@ npm@^6.8.0: worker-farm "^1.7.0" write-file-atomic "^2.4.3" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2: +npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -10330,9 +10982,9 @@ number-is-nan@^1.0.0: integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= nwsapi@^2.0.7: - version "2.1.4" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" - integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== oauth-sign@~0.9.0: version "0.9.0" @@ -10358,20 +11010,15 @@ object-hash@^1.3.1: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== -object-inspect@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" - integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== - object-inspect@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== -object-is@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" - integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= +object-is@^1.0.1, object-is@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" + integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -10400,27 +11047,27 @@ object.assign@^4.0.4, object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.entries@^1.0.4, object.entries@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" - integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== +object.entries@^1.1.0, object.entries@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b" + integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ== dependencies: define-properties "^1.1.3" - es-abstract "^1.12.0" + es-abstract "^1.17.0-next.1" function-bind "^1.1.1" has "^1.0.3" -object.fromentries@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" - integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA== +object.fromentries@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" + integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== dependencies: - define-properties "^1.1.2" - es-abstract "^1.11.0" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" function-bind "^1.1.1" - has "^1.0.1" + has "^1.0.3" -object.getownpropertydescriptors@^2.0.3: +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== @@ -10443,13 +11090,13 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.0.4, object.values@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" - integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== +object.values@^1.1.0, object.values@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== dependencies: define-properties "^1.1.3" - es-abstract "^1.12.0" + es-abstract "^1.17.0-next.1" function-bind "^1.1.1" has "^1.0.3" @@ -10491,6 +11138,13 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + opener@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" @@ -10512,21 +11166,16 @@ optimist@^0.6.1: wordwrap "~0.0.2" optionator@^0.8.1, optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" - fast-levenshtein "~2.0.4" + fast-levenshtein "~2.0.6" levn "~0.3.0" prelude-ls "~1.1.2" type-check "~0.3.2" - wordwrap "~1.0.0" - -options@>=0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" - integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8= + word-wrap "~1.2.3" ordered-read-streams@^1.0.0: version "1.0.1" @@ -10552,6 +11201,15 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + os-locale@^3.0.0, os-locale@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" @@ -10561,7 +11219,7 @@ os-locale@^3.0.0, os-locale@^3.1.0: lcid "^2.0.0" mem "^4.0.0" -os-name@^3.0.0: +os-name@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== @@ -10622,11 +11280,21 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + p-is-promise@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== +p-is-promise@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971" + integrity sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ== + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -10634,17 +11302,10 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== - dependencies: - p-try "^2.0.0" - -p-limit@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" - integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" + integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== dependencies: p-try "^2.0.0" @@ -10685,9 +11346,9 @@ p-reduce@^2.0.0: integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== p-retry@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.1.0.tgz#9ce7cef2069e84bf590df3b8ec18d740109338d6" - integrity sha512-oepllyG9gX1qH4Sm20YAKxg1GA7L7puhvGnTfimi31P07zSIj7SDV6YtuAx9nbJF51DES+2CIIRkXs8GKqWJxA== + version "4.2.0" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.2.0.tgz#ea9066c6b44f23cab4cd42f6147cdbbc6604da5d" + integrity sha512-jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA== dependencies: "@types/retry" "^0.12.0" retry "^0.12.0" @@ -10712,10 +11373,10 @@ package-json@^4.0.0: registry-url "^3.0.3" semver "^5.1.0" -pacote@^9.1.0, pacote@^9.5.11, pacote@^9.5.3: - version "9.5.11" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.11.tgz#524152077cb392c47b1fbe198aa28f778bef7ee1" - integrity sha512-DMDPvFKCjCg6zMS4IfzZyvT57O/bX8XGG00eEoy4K/S4Wj+qiN8KbnmKpsTvfS6OL9r5TAicxMKWbj1yV2Yh4g== +pacote@^9.1.0, pacote@^9.5.12, pacote@^9.5.3: + version "9.5.12" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.12.tgz#1e11dd7a8d736bcc36b375a9804d41bb0377bf66" + integrity sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ== dependencies: bluebird "^3.5.3" cacache "^12.0.2" @@ -10763,9 +11424,9 @@ pad-right@^0.2.2: repeat-string "^1.5.2" pako@~1.0.5: - version "1.0.10" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" - integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== parallel-transform@^1.1.0: version "1.2.0" @@ -10791,9 +11452,9 @@ parents@^1.0.0, parents@^1.0.1: path-platform "~0.11.15" parse-asn1@^5.0.0: - version "5.1.4" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" - integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== + version "5.1.5" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" @@ -10823,18 +11484,6 @@ parse-filepath@^1.0.2: map-cache "^0.2.0" path-root "^0.1.1" -parse-git-config@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/parse-git-config/-/parse-git-config-0.2.0.tgz#272833fdd15fea146fb75d336d236b963b6ff706" - integrity sha1-Jygz/dFf6hRvt10zbSNrljtv9wY= - dependencies: - ini "^1.3.3" - -parse-github-url@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" - integrity sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw== - parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" @@ -10880,22 +11529,22 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= -parse-path@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-3.0.4.tgz#a48b7b529da41f34d9d1428602a39b29fc7180e4" - integrity sha512-wP70vtwv2DyrM2YoA7ZHVv4zIXa4P7dGgHlj+VwyXNDduLLVJ7NMY1zsFxjUUJ3DAwJLupGb1H5gMDDiNlJaxw== +parse-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.1.tgz#0ec769704949778cb3b8eda5e994c32073a1adff" + integrity sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA== dependencies: is-ssh "^1.3.0" protocols "^1.4.0" -parse-url@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-3.0.2.tgz#602787a7063a795d72b8673197505e72f60610be" - integrity sha1-YCeHpwY6eV1yuGcxl1BecvYGEL4= +parse-url@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.1.tgz#99c4084fc11be14141efa41b3d117a96fcb9527f" + integrity sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg== dependencies: is-ssh "^1.3.0" - normalize-url "^1.9.1" - parse-path "^3.0.1" + normalize-url "^3.3.0" + parse-path "^4.0.0" protocols "^1.4.0" parse5@4.0.0: @@ -10962,6 +11611,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -10985,9 +11639,9 @@ path-root@^0.1.1: path-root-regex "^0.1.0" path-to-regexp@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" - integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30= + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== dependencies: isarray "0.0.1" @@ -11036,24 +11690,24 @@ pbkdf2@^3.0.3: sha.js "^2.4.8" pem@^1.13.2: - version "1.14.2" - resolved "https://registry.yarnpkg.com/pem/-/pem-1.14.2.tgz#ab29350416bc3a532c30beeee0d541af897fb9ac" - integrity sha512-TOnPtq3ZFnCniOZ+rka4pk8UIze9xG1qI+wNE7EmkiR/cg+53uVvk5QbkWZ7M6RsuOxzz62FW1hlAobJr/lTOA== + version "1.14.4" + resolved "https://registry.yarnpkg.com/pem/-/pem-1.14.4.tgz#a68c70c6e751ccc5b3b5bcd7af78b0aec1177ff9" + integrity sha512-v8lH3NpirgiEmbOqhx0vwQTxwi0ExsiWBGYh0jYNq7K6mQuO4gI6UEFlr6fLAdv9TPXRt6GqiwE37puQdIDS8g== dependencies: es6-promisify "^6.0.0" md5 "^2.2.1" os-tmpdir "^1.0.1" - which "^1.3.1" + which "^2.0.2" performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.5: - version "2.0.7" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" - integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== +picomatch@^2.0.5, picomatch@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a" + integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA== pify@^2.0.0, pify@^2.3.0: version "2.3.0" @@ -11134,12 +11788,12 @@ posix-character-classes@^0.1.0: integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss-attribute-case-insensitive@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.1.tgz#b2a721a0d279c2f9103a36331c88981526428cc7" - integrity sha512-L2YKB3vF4PetdTIthQVeT+7YiSzMoNMLLYxPXXppOOP7NoazEAy45sh2LvJ8leCQjfBcfkYQs8TtCcQjeZTp8A== + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" + integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== dependencies: postcss "^7.0.2" - postcss-selector-parser "^5.0.0" + postcss-selector-parser "^6.0.2" postcss-calc@^5.2.0: version "5.3.1" @@ -11151,14 +11805,13 @@ postcss-calc@^5.2.0: reduce-css-calc "^1.2.6" postcss-calc@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" - integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.2.tgz#504efcd008ca0273120568b0792b16cdcde8aac1" + integrity sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ== dependencies: - css-unit-converter "^1.1.1" - postcss "^7.0.5" - postcss-selector-parser "^5.0.0-rc.4" - postcss-value-parser "^3.3.1" + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" postcss-color-functional-notation@^2.0.1: version "2.0.1" @@ -11403,9 +12056,9 @@ postcss-import@^12.0.1: resolve "^1.1.7" postcss-initial@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.1.tgz#99d319669a13d6c06ef8e70d852f68cb1b399b61" - integrity sha512-I2Sz83ZSHybMNh02xQDK609lZ1/QOyYeuizCjzEhlMgeV/HcDJapQiH4yTqLjZss0X6/6VvKFXUeObaHpJoINw== + version "3.0.2" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.2.tgz#f018563694b3c16ae8eaabe3c585ac6319637b2d" + integrity sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA== dependencies: lodash.template "^4.5.0" postcss "^7.0.2" @@ -11852,11 +12505,11 @@ postcss-reporter@^6.0.1: postcss "^7.0.7" postcss-safe-parser@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" - integrity sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ== + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" + integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== dependencies: - postcss "^7.0.0" + postcss "^7.0.26" postcss-selector-matches@^4.0.0: version "4.0.0" @@ -11884,15 +12537,15 @@ postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: uniq "^1.0.1" postcss-selector-parser@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" - integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== dependencies: - dot-prop "^4.1.1" + dot-prop "^5.2.0" indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: +postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: version "5.0.0" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== @@ -11901,6 +12554,15 @@ postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-sel indexes-of "^1.0.1" uniq "^1.0.1" +postcss-selector-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + postcss-svgo@^2.1.1: version "2.1.6" resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" @@ -11939,15 +12601,15 @@ postcss-unique-selectors@^4.0.1: postcss "^7.0.0" uniqs "^2.0.0" -postcss-value-parser@^3.0.0, postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: +postcss-value-parser@^3.0.0, postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss-value-parser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz#99a983d365f7b2ad8d0f9b8c3094926eab4b936d" - integrity sha512-ESPktioptiSUchCKgggAkzdmkgzKfmp0EU8jXH+5kbIUB+unr0Y4CY9SRMvibuvYUBjNh1ACLbxqYNpdTQOteQ== +postcss-value-parser@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d" + integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg== postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: version "2.0.1" @@ -11986,10 +12648,10 @@ postcss@^6.0.1: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.5, postcss@^7.0.6, postcss@^7.0.7: - version "7.0.17" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f" - integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ== +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.5, postcss@^7.0.6, postcss@^7.0.7: + version "7.0.27" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9" + integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -12039,9 +12701,9 @@ prettier-eslint-cli@^5.0.0: yargs "^13.2.4" prettier-eslint@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-9.0.0.tgz#b9a6ecb67c69be43cbd598addf7ff0b6753e6999" - integrity sha512-0dael2aMpMAxAwClnLi2Coc30v3BubsTX6clqseZ8NFCJZnbZlwxZGHHESYBlqTyN9lvZDHHv+XdeHW0fKhxJQ== + version "9.0.1" + resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-9.0.1.tgz#fbf507cde7329141cd368c6aeb54a70715d02cf4" + integrity sha512-KZT65QTosSAqBBqmrC+RpXbsMRe7Os2YSR9cAfFbDlyPAopzA/S5bioiZ3rpziNQNSJaOxmtXSx07EQ+o2Dlug== dependencies: "@typescript-eslint/parser" "^1.10.2" common-tags "^1.4.0" @@ -12058,9 +12720,9 @@ prettier-eslint@^9.0.0: vue-eslint-parser "^2.0.2" prettier@^1.7.0: - version "1.18.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" - integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== + version "1.19.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== pretty-format@^23.0.1: version "23.6.0" @@ -12070,12 +12732,12 @@ pretty-format@^23.0.1: ansi-regex "^3.0.0" ansi-styles "^3.2.0" -pretty-format@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.8.0.tgz#8dae7044f58db7cb8be245383b565a963e3c27f2" - integrity sha512-P952T7dkrDEplsR+TuY7q3VXDae5Sr7zmQb12JU/NDQa/3CH7/QW0yvqLcGN6jL+zQFKaoJcPc+yJxMTGmosqw== +pretty-format@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" + integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" ansi-regex "^4.0.0" ansi-styles "^3.2.0" react-is "^16.8.4" @@ -12140,12 +12802,12 @@ promise@^7.1.1: asap "~2.0.3" prompts@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.1.0.tgz#bf90bc71f6065d255ea2bdc0fe6520485c1b45db" - integrity sha512-+x5TozgqYdOwWsQFZizE/Tra3fKvAoy037kOyU6cgz84n8f6zxngLOV4O32kTwt9FcLCxAqw0P/c8rOr9y+Gfg== + version "2.3.1" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.1.tgz#b63a9ce2809f106fa9ae1277c275b167af46ea05" + integrity sha512-qIP2lQyCwYbdzcqHIUi2HAxiWixhoM9OdLCWf8txXsapC/X9YdsCoeyRIXE/GP+Q0J37Q7+XN/MFqbUa7IzXNA== dependencies: - kleur "^3.0.2" - sisteransi "^1.0.0" + kleur "^3.0.3" + sisteransi "^1.0.4" promzard@^0.3.0: version "0.3.0" @@ -12164,12 +12826,12 @@ prop-types-exact@^1.2.0: reflect.ownkeys "^0.2.0" prop-types-extra@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.0.tgz#32609910ea2dcf190366bacd3490d5a6412a605f" - integrity sha512-QFyuDxvMipmIVKD2TwxLVPzMnO4e5oOf1vr3tJIomL8E7d0lr6phTHd5nkPhFIzTD1idBLLEPeylL9g+rrTzRg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b" + integrity sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew== dependencies: react-is "^16.3.2" - warning "^3.0.0" + warning "^4.0.0" prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" @@ -12219,15 +12881,10 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.24: - version "1.6.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.6.0.tgz#60557582ee23b6c43719d9890fb4170ecd91e110" - integrity sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA== - psl@^1.1.28: - version "1.2.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.2.0.tgz#df12b5b1b3a30f51c329eacbdef98f3a6e136dc6" - integrity sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA== + version "1.7.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" + integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ== public-encrypt@^4.0.0: version "4.0.3" @@ -12271,7 +12928,7 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.2.4, punycode@^1.3.2, punycode@^1.4.1: +punycode@^1.2.4, punycode@^1.3.2: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= @@ -12291,10 +12948,10 @@ qrcode-terminal@^0.12.0: resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== -qs@^6.3.0, qs@^6.4.0, qs@^6.5.1: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@^6.3.0, qs@^6.4.0, qs@^6.5.1, qs@^6.9.1: + version "6.9.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9" + integrity sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA== qs@~6.5.2: version "6.5.2" @@ -12310,9 +12967,9 @@ query-string@^4.1.0, query-string@^4.2.3: strict-uri-encode "^1.0.0" query-string@^6.8.2: - version "6.9.0" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.9.0.tgz#1c3b727c370cf00f177c99f328fda2108f8fa3dd" - integrity sha512-KG4bhCFYapExLsUHrFt+kQVEegF2agm4cpF/VNc6pZVthIfCc/GK8t8VyNIE3nyXG9DK3Tf2EGkxjR6/uRdYsA== + version "6.11.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.11.1.tgz#ab021f275d463ce1b61e88f0ce6988b3e8fe7c2c" + integrity sha512-1ZvJOUl8ifkkBxu2ByVM/8GijMIPx+cef7u3yroO3Ogm4DOdZcF5dcrWTIlSHe3Pg/mtlt6/eFjObDfJureZZA== dependencies: decode-uri-component "^0.2.0" split-on-first "^1.0.0" @@ -12343,7 +13000,7 @@ qw@~1.0.1: resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" integrity sha1-77/cdA+a0FQwRCassYNBLMi5ltQ= -raf@^3.4.0: +raf@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== @@ -12448,14 +13105,14 @@ react-dates@^6.0.2: react-portal "^3.0.0" react-dom@^16.9.0: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962" - integrity sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ== + version "16.13.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.0.tgz#cdde54b48eb9e8a0ca1b3dc9943d9bb409b81866" + integrity sha512-y09d2c4cG220DzdlFkPTnVvGTszVvNpC73v+AaLGLHbkpy3SSgvYq8x0rNwPJ/Rk/CicTNgk0hbHNw1gMEZAXg== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.15.0" + scheduler "^0.19.0" react-event-listener@^0.6.0: version "0.6.6" @@ -12467,30 +13124,25 @@ react-event-listener@^0.6.0: warning "^4.0.1" react-fontawesome@^1.5.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/react-fontawesome/-/react-fontawesome-1.6.1.tgz#eddce17e7dc731aa09fd4a186688a61793a16c5c" - integrity sha1-7dzhfn3HMaoJ/UoYZoimF5OhbFw= + version "1.7.1" + resolved "https://registry.yarnpkg.com/react-fontawesome/-/react-fontawesome-1.7.1.tgz#f74f5a338fef3ee3b379820109c1cba47290f035" + integrity sha512-kottReWW1I9Uupub6A5YX4VK7qfpFnEjAcm5zB4Aepst7iofONT27GJYdTcRsj7q5uQu9PXBL7GsxAFKANNUVg== dependencies: prop-types "^15.5.6" -react-is@^16.3.2, react-is@^16.6.0, react-is@^16.9.0: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" - integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== - -react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6: - version "16.8.6" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" - integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== +react-is@^16.12.0, react-is@^16.3.2, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: + version "16.13.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527" + integrity sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA== react-leaflet@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-2.4.0.tgz#9cef74e14aeeb094bfe662b46de1682623c090ea" - integrity sha512-ex9MAz2cUAmdUucsjv180OYszdqxHIyEwzWAuMOOuxE7yUmRscxZKR5h0f+vG4shR+SekZYUBk0+gCv8apRADQ== + version "2.6.3" + resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-2.6.3.tgz#a826c20d7f4b530f38a1b71bfa9c51cefb598ce0" + integrity sha512-0ynYVkPNVJmjO7ewR+zBBu3sxbWmwJYkxd6SUJkQKG40+JNJEvYGSFPvP8W1BS9d0MntZFDTzEM1OdBiWMrlEA== dependencies: - "@babel/runtime" "^7.4.5" - fast-deep-equal "^2.0.1" - hoist-non-react-statics "^3.3.0" + "@babel/runtime" "^7.8.7" + fast-deep-equal "^3.1.1" + hoist-non-react-statics "^3.3.2" warning "^4.0.3" react-lifecycles-compat@^3.0.4: @@ -12499,9 +13151,9 @@ react-lifecycles-compat@^3.0.4: integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== react-moment-proptypes@^1.2.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/react-moment-proptypes/-/react-moment-proptypes-1.6.0.tgz#8ec266ee392a08ba3412d2df2eebf833ab1046df" - integrity sha512-4h7EuhDMTzQqZ+02KUUO+AVA7PqhbD88yXB740nFpNDyDS/bj9jiPyn2rwr9sa8oDyaE1ByFN9+t5XPyPTmN6g== + version "1.7.0" + resolved "https://registry.yarnpkg.com/react-moment-proptypes/-/react-moment-proptypes-1.7.0.tgz#89881479840a76c13574a86e3bb214c4ba564e7a" + integrity sha512-ZbOn/P4u469WEGAw5hgkS/E+g1YZqdves2BjYsLluJobzUZCtManhjHiZKjniBVT7MSHM6D/iKtRVzlXVv3ikA== dependencies: moment ">=1.6.0" @@ -12532,16 +13184,15 @@ react-prop-types@^0.4.0: warning "^3.0.0" react-redux@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.1.0.tgz#72af7cf490a74acdc516ea9c1dd80e25af9ea0b2" - integrity sha512-hyu/PoFK3vZgdLTg9ozbt7WF3GgX5+Yn3pZm5/96/o4UueXA+zj08aiSC9Mfj2WtD1bvpIb3C5yvskzZySzzaw== + version "7.2.0" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.0.tgz#f970f62192b3981642fec46fd0db18a074fe879d" + integrity sha512-EvCAZYGfOLqwV7gh849xy9/pt55rJXPwmYvI4lilPM5rUT/1NxuuN59ipdBksRVSvz0KInbPnp4IfoXJXCqiDA== dependencies: - "@babel/runtime" "^7.4.5" + "@babel/runtime" "^7.5.5" hoist-non-react-statics "^3.3.0" - invariant "^2.2.4" loose-envify "^1.4.0" prop-types "^15.7.2" - react-is "^16.8.6" + react-is "^16.9.0" react-resize-detector@^2.1.0: version "2.3.0" @@ -12554,9 +13205,9 @@ react-resize-detector@^2.1.0: resize-observer-polyfill "^1.5.0" react-router@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.0.1.tgz#04ee77df1d1ab6cb8939f9f01ad5702dbadb8b0f" - integrity sha512-EM7suCPNKb1NxcTZ2LEOWFtQBQRQXecLxVpdsP4DW4PbbqYWeRiLyV/Tt1SdCrvT2jcyXAXmVTmzvSzrPR63Bg== + version "5.1.2" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.1.2.tgz#6ea51d789cb36a6be1ba5f7c0d48dd9e817d3418" + integrity sha512-yjEuMFy1ONK246B+rsa0cUam5OeAQ8pyclRDgpxuSCrAlJ1qN9uZ5IgyKC7gQg0w8OM50NXHEegPh/ks9YuR2A== dependencies: "@babel/runtime" "^7.1.2" history "^4.9.0" @@ -12569,47 +13220,46 @@ react-router@^5.0.1: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-swipeable-views-core@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/react-swipeable-views-core/-/react-swipeable-views-core-0.13.1.tgz#8829a922462a8bdd701709cd1b385393d38f1527" - integrity sha512-EP8sCvvD7VDiZLglPt9icMuMNu8qLRLk0ab/fB1HXv7lX8ClnwF3UMCM0ZrN3sguSY7CsX3LevducGGsT1VcDg== +react-swipeable-views-core@^0.13.7: + version "0.13.7" + resolved "https://registry.yarnpkg.com/react-swipeable-views-core/-/react-swipeable-views-core-0.13.7.tgz#c082b553f26e83fd20fc17f934200eb717023c8a" + integrity sha512-ekn9oDYfBt0oqJSGGwLEhKvn+QaqMGTy//9dURTLf+vp7W5j6GvmKryYdnwJCDITaPFI2hujXV4CH9krhvaE5w== dependencies: "@babel/runtime" "7.0.0" warning "^4.0.1" -react-swipeable-views-utils@^0.13.3: - version "0.13.3" - resolved "https://registry.yarnpkg.com/react-swipeable-views-utils/-/react-swipeable-views-utils-0.13.3.tgz#c234d8d836bb085803631a9fef0adb2f9597221f" - integrity sha512-CZkJwiNQPISkyTsPMUPiJgwJBrUVd7NC3WSUvx30uwvPb0Sy2w2+tpU51qeYc6YwIhex0s5Eu5YPjK3PDBh+gA== +react-swipeable-views-utils@^0.13.9: + version "0.13.9" + resolved "https://registry.yarnpkg.com/react-swipeable-views-utils/-/react-swipeable-views-utils-0.13.9.tgz#a66e98f2f4502d8b00182901f80d13b2f903e10f" + integrity sha512-QLGxRKrbJCbWz94vkWLzb1Daaa2Y/TZKmsNKQ6WSNrS+chrlfZ3z9tqZ7YUJlW6pRWp3QZdLSY3UE3cN0TXXmw== dependencies: "@babel/runtime" "7.0.0" - fbjs "^0.8.4" keycode "^2.1.7" prop-types "^15.6.0" react-event-listener "^0.6.0" - react-swipeable-views-core "^0.13.1" + react-swipeable-views-core "^0.13.7" + shallow-equal "^1.2.1" react-swipeable-views@^0.13.3: - version "0.13.3" - resolved "https://registry.yarnpkg.com/react-swipeable-views/-/react-swipeable-views-0.13.3.tgz#2ad886767c6b2de88000606a14bedde12156e6d0" - integrity sha512-LBHRA5ZouipmoLLwi0cqB8qc7NHLskbXmT1I+ZztC9JfmgKrfichw5R+7q4igQ+5VbaP6jL1vn8BtHW96WYNFQ== + version "0.13.9" + resolved "https://registry.yarnpkg.com/react-swipeable-views/-/react-swipeable-views-0.13.9.tgz#d6a6c508bf5288ad55509f9c65916db5df0f2cec" + integrity sha512-WXC2FKYvZ9QdJ31v9LjEJEl1bA7E4AcaloTkbW0uU0dYf5uvv4aOpiyxubvOkVl1a5L2UAHmKSif4TmJ9usrSg== dependencies: "@babel/runtime" "7.0.0" - dom-helpers "^3.2.1" prop-types "^15.5.4" - react-swipeable-views-core "^0.13.1" - react-swipeable-views-utils "^0.13.3" + react-swipeable-views-core "^0.13.7" + react-swipeable-views-utils "^0.13.9" warning "^4.0.1" react-test-renderer@^16.0.0-0: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.9.0.tgz#7ed657a374af47af88f66f33a3ef99c9610c8ae9" - integrity sha512-R62stB73qZyhrJo7wmCW9jgl/07ai+YzvouvCXIJLBkRlRqLx4j9RqcLEAfNfU3OxTGucqR2Whmn3/Aad6L3hQ== + version "16.13.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.0.tgz#39ba3bf72cedc8210c3f81983f0bb061b14a3014" + integrity sha512-NQ2S9gdMUa7rgPGpKGyMcwl1d6D9MCF0lftdI3kts6kkiX+qvpC955jNjAZXlIDTjnN9jwFI8A8XhRh/9v0spA== dependencies: object-assign "^4.1.1" prop-types "^15.6.2" - react-is "^16.9.0" - scheduler "^0.15.0" + react-is "^16.8.6" + scheduler "^0.19.0" react-transition-group@^2.0.0, react-transition-group@^2.2.0: version "2.9.0" @@ -12622,9 +13272,9 @@ react-transition-group@^2.0.0, react-transition-group@^2.2.0: react-lifecycles-compat "^3.0.4" react@^16.9.0: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa" - integrity sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w== + version "16.13.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.13.0.tgz#d046eabcdf64e457bbeed1e792e235e1b9934cf7" + integrity sha512-TSavZz2iSLkq5/oiE7gnFzmURKZMltmi193rm5HEoUDAXpzT9Kzw6oNZnGoai/4+fUnm7FqS5dwgUL34TujcWQ== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -12718,14 +13368,14 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" -read-pkg-up@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-6.0.0.tgz#da75ce72762f2fa1f20c5a40d4dd80c77db969e3" - integrity sha512-odtTvLl+EXo1eTsMnoUHRmg/XmXdTkwXVxy4VFE9Kp6cCq7b3l7QMdBndND3eAFzrbSAXC/WCUOQQ9rLjifKZw== +read-pkg-up@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== dependencies: - find-up "^4.0.0" - read-pkg "^5.1.1" - type-fest "^0.5.0" + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" read-pkg@^1.0.0: version "1.1.0" @@ -12754,7 +13404,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -read-pkg@^5.0.0, read-pkg@^5.1.1: +read-pkg@^5.0.0, read-pkg@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== @@ -12772,9 +13422,9 @@ read@1, read@~1.0.1, read@~1.0.7: mute-stream "~0.0.4" "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -12784,10 +13434,10 @@ read@1, read@~1.0.1, read@~1.0.7: string_decoder "~1.1.1" util-deprecate "~1.0.1" -"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" - integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== +"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -12896,11 +13546,11 @@ reduce-css-calc@^1.2.6: reduce-function-call "^1.0.1" reduce-function-call@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" - integrity sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk= + version "1.0.3" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f" + integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ== dependencies: - balanced-match "^0.4.2" + balanced-match "^1.0.0" reduce-reducers@^0.1.0: version "0.1.5" @@ -12924,9 +13574,9 @@ redux-logger@^2.7.4: deep-diff "0.3.4" redux-mock-store@^1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/redux-mock-store/-/redux-mock-store-1.5.3.tgz#1f10528949b7ce8056c2532624f7cafa98576c6d" - integrity sha512-ryhkkb/4D4CUGpAV2ln1GOY/uh51aczjcRz9k2L2bPx/Xja3c5pSGJJPyR25GNVRXtKIExScdAgFdiXp68GmJA== + version "1.5.4" + resolved "https://registry.yarnpkg.com/redux-mock-store/-/redux-mock-store-1.5.4.tgz#90d02495fd918ddbaa96b83aef626287c9ab5872" + integrity sha512-xmcA0O/tjCLXhh9Fuiq6pMrJCwFRaouA8436zcikdIpYWWCjU76CRk+i2bHx8EeiSiMGnB85/lZdU3wIJVXHTA== dependencies: lodash.isplainobject "^4.0.6" @@ -12936,9 +13586,9 @@ redux-thunk@^2.3.0: integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== redux@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.4.tgz#4ee1aeb164b63d6a1bcc57ae4aa0b6e6fa7a3796" - integrity sha512-vKv4WdiJxOWKxK0yRoaK3Y4pxxB0ilzVx6dszU2W8wLxlb2yikRph4iV/ymtdJ6ZxpBLFbyrxklnT5yBbQSl3Q== + version "4.0.5" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" + integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== dependencies: loose-envify "^1.4.0" symbol-observable "^1.2.0" @@ -12948,10 +13598,10 @@ reflect.ownkeys@^0.2.0: resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA= -regenerate-unicode-properties@^8.0.2: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== dependencies: regenerate "^1.4.0" @@ -12975,10 +13625,10 @@ regenerator-runtime@^0.12.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== -regenerator-runtime@^0.13.2: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== +regenerator-runtime@^0.13.4: + version "0.13.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" + integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== regenerator-transform@^0.10.0: version "0.10.1" @@ -12989,12 +13639,13 @@ regenerator-transform@^0.10.0: babel-types "^6.19.0" private "^0.1.6" -regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== +regenerator-transform@^0.14.2: + version "0.14.3" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.3.tgz#54aebff2ef58c0ae61e695ad1b9a9d65995fff78" + integrity sha512-zXHNKJspmONxBViAb3ZUmFoFPnTBs3zFhCEZJiwp/gkNzxVbTqNJVjYKx6Qk1tQ1P4XLf4TbH9+KBB7wGoAaUw== dependencies: - private "^0.1.6" + "@babel/runtime" "^7.8.4" + private "^0.1.8" regex-cache@^0.4.2: version "0.4.4" @@ -13011,24 +13662,18 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp-tree@^0.1.6: - version "0.1.11" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.11.tgz#c9c7f00fcf722e0a56c7390983a7a63dd6c272f3" - integrity sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg== +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== regexpu-core@^2.0.0: version "2.0.0" @@ -13039,17 +13684,17 @@ regexpu-core@^2.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^4.5.4: - version "4.5.4" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" - integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== +regexpu-core@^4.6.0, regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== dependencies: regenerate "^1.4.0" - regenerate-unicode-properties "^8.0.2" - regjsgen "^0.5.0" - regjsparser "^0.6.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" + unicode-match-property-value-ecmascript "^1.2.0" registry-auth-token@^3.0.1: version "3.4.0" @@ -13060,12 +13705,11 @@ registry-auth-token@^3.0.1: safe-buffer "^5.0.1" registry-auth-token@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz#30e55961eec77379da551ea5c4cf43cbf03522be" - integrity sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw== + version "4.1.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" + integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== dependencies: rc "^1.2.8" - safe-buffer "^5.0.1" registry-url@^3.0.3: version "3.1.0" @@ -13079,10 +13723,10 @@ regjsgen@^0.2.0: resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= -regjsgen@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" - integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== +regjsgen@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" + integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== regjsparser@^0.1.4: version "0.1.5" @@ -13091,10 +13735,10 @@ regjsparser@^0.1.4: dependencies: jsesc "~0.5.0" -regjsparser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" - integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== dependencies: jsesc "~0.5.0" @@ -13196,13 +13840,6 @@ remark@^9.0.0: argparse "~0.1.15" autolinker "~0.15.0" -remote-origin-url@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/remote-origin-url/-/remote-origin-url-0.4.0.tgz#4d3e2902f34e2d37d1c263d87710b77eb4086a30" - integrity sha1-TT4pAvNOLTfRwmPYdxC3frQIajA= - dependencies: - parse-git-config "^0.2.0" - remove-bom-buffer@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" @@ -13247,26 +13884,26 @@ replace-ext@1.0.0, replace-ext@^1.0.0: resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= -request-promise-core@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" - integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== +request-promise-core@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" + integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== dependencies: - lodash "^4.17.11" + lodash "^4.17.15" request-promise-native@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" - integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== + version "1.0.8" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" + integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== dependencies: - request-promise-core "1.1.2" + request-promise-core "1.1.3" stealthy-require "^1.1.1" tough-cookie "^2.3.3" request@^2.72.0, request@^2.74.0, request@^2.87.0, request@^2.88.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -13275,7 +13912,7 @@ request@^2.72.0, request@^2.74.0, request@^2.87.0, request@^2.88.0: extend "~3.0.2" forever-agent "~0.6.1" form-data "~2.3.2" - har-validator "~5.1.0" + har-validator "~5.1.3" http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" @@ -13285,7 +13922,7 @@ request@^2.72.0, request@^2.74.0, request@^2.87.0, request@^2.88.0: performance-now "^2.1.0" qs "~6.5.2" safe-buffer "^5.1.2" - tough-cookie "~2.4.3" + tough-cookie "~2.5.0" tunnel-agent "^0.6.0" uuid "^3.3.2" @@ -13366,10 +14003,10 @@ resolve-options@^1.1.0: dependencies: value-or-function "^3.0.0" -resolve-pathname@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879" - integrity sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg== +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== resolve-url@^0.2.1: version "0.2.1" @@ -13381,17 +14018,10 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" - integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw== - dependencies: - path-parse "^1.0.6" - -resolve@^1.10.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz#be0aa4c06acd53083505abb35f4d66932ab35d16" - integrity sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w== +resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1: + version "1.15.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" + integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== dependencies: path-parse "^1.0.6" @@ -13426,7 +14056,7 @@ retry@^0.12.0: resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= -reusify@^1.0.0: +reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== @@ -13458,13 +14088,6 @@ right-pad@^1.0.1: resolved "https://registry.yarnpkg.com/right-pad/-/right-pad-1.0.1.tgz#8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0" integrity sha1-jKCMLLtbVedNr6lr9/0aJ9VoyNA= -rimraf@2, rimraf@^2.5.0, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - rimraf@2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -13472,6 +14095,13 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" +rimraf@^2.5.0, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -13499,9 +14129,9 @@ rsvp@^4.8.4: integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= + version "2.4.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" + integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== dependencies: is-promise "^2.1.0" @@ -13518,9 +14148,9 @@ run-queue@^1.0.0, run-queue@^1.0.3: aproba "^1.1.1" rxjs@^6.1.0, rxjs@^6.4.0, rxjs@^6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" - integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== + version "6.5.4" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" + integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== dependencies: tslib "^1.9.0" @@ -13576,23 +14206,18 @@ sax@>=0.6.0, sax@^1.2.4, sax@~1.2.1, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e" - integrity sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg== +scheduler@^0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.0.tgz#a715d56302de403df742f4a9be11975b32f5698d" + integrity sha512-xowbVaTPe9r7y7RUejcK73/j8tt2jfiyTednOvHbA8JoClvMYCp+r8QegLwK/n8zWQAtZb1fFnER4XLBZXrCxA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" -seamless-immutable@^7.1.3: - version "7.1.4" - resolved "https://registry.yarnpkg.com/seamless-immutable/-/seamless-immutable-7.1.4.tgz#6e9536def083ddc4dea0207d722e0e80d0f372f8" - integrity sha512-XiUO1QP4ki4E2PHegiGAlu6r82o5A+6tRh7IkGGTVg/h+UoeX4nFBeCGPOhb4CYjvkqsfm/TUtvOMYC1xmV30A== - semantic-release@^15.13.12: - version "15.13.18" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.13.18.tgz#72e284c6f7cb7817e1aaaa0a9d73600a9447d146" - integrity sha512-JtfdrhF1zRm91nJH/Rg3taftbWGwktJqqrJJdbmZGKYx63cfC4PoaS0jxRifGJUdmmgW/Kxz8f5bhtB+p1bu8A== + version "15.14.0" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.14.0.tgz#6ee79b7b3598332378190412880049709fa23376" + integrity sha512-Cn43W35AOLY0RMcDbtwhJODJmWg6YCs1+R5jRQsTmmkEGzkV4B2F/QXkjVZpl4UbH91r93GGH0xhoq9kh7I5PA== dependencies: "@semantic-release/commit-analyzer" "^6.1.0" "@semantic-release/error" "^2.2.0" @@ -13600,26 +14225,26 @@ semantic-release@^15.13.12: "@semantic-release/npm" "^5.0.5" "@semantic-release/release-notes-generator" "^7.1.2" aggregate-error "^3.0.0" - cosmiconfig "^5.0.1" + cosmiconfig "^6.0.0" debug "^4.0.0" env-ci "^4.0.0" - execa "^1.0.0" + execa "^3.2.0" figures "^3.0.0" find-versions "^3.0.0" get-stream "^5.0.0" git-log-parser "^1.2.0" hook-std "^2.0.0" - hosted-git-info "^2.7.1" - lodash "^4.17.4" - marked "^0.6.0" + hosted-git-info "^3.0.0" + lodash "^4.17.15" + marked "^0.7.0" marked-terminal "^3.2.0" p-locate "^4.0.0" p-reduce "^2.0.0" - read-pkg-up "^6.0.0" + read-pkg-up "^7.0.0" resolve-from "^5.0.0" semver "^6.0.0" signale "^1.2.1" - yargs "^13.1.0" + yargs "^15.0.1" semver-diff@^2.0.0: version "2.1.0" @@ -13643,16 +14268,16 @@ semver@5.5.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== -semver@^6.0.0, semver@^6.1.1: +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= - send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -13722,6 +14347,23 @@ sha@^3.0.0: dependencies: graceful-fs "^4.1.2" +shallow-equal@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" + integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shasum-object@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" + integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg== + dependencies: + fast-safe-stringify "^2.0.7" + shasum@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" @@ -13737,20 +14379,27 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + shell-quote@^1.4.2, shell-quote@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.0.0" + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== shelljs@0.7.6: version "0.7.6" @@ -13766,6 +14415,14 @@ shellwords@^0.1.1: resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== +side-channel@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947" + integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA== + dependencies: + es-abstract "^1.17.0-next.1" + object-inspect "^1.7.0" + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -13799,10 +14456,10 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -sisteransi@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.2.tgz#ec57d64b6f25c4f26c0e2c7dd23f2d7f12f7e418" - integrity sha512-ZcYcZcT69nSLAR2oLN2JwNmLkJEKGooFMCdvOkFrToUt/WfcRWqhIg4P4KwY4dmLbuyXIx4o4YmPsvMRJYJd/w== +sisteransi@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3" + integrity sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig== slack-node@^0.1.8: version "0.1.8" @@ -13922,11 +14579,11 @@ source-list-map@^2.0.0: integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: - atob "^2.1.1" + atob "^2.1.2" decode-uri-component "^0.2.0" resolve-url "^0.2.1" source-map-url "^0.4.0" @@ -13940,9 +14597,9 @@ source-map-support@^0.4.15: source-map "^0.5.6" source-map-support@^0.5.6, source-map-support@~0.5.10: - version "0.5.12" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" - integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== + version "0.5.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" + integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -13963,9 +14620,9 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== space-separated-tokens@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.4.tgz#27910835ae00d0adfcdbd0ad7e611fb9544351fa" - integrity sha512-UyhMSmeIqZrQn2UdjYpxEkwY9JUrn8pP+7L4f91zRzOQuI8MF1FGLfYU9DKCYeLdo7LXMxwrX5zKFy7eeeVHuA== + version "1.1.5" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" + integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== spawn-error-forwarder@~1.0.0: version "1.0.0" @@ -14086,9 +14743,9 @@ stacked@^1.1.1: integrity sha1-LH+jjMfjejQRp3zY55LeRI+faXU= state-toggle@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.2.tgz#75e93a61944116b4959d665c8db2d243631d6ddc" - integrity sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" + integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== static-extend@^0.1.1: version "0.1.2" @@ -14146,7 +14803,7 @@ stream-each@^1.1.0: end-of-stream "^1.1.0" stream-shift "^1.0.0" -stream-http@^2.0.0, stream-http@^2.7.2: +stream-http@^2.7.2: version "2.8.3" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== @@ -14157,6 +14814,16 @@ stream-http@^2.0.0, stream-http@^2.7.2: to-arraybuffer "^1.0.0" xtend "^4.0.0" +stream-http@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.1.0.tgz#22fb33fe9b4056b4eccf58bd8f400c4b993ffe57" + integrity sha512-cuB6RgO7BqC4FBYzmnvhob5Do3wIdIsXAgGycHJnW+981gHqoYcYz9lqjJrk8WXRddbwPuqPYRl+bag6mYv4lw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^3.0.6" + xtend "^4.0.0" + stream-iterate@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz#2bd7c77296c1702a46488b8ad41f79865eecd4e1" @@ -14232,36 +14899,48 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.1.0.tgz#ba846d1daa97c3c596155308063e075ed1c99aff" - integrity sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ== +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" - strip-ansi "^5.2.0" + strip-ansi "^6.0.0" -string.prototype.trim@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz#75a729b10cfc1be439543dae442129459ce61e3d" - integrity sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg== +string.prototype.matchall@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" + integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0" + has-symbols "^1.0.1" + internal-slot "^1.0.2" + regexp.prototype.flags "^1.3.0" + side-channel "^1.0.2" + +string.prototype.trim@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" + integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw== dependencies: define-properties "^1.1.3" - es-abstract "^1.13.0" + es-abstract "^1.17.0-next.1" function-bind "^1.1.1" -string.prototype.trimleft@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" - integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== +string.prototype.trimleft@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" + integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== dependencies: define-properties "^1.1.3" function-bind "^1.1.1" -string.prototype.trimright@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" - integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== +string.prototype.trimright@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" + integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== dependencies: define-properties "^1.1.3" function-bind "^1.1.1" @@ -14271,14 +14950,7 @@ string_decoder@0.10, string_decoder@~0.10.x: resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= -string_decoder@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" - integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== - dependencies: - safe-buffer "~5.1.0" - -string_decoder@^1.1.1: +string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -14335,6 +15007,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -14352,6 +15031,11 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" @@ -14369,6 +15053,52 @@ style-loader@^0.13.0: dependencies: loader-utils "^1.0.2" +styled-components@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.0.1.tgz#57782a6471031abefb2db5820a1876ae853bc619" + integrity sha512-E0xKTRIjTs4DyvC1MHu/EcCXIj6+ENCP8hP01koyoADF++WdBUOrSGwU1scJRw7/YaYOhDvvoad6VlMG+0j53A== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/traverse" "^7.4.5" + "@emotion/is-prop-valid" "^0.8.3" + "@emotion/stylis" "^0.8.4" + "@emotion/unitless" "^0.7.4" + babel-plugin-styled-components ">= 1" + css-to-react-native "^3.0.0" + hoist-non-react-statics "^3.0.0" + shallowequal "^1.1.0" + supports-color "^5.5.0" + +styled-icons@^9.1.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/styled-icons/-/styled-icons-9.5.0.tgz#d1f6c8dcc3ea81c3d30fe20dfda5d39a8afc593c" + integrity sha512-nby51U6+SRY5010P15XogBZubrqblqXTV50+lA/xBkC1QrTap1BIgCvoJwH9FF5kYI+LKFl/xeco/drwqIR2Pw== + dependencies: + "@styled-icons/boxicons-logos" "^9.4.1" + "@styled-icons/boxicons-regular" "^9.4.1" + "@styled-icons/boxicons-solid" "^9.4.1" + "@styled-icons/crypto" "^9.4.1" + "@styled-icons/entypo" "^9.5.0" + "@styled-icons/entypo-social" "^9.5.0" + "@styled-icons/evil" "^9.4.1" + "@styled-icons/fa-brands" "^9.4.1" + "@styled-icons/fa-regular" "^9.4.1" + "@styled-icons/fa-solid" "^9.4.1" + "@styled-icons/feather" "^9.4.1" + "@styled-icons/foundation" "^9.5.0" + "@styled-icons/heroicons-outline" "^9.5.0" + "@styled-icons/heroicons-solid" "^9.5.0" + "@styled-icons/icomoon" "^9.4.1" + "@styled-icons/material" "^9.4.1" + "@styled-icons/octicons" "^9.4.1" + "@styled-icons/open-iconic" "^9.5.0" + "@styled-icons/remix-fill" "^9.4.1" + "@styled-icons/remix-line" "^9.4.1" + "@styled-icons/styled-icon" "^9.4.1" + "@styled-icons/typicons" "^9.4.1" + "@styled-icons/zondicons" "^9.5.0" + tslib "^1.9.3" + stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" @@ -14407,7 +15137,7 @@ supports-color@^3.1.0, supports-color@^3.2.3: dependencies: has-flag "^1.0.0" -supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -14448,16 +15178,16 @@ svgo@^0.7.0: whet.extend "~0.9.9" svgo@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313" - integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ== + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== dependencies: chalk "^2.4.1" coa "^2.0.2" css-select "^2.0.0" css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.33" - csso "^3.5.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" js-yaml "^3.13.1" mkdirp "~0.5.1" object.values "^1.1.0" @@ -14484,9 +15214,9 @@ syntax-error@^1.1.1: acorn-node "^1.2.0" table@^5.2.3: - version "5.4.4" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.4.tgz#6e0f88fdae3692793d1077fd172a4667afe986a6" - integrity sha512-IIfEAUx5QlODLblLrGTTLJA7Tk0iLSGBvgY8essPRVNGHAzThujww1YqHLs6h3HfTg55h++RzLHH5Xw/rfv+mg== + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== dependencies: ajv "^6.10.2" lodash "^4.17.14" @@ -14498,7 +15228,7 @@ tapable@^0.2.7, tapable@~0.2.5: resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8" integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A== -tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.13: +tar@^4.4.10, tar@^4.4.12, tar@^4.4.13, tar@^4.4.2: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -14511,6 +15241,20 @@ tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.13: safe-buffer "^5.1.2" yallist "^3.0.3" +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= + +tempy@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8" + integrity sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ== + dependencies: + temp-dir "^1.0.0" + type-fest "^0.3.1" + unique-string "^1.0.0" + term-color@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/term-color/-/term-color-1.0.1.tgz#38e192553a473e35e41604ff5199846bf8117a3a" @@ -14632,9 +15376,9 @@ timers-browserify@^1.0.1: process "~0.11.0" timers-browserify@^2.0.4: - version "2.0.10" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" - integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== + version "2.0.11" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== dependencies: setimmediate "^1.0.4" @@ -14644,9 +15388,9 @@ timsort@^0.3.0: integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= tiny-invariant@^1.0.2: - version "1.0.6" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.6.tgz#b3f9b38835e36a41c843a3b0907a5a7b3755de73" - integrity sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" + integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== tiny-lr@^1.1.0: version "1.1.1" @@ -14761,7 +15505,7 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== -tough-cookie@^2.3.3, tough-cookie@^2.3.4: +tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== @@ -14769,14 +15513,6 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4: psl "^1.1.28" punycode "^2.1.1" -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" @@ -14807,9 +15543,9 @@ traverse@~0.6.6: integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= trim-lines@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.2.tgz#c8adbdbdae21bb5c2766240a661f693afe23e59b" - integrity sha512-3GOuyNeTqk3FAqc3jOJtw7FTjYl94XBR5aD9QnDbK/T4CA9sW/J0l9RoaRPE9wyPP7NF331qnHnvJFBJ+IDkmQ== + version "1.1.3" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.3.tgz#839514be82428fd9e7ec89e35081afe8f6f93115" + integrity sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA== trim-newlines@^2.0.0: version "2.0.0" @@ -14827,9 +15563,9 @@ trim-right@^1.0.1: integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= trim-trailing-lines@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz#d2f1e153161152e9f02fabc670fb40bec2ea2e3a" - integrity sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q== + version "1.1.3" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz#7f0739881ff76657b7776e10874128004b625a94" + integrity sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA== trim@0.0.1: version "0.0.1" @@ -14837,14 +15573,14 @@ trim@0.0.1: integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= trough@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.4.tgz#3b52b1f13924f460c3fbfd0df69b587dbcbc762e" - integrity sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q== + version "1.0.5" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" + integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== -tslib@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== +tslib@^1.9.0, tslib@^1.9.3: + version "1.11.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" + integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== tty-browserify@0.0.0: version "0.0.0" @@ -14923,30 +15659,35 @@ type-detect@^4.0.0, type-detect@^4.0.5: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" - integrity sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw== +type-fest@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + typedarray@^0.0.6, typedarray@~0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^3.2.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" - integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== + version "3.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" + integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== ua-parser-js@^0.7.18: - version "0.7.20" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098" - integrity sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw== + version "0.7.21" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" + integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== uglify-js@^2.8.27: version "2.8.29" @@ -14959,9 +15700,9 @@ uglify-js@^2.8.27: uglify-to-browserify "~1.0.0" uglify-js@^3.1.4: - version "3.7.3" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.3.tgz#f918fce9182f466d5140f24bb0ff35c2d32dcc6a" - integrity sha512-7tINm46/3puUA4hCkKYo4Xdts+JDaVC9ZPRcG8Xw9R4nhO/gZgUM3TENq8IF4Vatk8qCig4MzP/c8G4u2BkVQg== + version "3.8.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.8.0.tgz#f3541ae97b2f048d7e7e3aa4f39fd8a1f5d7a805" + integrity sha512-ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ== dependencies: commander "~2.20.3" source-map "~0.6.1" @@ -14972,26 +15713,21 @@ uglify-to-browserify@~1.0.0: integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= uglifyify@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/uglifyify/-/uglifyify-5.0.1.tgz#70b1d8b413c410348c8e35e7f8bd1330a422d5f6" - integrity sha512-PO44rgExvwj3rkK0UzenHVnPU18drBy9x9HOUmgkuRh6K2KIsDqrB5LqxGtjybgGTOS1JeP8SBc+TN5rhiva6w== + version "5.0.2" + resolved "https://registry.yarnpkg.com/uglifyify/-/uglifyify-5.0.2.tgz#7d0269885e09faa963208a9ec6721afcaf45fc50" + integrity sha512-NcSk6pgoC+IgwZZ2tVLVHq+VNKSvLPlLkF5oUiHPVOJI0s/OlSVYEGXG9PCAH0hcyFZLyvt4KBdPAQBRlVDn1Q== dependencies: convert-source-map "~1.1.0" - extend "^1.2.1" minimatch "^3.0.2" terser "^3.7.5" through "~2.3.4" + xtend "^4.0.1" uid-number@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= -ultron@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" - integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po= - umask@^1.1.0, umask@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" @@ -15036,12 +15772,12 @@ underscore@~1.7.0: integrity sha1-a7rwh3UA02vjTsqlhODbn+8DUgk= unherit@^1.0.4: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.2.tgz#14f1f397253ee4ec95cec167762e77df83678449" - integrity sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w== + version "1.1.3" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" + integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== dependencies: - inherits "^2.0.1" - xtend "^4.0.1" + inherits "^2.0.0" + xtend "^4.0.0" unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" @@ -15056,15 +15792,15 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== unified@^6.0.0: version "6.2.0" @@ -15135,9 +15871,9 @@ unist-builder@^1.0.1, unist-builder@^1.0.2: object-assign "^4.1.0" unist-util-generated@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.4.tgz#2261c033d9fc23fae41872cdb7663746e972c1a7" - integrity sha512-SA7Sys3h3X4AlVnxHdvN/qYdr4R38HzihoEVY2Q2BZu8NHWDnw5OGcC/tXWjQfd4iG+M6qRFNIRGqJmp2ez4Ww== + version "1.1.5" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.5.tgz#1e903e68467931ebfaea386dae9ea253628acd42" + integrity sha512-1TC+NxQa4N9pNdayCYA1EGUOCAO0Le3fVp7Jzns6lnua/mYgwHo0tz5WUAfrdpNch1RZLHc61VZ1SDgrtNXLSw== unist-util-is@^2.0.0, unist-util-is@^2.1.2: version "2.1.3" @@ -15150,14 +15886,14 @@ unist-util-is@^3.0.0: integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== unist-util-position@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.0.3.tgz#fff942b879538b242096c148153826664b1ca373" - integrity sha512-28EpCBYFvnMeq9y/4w6pbnFmCUfzlsc41NJui5c51hOFjBA1fejcwc+5W4z2+0ECVbScG3dURS3JTVqwenzqZw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" + integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== unist-util-remove-position@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.3.tgz#d91aa8b89b30cb38bad2924da11072faa64fd972" - integrity sha512-CtszTlOjP2sBGYc2zcKA/CvNdTdEs3ozbiJ63IPBxh8iZg42SCCb8m04f8z2+V1aSk5a7BxbZKEdoDjadmBkWA== + version "1.1.4" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" + integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A== dependencies: unist-util-visit "^1.1.0" @@ -15167,9 +15903,9 @@ unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== unist-util-stringify-position@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.1.tgz#de2a2bc8d3febfa606652673a91455b6a36fb9f3" - integrity sha512-Zqlf6+FRI39Bah8Q6ZnNGrEHUhwJOkHde2MHVk96lLyftfJJckaPslKgzhVcviXj8KcE9UJM9F+a4JEiBUTYgA== + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== dependencies: "@types/unist" "^2.0.2" @@ -15195,12 +15931,19 @@ units-css@^0.4.0: isnumeric "^0.2.0" viewport-dimensions "^0.2.0" -universal-user-agent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-3.0.0.tgz#4cc88d68097bffd7ac42e3b7c903e7481424b4b9" - integrity sha512-T3siHThqoj5X0benA5H0qcDnrKGXzU8TKoX15x/tQHw1hQBvIEBHjxQ2klizYsqBOO/Q+WuxoQUihadeeqDnoA== +universal-user-agent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557" + integrity sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg== + dependencies: + os-name "^3.1.0" + +universal-user-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-5.0.0.tgz#a3182aa758069bf0e79952570ca757de3579c1d9" + integrity sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q== dependencies: - os-name "^3.0.0" + os-name "^3.1.0" universalify@^0.1.0: version "0.1.2" @@ -15231,11 +15974,11 @@ unzip-response@^2.0.1: integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= upath@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" - integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-notifier@^2.3.0, update-notifier@^2.5.0: +update-notifier@^2.2.0, update-notifier@^2.3.0, update-notifier@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== @@ -15283,11 +16026,6 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" -url-template@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" - integrity sha1-/FZaPMy/93MMd19WQflVV5FDnyE= - url-trim@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-trim/-/url-trim-1.0.0.tgz#40057e2f164b88e5daca7269da47e6d1dd837adc" @@ -15345,12 +16083,14 @@ util-promisify@^2.1.0: object.getownpropertydescriptors "^2.0.3" util.promisify@^1.0.0, util.promisify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" util@0.10.3: version "0.10.3" @@ -15379,9 +16119,9 @@ uuid@3.3.2: integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== uuid@^3.3.2, uuid@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== v8flags@^2.1.1: version "2.1.1" @@ -15405,10 +16145,10 @@ validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: dependencies: builtins "^1.0.3" -value-equal@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7" - integrity sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw== +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== value-or-function@^3.0.0: version "3.0.0" @@ -15431,9 +16171,9 @@ velocity-react@^1.3.3: velocity-animate "^1.4.0" vendors@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" - integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== verror@1.10.0: version "1.10.0" @@ -15445,9 +16185,9 @@ verror@1.10.0: extsprintf "^1.2.0" vfile-location@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.5.tgz#c83eb02f8040228a8d2b3f10e485be3e3433e0a2" - integrity sha512-Pa1ey0OzYBkLPxPZI3d9E+S4BmvfVwNAAXrrqGbwTVXWaX2p9kM1zZ+n35UtVM06shmWKH4RPRN8KI80qE3wNQ== + version "2.0.6" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" + integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== vfile-message@^1.0.0: version "1.1.1" @@ -15457,17 +16197,17 @@ vfile-message@^1.0.0: unist-util-stringify-position "^1.1.1" vfile-message@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.1.tgz#951881861c22fc1eb39f873c0b93e336a64e8f6d" - integrity sha512-KtasSV+uVU7RWhUn4Lw+wW1Zl/nW8JWx7JCPps10Y9JRRIDeDXf8wfBLoOSsJLyo27DqMyAi54C6Jf/d6Kr2Bw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.3.tgz#0dd4f6879fb240a8099b22bd3755536c92e59ba5" + integrity sha512-qQg/2z8qnnBHL0psXyF72kCjb9YioIynvyltuNKFaUhRtqTIcIMP3xnBaPzirVZNuBrUe1qwFciSx2yApa4byw== dependencies: - "@types/unist" "^2.0.2" + "@types/unist" "^2.0.0" unist-util-stringify-position "^2.0.0" vfile-reporter@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-6.0.0.tgz#753119f51dec9289b7508b457afc0cddf5e07f2e" - integrity sha512-8Is0XxFxWJUhPJdOg3CyZTqd3ICCWg6r304PuBl818ZG91h4FMS3Q+lrOPS+cs5/DZK3H0+AkJdH0J8JEwKtDA== + version "6.0.1" + resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-6.0.1.tgz#45d4dc11df2e312196ea2ceb95e42a67fc8ce814" + integrity sha512-0OppK9mo8G2XUpv+hIKLVSDsoxJrXnOy73+vIm0jQUOUFYRduqpFHX+QqAQfvRHyX9B0UFiRuNJnBOjQCIsw1g== dependencies: repeat-string "^1.5.0" string-width "^4.0.0" @@ -15477,14 +16217,14 @@ vfile-reporter@^6.0.0: vfile-statistics "^1.1.0" vfile-sort@^2.1.0, vfile-sort@^2.1.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.1.tgz#74e714f9175618cdae96bcaedf1a3dc711d87567" - integrity sha512-5dt7xEhC44h0uRQKhbM2JAe0z/naHphIZlMOygtMBM9Nn0pZdaX5fshhwWit9wvsuP8t/wp43nTDRRErO1WK8g== + version "2.2.2" + resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.2.tgz#720fe067ce156aba0b411a01bb0dc65596aa1190" + integrity sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA== vfile-statistics@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.3.tgz#e9c87071997fbcb4243764d2c3805e0bb0820c60" - integrity sha512-CstaK/ebTz1W3Qp41Bt9Lj/2DmumFsCwC2sKahDNSPh0mPh7/UyMLCoU8ZBX34CRU0d61B4W41yIFsV0NKMZeA== + version "1.1.4" + resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.4.tgz#b99fd15ecf0f44ba088cc973425d666cb7a9f245" + integrity sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA== vfile@^2.0.0: version "2.3.0" @@ -15497,9 +16237,9 @@ vfile@^2.0.0: vfile-message "^1.0.0" vfile@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.0.1.tgz#fc3d43a1c71916034216bf65926d5ee3c64ed60c" - integrity sha512-lRHFCuC4SQBFr7Uq91oJDJxlnftoTLQ7eKIpMdubhYcVMho4781a8MWXLy3qZrZ0/STD1kRiKc0cQOHm4OkPeA== + version "4.0.3" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.0.3.tgz#1e50b824fb5e5affd718e225c7bb1af6d97d4408" + integrity sha512-lREgT5sF05TQk68LO6APy0In+TkFGnFEgKChK2+PHIaTrFQ9oHCKXznZ7VILwgYVBcl0gv4lGATFZBLhi2kVQg== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -15561,9 +16301,9 @@ vinyl@^2.0.0, vinyl@^2.1.0: replace-ext "^1.0.0" vm-browserify@^1.0.0, vm-browserify@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" - integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== vue-eslint-parser@^2.0.2: version "2.0.3" @@ -15578,19 +16318,19 @@ vue-eslint-parser@^2.0.2: lodash "^4.17.4" vue-template-compiler@^2.5.16: - version "2.6.10" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.10.tgz#323b4f3495f04faa3503337a82f5d6507799c9cc" - integrity sha512-jVZkw4/I/HT5ZMvRnhv78okGusqe0+qH2A0Em0Cp8aq78+NK9TII263CDVz2QXZsIT+yyV/gZc/j/vlwa+Epyg== + version "2.6.11" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080" + integrity sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA== dependencies: de-indent "^1.0.2" he "^1.1.0" w3c-hr-time@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" - integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== dependencies: - browser-process-hrtime "^0.1.2" + browser-process-hrtime "^1.0.0" walker@^1.0.7, walker@~1.0.5: version "1.0.7" @@ -15606,7 +16346,7 @@ warning@^3.0.0: dependencies: loose-envify "^1.0.0" -warning@^4.0.1, warning@^4.0.3: +warning@^4.0.0, warning@^4.0.1, warning@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== @@ -15660,9 +16400,9 @@ webidl-conversions@^4.0.2: integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== webpack-sources@^1.0.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" - integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== dependencies: source-list-map "^2.0.0" source-map "~0.6.1" @@ -15735,9 +16475,9 @@ whatwg-url@^6.4.1: webidl-conversions "^4.0.2" whatwg-url@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" - integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== dependencies: lodash.sortby "^4.7.0" tr46 "^1.0.1" @@ -15763,13 +16503,20 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@1, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -15796,7 +16543,7 @@ windows-release@^3.1.0: dependencies: execa "^1.0.0" -word-wrap@^1.0.3: +word-wrap@^1.0.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -15811,11 +16558,6 @@ wordwrap@~0.0.2: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - worker-farm@^1.6.0, worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -15840,6 +16582,15 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -15870,14 +16621,6 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@^1.1.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51" - integrity sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w== - dependencies: - options ">=0.0.5" - ultron "1.0.x" - ws@^5.2.0: version "5.2.2" resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" @@ -15885,6 +16628,13 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" +ws@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + x-is-string@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" @@ -15913,7 +16663,14 @@ xmlbuilder@~9.0.1: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +xregexp@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50" + integrity sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g== + dependencies: + "@babel/runtime-corejs3" "^7.8.3" + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -15938,6 +16695,13 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yaml@^1.7.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.2.tgz#a29c03f578faafd57dcb27055f9a5d569cb0c3d9" + integrity sha512-omakb0d7FjMo3R1D2EbTKVIk6dAVLRxFXdLZMEUToeAvuqgG/YuHMuQOZ5fgk+vQ8cx+cnGKwyg+8g8PNT0xQg== + dependencies: + "@babel/runtime" "^7.8.7" + yamljs@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/yamljs/-/yamljs-0.3.0.tgz#dc060bf267447b39f7304e9b2bfbe8b5a7ddb03b" @@ -15946,6 +16710,13 @@ yamljs@^0.3.0: argparse "^1.0.7" glob "^7.0.5" +yargs-parser@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + dependencies: + camelcase "^4.1.0" + yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" @@ -15962,6 +16733,14 @@ yargs-parser@^13.1.1: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^18.1.0: + version "18.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.0.tgz#1b0ab1118ebd41f68bb30e729f4c83df36ae84c3" + integrity sha512-o/Jr6JBOv6Yx3pL+5naWSoIA2jJ+ZkMYQG/ie9qFbukBe4uzmBatlXFOiu/tNKRWEtyf+n5w7jc/O16ufqOTdQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" @@ -15969,6 +16748,13 @@ yargs-parser@^4.2.0: dependencies: camelcase "^3.0.0" +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= + dependencies: + camelcase "^4.1.0" + yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" @@ -16012,7 +16798,7 @@ yargs@^12.0.2: y18n "^3.2.1 || ^4.0.0" yargs-parser "^11.1.1" -yargs@^13.1.0, yargs@^13.2.4: +yargs@^13.2.4, yargs@^13.3.0: version "13.3.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== @@ -16028,6 +16814,23 @@ yargs@^13.1.0, yargs@^13.2.4: y18n "^4.0.0" yargs-parser "^13.1.1" +yargs@^15.0.1: + version "15.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.0.tgz#403af6edc75b3ae04bf66c94202228ba119f0976" + integrity sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.0" + yargs@^6.0.0: version "6.6.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" @@ -16047,6 +16850,25 @@ yargs@^6.0.0: y18n "^3.2.1" yargs-parser "^4.2.0" +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A= + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^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 "^7.0.0" + yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" From 868342c2bfe5789d9de2a792295fad5a10092cf0 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 13 Mar 2020 17:33:08 -0400 Subject: [PATCH 019/115] refactor(styled): Merge styles between DateTimeSelector and SettingsSelectorPanel controls. --- lib/components/form/date-time-modal.js | 81 +-- lib/components/form/styled.js | 106 ++-- yarn.lock | 674 ++----------------------- 3 files changed, 107 insertions(+), 754 deletions(-) diff --git a/lib/components/form/date-time-modal.js b/lib/components/form/date-time-modal.js index 4b3356017..406f56dc4 100644 --- a/lib/components/form/date-time-modal.js +++ b/lib/components/form/date-time-modal.js @@ -2,90 +2,11 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import { connect } from 'react-redux' -import styled from 'styled-components' import { getTimeFormat, getDateFormat } from '@opentripplanner/core-utils/lib/time' -import { DateTimeSelector } from '@opentripplanner/trip-form' -import * as TripFormClasses from '@opentripplanner/trip-form/lib/styled' import { setQueryParam } from '../../actions/form' -// Styles for the DateTimeSelector. -// TODO: Find a way to bring OTP CSS classes in here. -// See for instance: -// https://github.com/theKashey/styled-components-mixins -// https://github.com/kingpowerclick/styled-bootstrap-mixins - -const StyledDateTimeSelector = styled(DateTimeSelector)` - margin: 0 -15px 20px; - ${TripFormClasses.DateTimeSelector.DateTimeRow} { - margin-top: 20px; - } - - input { - -webkit-appearance: textfield; - -moz-appearance: textfield; - appearance: textfield; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - box-shadow: none; - color: #555; - font-family: inherit; - font-size: 16px; - height: 34px; - padding: 6px 12px; - text-align: center; - &.focused { - outline: 0; - border-color: #66afe9; - font-weight: 400; - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - } - } - - button { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - background-color: #fff; - border: 1px solid #ccc; - border-radius: 4px; - color: #333; - cursor: pointer; - font-family: inherit; - font-weight: 400; - font-size: 14px; - line-height: 1.42857143; - outline-offset:-2px; - padding: 6px 12px; - text-align: center; - touch-action: manipulation; - user-select: none; - white-space: nowrap; - - &.active { - background-color: #e6e6e6; - border-color: #adadad; - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - font-weight: 400; - } - &:hover { - background-color: #e6e6e6; - border-color: #adadad; - } - &.active { - background-color: #e6e6e6; - border-color: #adadad; - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - font-weight: 400; - &:hover { - background-color: #d4d4d4; - border-color: #8c8c8c; - } - } - } -` +import { StyledDateTimeSelector } from './styled' class DateTimeModal extends Component { static propTypes = { diff --git a/lib/components/form/styled.js b/lib/components/form/styled.js index d6ed209d6..47cc452d5 100644 --- a/lib/components/form/styled.js +++ b/lib/components/form/styled.js @@ -1,48 +1,66 @@ import styled, { css } from 'styled-components' -import { SettingsSelectorPanel } from '@opentripplanner/trip-form' +import { DateTimeSelector, SettingsSelectorPanel } from '@opentripplanner/trip-form' import * as TripFormClasses from '@opentripplanner/trip-form/lib/styled' -export const modeButtonCss = css` +const commonButtonCss = css` -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; background: none; + font-family: inherit; user-select: none; text-align: center; touch-action: manipulation; ` -// TODO: Merge into DateTimeSelector. -export const StyledModeButtonButton = styled(TripFormClasses.ModeButton.Button)` - ${modeButtonCss} +const commonInputCss = css` background-color: #fff; border: 1px solid #ccc; border-radius: 4px; - color: #333; + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + color: #555; font-family: inherit; - font-weight: 400; - font-size: 14px; - line-height: 1.42857143; - outline-offset:-2px; padding: 6px 12px; - &.active { - background-color: #e6e6e6; - border-color: #adadad; - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - font-weight: 400; - } - &:hover { - background-color: #e6e6e6; - border-color: #adadad; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + + &:focus { + border-color: #66afe9; + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102,175,233,.6); + outline: 0; } - &.active { - background-color: #e6e6e6; - border-color: #adadad; - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +` + +const modeButtonButtonCss = css` + ${TripFormClasses.ModeButton.Button} { + ${commonButtonCss} + background-color: #fff; + border: 1px solid #ccc; + border-radius: 4px; + color: #333; font-weight: 400; + font-size: 14px; + line-height: 1.42857143; + outline-offset:-2px; + padding: 6px 12px; + &.active { + background-color: #e6e6e6; + border-color: #adadad; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + font-weight: 400; + } &:hover { - background-color: #d4d4d4; - border-color: #8c8c8c; + background-color: #e6e6e6; + border-color: #adadad; + } + &.active { + background-color: #e6e6e6; + border-color: #adadad; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + font-weight: 400; + &:hover { + background-color: #d4d4d4; + border-color: #8c8c8c; + } } } ` @@ -62,28 +80,16 @@ export const StyledSettingsSelectorPanel = styled(SettingsSelectorPanel)` ${TripFormClasses.DropdownSelector} { margin-bottom:20px; select { - background-color: #fff; - border: 1px solid #ccc; - border-radius: 4px; - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - color: #555; + ${commonInputCss} font-size: 14px; height: 34px; line-height: 1.42857143; - padding: 6px 12px; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - - &:focus { - border-color: #66afe9; - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102,175,233,.6); - outline: 0; - } } } ${TripFormClasses.ModeSelector} { ${TripFormClasses.ModeButton.Button} { - ${modeButtonCss} + ${commonButtonCss} border: 1px solid rgb(187, 187, 187); border-radius: 3px; box-shadow: none; @@ -150,6 +156,26 @@ export const StyledSettingsSelectorPanel = styled(SettingsSelectorPanel)` } ${TripFormClasses.SubmodeSelector} { - ${StyledModeButtonButton} + ${modeButtonButtonCss} } ` + +export const StyledDateTimeSelector = styled(DateTimeSelector)` + margin: 0 -15px 20px; + ${TripFormClasses.DateTimeSelector.DateTimeRow} { + margin-top: 20px; + } + + input { + ${commonInputCss} + -webkit-appearance: textfield; + -moz-appearance: textfield; + appearance: textfield; + box-shadow: none; + font-size: 16px; + height: 34px; + text-align: center; /* For legacy browsers. */ + } + + ${modeButtonButtonCss} +` diff --git a/yarn.lock b/yarn.lock index d03a054fc..82272946a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== @@ -18,13 +18,6 @@ invariant "^2.2.4" semver "^5.5.0" -"@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - "@babel/core@^7.1.0", "@babel/core@^7.1.2", "@babel/core@^7.3.4": version "7.8.7" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.7.tgz#b69017d221ccdeb203145ae9da269d72cf102f3b" @@ -46,7 +39,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.1.3", "@babel/generator@^7.4.0", "@babel/generator@^7.8.6", "@babel/generator@^7.8.7": +"@babel/generator@^7.1.3", "@babel/generator@^7.4.0", "@babel/generator@^7.5.5", "@babel/generator@^7.8.7": version "7.8.8" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.8.tgz#cdcd58caab730834cee9eeadb729e833b625da3e" integrity sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg== @@ -56,12 +49,6 @@ lodash "^4.17.13" source-map "^0.5.0" -<<<<<<< HEAD -"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== -======= "@babel/generator@^7.8.6": version "7.8.7" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.7.tgz#870b3cf7984f5297998152af625c4f3e341400f7" @@ -76,7 +63,13 @@ version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== ->>>>>>> otp-ui-datetimeselector + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-annotate-as-pure@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" + integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== dependencies: "@babel/types" "^7.8.3" @@ -154,7 +147,7 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-function-name@^7.8.3": +"@babel/helper-function-name@^7.1.0", "@babel/helper-function-name@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== @@ -163,47 +156,17 @@ "@babel/template" "^7.8.3" "@babel/types" "^7.8.3" -<<<<<<< HEAD "@babel/helper-get-function-arity@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== -======= -"@babel/helper-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" - integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== ->>>>>>> otp-ui-datetimeselector - dependencies: - "@babel/types" "^7.8.3" - -<<<<<<< HEAD "@babel/helper-hoist-variables@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== -======= -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-hoist-variables@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" - integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== ->>>>>>> otp-ui-datetimeselector dependencies: "@babel/types" "^7.8.3" @@ -253,7 +216,6 @@ dependencies: lodash "^4.17.13" -<<<<<<< HEAD "@babel/helper-remap-async-to-generator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" @@ -282,35 +244,6 @@ dependencies: "@babel/template" "^7.8.3" "@babel/types" "^7.8.3" -======= -"@babel/helper-remap-async-to-generator@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" - integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-wrap-function" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-replace-supers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" - integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.5.5" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" - -"@babel/helper-simple-access@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" - integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== - dependencies: - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" "@babel/helper-split-export-declaration@^7.4.4": version "7.4.4" @@ -318,7 +251,6 @@ integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== dependencies: "@babel/types" "^7.4.4" ->>>>>>> otp-ui-datetimeselector "@babel/helper-split-export-declaration@^7.8.3": version "7.8.3" @@ -327,7 +259,6 @@ dependencies: "@babel/types" "^7.8.3" -<<<<<<< HEAD "@babel/helper-wrap-function@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" @@ -347,40 +278,6 @@ "@babel/traverse" "^7.8.4" "@babel/types" "^7.8.3" -"@babel/highlight@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" - integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== -======= -"@babel/helper-wrap-function@^7.1.0", "@babel/helper-wrap-function@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" - integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.2.0" - -"@babel/helpers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" - integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== - dependencies: - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" - -"@babel/highlight@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" - integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== ->>>>>>> otp-ui-datetimeselector - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - "@babel/highlight@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" @@ -395,27 +292,20 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" integrity sha512-gqmspPZOMW3MIRb9HlrnbZHXI1/KHTOroBwN1NcLL6pWxzqzEKGvRTq0W/PxS45OtQGbaFikSQpkS5zbnsQm2w== -"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.8.7": +"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5", "@babel/parser@^7.7.0", "@babel/parser@^7.8.7": version "7.8.8" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.8.tgz#4c3b7ce36db37e0629be1f0d50a571d2f86f6cd4" integrity sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA== -<<<<<<< HEAD -"@babel/plugin-proposal-async-generator-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" - integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== -======= "@babel/parser@^7.8.6": version "7.8.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.7.tgz#7b8facf95d25fef9534aad51c4ffecde1a61e26a" integrity sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A== -"@babel/plugin-proposal-async-generator-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" - integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== ->>>>>>> otp-ui-datetimeselector +"@babel/plugin-proposal-async-generator-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" + integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-remap-async-to-generator" "^7.8.3" @@ -1109,16 +999,6 @@ dependencies: regenerator-runtime "^0.12.0" -<<<<<<< HEAD -"@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.7.tgz#8fefce9802db54881ba59f90bb28719b4996324d" - integrity sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.4.0", "@babel/template@^7.8.3", "@babel/template@^7.8.6": -======= "@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" @@ -1126,7 +1006,14 @@ dependencies: regenerator-runtime "^0.13.2" -"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4": +"@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.7.tgz#8fefce9802db54881ba59f90bb28719b4996324d" + integrity sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.4.0": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== @@ -1135,8 +1022,7 @@ "@babel/parser" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/template@^7.8.3": ->>>>>>> otp-ui-datetimeselector +"@babel/template@^7.8.3", "@babel/template@^7.8.6": version "7.8.6" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== @@ -1145,20 +1031,7 @@ "@babel/parser" "^7.8.6" "@babel/types" "^7.8.6" -<<<<<<< HEAD -"@babel/traverse@^7.1.0", "@babel/traverse@^7.1.4", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.4", "@babel/traverse@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.6.tgz#acfe0c64e1cd991b3e32eae813a6eb564954b5ff" - integrity sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.6" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" -======= -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.4", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.1.4", "@babel/traverse@^7.4.3": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== @@ -1169,18 +1042,11 @@ "@babel/helper-split-export-declaration" "^7.4.4" "@babel/parser" "^7.5.5" "@babel/types" "^7.5.5" ->>>>>>> otp-ui-datetimeselector debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -<<<<<<< HEAD -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.1.3", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.7.tgz#1fc9729e1acbb2337d5b6977a63979b4819f5d1d" - integrity sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw== -======= -"@babel/traverse@^7.4.5": +"@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.4", "@babel/traverse@^7.8.6": version "7.8.6" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.6.tgz#acfe0c64e1cd991b3e32eae813a6eb564954b5ff" integrity sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A== @@ -1195,17 +1061,16 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.1.3", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": +"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.1.3", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== ->>>>>>> otp-ui-datetimeselector dependencies: esutils "^2.0.2" lodash "^4.17.13" to-fast-properties "^2.0.0" -"@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.8.7": +"@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.8.7": version "7.8.7" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.7.tgz#1fc9729e1acbb2337d5b6977a63979b4819f5d1d" integrity sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw== @@ -1244,31 +1109,6 @@ version "0.8.8" resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== -<<<<<<< HEAD -======= - dependencies: - "@emotion/memoize" "0.7.4" - -"@emotion/memoize@0.7.4": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" - integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== - -"@emotion/stylis@^0.8.4": - version "0.8.5" - resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" - integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== - -"@emotion/unitless@^0.7.4": - version "0.7.5" - resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" - integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== - -"@jest/console@^24.7.1": - version "24.7.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545" - integrity sha512-iNhtIy2M8bXlAOULWVTUxmnelTLFneTNEkHCgPmgd+zNwy9zVddJ6oS5rZ9iwoscNdT5mMwUd0C51v/fSlzItg== ->>>>>>> otp-ui-datetimeselector dependencies: "@emotion/memoize" "0.7.4" @@ -1453,16 +1293,6 @@ version "1.1.0" resolved "https://registry.yarnpkg.com/@mapbox/polyline/-/polyline-1.1.0.tgz#7bdd1da3a25c1d059af3897e0ee581b7c7b80243" integrity sha512-NwiMS+AA/ZLIgd69YYXtQ0jtIBu8nQuVaRr4NxBoRjEd9ddKDoe4q8a51Ukk7Vj+jwQtbupqmvoLni1QhnJ4Pg== -<<<<<<< HEAD -======= - dependencies: - meow "^5.0.0" - -"@nodelib/fs.scandir@2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.1.tgz#7fa8fed654939e1a39753d286b48b4836d00e0eb" - integrity sha512-NT/skIZjgotDSiXs0WqYhgcuBKhUMgfekCmCGtkUAiLqZdOnrdjmZr9wRl3ll64J9NF79uZ4fk16Dx0yMc/Xbg== ->>>>>>> otp-ui-datetimeselector dependencies: meow "^5.0.0" @@ -1622,53 +1452,6 @@ "@opentripplanner/icons" "^0.0.17" moment "^2.17.1" -"@opentripplanner/core-utils@^0.0.17": - version "0.0.17" - resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.17.tgz#6d436183e63615730e6ed05f87bf873d8885e8c3" - integrity sha512-JU+YA/DxCrKyfjFrWC34pPaMxDy3K7ABY+psnGzq7Y940qB3PeOMZyI6ZuoYnqMymtF4Y53zBpvMeMjkVoH3vw== - dependencies: - "@mapbox/polyline" "^1.1.0" - "@turf/along" "^6.0.1" - bowser "^2.7.0" - lodash.isequal "^4.5.0" - moment "^2.24.0" - moment-timezone "^0.5.27" - prop-types "^15.7.2" - qs "^6.9.1" - -"@opentripplanner/from-to-location-picker@^0.0.17": - version "0.0.17" - resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.17.tgz#41b594c7f047c5884a5f97630d452305b3151a85" - integrity sha512-PNIO3dXAbSFkG4qKgmw21wmDiDIordNtRBC8f7H9ruT4Fjo1SnDxW6Prj+5plPnVkhh5SzmXR8PfdDe13XsljA== - dependencies: - "@opentripplanner/core-utils" "^0.0.17" - "@opentripplanner/location-icon" "^0.0.17" - prop-types "^15.7.2" - -"@opentripplanner/icons@^0.0.17": - version "0.0.17" - resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.17.tgz#8843bbb9b35210714d62e3c5c74b94dee0631f94" - integrity sha512-1Ov1DgcFx7GwR3qO/NWdcyqtGDbXR/IZUEvUrb5mHPDrthejmuVYOCGUiDGl7avTxM7k85SKXMaRbQ3qSbp/eg== - dependencies: - "@opentripplanner/core-utils" "^0.0.17" - prop-types "^15.7.2" - -"@opentripplanner/location-icon@^0.0.17": - version "0.0.17" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.17.tgz#2793df54da3b1f50767f723236c30f0f87ca275a" - integrity sha512-kbIImQ/IHre/6gCifjuZGpuHWLddAAt9IF64Fhp4Lilou8nVJgdx9P3VyIcjt0nJmtLEV/p5zPJVVp+NzvGU9A== - dependencies: - styled-icons "^9.1.0" - -"@opentripplanner/trip-form@^0.0.17": - version "0.0.17" - resolved "https://registry.yarnpkg.com/@opentripplanner/trip-form/-/trip-form-0.0.17.tgz#1b52e938c9202e8f4acfc103aa7ba47bae940b21" - integrity sha512-taHdT9slB9WvuJBCZn7pjO+4i1KOvow789khzgLICA7Gp4xexMotn3e0lyyFyyNMoIo0Qod1J1B8sXjisU19kA== - dependencies: - "@opentripplanner/core-utils" "^0.0.17" - "@opentripplanner/icons" "^0.0.17" - moment "^2.17.1" - "@semantic-release/commit-analyzer@^6.1.0": version "6.3.3" resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.3.3.tgz#885f7e46e2f0aef23a23be0904dbf18d6ece45ca" @@ -1973,237 +1756,6 @@ dependencies: "@turf/helpers" "6.x" -"@styled-icons/boxicons-logos@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/boxicons-logos/-/boxicons-logos-9.4.1.tgz#774e7f73839e834445dcc0ae4c0c356221767664" - integrity sha512-DN6Za9paJeWkoIXI1newSSfDALIR8ecaAsgzP3ZD+NRJHy6idW+1ouC5p3DlRM29+Cp4yJ/z3bH9whBDbd7YXQ== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/boxicons-regular@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/boxicons-regular/-/boxicons-regular-9.4.1.tgz#742a1d0b5798c54f189b9278810d8110df8f9754" - integrity sha512-910zIWCB0JkEgk9I7zIIEdPc8xibg3xrT4Wo7gIu4lGEr4u9OOQT3c0ajJD7F+JlhWcWBVumzjfjOT8A5UjPJw== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/boxicons-solid@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/boxicons-solid/-/boxicons-solid-9.4.1.tgz#5219a0c900f2ccc5dc9056c4ee2d1c180d9dbdf1" - integrity sha512-7FvU6KSnxBprsidta3/0grTkimYWDUnSZCyLscT1OwjmfyFPpnLNmJASQDrEtORF2GPw5Y2gc/q6h2RI4OnYcA== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/crypto@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/crypto/-/crypto-9.4.1.tgz#9abe2a3165f78a1592ea1d910aa1e1210b990fef" - integrity sha512-qIjzvaw0kFykDN7PTGD8d3HvFVoX7kW7nwlvvzW/pGhVzpUHE7Mh2Syc04HpoknCgO0fCjAzXaxi9Igu3nS9NA== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/entypo-social@^9.5.0": - version "9.5.0" - resolved "https://registry.yarnpkg.com/@styled-icons/entypo-social/-/entypo-social-9.5.0.tgz#d5c69c928dbcb83c39d8359e50c148bd497bcaff" - integrity sha512-yEpaJtTUriZSZPT/iqxgNONgxDYr0MHXANvoUW2CB0Ey4zTZst+2x7EJ9KgL2CjdBgA0bs8hnx5etGHUi8BtuA== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/entypo@^9.5.0": - version "9.5.0" - resolved "https://registry.yarnpkg.com/@styled-icons/entypo/-/entypo-9.5.0.tgz#170c484e53820ec683d338353e44bae71d773611" - integrity sha512-gy/CXs45g1o5c61BnSnpd/cb84sXIARPByOa354FkN0aUHqepbF2qtBjZ3Udho6zWpm1nGOOUiawQb53PnG9vg== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/evil@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/evil/-/evil-9.4.1.tgz#159d5c026e7d0689b453684b719ecb13e4ea0fe5" - integrity sha512-ejCBH+aXrjtBM+iMJomYlZ/xiJ+NGHVlIfQmkgD6roxtJzMzAmhwXgC5S3p0no2n1EXluUdJiufrI/QtP7iNbA== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/fa-brands@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/fa-brands/-/fa-brands-9.4.1.tgz#ad329324875bb7db00ff5fb68ce98203fbe03b7a" - integrity sha512-zqlS/Y3mQLdBgRhZo1op5+twKYYwfS7OjqL90N+etokIWPqv1b7nwPWzwKoRpqDfCt/gyqmgxXqWufFd0CAx7Q== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/fa-regular@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/fa-regular/-/fa-regular-9.4.1.tgz#556b1840e97db031b5c07a7175b57103e3fd988b" - integrity sha512-tpgLOUPECtWNwVs7G82IaDkb1T13yNyDNZBB85sEO02ldHAZe6tt0Yi5gGCBExtU/p+4/jLTcU+pcoh/mySlVg== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/fa-solid@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/fa-solid/-/fa-solid-9.4.1.tgz#d30de755f8fee6e932032e97fa592cb1eaa21d8e" - integrity sha512-ZyPxbCFmuuy3XotCI0SgHyUn3gTvQXm+iVnh+8r0gR8Kd88iTTubTqxgtdS0lrefaB4ayl6vEg20Dv9e9PvYVg== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/feather@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/feather/-/feather-9.4.1.tgz#5e8a4193e70d477e9ad249f921c6d637f9fc631c" - integrity sha512-ucMOPhvaCp6N4lxL+z/66Kech20jAdMfewER732jhjV8P3FknoAY2+0CXXE+tBvJoJ/SOJZDOsW58Gr7yAWXOQ== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/foundation@^9.5.0": - version "9.5.0" - resolved "https://registry.yarnpkg.com/@styled-icons/foundation/-/foundation-9.5.0.tgz#011ac022ffcb20868385b97bf4fb173cceaf634d" - integrity sha512-O4Y62bfZfZjhZDXYtJYd/RsID1vpmMtgLSP54b0KbvY70hjdlFQZ0ZVR2fAzA0YSK90VjbYBbQDCCyqim4v3qA== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/heroicons-outline@^9.5.0": - version "9.5.0" - resolved "https://registry.yarnpkg.com/@styled-icons/heroicons-outline/-/heroicons-outline-9.5.0.tgz#235046e3310e10165b9587a122a60e83e94e51de" - integrity sha512-MMY5NjVVimhTHhk+ADR4/a2KpjIjbmzW+SNPRCKMWgGyqXx1NjBrD72bnvrzApLdMnDvEsM/DYK6DVUW7UZhKw== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/heroicons-solid@^9.5.0": - version "9.5.0" - resolved "https://registry.yarnpkg.com/@styled-icons/heroicons-solid/-/heroicons-solid-9.5.0.tgz#2ed99d05a9a82c742eb7667c75b0d9c319fdee10" - integrity sha512-dYQYdxZ0BkGpl3nGQmkvONF1+Yq+E6I9S7snba1mirCDWQpIdgylGm+Z9CM/OvdIlhr5da00D4oZu+2CiGdCFQ== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/icomoon@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/icomoon/-/icomoon-9.4.1.tgz#b75118a6d10cb8f5e7e15ae7a323009dd2f98e7e" - integrity sha512-oEw84P55EahJFdhQPBnUbvQqB08LuJKq75AkwaCSqk6w1DIEDbjY72lb6mbAwZB/AwNYeRVJJhTHaF1MNY103A== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/material@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/material/-/material-9.4.1.tgz#26169db802a10e333a5608aec2611878dd45f6fe" - integrity sha512-7Ucsm7RxCrnznZb+WDptBrGE45ZVBODm6J0e+fy0hvO9sjWAcuoKffYTcQEhDS2pqC1Rcc/nSZHDbqwZrpGJVw== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/octicons@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/octicons/-/octicons-9.4.1.tgz#9670b6a3fc70eb80961fa0771464d8dbde18a6ea" - integrity sha512-MHiMMah2agDpmk8JcNLgeZab74TO3elM8CIYIQahrucyVbHfCY7mX1z8OOyXZwrf/hgrBKK4nUM4jf0wxk70+Q== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/open-iconic@^9.5.0": - version "9.5.0" - resolved "https://registry.yarnpkg.com/@styled-icons/open-iconic/-/open-iconic-9.5.0.tgz#03c70256244ee4a1ed422563f3ce3d0270a6beb8" - integrity sha512-mSDnCPDKYXhXY+oNfgNKMj2+ltl63k8QIC6bCDsX18bYXDqkeEwKthfNw0minabyP4Tq+yJe/B03RH+EdQWmDg== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/remix-fill@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/remix-fill/-/remix-fill-9.4.1.tgz#afc7141d0c5c0606ef190b0cebe4793a4449b389" - integrity sha512-OlxQudeM/u+IAHacSVwwiuSYBDSsQNKA4gr8WSFHpy1CEciLc/hE/aNJP+SLcBETdg/C/kJIj8JNme5B8aYIeg== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/remix-line@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/remix-line/-/remix-line-9.4.1.tgz#1d4fdaef53f3c366a746f054d70dcd138a4e567e" - integrity sha512-NAdR8LD7ugeUhmd6W3v+GA5/6OBexe15fjQTt1kFHYclS+2nrLQ7MA4kF5SkwsRQNGPy+3CMN5cQoMy5R8NAtQ== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/styled-icon@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/styled-icon/-/styled-icon-9.4.1.tgz#9dc236c85afd89edc2bc7265ec7858cbc35d4234" - integrity sha512-qF0E2QOcyR1e6rh1QkKGsFt9vuayhZBJEKRa8erbHpOYLRNiEmoF1dLEVVMUKjnj5jAzzk0fNd8jSz0su3kpKg== - dependencies: - "@emotion/is-prop-valid" "^0.8.6" - tslib "^1.9.3" - -"@styled-icons/typicons@^9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@styled-icons/typicons/-/typicons-9.4.1.tgz#b201080bc3985cab1f0ff0e8827350aea14cb309" - integrity sha512-gV3W836B7k7FuNjZJt2H7WYcV+wPf7L5RYJQUL99lPdvADeOUhG2hIVIKvmS4F2Tc3XbyYbRmSBPTHtu4Fcftg== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@styled-icons/zondicons@^9.5.0": - version "9.5.0" - resolved "https://registry.yarnpkg.com/@styled-icons/zondicons/-/zondicons-9.5.0.tgz#27f184764f586f31aa9256905ab3db1cd833bfa8" - integrity sha512-26PYTzSr85tf1+P/N1zaqbLuJLG1YP9rp3QN1TsCcM19gT0Y3WzVUmiNHdv15jGO9bH/jpV9b7TjuT+1gkMPCw== - dependencies: - "@styled-icons/styled-icon" "^9.4.1" - tslib "^1.9.3" - -"@turf/along@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@turf/along/-/along-6.0.1.tgz#595cecdc48fc7fcfa83c940a8e3eb24d4c2e04d4" - integrity sha512-6PptAcrsFR3o0Flpktk8Vo68W2txEVTh14zjoTVu+H5docd2+pv5/upA77bg3YFBoJgAxmUFt1leDdjReJ44BQ== - dependencies: - "@turf/bearing" "6.x" - "@turf/destination" "6.x" - "@turf/distance" "6.x" - "@turf/helpers" "6.x" - "@turf/invariant" "6.x" - -"@turf/bearing@6.x": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@turf/bearing/-/bearing-6.0.1.tgz#8da5d17092e571f170cde7bfb2e5b0d74923c92d" - integrity sha512-mXY1NozqV9EFfBTbUItujwfqfQF0G/Xe2fzvnZle90ekPEUfhi4Dgf5JswJTd96J9LiT8kcd6Jonp5khnx0wIg== - dependencies: - "@turf/helpers" "6.x" - "@turf/invariant" "6.x" - -"@turf/destination@6.x": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@turf/destination/-/destination-6.0.1.tgz#5275887fa96ec463f44864a2c17f0b712361794a" - integrity sha512-MroK4nRdp7as174miCAugp8Uvorhe6rZ7MJiC9Hb4+hZR7gNFJyVKmkdDDXIoCYs6MJQsx0buI+gsCpKwgww0Q== - dependencies: - "@turf/helpers" "6.x" - "@turf/invariant" "6.x" - -"@turf/distance@6.x": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@turf/distance/-/distance-6.0.1.tgz#0761f28784286e7865a427c4e7e3593569c2dea8" - integrity sha512-q7t7rWIWfkg7MP1Vt4uLjSEhe5rPfCO2JjpKmk7JC+QZKEQkuvHEqy3ejW1iC7Kw5ZcZNR3qdMGGz+6HnVwqvg== - dependencies: - "@turf/helpers" "6.x" - "@turf/invariant" "6.x" - -"@turf/helpers@6.x": - version "6.1.4" - resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-6.1.4.tgz#d6fd7ebe6782dd9c87dca5559bda5c48ae4c3836" - integrity sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g== - -"@turf/invariant@6.x": - version "6.1.2" - resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-6.1.2.tgz#6013ed6219f9ac2edada9b31e1dfa5918eb0a2f7" - integrity sha512-WU08Ph8j0J2jVGlQCKChXoCtI50BB3yEH21V++V0T4cR1T27HKCxkehV2sYMwTierfMBgjwSwDIsxnR4/2mWXg== - dependencies: - "@turf/helpers" "6.x" - "@types/babel__core@^7.1.0": version "7.1.6" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.6.tgz#16ff42a5ae203c9af1c6e190ed1f30f83207b610" @@ -3262,16 +2814,6 @@ babel-plugin-react-require@^3.1.1: babel-plugin-syntax-jsx "^6.18.0" lodash "^4.17.11" -"babel-plugin-styled-components@>= 1": - version "1.10.7" - resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.7.tgz#3494e77914e9989b33cc2d7b3b29527a949d635c" - integrity sha512-MBMHGcIA22996n9hZRf/UJLVVgkEOITuR2SvjHLb5dSTUyR4ZRGn+ngITapes36FI3WLxZHfRhkA1ffHxihOrg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-module-imports" "^7.0.0" - babel-plugin-syntax-jsx "^6.18.0" - lodash "^4.17.11" - babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" @@ -5421,18 +4963,6 @@ css-to-react-native@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== -<<<<<<< HEAD -======= - dependencies: - camelize "^1.0.0" - css-color-keywords "^1.0.0" - postcss-value-parser "^4.0.2" - -css-tree@1.0.0-alpha.29: - version "1.0.0-alpha.29" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" - integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== ->>>>>>> otp-ui-datetimeselector dependencies: camelize "^1.0.0" css-color-keywords "^1.0.0" @@ -5771,14 +5301,14 @@ debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: dependencies: ms "^2.1.1" -debug@^3.1.0, debug@^3.2.6: +debug@^3.1.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" -debuglog@*, debuglog@^1.0.1: +debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= @@ -5956,11 +5486,6 @@ detect-indent@^5.0.0, detect-indent@~5.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" @@ -7994,13 +7519,7 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -<<<<<<< HEAD -hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== -======= -hoist-non-react-statics@^3.0.0: +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -8011,7 +7530,6 @@ hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" integrity sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA== ->>>>>>> otp-ui-datetimeselector dependencies: react-is "^16.7.0" @@ -8182,7 +7700,7 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -8269,7 +7787,7 @@ import-local@^2.0.0: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" -imurmurhash@*, imurmurhash@^0.1.4: +imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= @@ -9981,11 +9499,6 @@ lockfile@^1.0.4: dependencies: signal-exit "^3.0.2" -lodash._baseindexof@*: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" - integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw= - lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -9994,23 +9507,6 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" -lodash._bindcallback@*: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= - -lodash._cacheindexof@*: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" - integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI= - -lodash._createcache@*: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" - integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM= - dependencies: - lodash._getnative "^3.0.0" - lodash._createcompounder@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz#5dd2cb55372d6e70e0e2392fb2304d6631091075" @@ -10024,11 +9520,6 @@ lodash._createset@~4.0.0: resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= -lodash._getnative@*, lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= - lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -10148,11 +9639,6 @@ lodash.omit@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= -lodash.restparam@*: - version "3.6.1" - resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= - lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" @@ -10656,34 +10142,10 @@ meow@^5.0.0: trim-newlines "^2.0.0" yargs-parser "^10.0.0" -<<<<<<< HEAD merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -======= -meow@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" - integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - yargs-parser "^10.0.0" - -merge-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= - dependencies: - readable-stream "^2.0.1" ->>>>>>> otp-ui-datetimeselector merge2@^1.2.3, merge2@^1.3.0: version "1.3.0" @@ -10978,16 +10440,6 @@ moment-timezone@^0.5.23, moment-timezone@^0.5.27: dependencies: moment ">= 2.9.0" -<<<<<<< HEAD -======= -moment-timezone@^0.5.27: - version "0.5.28" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.28.tgz#f093d789d091ed7b055d82aa81a82467f72e4338" - integrity sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw== - dependencies: - moment ">= 2.9.0" - ->>>>>>> otp-ui-datetimeselector "moment@>= 2.9.0", moment@>=1.6.0, moment@^2.17.1, moment@^2.24.0: version "2.24.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" @@ -11073,15 +10525,6 @@ nearley@^2.7.10: randexp "0.4.6" semver "^5.4.1" -needle@^2.2.1: - version "2.3.3" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.3.tgz#a041ad1d04a871b0ebb666f40baaf1fb47867117" - integrity sha512-EkY0GeSq87rWp1hoq/sH/wnTWgFVhYlnIkbJ0YJFfRgEFlz2RraCjBpFQ+vrEgEdp0ThfyHADmkChEhcb7PKyw== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - neo-async@^2.5.0, neo-async@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" @@ -11208,22 +10651,6 @@ node-notifier@^5.4.2: shellwords "^0.1.1" which "^1.3.0" -node-pre-gyp@*: - version "0.14.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" - integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4.4.2" - node-releases@^1.1.50: version "1.1.52" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9" @@ -11354,7 +10781,7 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.8: +npm-packlist@^1.1.12, npm-packlist@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== @@ -11541,7 +10968,7 @@ npm@^6.10.3: worker-farm "^1.7.0" write-file-atomic "^2.4.3" -npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2: +npmlog@^4.1.2, npmlog@~4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -13198,11 +12625,6 @@ postcss-value-parser@^4.0.2: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d" integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg== -postcss-value-parser@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d" - integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg== - postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" @@ -13545,11 +12967,6 @@ qs@^6.3.0, qs@^6.4.0, qs@^6.5.1, qs@^6.9.1: resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9" integrity sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA== -qs@^6.9.1: - version "6.9.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9" - integrity sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA== - qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -13654,7 +13071,7 @@ raw-body@~1.1.0: bytes "1" string_decoder "0.10" -rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: +rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -14222,7 +13639,7 @@ regenerator-runtime@^0.12.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== -regenerator-runtime@^0.13.4: +regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4: version "0.13.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== @@ -14692,7 +14109,7 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^2.5.0, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@^2.5.0, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -14855,7 +14272,7 @@ semver-regex@^2.0.0: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -14944,20 +14361,16 @@ sha@^3.0.0: dependencies: graceful-fs "^4.1.2" -<<<<<<< HEAD shallow-equal@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== -======= ->>>>>>> otp-ui-datetimeselector shallowequal@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== -<<<<<<< HEAD shasum-object@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" @@ -14965,8 +14378,6 @@ shasum-object@^1.0.0: dependencies: fast-safe-stringify "^2.0.7" -======= ->>>>>>> otp-ui-datetimeselector shasum@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" @@ -15831,7 +15242,7 @@ tapable@^0.2.7, tapable@~0.2.5: resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8" integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A== -tar@^4.4.10, tar@^4.4.12, tar@^4.4.13, tar@^4.4.2: +tar@^4.4.10, tar@^4.4.12, tar@^4.4.13: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -16185,11 +15596,6 @@ tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== -tslib@^1.9.3: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== - tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" From 9956ca45e5fc9610fbd01c5cdbc01ad62b0b9370 Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Sun, 15 Mar 2020 14:15:47 -0700 Subject: [PATCH 020/115] refactor(map): transition a few more map components to otp-ui --- lib/actions/location.js | 2 +- lib/actions/map.js | 12 +- lib/components/app/print-layout.js | 10 +- lib/components/app/responsive-webapp.js | 2 +- lib/components/form/user-settings.js | 16 +- lib/components/map/connected-stop-marker.js | 20 ++ lib/components/map/connected-stops-overlay.js | 20 ++ .../map/connected-transitive-overlay.js | 39 ++++ lib/components/map/default-map.js | 8 +- lib/components/map/stops-overlay.js | 178 ------------------ lib/components/mobile/welcome-screen.js | 2 +- lib/components/viewers/stop-viewer.js | 4 +- lib/reducers/create-otp-reducer.js | 4 +- 13 files changed, 114 insertions(+), 203 deletions(-) create mode 100644 lib/components/map/connected-stop-marker.js create mode 100644 lib/components/map/connected-stops-overlay.js create mode 100644 lib/components/map/connected-transitive-overlay.js delete mode 100644 lib/components/map/stops-overlay.js diff --git a/lib/actions/location.js b/lib/actions/location.js index 7adf4cbda..e4b778986 100644 --- a/lib/actions/location.js +++ b/lib/actions/location.js @@ -18,7 +18,7 @@ export function getCurrentPosition (setAsType = null, onSuccess) { dispatch(receivedPositionResponse({ position })) if (setAsType) { console.log('setting location to current position') - dispatch(setLocationToCurrent({ type: setAsType })) + dispatch(setLocationToCurrent({ locationType: setAsType })) onSuccess && onSuccess() } } else { diff --git a/lib/actions/map.js b/lib/actions/map.js index 0de7887b0..a340c1f06 100644 --- a/lib/actions/map.js +++ b/lib/actions/map.js @@ -41,9 +41,9 @@ export function clearLocation (payload) { export function onLocationSelected ({ locationType, location, resultType }) { return function (dispatch, getState) { if (resultType === 'CURRENT_LOCATION') { - dispatch(setLocationToCurrent({ type: locationType })) + dispatch(setLocationToCurrent({ locationType })) } else { - dispatch(setLocation({ location, type: locationType })) + dispatch(setLocation({ location, locationType })) } } } @@ -58,12 +58,12 @@ export function setLocation (payload) { .reverse({ point: payload.location }) .then((location) => { dispatch(settingLocation({ - type: payload.type, + locationType: payload.locationType, location })) }).catch(err => { dispatch(settingLocation({ - type: payload.type, + locationType: payload.locationType, location: payload.location })) console.warn(err) @@ -96,11 +96,11 @@ export function switchLocations () { const { from, to } = getState().otp.currentQuery // First, reverse the locations. dispatch(settingLocation({ - type: 'from', + locationType: 'from', location: to })) dispatch(settingLocation({ - type: 'to', + locationType: 'to', location: from })) // Then kick off a routing query (if the query is invalid, search will abort). diff --git a/lib/components/app/print-layout.js b/lib/components/app/print-layout.js index d6d126747..0222b0f0c 100644 --- a/lib/components/app/print-layout.js +++ b/lib/components/app/print-layout.js @@ -1,11 +1,11 @@ -import React, { Component } from 'react' +import BaseMap from '@opentripplanner/base-map' +import EndpointsOverlay from '@opentripplanner/endpoints-overlay' +import TransitiveOverlay from '@opentripplanner/transitive-overlay' import PropTypes from 'prop-types' -import { connect } from 'react-redux' +import React, { Component } from 'react' import { Button } from 'react-bootstrap' +import { connect } from 'react-redux' -import BaseMap from '../map/base-map' -import EndpointsOverlay from '../map/endpoints-overlay' -import TransitiveOverlay from '../map/transitive-overlay' import PrintableItinerary from '../narrative/printable/printable-itinerary' import { parseUrlQueryString } from '../../actions/form' import { routingQuery } from '../../actions/api' diff --git a/lib/components/app/responsive-webapp.js b/lib/components/app/responsive-webapp.js index 9705cd327..284200975 100644 --- a/lib/components/app/responsive-webapp.js +++ b/lib/components/app/responsive-webapp.js @@ -55,7 +55,7 @@ class ResponsiveWebapp extends Component { // if in mobile mode and from field is not set, use current location as from and recenter map if (isMobile() && this.props.query.from === null) { - this.props.setLocationToCurrent({ type: 'from' }) + this.props.setLocationToCurrent({ locationType: 'from' }) this.props.setMapCenter(pt) if (this.props.initZoomOnLocate) { this.props.setMapZoom({ zoom: this.props.initZoomOnLocate }) diff --git a/lib/components/form/user-settings.js b/lib/components/form/user-settings.js index 2daed8738..fe9e88cb4 100644 --- a/lib/components/form/user-settings.js +++ b/lib/components/form/user-settings.js @@ -138,9 +138,19 @@ class Place extends Component { window.alert(`Enter origin/destination in the form (or set via map click) and click the resulting marker to set as ${location.type} location.`) } else { // If 'to' not set and 'from' does not match location, set as 'to'. - if (!query.to && (!query.from || !matchLatLon(location, query.from))) setLocation({ type: 'to', location }) - // Vice versa for setting as 'from'. - else if (!query.from && !matchLatLon(location, query.to)) setLocation({ type: 'from', location }) + if ( + !query.to && ( + !query.from || !matchLatLon(location, query.from) + ) + ) { + setLocation({ locationType: 'to', location }) + } else if ( + // Vice versa for setting as 'from'. + !query.from && + !matchLatLon(location, query.to) + ) { + setLocation({ locationType: 'from', location }) + } } } diff --git a/lib/components/map/connected-stop-marker.js b/lib/components/map/connected-stop-marker.js new file mode 100644 index 000000000..4ae8fbdd9 --- /dev/null +++ b/lib/components/map/connected-stop-marker.js @@ -0,0 +1,20 @@ +import DefaultStopMarker from '@opentripplanner/stops-overlay/lib/stop-marker' +import { connect } from 'react-redux' + +import { setLocation } from '../../actions/map' +import { setViewedStop } from '../../actions/ui' + +// connect to the redux store + +const mapStateToProps = (state, ownProps) => { + return { + languageConfig: state.otp.config.language + } +} + +const mapDispatchToProps = { + setLocation, + setViewedStop +} + +export default connect(mapStateToProps, mapDispatchToProps)(DefaultStopMarker) diff --git a/lib/components/map/connected-stops-overlay.js b/lib/components/map/connected-stops-overlay.js new file mode 100644 index 000000000..ff77d1a07 --- /dev/null +++ b/lib/components/map/connected-stops-overlay.js @@ -0,0 +1,20 @@ +import StopsOverlay from '@opentripplanner/stops-overlay' +import StopMarker from './connected-stop-marker' +import { connect } from 'react-redux' + +import { findStopsWithinBBox } from '../../actions/api' + +// connect to the redux store + +const mapStateToProps = (state, ownProps) => { + return { + StopMarker, + stops: state.otp.overlay.transit.stops + } +} + +const mapDispatchToProps = { + refreshStops: findStopsWithinBBox +} + +export default connect(mapStateToProps, mapDispatchToProps)(StopsOverlay) diff --git a/lib/components/map/connected-transitive-overlay.js b/lib/components/map/connected-transitive-overlay.js new file mode 100644 index 000000000..11f8c1f0e --- /dev/null +++ b/lib/components/map/connected-transitive-overlay.js @@ -0,0 +1,39 @@ +import { itineraryToTransitive } from '@opentripplanner/core-utils/lib/map' +import TransitiveCanvasOverlay from '@opentripplanner/transitive-overlay' +import { connect } from 'react-redux' + +import { getActiveSearch, getActiveItineraries } from '../../util/state' + +// connect to the redux store + +const mapStateToProps = (state, ownProps) => { + const activeSearch = getActiveSearch(state.otp) + let transitiveData = null + if ( + activeSearch && + activeSearch.query.routingType === 'ITINERARY' && + activeSearch.response && + activeSearch.response.plan + ) { + const itins = getActiveItineraries(state.otp) + // TODO: prevent itineraryToTransitive() from being called more than needed + transitiveData = itineraryToTransitive(itins[activeSearch.activeItinerary]) + } else if ( + activeSearch && + activeSearch.response && + activeSearch.response.otp + ) { + transitiveData = activeSearch.response.otp + } + + return { + activeItinerary: activeSearch && activeSearch.activeItinerary, + routingType: activeSearch && activeSearch.query && activeSearch.query.routingType, + transitiveData, + visible: true + } +} + +const mapDispatchToProps = {} + +export default connect(mapStateToProps, mapDispatchToProps)(TransitiveCanvasOverlay) diff --git a/lib/components/map/default-map.js b/lib/components/map/default-map.js index 7c3e32d35..d0051242f 100644 --- a/lib/components/map/default-map.js +++ b/lib/components/map/default-map.js @@ -11,9 +11,9 @@ import { import BoundsUpdatingOverlay from './bounds-updating-overlay' import EndpointsOverlay from './connected-endpoints-overlay' import ParkAndRideOverlay from './connected-park-and-ride-overlay' -// import StopsOverlay from './connected-stops-overlay' +import StopsOverlay from './connected-stops-overlay' // import StopViewerOverlay from '@opentripplanner/stop-viewer-overlay' -// import TileOverlay from './tile-overlay' +import TileOverlay from './tile-overlay' import TransitiveOverlay from './connected-transitive-overlay' // import TripViewerOverlay from '@opentripplanner/trip-viewer-overlay' // import RouteViewerOverlay from '@opentripplanner/route-viewer-overlay' @@ -91,8 +91,8 @@ class DefaultMap extends Component { // ) case 'park-and-ride': return - // case 'stops': return - // case 'tile': return + case 'stops': return + case 'tile': return // case 'micromobility-rental': return ( // { - this._refreshStops() - }) - } - - // TODO: determine why the default MapLayer componentWillUnmount() method throws an error - componentWillUnmount () { } - - _refreshStops () { - if (this.props.leaflet.map.getZoom() < this.props.minZoom) { - this.forceUpdate() - return - } - - const bounds = this.props.leaflet.map.getBounds() - if (!bounds.equals(this.lastBounds)) { - setTimeout(() => { - this.props.refreshStops({ - minLat: bounds.getSouth(), - maxLat: bounds.getNorth(), - minLon: bounds.getWest(), - maxLon: bounds.getEast() - }) - this.lastBounds = bounds - }, 300) - } - } - - createLeafletElement () { - } - - updateLeafletElement () { - } - - render () { - const { leaflet, minZoom, setLocation, setViewedStop, setMainPanelContent, stops, languageConfig } = this.props - const mobileView = isMobile() - - // Don't render if below zoom threshold or no stops visible - if (this.props.leaflet.map.getZoom() < minZoom || !stops || stops.length === 0) { - return - } - - // Helper to create StopMarker from stop - const createStopMarker = (stop) => - - // Singleton case; return FeatureGroup with single StopMarker - if (stops.length === 1) { - return {createStopMarker(stops[0])} - } - - // Otherwise, return FeatureGroup with mapped array of StopMarkers - return {stops.map(stop => createStopMarker(stop))} - } -} - -class StopMarker extends Component { - static propTypes = { - mobileView: PropTypes.bool, - setLocation: PropTypes.func, - setViewedStop: PropTypes.func, - setMainPanelContent: PropTypes.func, - stop: PropTypes.object - } - - _onClickView = () => { - this.props.setMainPanelContent(null) - this.props.setViewedStop({ stopId: this.props.stop.id }) - } - - render () { - const { setLocation, stop, languageConfig } = this.props - const { id, name, lat, lon } = stop - const idArr = id.split(':') - const radius = 20 - const half = radius / 2 - const quarter = radius / 4 - const html = `
` - const icon = divIcon({ - html, - className: 'stop-overlay-bg', - iconSize: radius - }) - - return ( - - -
-
{name}
- -
Agency: {idArr[0]}
-
- Stop ID: {idArr[1]} - {/* The Stop Viewer button - * Note: we use a vanilla Button instead of ViewStopButton because - * connected components don't work within react-leaflet Popups) - * TODO: Make ViewStopButton work here, perhaps w/ React 16 portals - */} - -
- - {/* The "Set as [from/to]" ButtonGroup */} -
- -
-
-
-
- ) - } -} - -// connect to the redux store - -const mapStateToProps = (state, ownProps) => { - return { - stops: state.otp.overlay.transit.stops, - queryMode: state.otp.currentQuery.mode, - languageConfig: state.otp.config.language - } -} - -const mapDispatchToProps = { - refreshStops: findStopsWithinBBox, - clearStops, - setLocation, - setViewedStop, - setMainPanelContent -} - -export default connect(mapStateToProps, mapDispatchToProps)(withLeaflet(StopsOverlay)) diff --git a/lib/components/mobile/welcome-screen.js b/lib/components/mobile/welcome-screen.js index 0d2414ea5..d31712c05 100644 --- a/lib/components/mobile/welcome-screen.js +++ b/lib/components/mobile/welcome-screen.js @@ -31,7 +31,7 @@ class MobileWelcomeScreen extends Component { // endpoint to be the current user location. (If selected as the 'to' point, // no action is needed since 'from' is the current location by default.) if (selection.type === 'from') { - this.props.setLocationToCurrent({ type: 'to' }) + this.props.setLocationToCurrent({ locationType: 'to' }) } } diff --git a/lib/components/viewers/stop-viewer.js b/lib/components/viewers/stop-viewer.js index e5a841729..424d7278b 100644 --- a/lib/components/viewers/stop-viewer.js +++ b/lib/components/viewers/stop-viewer.js @@ -27,14 +27,14 @@ class StopViewer extends Component { _backClicked = () => this.props.setMainPanelContent(null) - _setLocationFromStop = (type) => { + _setLocationFromStop = (locationType) => { const { setLocation, stopData } = this.props const location = { name: stopData.name, lat: stopData.lat, lon: stopData.lon } - setLocation({ type, location, reverseGeocode: true }) + setLocation({ locationType, location, reverseGeocode: true }) this.setState({ popupPosition: null }) } diff --git a/lib/reducers/create-otp-reducer.js b/lib/reducers/create-otp-reducer.js index 61ced6a35..d265283e4 100644 --- a/lib/reducers/create-otp-reducer.js +++ b/lib/reducers/create-otp-reducer.js @@ -368,12 +368,12 @@ function createOtpReducer (config, initialQuery) { case 'SET_LOCATION': return update(state, { currentQuery: { - [action.payload.type]: { $set: action.payload.location } + [action.payload.locationType]: { $set: action.payload.location } } }) case 'CLEAR_LOCATION': return update(state, { - currentQuery: { [action.payload.type]: { $set: null } } + currentQuery: { [action.payload.locationType]: { $set: null } } }) case 'SET_QUERY_PARAM': From a310ff208ae84ce5b29d0184abf3697e470ffd73 Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Sun, 15 Mar 2020 16:04:59 -0700 Subject: [PATCH 021/115] refactor(map): add in some more otp-ui components --- lib/components/map/base-map.js | 404 ------------------ .../map/connected-route-viewer-overlay.js | 17 + .../map/connected-stop-viewer-overlay.js | 19 + .../map/connected-trip-viewer-overlay.js | 17 + .../map/connected-vehicle-rental-overlay.js | 45 ++ lib/components/map/default-map.js | 72 ++-- lib/components/map/route-viewer-overlay.js | 86 ---- lib/components/map/stop-viewer-overlay.js | 75 ---- lib/components/map/trip-viewer-overlay.js | 60 --- lib/components/map/vehicle-rental-overlay.js | 247 ----------- lib/components/map/zipcar-overlay.js | 10 +- 11 files changed, 142 insertions(+), 910 deletions(-) delete mode 100644 lib/components/map/base-map.js create mode 100644 lib/components/map/connected-route-viewer-overlay.js create mode 100644 lib/components/map/connected-stop-viewer-overlay.js create mode 100644 lib/components/map/connected-trip-viewer-overlay.js create mode 100644 lib/components/map/connected-vehicle-rental-overlay.js delete mode 100644 lib/components/map/route-viewer-overlay.js delete mode 100644 lib/components/map/stop-viewer-overlay.js delete mode 100644 lib/components/map/trip-viewer-overlay.js delete mode 100644 lib/components/map/vehicle-rental-overlay.js diff --git a/lib/components/map/base-map.js b/lib/components/map/base-map.js deleted file mode 100644 index ccfa64966..000000000 --- a/lib/components/map/base-map.js +++ /dev/null @@ -1,404 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import { connect } from 'react-redux' -import isEqual from 'lodash.isequal' -import { Map, TileLayer, LayersControl, Popup, CircleMarker } from 'react-leaflet' - -import FromToLocationPicker from '@opentripplanner/from-to-location-picker' - -import { setLocation, setMapPopupLocation, setMapPopupLocationAndGeocode } from '../../actions/map' -import { setMapZoom, updateOverlayVisibility } from '../../actions/config' -import { constructLocation } from '../../util/map' -import { getActiveItinerary, getActiveSearch } from '../../util/state' -import { getItineraryBounds, getLegBounds, legLocationAtDistance } from '../../util/itinerary' -import { isMobile } from '../../util/ui' - -import L from 'leaflet' - -L.Evented.addInitHook(function () { - if (this) this._singleClickTimeout = null - this.on('click', this._scheduleSingleClick, this) - this.on('dblclick dragstart zoomstart', this._cancelSingleClick, this) -}) - -L.Evented.include({ - _cancelSingleClick: function () { - // This timeout is key to workaround an issue where double-click events - // are fired in this order on some touch browsers: ['click', 'dblclick', 'click'] - // instead of ['click', 'click', 'dblclick'] - setTimeout(this._clearSingleClickTimeout.bind(this), 0) - }, - - _scheduleSingleClick: function (e) { - this._clearSingleClickTimeout() - - this._singleClickTimeout = setTimeout( - this._fireSingleClick.bind(this, e), - (this.options.singleClickTimeout || 500) - ) - }, - - _fireSingleClick: function (e) { - if (!e.originalEvent._stopped) { - this.fire('singleclick', L.Util.extend(e, { type: 'singleclick' })) - } - }, - - _clearSingleClickTimeout: function () { - if (this._singleClickTimeout !== null) { - clearTimeout(this._singleClickTimeout) - this._singleClickTimeout = null - } - } -}) - -class BaseMap extends Component { - static propTypes = { - config: PropTypes.object, - mapClick: PropTypes.func, - setLocation: PropTypes.func, // TODO: rename from action name to avoid namespace conflict? - toggleName: PropTypes.element - } - - /* Internal Methods */ - - _setLocationFromPopup = (type) => { - const { setMapPopupLocation, setLocation, popupLocation: location } = this.props - setMapPopupLocation({ location: null }) - setLocation({ type, location, reverseGeocode: true }) - if (typeof this.props.onSetLocation === 'function') { - this.props.onSetLocation({ type, location }) - } - } - - _onClickTo = () => this._setLocationFromPopup('to') - - _onClickFrom = () => this._setLocationFromPopup('from') - - _onLeftClick = (e) => { - this.props.setMapPopupLocationAndGeocode({ location: constructLocation(e.latlng) }) - if (typeof this.props.onClick === 'function') this.props.onClick(e) - } - - _onOverlayAdd = ({ name }) => this.props.updateOverlayVisibility({ [name]: true }) - - _onOverlayRemove = ({ name }) => this.props.updateOverlayVisibility({ [name]: false }) - - // TODO: make map controlled component - _mapBoundsChanged = e => { - const bounds = e.target.getBounds() - if (!bounds.equals(this.props.mapState.bounds)) { - this.props.updateMapState({ bounds }) - } - } - - _onViewportChanged = ({ zoom }) => this.props.setMapZoom({ zoom }) - - _updateBounds (oldProps, newProps) { - // TODO: maybe setting bounds ought to be handled in map props... - - oldProps = oldProps || {} - newProps = newProps || {} - - // Don't auto-fit if popup us active - if (oldProps.popupLocation || newProps.popupLocation) return - - const { map } = this.refs - if (!map) return - - const padding = [30, 30] - - // Fit map to to entire itinerary if active itinerary bounds changed - const oldItinBounds = oldProps.itinerary && getItineraryBounds(oldProps.itinerary) - const fromChanged = !isEqual(oldProps.query && oldProps.query.from, newProps.query && newProps.query.from) - const toChanged = !isEqual(oldProps.query && oldProps.query.to, newProps.query && newProps.query.to) - const newItinBounds = newProps.itinerary && getItineraryBounds(newProps.itinerary) - if ( - (!oldItinBounds && newItinBounds) || - (oldItinBounds && newItinBounds && !oldItinBounds.equals(newItinBounds)) - ) { - map.leafletElement.fitBounds(newItinBounds, { padding }) - - // Pan to to itinerary leg if made active (clicked); newly active leg must be non-null - } else if (newProps.itinerary && newProps.activeLeg !== oldProps.activeLeg && newProps.activeLeg !== null) { - map.leafletElement.fitBounds( - getLegBounds(newProps.itinerary.legs[newProps.activeLeg]), - { padding } - ) - - // If no itinerary update but from/to locations are present, fit to those - } else if (newProps.query.from && newProps.query.to && (fromChanged || toChanged)) { - // On certain mobile devices (e.g., Android + Chrome), setting from and to - // locations via the location search component causes issues for this - // fitBounds invocation. The map does not appear to be visible when these - // prop changes are detected, so for now we should perhaps just skip this - // fitBounds on mobile. - // See https://github.com/opentripplanner/otp-react-redux/issues/133 for - // more info. - // TODO: Fix this so mobile devices will also update the bounds to the - // from/to locations. - if (!isMobile()) { - map.leafletElement.fitBounds([ - [newProps.query.from.lat, newProps.query.from.lon], - [newProps.query.to.lat, newProps.query.to.lon] - ], { padding }) - } - - // If only from or to is set, pan to that - } else if (newProps.query.from && fromChanged) { - map.leafletElement.panTo([newProps.query.from.lat, newProps.query.from.lon]) - } else if (newProps.query.to && toChanged) { - map.leafletElement.panTo([newProps.query.to.lat, newProps.query.to.lon]) - - // Pan to to itinerary step if made active (clicked) - } else if ( - newProps.itinerary && - newProps.activeLeg !== null && - newProps.activeStep !== null && - newProps.activeStep !== oldProps.activeStep - ) { - const leg = newProps.itinerary.legs[newProps.activeLeg] - const step = leg.steps[newProps.activeStep] - map.leafletElement.panTo([step.lat, step.lon]) - } - } - - _popupClosed = () => this.props.setMapPopupLocation({ location: null }) - - /** - * Checks whether the modes have changed between old and new queries and - * whether to update the map overlays accordingly (e.g., to show rental vehicle - * options on the map). - */ - _handleQueryChange = (oldQuery, newQuery) => { - const { overlays } = this.props - if (overlays && oldQuery.mode) { - // Determine any added/removed modes - const oldModes = oldQuery.mode.split(',') - const newModes = newQuery.mode.split(',') - const removed = oldModes.filter(m => !newModes.includes(m)) - const added = newModes.filter(m => !oldModes.includes(m)) - const overlayVisibility = {} - for (const oConfig of overlays) { - if (!oConfig.modes || oConfig.modes.length !== 1) continue - // TODO: support multi-mode overlays - const overlayMode = oConfig.modes[0] - - if ( - ( - overlayMode === 'CAR_RENT' || - overlayMode === 'CAR_HAIL' || - overlayMode === 'MICROMOBILITY_RENT' - ) && - oConfig.companies - ) { - // Special handling for company-based mode overlays (e.g. carshare, car-hail) - const overlayCompany = oConfig.companies[0] // TODO: handle multi-company overlays - if (added.includes(overlayMode)) { - // Company-based mode was just selected; enable overlay iff overlay's company is active - if (newQuery.companies.includes(overlayCompany)) overlayVisibility[oConfig.name] = true - } else if (removed.includes(overlayMode)) { - // Company-based mode was just deselected; disable overlay (regardless of company) - overlayVisibility[oConfig.name] = false - } else if (newModes.includes(overlayMode) && oldQuery.companies !== newQuery.companies) { - // Company-based mode remains selected but companies change - overlayVisibility[oConfig.name] = newQuery.companies.includes(overlayCompany) - } - } else { // Default handling for other modes - if (added.includes(overlayMode)) overlayVisibility[oConfig.name] = true - if (removed.includes(overlayMode)) overlayVisibility[oConfig.name] = false - } - } - // Only trigger update action if there are overlays to update. - if (Object.keys(overlayVisibility).length > 0) { - this.props.updateOverlayVisibility(overlayVisibility) - } - } - } - - /* React Lifecycle methods */ - - componentDidMount () { - this._updateBounds(null, this.props) - - const lmap = this.refs.map.leafletElement - lmap.options.singleClickTimeout = 250 - lmap.on('singleclick', (e) => { this._onLeftClick(e) }) - } - - componentDidUpdate (prevProps) { - this._updateBounds(prevProps, this.props) - // Check if any overlays should be toggled due to mode change - this._handleQueryChange(prevProps.query, this.props.query) - } - - // remove custom overlays on unmount - // TODO: Is this needed? It may have something to do with mobile vs desktop views - componentWillUnmount () { - const lmap = this.refs.map.leafletElement - lmap.eachLayer((layer) => { - lmap.removeLayer(layer) - }) - } - - render () { - const { config, children, diagramLeg, elevationPoint, popupLocation } = this.props - const { baseLayers } = config.map - const showElevationProfile = Boolean(config.elevationProfile) - // Separate overlay layers into user-controlled (those with a checkbox in - // the layer control) and those that are needed by the app (e.g., stop viewer - // and itinerary overlay). - const userControlledOverlays = [] - const fixedOverlays = [] - React.Children - .toArray(children) - .forEach(child => { - if (child.props.name) userControlledOverlays.push(child) - else fixedOverlays.push(child) - }) - - const center = config.map && config.map.initLat && config.map.initLon - ? [config.map.initLat, config.map.initLon] - : null - - // Compute the elevation point marker, if activeLeg and elevation profile is enabled. - let elevationPointMarker = null - if (showElevationProfile && diagramLeg && elevationPoint) { - const pos = legLocationAtDistance(diagramLeg, elevationPoint) - if (pos) { - elevationPointMarker = ( - - ) - } - } - - return ( - - {/* Create the layers control, including base map layers and any - * user-controlled overlays. */} - - {/* base layers */ - baseLayers && baseLayers.map((layer, i) => { - // Fix tile size/zoom offset: https://stackoverflow.com/a/37043490/915811 - const retinaProps = L.Browser.retina && layer.hasRetinaSupport - ? { tileSize: 512, zoomOffset: -1 } - : {} - return ( - - - - ) - }) - } - - {/* user-controlled overlay layers (e.g., vehicle locations, stops) */ - userControlledOverlays.map((child, i) => { - return ( - - {child} - - ) - }) - } - - - {/* Add the fixed, i.e. non-user-controllable, overlays (e.g., itinerary overlay) */} - {fixedOverlays} - - {/* Add the location selection popup, if visible */} - {popupLocation && ( - -
-
- {popupLocation.name.split(',').length > 3 - ? popupLocation.name.split(',').splice(0, 3).join(',') - : popupLocation.name - } -
-
- Plan a trip: - -
-
-
- )} - - {/* Add the elevation point marker */} - {elevationPointMarker} -
- ) - } -} - -// connect to the redux store - -const mapStateToProps = (state, ownProps) => { - const activeSearch = getActiveSearch(state.otp) - const overlays = state.otp.config.map && state.otp.config.map.overlays - ? state.otp.config.map.overlays - : [] - return { - activeLeg: activeSearch && activeSearch.activeLeg, - activeStep: activeSearch && activeSearch.activeStep, - config: state.otp.config, - diagramLeg: state.otp.ui.diagramLeg, - elevationPoint: state.otp.ui.elevationPoint, - mapState: state.otp.mapState, - isFromSet: - state.otp.currentQuery.from && - state.otp.currentQuery.from.lat !== null && - state.otp.currentQuery.from.lon !== null, - isToSet: - state.otp.currentQuery.to && - state.otp.currentQuery.to.lat !== null && - state.otp.currentQuery.to.lon !== null, - itinerary: getActiveItinerary(state.otp), - overlays, - popupLocation: state.otp.ui.mapPopupLocation, - query: state.otp.currentQuery - } -} - -const mapDispatchToProps = { - setLocation, - setMapPopupLocation, - setMapPopupLocationAndGeocode, - setMapZoom, - updateOverlayVisibility -} - -export default connect(mapStateToProps, mapDispatchToProps)(BaseMap) diff --git a/lib/components/map/connected-route-viewer-overlay.js b/lib/components/map/connected-route-viewer-overlay.js new file mode 100644 index 000000000..1aa83fce2 --- /dev/null +++ b/lib/components/map/connected-route-viewer-overlay.js @@ -0,0 +1,17 @@ +import RouteViewerOverlay from '@opentripplanner/route-viewer-overlay' +import { connect } from 'react-redux' + +// connect to the redux store + +const mapStateToProps = (state, ownProps) => { + const viewedRoute = state.otp.ui.viewedRoute + return { + routeData: viewedRoute && state.otp.transitIndex.routes + ? state.otp.transitIndex.routes[viewedRoute.routeId] + : null + } +} + +const mapDispatchToProps = {} + +export default connect(mapStateToProps, mapDispatchToProps)(RouteViewerOverlay) diff --git a/lib/components/map/connected-stop-viewer-overlay.js b/lib/components/map/connected-stop-viewer-overlay.js new file mode 100644 index 000000000..ead3f0868 --- /dev/null +++ b/lib/components/map/connected-stop-viewer-overlay.js @@ -0,0 +1,19 @@ +import StopViewerOverlay from '@opentripplanner/stop-viewer-overlay' +import DefaultStopMarker from '@opentripplanner/stop-viewer-overlay/lib/default-stop-marker' +import { connect } from 'react-redux' + +// connect to the redux store + +const mapStateToProps = (state, ownProps) => { + const viewedStop = state.otp.ui.viewedStop + return { + stopData: viewedStop + ? state.otp.transitIndex.stops[viewedStop.stopId] + : null, + StopMarker: DefaultStopMarker + } +} + +const mapDispatchToProps = {} + +export default connect(mapStateToProps, mapDispatchToProps)(StopViewerOverlay) diff --git a/lib/components/map/connected-trip-viewer-overlay.js b/lib/components/map/connected-trip-viewer-overlay.js new file mode 100644 index 000000000..f0c0c6325 --- /dev/null +++ b/lib/components/map/connected-trip-viewer-overlay.js @@ -0,0 +1,17 @@ +import TripViewerOverlay from '@opentripplanner/trip-viewer-overlay' +import { connect } from 'react-redux' + +// connect to the redux store + +const mapStateToProps = (state, ownProps) => { + const viewedTrip = state.otp.ui.viewedTrip + return { + tripData: viewedTrip + ? state.otp.transitIndex.trips[viewedTrip.tripId] + : null + } +} + +const mapDispatchToProps = {} + +export default connect(mapStateToProps, mapDispatchToProps)(TripViewerOverlay) diff --git a/lib/components/map/connected-vehicle-rental-overlay.js b/lib/components/map/connected-vehicle-rental-overlay.js new file mode 100644 index 000000000..c98f01b88 --- /dev/null +++ b/lib/components/map/connected-vehicle-rental-overlay.js @@ -0,0 +1,45 @@ +import VehicleRentalOverlay from '@opentripplanner/vehicle-rental-overlay' +import React, { Component } from 'react' +import { connect } from 'react-redux' + +import { setLocation } from '../../actions/map' + +class ConnectedVehicleRentalOverlay extends Component { + constructor (props) { + super(props) + this.state = { visible: props.visible } + } + + componentDidMount () { + this.props.registerOverlay(this) + } + + onOverlayAdded = () => { + this.setState({ visible: true }) + } + + onOverlayRemoved = () => { + this.setState({ visible: false }) + } + + render () { + return ( + + ) + } +} + +// connect to the redux store + +const mapStateToProps = (state, ownProps) => { + return { + configCompanies: state.otp.config.companies, + zoom: state.otp.config.map.initZoom + } +} + +const mapDispatchToProps = { + setLocation +} + +export default connect(mapStateToProps, mapDispatchToProps)(ConnectedVehicleRentalOverlay) diff --git a/lib/components/map/default-map.js b/lib/components/map/default-map.js index d0051242f..0f5c3d1ae 100644 --- a/lib/components/map/default-map.js +++ b/lib/components/map/default-map.js @@ -11,14 +11,14 @@ import { import BoundsUpdatingOverlay from './bounds-updating-overlay' import EndpointsOverlay from './connected-endpoints-overlay' import ParkAndRideOverlay from './connected-park-and-ride-overlay' +import RouteViewerOverlay from './connected-route-viewer-overlay' +import StopViewerOverlay from './connected-stop-viewer-overlay' import StopsOverlay from './connected-stops-overlay' -// import StopViewerOverlay from '@opentripplanner/stop-viewer-overlay' -import TileOverlay from './tile-overlay' import TransitiveOverlay from './connected-transitive-overlay' -// import TripViewerOverlay from '@opentripplanner/trip-viewer-overlay' -// import RouteViewerOverlay from '@opentripplanner/route-viewer-overlay' -// import VehicleRentalOverlay from '@opentripplanner/vehicle-rental-overlay' -// import ZipcarOverlay from './zipcar-overlay' +import TripViewerOverlay from './connected-trip-viewer-overlay' +import VehicleRentalOverlay from './connected-vehicle-rental-overlay' +import TileOverlay from './tile-overlay' +import ZipcarOverlay from './zipcar-overlay' const MapContainer = styled.div` height: 100%; @@ -62,47 +62,45 @@ class DefaultMap extends Component { zoom={mapConfig.initZoom || 13} > {/* The default overlays */} - {/* + + + - */} - - + {/* The configurable overlays */} {mapConfig.overlays && mapConfig.overlays.map((overlayConfig, k) => { switch (overlayConfig.type) { - // case 'bike-rental': return ( - // - // ) - // case 'car-rental': return ( - // - // ) + case 'bike-rental': return ( + + ) + case 'car-rental': return ( + + ) case 'park-and-ride': return case 'stops': return case 'tile': return - // case 'micromobility-rental': return ( - // - // ) - // case 'zipcar': return + case 'micromobility-rental': return ( + + ) + case 'zipcar': return default: return null } })} diff --git a/lib/components/map/route-viewer-overlay.js b/lib/components/map/route-viewer-overlay.js deleted file mode 100644 index 129c7d25c..000000000 --- a/lib/components/map/route-viewer-overlay.js +++ /dev/null @@ -1,86 +0,0 @@ -import React from 'react' -import { connect } from 'react-redux' -import { FeatureGroup, MapLayer, Polyline, withLeaflet } from 'react-leaflet' - -import polyline from '@mapbox/polyline' - -// helper fn to check if geometry has been populated for all patterns in route -const isGeomComplete = routeData => { - return ( - routeData && - routeData.patterns && - Object.values(routeData.patterns) - .every(ptn => typeof ptn.geometry !== 'undefined') - ) -} - -class RouteViewerOverlay extends MapLayer { - static propTypes = {} - - componentDidMount () {} - - // TODO: determine why the default MapLayer componentWillUnmount() method throws an error - componentWillUnmount () {} - - componentDidUpdate (prevProps) { - // if pattern geometry just finished populating, update the map points - if ( - !isGeomComplete(prevProps.routeData) && - isGeomComplete(this.props.routeData) - ) { - const allPoints = Object.values(this.props.routeData.patterns).reduce( - (acc, ptn) => { - return acc.concat(polyline.decode(ptn.geometry.points)) - }, - [] - ) - this.props.leaflet.map.fitBounds(allPoints) - } - } - - createLeafletElement () {} - - updateLeafletElement () {} - - render () { - const { routeData } = this.props - - if (!routeData || !routeData.patterns) return - - const routeColor = routeData.color ? `#${routeData.color}` : '#00bfff' - const segments = [] - Object.values(routeData.patterns).forEach(pattern => { - if (!pattern.geometry) return - const pts = polyline.decode(pattern.geometry.points) - segments.push( - - ) - }) - - return segments.length > 0 - ?
{segments}
- : - } -} - -// connect to the redux store - -const mapStateToProps = (state, ownProps) => { - const viewedRoute = state.otp.ui.viewedRoute - return { - viewedRoute, - routeData: viewedRoute && state.otp.transitIndex.routes - ? state.otp.transitIndex.routes[viewedRoute.routeId] - : null - } -} - -const mapDispatchToProps = {} - -export default connect(mapStateToProps, mapDispatchToProps)(withLeaflet(RouteViewerOverlay)) diff --git a/lib/components/map/stop-viewer-overlay.js b/lib/components/map/stop-viewer-overlay.js deleted file mode 100644 index 790ded83b..000000000 --- a/lib/components/map/stop-viewer-overlay.js +++ /dev/null @@ -1,75 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' -import { connect } from 'react-redux' -import { FeatureGroup, MapLayer, Popup, CircleMarker, withLeaflet } from 'react-leaflet' - -class StopViewerOverlay extends MapLayer { - static propTypes = { - stopData: PropTypes.object, - viewedStop: PropTypes.object - } - - componentDidMount () { } - - // TODO: determine why the default MapLayer componentWillUnmount() method throws an error - componentWillUnmount () { } - - /** - * Only reset map view if a new stop is selected. This prevents resetting the - * bounds if, for example, the arrival times have changed for the same stop - * in the viewer. - */ - componentDidUpdate (prevProps) { - const nextStop = this.props.stopData - const oldStopId = prevProps.stopData && prevProps.stopData.id - const hasNewStopId = nextStop && nextStop.id !== oldStopId - if (hasNewStopId) this.props.leaflet.map.setView([nextStop.lat, nextStop.lon]) - } - - createLeafletElement () { } - - updateLeafletElement () { } - - render () { - const { viewedStop, stopData } = this.props - - if (!viewedStop || !stopData) return - - return ( - - - -
- {stopData.name} -
-
-
-
- ) - } -} - -// connect to the redux store - -const mapStateToProps = (state, ownProps) => { - const viewedStop = state.otp.ui.viewedStop - return { - viewedStop: viewedStop, - stopData: viewedStop - ? state.otp.transitIndex.stops[viewedStop.stopId] - : null - } -} - -const mapDispatchToProps = { -} - -export default connect(mapStateToProps, mapDispatchToProps)(withLeaflet(StopViewerOverlay)) diff --git a/lib/components/map/trip-viewer-overlay.js b/lib/components/map/trip-viewer-overlay.js deleted file mode 100644 index 42368a392..000000000 --- a/lib/components/map/trip-viewer-overlay.js +++ /dev/null @@ -1,60 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' -import { connect } from 'react-redux' -import { FeatureGroup, MapLayer, Polyline, withLeaflet } from 'react-leaflet' - -import polyline from '@mapbox/polyline' - -class TripViewerOverlay extends MapLayer { - static propTypes = { - tripData: PropTypes.object, - viewedTrip: PropTypes.object - } - - componentDidMount () { } - - // TODO: determine why the default MapLayer componentWillUnmount() method throws an error - componentWillUnmount () { } - - componentDidUpdate (prevProps) { - const oldGeometry = prevProps.tripData && prevProps.tripData.geometry - const newGeometry = this.props.tripData && this.props.tripData.geometry - if (oldGeometry === newGeometry || !newGeometry) return - const pts = polyline.decode(newGeometry.points) - this.props.leaflet.map.fitBounds(pts) - } - - createLeafletElement () { } - - updateLeafletElement () { } - - render () { - const { tripData } = this.props - - if (!tripData || !tripData.geometry) return - - const pts = polyline.decode(tripData.geometry.points) - return ( - - - - ) - } -} - -// connect to the redux store - -const mapStateToProps = (state, ownProps) => { - const viewedTrip = state.otp.ui.viewedTrip - return { - viewedTrip, - tripData: viewedTrip - ? state.otp.transitIndex.trips[viewedTrip.tripId] - : null - } -} - -const mapDispatchToProps = { -} - -export default connect(mapStateToProps, mapDispatchToProps)(withLeaflet(TripViewerOverlay)) diff --git a/lib/components/map/vehicle-rental-overlay.js b/lib/components/map/vehicle-rental-overlay.js deleted file mode 100644 index 89d82dc2a..000000000 --- a/lib/components/map/vehicle-rental-overlay.js +++ /dev/null @@ -1,247 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' -import { connect } from 'react-redux' -import { CircleMarker, FeatureGroup, Marker, MapLayer, Popup, withLeaflet } from 'react-leaflet' -import { divIcon } from 'leaflet' - -import { setLocation } from '../../actions/map' -import SetFromToButtons from './set-from-to' -import { getCompaniesLabelFromNetworks } from '../../util/itinerary' - -class VehicleRentalOverlay extends MapLayer { - static propTypes = { - queryMode: PropTypes.string, - vehicles: PropTypes.array, - refreshVehicles: PropTypes.func - } - - createLeafletElement () { } - - updateLeafletElement () { } - - _startRefreshing () { - // ititial station retrieval - this.props.refreshVehicles() - - // set up timer to refresh stations periodically - this._refreshTimer = setInterval(() => { - this.props.refreshVehicles() - }, 30000) // defaults to every 30 sec. TODO: make this configurable?*/ - } - - _stopRefreshing () { - if (this._refreshTimer) clearInterval(this._refreshTimer) - } - - componentDidMount () { - const {companies, mapSymbols, name, visible} = this.props - if (visible) this._startRefreshing() - if (!mapSymbols) console.warn(`No map symbols provided for layer ${name}`, companies) - } - - componentWillUnmount () { - this._stopRefreshing() - } - - componentDidUpdate (prevProps) { - if (!prevProps.visible && this.props.visible) { - this._startRefreshing() - } else if (prevProps.visible && !this.props.visible) { - this._stopRefreshing() - } - } - - /** - * Render some popup html for a station. This contains custom logic for - * displaying rental vehicles in the TriMet MOD website that might not be - * applicable to other regions. - */ - _renderPopupForStation = (station, stationIsHub = false) => { - const {configCompanies, leaflet, setLocation} = this.props - const stationNetworks = getCompaniesLabelFromNetworks( - station.networks, - configCompanies - ) - let stationName = station.name || station.id - if (station.isFloatingBike) { - stationName = `Free-floating bike: ${stationName}` - } else if (station.isFloatingCar) { - stationName = `${stationNetworks} ${stationName}` - } else if (station.isFloatingVehicle) { - // assumes that all floating vehicles are E-scooters - stationName = `${stationNetworks} E-scooter` - } else { - stationIsHub = true - } - return ( - -
- {/* Popup title */} -
{stationName}
- - {/* render dock info if it is available */} - {stationIsHub && ( -
-
Available bikes: {station.bikesAvailable}
-
Available docks: {station.spacesAvailable}
-
- )} - - {/* Set as from/to toolbar */} -
- -
-
-
- ) - } - - _renderStationAsCircle = (station, symbolDef) => { - let strokeColor = symbolDef.strokeColor || symbolDef.fillColor - if (!station.isFloatingBike) { - strokeColor = symbolDef.dockStrokeColor || strokeColor - } - return ( - - {this._renderPopupForStation(station)} - - ) - } - - _renderStationAsHubAndFloatingBike = (station) => { - let icon - if (station.isFloatingBike) { - icon = divIcon({ - iconSize: [24, 24], - iconAnchor: [12, 24], - popupAnchor: [0, -12], - html: `
`, - className: '' - }) - } else { - const pctFull = station.bikesAvailable / (station.bikesAvailable + station.spacesAvailable) - const i = Math.round(pctFull * 9) - icon = divIcon({ - iconSize: [24, 24], - iconAnchor: [12, 24], - popupAnchor: [0, -12], - html: `
`, - className: '' - }) - } - return ( - - {this._renderPopupForStation(station, !station.isFloatingBike)} - - ) - } - - _renderStationAsMarker = (station, symbolDef) => { - const {baseIconClass} = this.props - let classes = `fa fa-map-marker ${baseIconClass}` - // If this station is exclusive to a single network, apply the the class for that network - if (station.networks.length === 1) { - classes += ` ${baseIconClass}-${station.networks[0].toLowerCase()}` - } - const color = symbolDef && symbolDef.fillColor - ? symbolDef.fillColor - : 'gray' - const markerIcon = divIcon({ - className: '', - iconSize: [11, 16], - popupAnchor: [0, -6], - html: `` - }) - - return ( - - {this._renderPopupForStation(station)} - - ) - } - - _renderStation = (station) => { - // render the station according to any map symbol configuration - const {mapSymbols} = this.props - - // no config set, just render a default marker - if (!mapSymbols) return this._renderStationAsMarker(station) - - // get zoom to check which symbol to render - const zoom = this.props.leaflet.map.getZoom() - - for (let i = 0; i < mapSymbols.length; i++) { - const symbolDef = mapSymbols[i] - if (symbolDef.minZoom <= zoom && symbolDef.maxZoom >= zoom) { - switch (symbolDef.type) { - case 'circle': - return this._renderStationAsCircle(station, symbolDef) - case 'hubAndFloatingBike': - return this._renderStationAsHubAndFloatingBike(station) - default: - return this._renderStationAsMarker(station, symbolDef) - } - } - } - - // no matching symbol definition, render default marker - return this._renderStationAsMarker(station) - } - - render () { - const { stations, companies } = this.props - let filteredStations = stations - if (companies) { - filteredStations = stations.filter( - station => station.networks.filter(value => companies.includes(value)).length > 0 - ) - } - - if (!filteredStations || filteredStations.length === 0) return - - return ( - - {filteredStations.map(this._renderStation)} - - ) - } -} - -// connect to the redux store - -const mapStateToProps = (state, ownProps) => { - return { - configCompanies: state.otp.config.companies, - zoom: state.otp.config.map.initZoom - } -} - -const mapDispatchToProps = { - setLocation -} - -export default connect(mapStateToProps, mapDispatchToProps)(withLeaflet(VehicleRentalOverlay)) diff --git a/lib/components/map/zipcar-overlay.js b/lib/components/map/zipcar-overlay.js index a007a3120..399831bfb 100644 --- a/lib/components/map/zipcar-overlay.js +++ b/lib/components/map/zipcar-overlay.js @@ -33,7 +33,15 @@ class ZipcarOverlay extends MapLayer { } componentDidMount () { - if (this.props.visible) this._startRefreshing() + this.props.registerOverlay(this) + } + + onOverlayAdded = () => { + this._startRefreshing() + } + + onOverlayRemoved = () => { + this._stopRefreshing() } componentWillUnmount () { From 357db32641246d4474808af22817a5cc8adb65ab Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Wed, 18 Mar 2020 17:07:43 -0700 Subject: [PATCH 022/115] refactor(location-field): don't underline or change color options on hover --- lib/components/form/connected-location-field.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/components/form/connected-location-field.js b/lib/components/form/connected-location-field.js index ef9dfba6f..1f497f84f 100644 --- a/lib/components/form/connected-location-field.js +++ b/lib/components/form/connected-location-field.js @@ -4,7 +4,8 @@ import { FormGroup, Input, InputGroup, - InputGroupAddon + InputGroupAddon, + MenuItemA } from '@opentripplanner/location-field/lib/styled' import { connect } from 'react-redux' import styled from 'styled-components' @@ -44,6 +45,14 @@ const StyledLocationField = styled(LocationField)` vertical-align: middle; width: 1%; } + + ${MenuItemA} { + text-decoration: none; + } + + ${MenuItemA}:hover { + color: #333; + } ` // connect to redux store From 34c5c6d3dd3b99c3cc80fe6d2a937ca6aaeee9e1 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 19 Mar 2020 16:17:33 -0400 Subject: [PATCH 023/115] refactor(components/form): Use trip-form components from OTP-UI. Bring OTP-UI components, delete components/form components no longer used. --- lib/components/form/checkbox-selector.js | 50 ------ lib/components/form/dropdown-selector.js | 60 ------- lib/components/form/general-settings-panel.js | 73 --------- lib/components/form/mode-button.js | 153 ------------------ lib/components/form/mode-selector.js | 70 -------- lib/components/form/modes-panel.js | 152 ----------------- .../form/settings-selector-panel.js | 68 -------- lib/components/form/tabbed-form-panel.js | 4 +- lib/components/mobile/options-screen.js | 4 +- lib/index.js | 8 - package.json | 6 +- yarn.lock | 50 +++--- 12 files changed, 32 insertions(+), 666 deletions(-) delete mode 100644 lib/components/form/checkbox-selector.js delete mode 100644 lib/components/form/dropdown-selector.js delete mode 100644 lib/components/form/general-settings-panel.js delete mode 100644 lib/components/form/mode-button.js delete mode 100644 lib/components/form/mode-selector.js delete mode 100644 lib/components/form/modes-panel.js delete mode 100644 lib/components/form/settings-selector-panel.js diff --git a/lib/components/form/checkbox-selector.js b/lib/components/form/checkbox-selector.js deleted file mode 100644 index daabe0a6f..000000000 --- a/lib/components/form/checkbox-selector.js +++ /dev/null @@ -1,50 +0,0 @@ -import React, {Component} from 'react' -import PropTypes from 'prop-types' -import { Form, FormGroup, Row, Col, Checkbox } from 'react-bootstrap' -import { connect } from 'react-redux' - -import { setQueryParam } from '../../actions/form' - -class CheckboxSelector extends Component { - static propTypes = { - name: PropTypes.string, - value: PropTypes.oneOfType([ - PropTypes.string, - PropTypes.bool - ]), - label: PropTypes.string, - setQueryParam: PropTypes.func - } - - _onQueryParamChange = (evt) => { - this.props.setQueryParam({ [this.props.name]: evt.target.checked }) - } - - render () { - const { label } = this.props - let value = this.props.value - if (typeof value === 'string') value = (value === 'true') - - return ( -
- - -
- - {label} - -
- -
-
- ) - } -} - -const mapStateToProps = (state, ownProps) => { - return { } -} - -const mapDispatchToProps = { setQueryParam } - -export default connect(mapStateToProps, mapDispatchToProps)(CheckboxSelector) diff --git a/lib/components/form/dropdown-selector.js b/lib/components/form/dropdown-selector.js deleted file mode 100644 index 3afeeced6..000000000 --- a/lib/components/form/dropdown-selector.js +++ /dev/null @@ -1,60 +0,0 @@ -import React, {Component} from 'react' -import PropTypes from 'prop-types' -import { Form, FormGroup, FormControl, Row, Col } from 'react-bootstrap' -import { connect } from 'react-redux' - -import { setQueryParam } from '../../actions/form' - -class DropdownSelector extends Component { - static propTypes = { - name: PropTypes.string, - value: PropTypes.oneOfType([ - PropTypes.string, - PropTypes.number - ]), - label: PropTypes.string, - options: PropTypes.array, - setQueryParam: PropTypes.func - } - - _onQueryParamChange = (evt) => { - const val = evt.target.value - this.props.setQueryParam({ - [this.props.name]: isNaN(val) ? val : parseFloat(val) - }) - } - - render () { - const { value, label, options } = this.props - - return ( - - {label} - -
- - - {options.map((o, i) => ( - - ))} - - -
- -
- ) - } -} - -const mapStateToProps = (state, ownProps) => { - return { } -} - -const mapDispatchToProps = { setQueryParam } - -export default connect(mapStateToProps, mapDispatchToProps)(DropdownSelector) diff --git a/lib/components/form/general-settings-panel.js b/lib/components/form/general-settings-panel.js deleted file mode 100644 index bb8fe5a27..000000000 --- a/lib/components/form/general-settings-panel.js +++ /dev/null @@ -1,73 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import { connect } from 'react-redux' - -import CheckboxSelector from './checkbox-selector' -import DropdownSelector from './dropdown-selector' -import queryParams from '../../util/query-params' -import { defaultParams, getQueryParamProperty } from '../../util/query' - -class GeneralSettingsPanel extends Component { - static propTypes = { - query: PropTypes.object, - paramNames: PropTypes.array - } - - static defaultProps = { - // The universe of properties to include in this form: - // TODO: allow override in config - paramNames: defaultParams - } - - render () { - const { paramNames, query, config } = this.props - return ( -
- {paramNames.map(param => { - const paramInfo = queryParams.find(qp => qp.name === param) - // Check that the parameter applies to the specified routingType - if (!paramInfo.routingTypes.includes(query.routingType)) return - - // Check that the applicability test (if provided) is satisfied - if (typeof paramInfo.applicable === 'function' && - !paramInfo.applicable(query, config)) return - - // Create the UI component based on the selector type - switch (paramInfo.selector) { - case 'DROPDOWN': - return - case 'CHECKBOX': - return - } - })} -
- ) - } -} - -// connect to redux store - -const mapStateToProps = (state, ownProps) => { - return { - config: state.otp.config, - query: state.otp.currentQuery - } -} - -const mapDispatchToProps = (dispatch, ownProps) => { - return { - } -} - -export default connect(mapStateToProps, mapDispatchToProps)(GeneralSettingsPanel) diff --git a/lib/components/form/mode-button.js b/lib/components/form/mode-button.js deleted file mode 100644 index 58771ec20..000000000 --- a/lib/components/form/mode-button.js +++ /dev/null @@ -1,153 +0,0 @@ -import React, {Component, PureComponent} from 'react' -import PropTypes from 'prop-types' - -import { getIcon, isTransit } from '../../util/itinerary' - -export default class ModeButton extends Component { - static propTypes = { - active: PropTypes.bool, - label: PropTypes.string, - mode: PropTypes.any, // currently a mode object or string - icons: PropTypes.object, - onClick: PropTypes.func - } - - _getButtonStyle ({ - active, - enabled, - height, - modeStr - }) { - const buttonStyle = { height } - - if (modeStr !== 'TRANSIT' && isTransit(modeStr)) { - buttonStyle.width = height - buttonStyle.border = `2px solid ${enabled ? (active ? '#000' : '#bbb') : '#ddd'}` - if (active && enabled) buttonStyle.backgroundColor = '#fff' - buttonStyle.borderRadius = height / 2 - } else { - buttonStyle.border = active ? '2px solid #000' : '1px solid #bbb' - if (active) buttonStyle.backgroundColor = '#add8e6' - } - - return buttonStyle - } - - render () { - const { - active, - enabled, - icons, - label, - mode, - onClick, - inlineLabel, - showPlusTransit - } = this.props - const height = this.props.height || 48 - const iconSize = height - 20 - const iconColor = enabled ? '#000' : '#ccc' - const modeStr = mode.company || mode.mode || mode - const buttonStyle = this._getButtonStyle({ active, enabled, height, modeStr }) - - return ( -
- - - {/* If not in inline-label mode, label directly below the button */} - {!inlineLabel && ( -
- {label} -
- )} -
- ) - } -} - -class PlusTransit extends PureComponent { - render () { - const {enabled, iconColor, icons, iconSize} = this.props - return ( - -
- {enabled - ? getIcon('TRANSIT', icons) - : ( -
- ) - } -
- - - ) - } -} diff --git a/lib/components/form/mode-selector.js b/lib/components/form/mode-selector.js deleted file mode 100644 index 5f8abe3a9..000000000 --- a/lib/components/form/mode-selector.js +++ /dev/null @@ -1,70 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import { FormGroup, ControlLabel, FormControl } from 'react-bootstrap' -import { connect } from 'react-redux' - -import { setQueryParam } from '../../actions/form' - -class ModeSelector extends Component { - static propTypes = { - config: PropTypes.object, - label: PropTypes.string, - mode: PropTypes.string, - setQueryParam: PropTypes.func, - showLabel: PropTypes.bool - } - - static defaultProps = { - label: 'Mode', - showLabel: true - } - - _onChange = (evt) => this.props.setQueryParam({ mode: evt.target.value }) - - _getDisplayText (mode) { - switch (mode) { - case 'TRANSIT,WALK': return 'Walk to Transit' - case 'TRANSIT,BICYCLE': return 'Bike to Transit' - case 'WALK': return 'Walk Only' - case 'BICYCLE': return 'Bike Only' - } - return mode - } - - render () { - const { config, mode, label, showLabel } = this.props - - return ( -
- - {showLabel - ? {label} - : null - } - - {config.modes.map((m, i) => ( - - ))} - - -
- ) - } -} - -const mapStateToProps = (state, ownProps) => { - return { - config: state.otp.config, - mode: state.otp.currentQuery.mode - } -} - -const mapDispatchToProps = { - setQueryParam -} - -export default connect(mapStateToProps, mapDispatchToProps)(ModeSelector) diff --git a/lib/components/form/modes-panel.js b/lib/components/form/modes-panel.js deleted file mode 100644 index bbfb4dd5b..000000000 --- a/lib/components/form/modes-panel.js +++ /dev/null @@ -1,152 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import { connect } from 'react-redux' - -import { setQueryParam } from '../../actions/form' -import ModeButton from './mode-button' -import { isAccessMode } from '../../util/itinerary' - -class ModesPanel extends Component { - static propTypes = { - icons: PropTypes.object, - modeGroups: PropTypes.array, - queryModes: PropTypes.array, - setQueryParam: PropTypes.func - } - - _getVisibleModes (group) { - // Don't show the CAR_HAIL services in profile modes - // TODO: this could be handled more elegantly? - return group.modes.filter(mode => - mode.mode !== 'CAR_HAIL' || this.props.routingType !== 'PROFILE' - ) - } - - // Returns whether a particular mode or TNC agency is active - _modeIsActive (mode) { - const { companies, queryModes } = this.props - if (mode.mode === 'CAR_HAIL') { - return Boolean(companies && companies.includes(mode.label.toUpperCase())) - } else { - return queryModes.includes(mode.mode || mode) - } - } - - _setGroupSelected (group, isSelected) { - let queryModes = this.props.queryModes.slice(0) // Clone the modes array - - this._getVisibleModes(group).forEach(mode => { - const modeStr = mode.mode || mode - queryModes = queryModes.filter(m => m !== modeStr) - if (isSelected) queryModes.push(modeStr) - }) - - // Update the mode array in the store - this.props.setQueryParam({ mode: queryModes.join(',') }) - } - - _toggleMode (mode) { - const modeStr = mode.mode || mode - - const { routingType, setQueryParam } = this.props - let queryModes = this.props.queryModes.slice(0) // Clone the modes array - - const queryParamUpdate = {} - - // Special case: we are in ITINERARY mode and changing the one access mode - if (routingType === 'ITINERARY' && isAccessMode(modeStr)) { - queryModes = queryModes.filter(m => !isAccessMode(m)) - queryModes.push(modeStr) - - // do extra stuff if mode selected was a TNC - queryParamUpdate.companies = modeStr === 'CAR_HAIL' ? mode.label.toUpperCase() : null - - // Otherwise, if mode is currently selected, deselect it - } else if (queryModes.includes(modeStr)) { - queryModes = queryModes.filter(m => m !== modeStr) - - // Or, if mode is currently not selected, select it - } else if (!queryModes.includes(modeStr)) { - queryModes.push(modeStr) - } - - queryParamUpdate.mode = queryModes.join(',') - - // Update the mode array in the store - setQueryParam(queryParamUpdate) - } - - render () { - const { icons, modeGroups, routingType } = this.props - - return ( -
- {modeGroups.map((group, k) => { - const groupModes = this._getVisibleModes(group) - // Determine whether to show Select/Deselect All actions - const accessCount = groupModes.filter(m => isAccessMode(m.mode || m)).length - const showGroupSelect = - (routingType === 'PROFILE' || - (routingType === 'ITINERARY' && accessCount === 0)) && - groupModes.length > 1 - - return ( -
-
- {showGroupSelect && ( -
- {' '}|{' '} - -
- )} -
{group.name}
-
-
- {groupModes.map(mode => { - return this._toggleMode(mode)} - /> - })} -
-
- ) - })} -
- ) - } -} - -// Make a mode string more readable (e.g. 'BICYCLE_RENT' -> 'Bicycle Rent') -function readableModeString (mode) { - const str = mode.replace('_', ' ') - return str.replace(/\w\S*/g, txt => { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase() }) -} - -// connect to redux store - -const mapStateToProps = (state, ownProps) => { - const { companies, mode, routingType } = state.otp.currentQuery - return { - companies, - modeGroups: state.otp.config.modeGroups, - queryModes: !mode || mode.length === 0 ? [] : mode.split(','), - routingType - } -} - -const mapDispatchToProps = { setQueryParam } - -export default connect(mapStateToProps, mapDispatchToProps)(ModesPanel) diff --git a/lib/components/form/settings-selector-panel.js b/lib/components/form/settings-selector-panel.js deleted file mode 100644 index 343a976ff..000000000 --- a/lib/components/form/settings-selector-panel.js +++ /dev/null @@ -1,68 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import { connect } from 'react-redux' - -import { setQueryParam } from '../../actions/form' -import { getShowUserSettings } from '../../util/state' - -import { StyledSettingsSelectorPanel } from './styled' -import UserTripSettings from './user-trip-settings' - -// TODO: Button title should be bold when button is selected. - -class SettingsSelectorPanel extends Component { - static propTypes = { - icons: PropTypes.object - } - - render () { - const { - config, - icons, - query, - setQueryParam, - showUserSettings - } = this.props - - const configModes = { - ...config.modes, - exclusiveModes: config.modes.exclusiveModes || [], - micromobilityModes: config.modes.micromobilityModes || [] - } - const configCompanies = config.companies || [] - - return ( -
-
- {showUserSettings && } - - -
-
- ) - } -} - -// connect to redux store - -const mapStateToProps = (state, ownProps) => { - const { config, currentQuery } = state.otp - return { - query: currentQuery, - config, - showUserSettings: getShowUserSettings(state.otp) - } -} - -const mapDispatchToProps = { - setQueryParam -} - -export default connect(mapStateToProps, mapDispatchToProps)(SettingsSelectorPanel) diff --git a/lib/components/form/tabbed-form-panel.js b/lib/components/form/tabbed-form-panel.js index c3fededce..c41c5650d 100644 --- a/lib/components/form/tabbed-form-panel.js +++ b/lib/components/form/tabbed-form-panel.js @@ -6,7 +6,7 @@ import { connect } from 'react-redux' import DateTimePreview from './date-time-preview' import SettingsPreview from './settings-preview' import DateTimeModal from './date-time-modal' -import SettingsSelectorPanel from './settings-selector-panel' +import ConnectedSettingsSelectorPanel from './connected-settings-selector-panel' import { setMainPanelContent } from '../../actions/ui' @@ -49,7 +49,7 @@ class TabbedFormPanel extends Component { {(mainPanelContent === 'EDIT_DATETIME' || mainPanelContent === 'EDIT_SETTINGS') && (
{mainPanelContent === 'EDIT_DATETIME' && ()} - {mainPanelContent === 'EDIT_SETTINGS' && ()} + {mainPanelContent === 'EDIT_SETTINGS' && ()}
- -
+ + ) if (error) { From ffbd6dffeb57df676624191022f143c329a6f540 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 23 Mar 2020 10:43:47 -0400 Subject: [PATCH 029/115] chore(package.json): Merge conflicts with dev branch (package, yarn.lock, lib/index.js) --- .../findAddressCandidates-response.json | 154 ----- .../arcgis/reverseGeocode-response.json | 32 - .../geocoding/arcgis/suggest-response.json | 14 - .../pelias/autocomplete-response.json | 77 --- .../geocoding/pelias/reverse-response.json | 121 ---- .../geocoding/pelias/search-response.json | 117 ---- __tests__/util/__snapshots__/geocoder.js.snap | 350 ---------- __tests__/util/geocoder.js | 188 ------ lib/actions/map.js | 15 +- .../form/connected-location-field.js | 85 +++ lib/components/form/default-search-form.js | 10 +- lib/components/form/location-field.js | 605 ------------------ lib/components/mobile/location-search.js | 10 +- lib/components/mobile/search-screen.js | 10 +- lib/components/mobile/welcome-screen.js | 16 +- lib/index.js | 2 +- lib/util/geocoder.js | 318 --------- lib/util/index.js | 2 - lib/util/ui.js | 9 - package.json | 13 +- yarn.lock | 73 ++- 21 files changed, 175 insertions(+), 2046 deletions(-) delete mode 100644 __tests__/test-utils/fixtures/geocoding/arcgis/findAddressCandidates-response.json delete mode 100644 __tests__/test-utils/fixtures/geocoding/arcgis/reverseGeocode-response.json delete mode 100644 __tests__/test-utils/fixtures/geocoding/arcgis/suggest-response.json delete mode 100644 __tests__/test-utils/fixtures/geocoding/pelias/autocomplete-response.json delete mode 100644 __tests__/test-utils/fixtures/geocoding/pelias/reverse-response.json delete mode 100644 __tests__/test-utils/fixtures/geocoding/pelias/search-response.json delete mode 100644 __tests__/util/__snapshots__/geocoder.js.snap delete mode 100644 __tests__/util/geocoder.js create mode 100644 lib/components/form/connected-location-field.js delete mode 100644 lib/components/form/location-field.js delete mode 100644 lib/util/geocoder.js diff --git a/__tests__/test-utils/fixtures/geocoding/arcgis/findAddressCandidates-response.json b/__tests__/test-utils/fixtures/geocoding/arcgis/findAddressCandidates-response.json deleted file mode 100644 index 9c63ea07f..000000000 --- a/__tests__/test-utils/fixtures/geocoding/arcgis/findAddressCandidates-response.json +++ /dev/null @@ -1,154 +0,0 @@ -{ - "spatialReference": { - "wkid": 4326, - "latestWkid": 4326 - }, - "candidates": [ - { - "address": "Mill End, Clavering, Saffron Walden, Essex, England", - "location": { - "x": 0.12961000000007061, - "y": 51.973520000000065 - }, - "score": 87.5, - "attributes": { - "Loc_name": "World", - "Status": "T", - "Score": 87.5, - "Match_addr": "Mill End, Clavering, Saffron Walden, Essex, England", - "LongLabel": "Mill End, Clavering, Saffron Walden, Essex, England, GBR", - "ShortLabel": "Mill End", - "Addr_type": "Locality", - "Type": "Village", - "PlaceName": "Mill End", - "Place_addr": "Clavering, Saffron Walden, Essex, England", - "Phone": "", - "URL": "", - "Rank": 15, - "AddBldg": "", - "AddNum": "", - "AddNumFrom": "", - "AddNumTo": "", - "AddRange": "", - "Side": "", - "StPreDir": "", - "StPreType": "", - "StName": "", - "StType": "", - "StDir": "", - "BldgType": "", - "BldgName": "", - "LevelType": "", - "LevelName": "", - "UnitType": "", - "UnitName": "", - "SubAddr": "", - "StAddr": "", - "Block": "", - "Sector": "", - "Nbrhd": "Mill End", - "District": "Clavering", - "City": "Saffron Walden", - "MetroArea": "", - "Subregion": "Essex", - "Region": "England", - "RegionAbbr": "ENG", - "Territory": "", - "Zone": "", - "Postal": "", - "PostalExt": "", - "Country": "GBR", - "LangCode": "ENG", - "Distance": 0, - "X": 0.12961000000007061, - "Y": 51.973520000000065, - "DisplayX": 0.12961000000007061, - "DisplayY": 51.973520000000065, - "Xmin": 0.11961000000007062, - "Xmax": 0.13961000000007062, - "Ymin": 51.963520000000067, - "Ymax": 51.983520000000063, - "ExInfo": "" - }, - "extent": { - "xmin": 0.11961000000007062, - "ymin": 51.963520000000067, - "xmax": 0.13961000000007062, - "ymax": 51.983520000000063 - } - }, - { - "address": "Mill End, Hambleden, Henley-on-Thames, Oxfordshire, England", - "location": { - "x": -0.86689999999993006, - "y": 51.558340000000044 - }, - "score": 87.5, - "attributes": { - "Loc_name": "World", - "Status": "T", - "Score": 87.5, - "Match_addr": "Mill End, Hambleden, Henley-on-Thames, Oxfordshire, England", - "LongLabel": "Mill End, Hambleden, Henley-on-Thames, Oxfordshire, England, GBR", - "ShortLabel": "Mill End", - "Addr_type": "Locality", - "Type": "Village", - "PlaceName": "Mill End", - "Place_addr": "Hambleden, Henley-on-Thames, Oxfordshire, England", - "Phone": "", - "URL": "", - "Rank": 15, - "AddBldg": "", - "AddNum": "", - "AddNumFrom": "", - "AddNumTo": "", - "AddRange": "", - "Side": "", - "StPreDir": "", - "StPreType": "", - "StName": "", - "StType": "", - "StDir": "", - "BldgType": "", - "BldgName": "", - "LevelType": "", - "LevelName": "", - "UnitType": "", - "UnitName": "", - "SubAddr": "", - "StAddr": "", - "Block": "", - "Sector": "", - "Nbrhd": "Mill End", - "District": "Hambleden", - "City": "Henley-on-Thames", - "MetroArea": "", - "Subregion": "Oxfordshire", - "Region": "England", - "RegionAbbr": "ENG", - "Territory": "", - "Zone": "", - "Postal": "", - "PostalExt": "", - "Country": "GBR", - "LangCode": "ENG", - "Distance": 0, - "X": -0.86689999999993006, - "Y": 51.558340000000044, - "DisplayX": -0.86689999999993006, - "DisplayY": 51.558340000000044, - "Xmin": -0.87689999999993007, - "Xmax": -0.85689999999993005, - "Ymin": 51.548340000000046, - "Ymax": 51.568340000000042, - "ExInfo": "" - }, - "extent": { - "xmin": -0.87689999999993007, - "ymin": 51.548340000000046, - "xmax": -0.85689999999993005, - "ymax": 51.568340000000042 - } - } - ] -} diff --git a/__tests__/test-utils/fixtures/geocoding/arcgis/reverseGeocode-response.json b/__tests__/test-utils/fixtures/geocoding/arcgis/reverseGeocode-response.json deleted file mode 100644 index 2b73a1e4c..000000000 --- a/__tests__/test-utils/fixtures/geocoding/arcgis/reverseGeocode-response.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "address": { - "Match_addr": "SW Naito Pkwy, Portland, Oregon, 97204", - "LongLabel": "SW Naito Pkwy, Portland, OR, 97204, USA", - "ShortLabel": "SW Naito Pkwy", - "Addr_type": "StreetName", - "Type": "", - "PlaceName": "", - "AddNum": "", - "Address": "SW Naito Pkwy", - "Block": "", - "Sector": "", - "Neighborhood": "Downtown", - "District": "", - "City": "Portland", - "MetroArea": "Portland-Vancouver Metro Area", - "Subregion": "Multnomah County", - "Region": "Oregon", - "Territory": "", - "Postal": "97204", - "PostalExt": "", - "CountryCode": "USA" - }, - "location": { - "x": -122.67320084756255, - "y": 45.516175523600715, - "spatialReference": { - "wkid": 4326, - "latestWkid": 4326 - } - } -} diff --git a/__tests__/test-utils/fixtures/geocoding/arcgis/suggest-response.json b/__tests__/test-utils/fixtures/geocoding/arcgis/suggest-response.json deleted file mode 100644 index 61c72abaf..000000000 --- a/__tests__/test-utils/fixtures/geocoding/arcgis/suggest-response.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "suggestions": [ - { - "text": "Mill Ends City Park, Portland, OR, USA", - "magicKey": "dHA9MCNsb2M9ODU3OTE0NyNsbmc9MzMjcGw9MzI4OTA3MSNsYnM9MTQ6MjAwNTI3NTc=", - "isCollection": false - }, - { - "text": "Mill End Sports & Social, Penn Road, Mill End, Rickmansworth, Hertfordshire, England, WD3 8, GBR", - "magicKey": "dHA9MCNsb2M9OTY5Mzc0MiNsbmc9MzMjcGw9NTA4NTQ2NiNsYnM9MTQ6MjAwNTI3NTI=", - "isCollection": false - } - ] -} diff --git a/__tests__/test-utils/fixtures/geocoding/pelias/autocomplete-response.json b/__tests__/test-utils/fixtures/geocoding/pelias/autocomplete-response.json deleted file mode 100644 index ea9758c84..000000000 --- a/__tests__/test-utils/fixtures/geocoding/pelias/autocomplete-response.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "geocoding": { - "version": "0.2", - "attribution": "http://lb-st-mapgeo.tri-met.org:4000/attribution", - "query": { - "text": "Mill Ends", - "parser": "addressit", - "parsed_text": {}, - "tokens": [ - "Mill", - "Ends" - ], - "size": 10, - "private": false, - "focus.point.lat": 45.52, - "focus.point.lon": -122.67, - "lang": { - "name": "English", - "iso6391": "en", - "iso6393": "eng", - "defaulted": true - } - }, - "warnings": [ - "Invalid Parameter: api_key" - ], - "engine": { - "name": "Pelias", - "author": "Mapzen", - "version": "1.0" - }, - "timestamp": 1563948844191 - }, - "type": "FeatureCollection", - "features": [{ - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - -122.673377, - 45.516278 - ] - }, - "properties": { - "id": "node/4243944023", - "gid": "openstreetmap:venue:node/4243944023", - "layer": "venue", - "source": "openstreetmap", - "source_id": "node/4243944023", - "name": "Mill Ends Park", - "distance": 0.491, - "accuracy": "point", - "country": "United States", - "country_gid": "whosonfirst:country:85633793", - "country_a": "USA", - "region": "Oregon", - "region_gid": "whosonfirst:region:85688513", - "region_a": "OR", - "county": "Multnomah County", - "county_gid": "whosonfirst:county:102081631", - "county_a": "MU", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "label": "Mill Ends Park, Portland, OR, USA" - } - }], - "bbox": [ - -122.673377, - 45.516278, - -122.673377, - 45.516278 - ] -} diff --git a/__tests__/test-utils/fixtures/geocoding/pelias/reverse-response.json b/__tests__/test-utils/fixtures/geocoding/pelias/reverse-response.json deleted file mode 100644 index 0516458c4..000000000 --- a/__tests__/test-utils/fixtures/geocoding/pelias/reverse-response.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "geocoding": { - "version": "0.2", - "attribution": "http://lb-st-mapgeo.tri-met.org:4000/attribution", - "query": { - "size": 10, - "private": false, - "point.lat": 45.516198, - "point.lon": -122.67324, - "boundary.circle.lat": 45.516198, - "boundary.circle.lon": -122.67324, - "lang": { - "name": "English", - "iso6391": "en", - "iso6393": "eng", - "defaulted": true - }, - "querySize": 20 - }, - "warnings": [ - "Invalid Parameter: api_key" - ], - "engine": { - "name": "Pelias", - "author": "Mapzen", - "version": "1.0" - }, - "timestamp": 1563949092620 - }, - "type": "FeatureCollection", - "features": [{ - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - -122.673245, - 45.516201 - ] - }, - "properties": { - "id": "way/156366633", - "gid": "openstreetmap:venue:way/156366633", - "layer": "venue", - "source": "openstreetmap", - "source_id": "way/156366633", - "name": "Mill Ends Park", - "confidence": 0.9, - "distance": 0.001, - "accuracy": "point", - "country": "United States", - "country_gid": "whosonfirst:country:85633793", - "country_a": "USA", - "region": "Oregon", - "region_gid": "whosonfirst:region:85688513", - "region_a": "OR", - "county": "Multnomah County", - "county_gid": "whosonfirst:county:102081631", - "county_a": "MU", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "label": "Mill Ends Park, Portland, OR, USA" - }, - "bbox": [ - -122.6732557, - 45.5161964, - -122.673234, - 45.5162067 - ] - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - -122.673609, - 45.516337 - ] - }, - "properties": { - "id": "us/or/portland_metro:bd3f9863242e4ec7", - "gid": "openaddresses:address:us/or/portland_metro:bd3f9863242e4ec7", - "layer": "address", - "source": "openaddresses", - "source_id": "us/or/portland_metro:bd3f9863242e4ec7", - "name": "833 SW Naito Pkwy", - "housenumber": "833", - "street": "SW Naito Pkwy", - "postalcode": "97204", - "confidence": 0.8, - "distance": 0.033, - "accuracy": "point", - "country": "United States", - "country_gid": "whosonfirst:country:85633793", - "country_a": "USA", - "region": "Oregon", - "region_gid": "whosonfirst:region:85688513", - "region_a": "OR", - "county": "Multnomah County", - "county_gid": "whosonfirst:county:102081631", - "county_a": "MU", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "label": "833 SW Naito Pkwy, Portland, OR, USA" - } - } - ], - "bbox": [ - -122.673883, - 45.5161964, - -122.673234, - 45.516689 - ] -} diff --git a/__tests__/test-utils/fixtures/geocoding/pelias/search-response.json b/__tests__/test-utils/fixtures/geocoding/pelias/search-response.json deleted file mode 100644 index 61e6407a6..000000000 --- a/__tests__/test-utils/fixtures/geocoding/pelias/search-response.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "geocoding": { - "version": "0.2", - "attribution": "http://lb-st-mapgeo.tri-met.org:4000/attribution", - "query": { - "text": "Mill Ends", - "size": 10, - "private": false, - "focus.point.lat": 45.52, - "focus.point.lon": -122.67, - "lang": { - "name": "English", - "iso6391": "en", - "iso6393": "eng", - "defaulted": true - }, - "querySize": 20, - "parser": "addressit", - "parsed_text": {} - }, - "warnings": [ - "Invalid Parameter: api_key" - ], - "engine": { - "name": "Pelias", - "author": "Mapzen", - "version": "1.0" - }, - "timestamp": 1563949031708 - }, - "type": "FeatureCollection", - "features": [{ - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - -122.673377, - 45.516278 - ] - }, - "properties": { - "id": "node/4243944023", - "gid": "openstreetmap:venue:node/4243944023", - "layer": "venue", - "source": "openstreetmap", - "source_id": "node/4243944023", - "name": "Mill Ends Park", - "confidence": 1, - "match_type": "exact", - "distance": 0.491, - "accuracy": "point", - "country": "United States", - "country_gid": "whosonfirst:country:85633793", - "country_a": "USA", - "region": "Oregon", - "region_gid": "whosonfirst:region:85688513", - "region_a": "OR", - "county": "Multnomah County", - "county_gid": "whosonfirst:county:102081631", - "county_a": "MU", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "label": "Mill Ends Park, Portland, OR, USA" - } - }, - { - "type": "Feature", - "geometry": { - "type": "Point", - "coordinates": [ - -122.681441, - 45.511851 - ] - }, - "properties": { - "id": "2584-1136::TRIMET::station", - "gid": "transit:station:2584-1136::TRIMET::station", - "layer": "station", - "source": "transit", - "source_id": "2584-1136::trimet::station", - "name": "PSU Urban Center/SW 5th & Mill MAX Station", - "street": "SW 5th & Mill", - "postalcode": "97201", - "confidence": 1, - "match_type": "exact", - "distance": 1.273, - "accuracy": "centroid", - "country": "United States", - "country_gid": "whosonfirst:country:85633793", - "country_a": "USA", - "region": "Oregon", - "region_gid": "whosonfirst:region:85688513", - "region_a": "OR", - "county": "Multnomah County", - "county_gid": "whosonfirst:county:102081631", - "county_a": "MU", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "label": "PSU Urban Center/SW 5th & Mill MAX Station, Portland, OR, USA" - } - } - ], - "bbox": [ - -122.821522, - 45.495264, - -122.475528, - 45.516278 - ] -} diff --git a/__tests__/util/__snapshots__/geocoder.js.snap b/__tests__/util/__snapshots__/geocoder.js.snap deleted file mode 100644 index 0ec26af09..000000000 --- a/__tests__/util/__snapshots__/geocoder.js.snap +++ /dev/null @@ -1,350 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`geocoder ARCGIS should get location from geocode feature 1`] = ` -Object { - "lat": 51.973520000000065, - "lon": 0.1296100000000706, - "name": "Mill End, Clavering, Saffron Walden, Essex, England, GBR", -} -`; - -exports[`geocoder ARCGIS should make autocomplete query 1`] = ` -Object { - "features": Array [ - Object { - "isCollection": false, - "magicKey": "dHA9MCNsb2M9ODU3OTE0NyNsbmc9MzMjcGw9MzI4OTA3MSNsYnM9MTQ6MjAwNTI3NTc=", - "properties": Object { - "label": "Mill Ends City Park, Portland, OR, USA", - }, - "text": "Mill Ends City Park, Portland, OR, USA", - }, - Object { - "isCollection": false, - "magicKey": "dHA9MCNsb2M9OTY5Mzc0MiNsbmc9MzMjcGw9NTA4NTQ2NiNsYnM9MTQ6MjAwNTI3NTI=", - "properties": Object { - "label": "Mill End Sports & Social, Penn Road, Mill End, Rickmansworth, Hertfordshire, England, WD3 8, GBR", - }, - "text": "Mill End Sports & Social, Penn Road, Mill End, Rickmansworth, Hertfordshire, England, WD3 8, GBR", - }, - ], -} -`; - -exports[`geocoder ARCGIS should make reverse query 1`] = ` -Object { - "lat": 45.516198, - "lon": -122.67324, - "name": "SW Naito Pkwy, Portland, OR, 97204, USA", -} -`; - -exports[`geocoder ARCGIS should make search query 1`] = ` -Object { - "features": Array [ - Object { - "geometry": Object { - "coordinates": Array [ - 0.1296100000000706, - 51.973520000000065, - ], - "type": "point", - }, - "properties": Object { - "confidence": 0.875, - "country": "GBR", - "country_a": "GBR", - "county": "Essex", - "label": "Mill End, Clavering, Saffron Walden, Essex, England, GBR", - "locality": "Saffron Walden", - "name": "Mill End", - "neighbourhood": "Mill End", - "region": "England", - "resultId": undefined, - }, - "type": "feature", - }, - Object { - "geometry": Object { - "coordinates": Array [ - -0.8668999999999301, - 51.558340000000044, - ], - "type": "point", - }, - "properties": Object { - "confidence": 0.875, - "country": "GBR", - "country_a": "GBR", - "county": "Oxfordshire", - "label": "Mill End, Hambleden, Henley-on-Thames, Oxfordshire, England, GBR", - "locality": "Henley-on-Thames", - "name": "Mill End", - "neighbourhood": "Mill End", - "region": "England", - "resultId": undefined, - }, - "type": "feature", - }, - ], - "query": Object { - "text": "Mill Ends", - }, -} -`; - -exports[`geocoder NoApiGeocoder should get location from geocode feature 1`] = ` -Object { - "lat": 45.516198, - "lon": -122.67324, - "name": "45.516198, -122.673240", -} -`; - -exports[`geocoder NoApiGeocoder should make autocomplete query 1`] = ` -Object { - "features": Array [], -} -`; - -exports[`geocoder NoApiGeocoder should make reverse query 1`] = ` -Object { - "lat": 45.5162, - "lon": -122.67324, - "name": "45.5162, -122.67324", -} -`; - -exports[`geocoder NoApiGeocoder should make search query 1`] = ` -Object { - "features": Array [], -} -`; - -exports[`geocoder PELIAS should get location from geocode feature 1`] = ` -Object { - "lat": 45.516198, - "lon": -122.67324, - "name": "Mill Ends Park, Portland, OR, USA", -} -`; - -exports[`geocoder PELIAS should make autocomplete query 1`] = ` -Object { - "bbox": Array [ - -122.673377, - 45.516278, - -122.673377, - 45.516278, - ], - "features": Array [ - Object { - "geometry": Object { - "coordinates": Array [ - -122.673377, - 45.516278, - ], - "type": "Point", - }, - "properties": Object { - "accuracy": "point", - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "country": "United States", - "country_a": "USA", - "country_gid": "whosonfirst:country:85633793", - "county": "Multnomah County", - "county_a": "MU", - "county_gid": "whosonfirst:county:102081631", - "distance": 0.491, - "gid": "openstreetmap:venue:node/4243944023", - "id": "node/4243944023", - "label": "Mill Ends Park, Portland, OR, USA", - "layer": "venue", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "name": "Mill Ends Park", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "region": "Oregon", - "region_a": "OR", - "region_gid": "whosonfirst:region:85688513", - "source": "openstreetmap", - "source_id": "node/4243944023", - }, - "type": "Feature", - }, - ], - "geocoding": Object { - "attribution": "http://lb-st-mapgeo.tri-met.org:4000/attribution", - "engine": Object { - "author": "Mapzen", - "name": "Pelias", - "version": "1.0", - }, - "query": Object { - "focus.point.lat": 45.52, - "focus.point.lon": -122.67, - "lang": Object { - "defaulted": true, - "iso6391": "en", - "iso6393": "eng", - "name": "English", - }, - "parsed_text": Object {}, - "parser": "addressit", - "private": false, - "size": 10, - "text": "Mill Ends", - "tokens": Array [ - "Mill", - "Ends", - ], - }, - "timestamp": 1563948844191, - "version": "0.2", - "warnings": Array [ - "Invalid Parameter: api_key", - ], - }, - "isomorphicMapzenSearchQuery": Object { - "api_key": "dummy-mapzen-key", - "text": "Mill Ends", - }, - "type": "FeatureCollection", -} -`; - -exports[`geocoder PELIAS should make reverse query 1`] = ` -Object { - "lat": 45.516198, - "lon": -122.67324, - "name": "Mill Ends Park, Portland, OR, USA", -} -`; - -exports[`geocoder PELIAS should make search query 1`] = ` -Object { - "bbox": Array [ - -122.821522, - 45.495264, - -122.475528, - 45.516278, - ], - "features": Array [ - Object { - "geometry": Object { - "coordinates": Array [ - -122.673377, - 45.516278, - ], - "type": "Point", - }, - "properties": Object { - "accuracy": "point", - "confidence": 1, - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "country": "United States", - "country_a": "USA", - "country_gid": "whosonfirst:country:85633793", - "county": "Multnomah County", - "county_a": "MU", - "county_gid": "whosonfirst:county:102081631", - "distance": 0.491, - "gid": "openstreetmap:venue:node/4243944023", - "id": "node/4243944023", - "label": "Mill Ends Park, Portland, OR, USA", - "layer": "venue", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "match_type": "exact", - "name": "Mill Ends Park", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "region": "Oregon", - "region_a": "OR", - "region_gid": "whosonfirst:region:85688513", - "source": "openstreetmap", - "source_id": "node/4243944023", - }, - "type": "Feature", - }, - Object { - "geometry": Object { - "coordinates": Array [ - -122.681441, - 45.511851, - ], - "type": "Point", - }, - "properties": Object { - "accuracy": "centroid", - "confidence": 1, - "continent": "North America", - "continent_gid": "whosonfirst:continent:102191575", - "country": "United States", - "country_a": "USA", - "country_gid": "whosonfirst:country:85633793", - "county": "Multnomah County", - "county_a": "MU", - "county_gid": "whosonfirst:county:102081631", - "distance": 1.273, - "gid": "transit:station:2584-1136::TRIMET::station", - "id": "2584-1136::TRIMET::station", - "label": "PSU Urban Center/SW 5th & Mill MAX Station, Portland, OR, USA", - "layer": "station", - "locality": "Portland", - "locality_gid": "whosonfirst:locality:101715829", - "match_type": "exact", - "name": "PSU Urban Center/SW 5th & Mill MAX Station", - "neighbourhood": "Downtown", - "neighbourhood_gid": "whosonfirst:neighbourhood:85867131", - "postalcode": "97201", - "region": "Oregon", - "region_a": "OR", - "region_gid": "whosonfirst:region:85688513", - "source": "transit", - "source_id": "2584-1136::trimet::station", - "street": "SW 5th & Mill", - }, - "type": "Feature", - }, - ], - "geocoding": Object { - "attribution": "http://lb-st-mapgeo.tri-met.org:4000/attribution", - "engine": Object { - "author": "Mapzen", - "name": "Pelias", - "version": "1.0", - }, - "query": Object { - "focus.point.lat": 45.52, - "focus.point.lon": -122.67, - "lang": Object { - "defaulted": true, - "iso6391": "en", - "iso6393": "eng", - "name": "English", - }, - "parsed_text": Object {}, - "parser": "addressit", - "private": false, - "querySize": 20, - "size": 10, - "text": "Mill Ends", - }, - "timestamp": 1563949031708, - "version": "0.2", - "warnings": Array [ - "Invalid Parameter: api_key", - ], - }, - "isomorphicMapzenSearchQuery": Object { - "api_key": "dummy-mapzen-key", - "size": 10, - "text": "Mill Ends", - }, - "type": "FeatureCollection", -} -`; diff --git a/__tests__/util/geocoder.js b/__tests__/util/geocoder.js deleted file mode 100644 index ada6e8601..000000000 --- a/__tests__/util/geocoder.js +++ /dev/null @@ -1,188 +0,0 @@ -import nock from 'nock' - -import getGeocoder, { PeliasGeocoder } from '../../lib/util/geocoder' - -function mockResponsePath (geocoder, file) { - return `__tests__/test-utils/fixtures/geocoding/${geocoder}/${file}` -} - -describe('geocoder', () => { - const geocoders = [ - { - type: 'ARCGIS' - }, { - apiKey: 'dummy-mapzen-key', - baseUrl: 'https://ws-st.trimet.org/pelias/v1', - type: 'PELIAS' - }, - // this entry represents no geocoder configuration. In this case it is - // expected that the NoApiGeocoder will be used. - undefined - ] - - // nocks for ARCGIS - const baseArcGisPath = '/arcgis/rest/services/World/GeocodeServer/' - nock('https://geocode.arcgis.com') - // autocomplete - .get(`${baseArcGisPath}suggest`) - .query(true) - .replyWithFile(200, mockResponsePath('arcgis', 'suggest-response.json')) - // reverse - .get(`${baseArcGisPath}reverseGeocode`) - .query(true) - .replyWithFile(200, mockResponsePath('arcgis', 'reverseGeocode-response.json')) - // search - .get(`${baseArcGisPath}findAddressCandidates`) - .query(true) - .replyWithFile(200, mockResponsePath('arcgis', 'findAddressCandidates-response.json')) - // a 2nd search for purposes of resolving getLocationFromGeocodedFeature test - .get(`${baseArcGisPath}findAddressCandidates`) - .query(true) - .replyWithFile(200, mockResponsePath('arcgis', 'findAddressCandidates-response.json')) - - // nocks for PELIAS - const basePeliasPath = '/pelias/v1/' - nock('https://ws-st.trimet.org') - // autocomplete - .get(`${basePeliasPath}autocomplete`) - .query(true) - .replyWithFile(200, mockResponsePath('pelias', 'autocomplete-response.json')) - // reverse - .get(`${basePeliasPath}search`) - .query(true) - .replyWithFile(200, mockResponsePath('pelias', 'search-response.json')) - // search - .get(`${basePeliasPath}reverse`) - .query(true) - .replyWithFile(200, mockResponsePath('pelias', 'reverse-response.json')) - - geocoders.forEach(geocoder => { - const geocoderType = geocoder - ? geocoder.type - : 'NoApiGeocoder' - // the describe is in quotes to bypass a lint rule - describe(`${geocoderType}`, () => { - it('should make autocomplete query', async () => { - const result = await getGeocoder(geocoder).autocomplete({ text: 'Mill Ends' }) - expect(result).toMatchSnapshot() - }) - - it('should make search query', async () => { - const result = await getGeocoder(geocoder).search({ text: 'Mill Ends' }) - expect(result).toMatchSnapshot() - }) - - it('should make reverse query', async () => { - const result = await getGeocoder(geocoder) - .reverse({ point: { lat: 45.516198, lon: -122.673240 } }) - expect(result).toMatchSnapshot() - }) - - it('should get location from geocode feature', async () => { - let mockFeature - switch (geocoderType) { - case 'ARCGIS': - mockFeature = { - magicKey: 'abcd', - properties: { - label: 'Mill Ends City Park, Portland, OR, USA' - }, - text: 'Mill Ends City Park, Portland, OR, USA' - } - break - case 'PELIAS': - mockFeature = { - geometry: { - coordinates: [-122.673240, 45.516198], - type: 'Point' - }, - properties: { - label: 'Mill Ends Park, Portland, OR, USA' - } - } - break - case 'NoApiGeocoder': - mockFeature = { - geometry: { - coordinates: [-122.673240, 45.516198], - type: 'Point' - }, - properties: { - label: '45.516198, -122.673240' - } - } - break - default: - throw new Error(`no mock feature defined for geocoder type: ${geocoder.type}`) - } - const result = await getGeocoder(geocoder).getLocationFromGeocodedFeature(mockFeature) - expect(result).toMatchSnapshot() - }) - - // geocoder-specific tests - if (geocoderType === 'PELIAS') { - const mockSources = 'gn,oa,osm,wof' - - // sources should not be sent unless they are explicitly defined in the - // query. See https://github.com/ibi-group/trimet-mod-otp/issues/239 - it('should not send sources in autocomplete by default', () => { - // create mock API to check query - const mockPeliasAPI = { - autocomplete: query => { - expect(query.sources).not.toBe(expect.anything()) - return Promise.resolve() - } - } - const pelias = new PeliasGeocoder(mockPeliasAPI, geocoder) - pelias.autocomplete({ text: 'Mill Ends' }) - }) - - // should send sources if they're defined in the config - it('should send sources in autocomplete if defined in config', () => { - // create mock API to check query - const mockPeliasAPI = { - autocomplete: query => { - expect(query.sources).toBe(mockSources) - return Promise.resolve() - } - } - const pelias = new PeliasGeocoder( - mockPeliasAPI, - { ...geocoder, sources: mockSources } - ) - pelias.autocomplete({ text: 'Mill Ends' }) - }) - - // sources should not be sent unless they are explicitly defined in the - // query. See https://github.com/ibi-group/trimet-mod-otp/issues/239 - it('should not send sources in search by default', () => { - // create mock API to check query - const mockPeliasAPI = { - search: query => { - expect(query.sources).not.toBe(expect.anything()) - return Promise.resolve() - } - } - const pelias = new PeliasGeocoder(mockPeliasAPI, geocoder) - pelias.search({ text: 'Mill Ends' }) - }) - - // should send sources if they're defined in the config - it('should send sources in search if defined in config', () => { - // create mock API to check query - const mockPeliasAPI = { - search: query => { - expect(query.sources).toBe(mockSources) - return Promise.resolve() - } - } - const pelias = new PeliasGeocoder( - mockPeliasAPI, - { ...geocoder, sources: mockSources } - ) - pelias.search({ text: 'Mill Ends' }) - }) - } - }) - }) -}) diff --git a/lib/actions/map.js b/lib/actions/map.js index b1b0ece2e..0de7887b0 100644 --- a/lib/actions/map.js +++ b/lib/actions/map.js @@ -1,8 +1,8 @@ +import getGeocoder from '@opentripplanner/geocoder' import { createAction } from 'redux-actions' import { routingQuery } from './api' import { clearActiveSearch } from './form' -import getGeocoder from '../util/geocoder' /* SET_LOCATION action creator. Updates a from or to location in the store * @@ -35,6 +35,19 @@ export function clearLocation (payload) { } } +/** + * Handler for @opentripplanner/location-field onLocationSelected + */ +export function onLocationSelected ({ locationType, location, resultType }) { + return function (dispatch, getState) { + if (resultType === 'CURRENT_LOCATION') { + dispatch(setLocationToCurrent({ type: locationType })) + } else { + dispatch(setLocation({ location, type: locationType })) + } + } +} + export function setLocation (payload) { return function (dispatch, getState) { const otpState = getState().otp diff --git a/lib/components/form/connected-location-field.js b/lib/components/form/connected-location-field.js new file mode 100644 index 000000000..1f497f84f --- /dev/null +++ b/lib/components/form/connected-location-field.js @@ -0,0 +1,85 @@ +import LocationField from '@opentripplanner/location-field' +import { + DropdownContainer, + FormGroup, + Input, + InputGroup, + InputGroupAddon, + MenuItemA +} from '@opentripplanner/location-field/lib/styled' +import { connect } from 'react-redux' +import styled from 'styled-components' + +import { clearLocation, onLocationSelected } from '../../actions/map' +import { addLocationSearch, getCurrentPosition } from '../../actions/location' +import { findNearbyStops } from '../../actions/api' +import { getActiveSearch, getShowUserSettings } from '../../util/state' + +const StyledLocationField = styled(LocationField)` + width: 100%; + + ${DropdownContainer} { + display: table-cell; + vertical-align: middle; + width: 1%; + } + + ${FormGroup} { + display: table; + padding: 6px 12px; + width: 100%; + } + + ${Input} { + display: table-cell; + padding: 6px 12px; + width: 100%; + } + + ${InputGroup} { + width: 100%; + } + + ${InputGroupAddon} { + display: table-cell; + vertical-align: middle; + width: 1%; + } + + ${MenuItemA} { + text-decoration: none; + } + + ${MenuItemA}:hover { + color: #333; + } +` + +// connect to redux store + +const mapStateToProps = (state, ownProps) => { + const { config, currentQuery, location, transitIndex, user } = state.otp + const { currentPosition, nearbyStops, sessionSearches } = location + const activeSearch = getActiveSearch(state.otp) + const query = activeSearch ? activeSearch.query : currentQuery + return { + currentPosition, + geocoderConfig: config.geocoder, + location: query[ownProps.locationType], + nearbyStops, + sessionSearches, + showUserSettings: getShowUserSettings(state.otp), + stopsIndex: transitIndex.stops, + userLocationsAndRecentPlaces: [...user.locations, ...user.recentPlaces] + } +} + +const mapDispatchToProps = { + addLocationSearch, + findNearbyStops, + getCurrentPosition, + onLocationSelected, + clearLocation +} + +export default connect(mapStateToProps, mapDispatchToProps)(StyledLocationField) diff --git a/lib/components/form/default-search-form.js b/lib/components/form/default-search-form.js index b6c72cd52..1f2578231 100644 --- a/lib/components/form/default-search-form.js +++ b/lib/components/form/default-search-form.js @@ -1,7 +1,7 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' -import LocationField from './location-field' +import LocationField from './connected-location-field' import SwitchButton from './switch-button' import TabbedFormPanel from './tabbed-form-panel' import defaultIcons from '../icons' @@ -34,14 +34,14 @@ export default class DefaultSearchForm extends Component {
diff --git a/lib/components/form/location-field.js b/lib/components/form/location-field.js deleted file mode 100644 index 7c52c6e6b..000000000 --- a/lib/components/form/location-field.js +++ /dev/null @@ -1,605 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import ReactDOM from 'react-dom' -import { - Button, - FormGroup, - FormControl, - InputGroup, - DropdownButton, - MenuItem -} from 'react-bootstrap' -import { connect } from 'react-redux' -import { throttle } from 'throttle-debounce' - -import LocationIcon from '../icons/location-icon' -import { setLocation, setLocationToCurrent, clearLocation } from '../../actions/map' -import { addLocationSearch, getCurrentPosition } from '../../actions/location' -import { findNearbyStops } from '../../actions/api' -import { distanceStringImperial } from '../../util/distance' -import getGeocoder from '../../util/geocoder' -import { formatStoredPlaceName } from '../../util/map' -import { getActiveSearch, getShowUserSettings } from '../../util/state' -import { isIE } from '../../util/ui' - -class LocationField extends Component { - static propTypes = { - config: PropTypes.object, - currentPosition: PropTypes.object, - hideExistingValue: PropTypes.bool, - location: PropTypes.object, - label: PropTypes.string, - nearbyStops: PropTypes.array, - sessionSearches: PropTypes.array, - showClearButton: PropTypes.bool, - static: PropTypes.bool, // show autocomplete options as fixed/inline element rather than dropdown - stopsIndex: PropTypes.object, - type: PropTypes.string, // replace with locationType? - - // callbacks - onClick: PropTypes.func, - onLocationSelected: PropTypes.func, - - // dispatch - addLocationSearch: PropTypes.func, - clearLocation: PropTypes.func, - setLocation: PropTypes.func, - setLocationToCurrent: PropTypes.func - } - - static defaultProps = { - showClearButton: true - } - - constructor (props) { - super(props) - this.state = { - value: props.location && !props.hideExistingValue - ? props.location.name - : '', - menuVisible: false, - geocodedFeatures: [], - activeIndex: null - } - } - - componentDidUpdate (prevProps) { - // If location is updated externally, replace value and geocoded features - // in internal state. - // TODO: This might be considered an anti-pattern. There may be a more - // effective way to handle this. - const { location } = this.props - if (location !== prevProps.location) { - this.setState({ - value: location !== null ? location.name : '', - geocodedFeatures: [] - }) - } - } - - _geocodeAutocomplete = throttle(1000, (text) => { - if (!text) { - console.warn('No text entry provided for geocode autocomplete search.') - return - } - getGeocoder(this.props.config.geocoder) - .autocomplete({ text }) - .then((result) => { - this.setState({ geocodedFeatures: result.features }) - }).catch((err) => { - console.error(err) - }) - }) - - _geocodeSearch (text) { - if (!text) { - console.warn('No text entry provided for geocode search.') - return - } - getGeocoder(this.props.config.geocoder) - .search({ text }) - .then((result) => { - if (result.features && result.features.length > 0) { - // Only replace geocode items if results were found - this.setState({ geocodedFeatures: result.features }) - } else { - console.warn('No results found for geocode search. Not replacing results.') - } - }).catch((err) => { - console.error(err) - }) - } - - _getFormControlClassname () { - return this.props.type + '-form-control' - } - - _onClearButtonClick = () => { - const { type } = this.props - this.props.clearLocation({ type }) - this.setState({ - value: '', - geocodedFeatures: [] - }) - ReactDOM.findDOMNode(this.formControl).focus() - this._onTextInputClick() - } - - _onDropdownToggle = (v, e) => { - // if clicked on input form control, keep dropdown open; otherwise, toggle - const targetIsInput = - e.target.className.indexOf(this._getFormControlClassname()) !== -1 - const menuVisible = targetIsInput ? true : !this.state.menuVisible - this.setState({ menuVisible }) - } - /** - * Only hide menu if the target clicked is not a menu item in the dropdown. - * Otherwise, the click will not "finish" and the menu will hide without the - * user having made a selection. - */ - _onBlurFormGroup = (e) => { - // IE does not use relatedTarget, so this check handles cross-browser support. - // see https://stackoverflow.com/a/49325196/915811 - const target = e.relatedTarget !== null ? e.relatedTarget : document.activeElement - if (!this.props.location && (!target || target.getAttribute('role') !== 'menuitem')) { - this.setState({ menuVisible: false, value: '', geocodedFeatures: [] }) - } - } - - _onTextInputChange = (evt) => { - this.setState({ value: evt.target.value, menuVisible: true }) - this._geocodeAutocomplete(evt.target.value) - } - - _onTextInputClick = () => { - const { config, currentPosition, nearbyStops, onClick } = this.props - if (typeof onClick === 'function') onClick() - this.setState({ menuVisible: true }) - if (nearbyStops.length === 0 && currentPosition && currentPosition.coords) { - this.props.findNearbyStops({ - lat: currentPosition.coords.latitude, - lon: currentPosition.coords.longitude, - max: config.geocoder.maxNearbyStops || 4 - }) - } - } - - _onKeyDown = (evt) => { - const { activeIndex, menuVisible } = this.state - switch (evt.key) { - // 'Down' arrow key pressed: move selected menu item down by one position - case 'ArrowDown': - // Suppress default 'ArrowDown' behavior which moves cursor to end - evt.preventDefault() - if (!menuVisible) { - // If the menu is not visible, simulate a text input click to show it. - return this._onTextInputClick() - } - if (activeIndex === this.menuItemCount - 1) { - return this.setState({ activeIndex: null }) - } - return this.setState({ - activeIndex: activeIndex === null - ? 0 - : activeIndex + 1 - }) - - // 'Up' arrow key pressed: move selection up by one position - case 'ArrowUp': - // Suppress default 'ArrowUp' behavior which moves cursor to beginning - evt.preventDefault() - if (activeIndex === 0) { - return this.setState({ activeIndex: null }) - } - return this.setState({ - activeIndex: activeIndex === null - ? this.menuItemCount - 1 - : activeIndex - 1 - }) - - // 'Enter' keypress serves two purposes: - // - If pressed when typing in search string, switch from 'autocomplete' - // to 'search' geocoding - // - If pressed when dropdown results menu is active, apply the location - // associated with current selected menu item - case 'Enter': - if (typeof activeIndex === 'number') { // Menu is active - // Retrieve location selection handler from lookup object and invoke - const locationSelected = this.locationSelectedLookup[activeIndex] - if (locationSelected) locationSelected() - - // Clear selection & hide the menu - this.setState({ - menuVisible: false, - activeIndex: null - }) - } else { // Menu not active; get geocode 'search' results - this._geocodeSearch(evt.target.value) - // Ensure menu is visible. - this.setState({ menuVisible: true }) - } - - // Suppress default 'Enter' behavior which causes page to reload - evt.preventDefault() - break - case 'Escape': - // Clear selection & hide the menu - return this.setState({ - menuVisible: false, - activeIndex: null - }) - // Any other key pressed: clear active selection - default: - return this.setState({ activeIndex: null }) - } - } - - _setLocation (location) { - const { onLocationSelected, setLocation, type } = this.props - onLocationSelected && onLocationSelected() - setLocation({ type, location }) - } - - _useCurrentLocation = () => { - const { - currentPosition, - getCurrentPosition, - onLocationSelected, - setLocationToCurrent, - type - } = this.props - if (currentPosition.coords) { - // We already have geolocation coordinates - setLocationToCurrent({ type }) - onLocationSelected && onLocationSelected() - } else { - // Call geolocation.getCurrentPosition and set as from/to type - this.setState({ fetchingLocation: true }) - getCurrentPosition(type, onLocationSelected) - } - } - - /** - * Provide alert to user with reason for geolocation error - */ - _geolocationAlert = () => { - window.alert( - `Geolocation either has been disabled for ${window.location.host} or is not available in your browser.\n\nReason: ${this.props.currentPosition.error.message || 'Unknown reason'}` - ) - } - - render () { - const { - currentPosition, - label, - location, - user, - showClearButton, - showUserSettings, - static: isStatic, - suppressNearby, - type, - nearbyStops - } = this.props - const locations = [...user.locations, ...user.recentPlaces] - const { activeIndex } = this.state - let geocodedFeatures = this.state.geocodedFeatures - if (geocodedFeatures.length > 5) geocodedFeatures = geocodedFeatures.slice(0, 5) - - let sessionSearches = this.props.sessionSearches - if (sessionSearches.length > 5) sessionSearches = sessionSearches.slice(0, 5) - - // Assemble menu contents, to be displayed either as dropdown or static panel. - // Menu items are created in four phases: (1) the current location, (2) any - // geocoder search results; (3) nearby transit stops; and (4) saved searches - - let menuItems = [] // array of menu items for display (may include non-selectable items e.g. dividers/headings) - let itemIndex = 0 // the index of the current location-associated menu item (excluding non-selectable items) - this.locationSelectedLookup = {} // maps itemIndex to a location selection handler (for use by the _onKeyDown method) - - /* 1) Process geocode search result option(s) */ - if (geocodedFeatures.length > 0) { - // Add the menu sub-heading (not a selectable item) - // menuItems.push(Search Results) - - // Iterate through the geocoder results - menuItems = menuItems.concat(geocodedFeatures.map((feature, i) => { - // Create the selection handler - const locationSelected = () => { - getGeocoder(this.props.config.geocoder) - .getLocationFromGeocodedFeature(feature) - .then(location => { - // Set the current location - this._setLocation(location) - // Add to the location search history - this.props.addLocationSearch({ location }) - }) - } - - // Add to the selection handler lookup (for use in _onKeyDown) - this.locationSelectedLookup[itemIndex] = locationSelected - - // Create and return the option menu item - const option = createOption('map-pin', feature.properties.label, locationSelected, itemIndex === activeIndex, i === geocodedFeatures.length - 1) - itemIndex++ - return option - })) - } - - /* 2) Process nearby transit stop options */ - if (nearbyStops.length > 0 && !suppressNearby) { - // Add the menu sub-heading (not a selectable item) - menuItems.push(Nearby Stops) - - // Iterate through the found nearby stops - menuItems = menuItems.concat(nearbyStops.map((stopId, i) => { - // Constuct the location - const stop = this.props.stopsIndex[stopId] - const location = { - name: stop.name, - lat: stop.lat, - lon: stop.lon - } - - // Create the location selected handler - const locationSelected = () => { this._setLocation(location) } - - // Add to the selection handler lookup (for use in _onKeyDown) - this.locationSelectedLookup[itemIndex] = locationSelected - - // Create and return the option menu item - const option = createTransitStopOption(stop, locationSelected, itemIndex === activeIndex, i === nearbyStops.length - 1) - itemIndex++ - return option - })) - } - - /* 3) Process recent search history options */ - if (sessionSearches.length > 0) { - // Add the menu sub-heading (not a selectable item) - menuItems.push(Recently Searched) - - // Iterate through any saved locations - menuItems = menuItems.concat(sessionSearches.map((location, i) => { - // Create the location-selected handler - const locationSelected = () => { this._setLocation(location) } - - // Add to the selection handler lookup (for use in _onKeyDown) - this.locationSelectedLookup[itemIndex] = locationSelected - - // Create and return the option menu item - const option = createOption('search', location.name, locationSelected, itemIndex === activeIndex, i === sessionSearches.length - 1) - itemIndex++ - return option - })) - } - - /* 3b) Process stored user locations */ - if (locations.length > 0 && showUserSettings) { - // Add the menu sub-heading (not a selectable item) - menuItems.push(My Places) - - // Iterate through any saved locations - menuItems = menuItems.concat(locations.map((location, i) => { - // Create the location-selected handler - const locationSelected = () => { this._setLocation(location) } - - // Add to the selection handler lookup (for use in _onKeyDown) - this.locationSelectedLookup[itemIndex] = locationSelected - - // Create and return the option menu item - const option = createOption( - location.icon, - formatStoredPlaceName(location), - locationSelected, - itemIndex === activeIndex, - i === locations.length - 1 - ) - itemIndex++ - return option - })) - } - - /* 4) Process the current location */ - let locationSelected, optionIcon, optionTitle - - if (!currentPosition.error) { // current position detected successfully - locationSelected = this._useCurrentLocation - optionIcon = 'location-arrow' - optionTitle = 'Use Current Location' - } else { // error detecting current position - locationSelected = this._geolocationAlert - optionIcon = 'ban' - optionTitle = 'Current location not available' - } - - // Add to the selection handler lookup (for use in _onKeyDown) - this.locationSelectedLookup[itemIndex] = locationSelected - - if (!suppressNearby) { - // Create and add the option item to the menu items array - const currentLocationOption = createOption( - optionIcon, - optionTitle, - locationSelected, - itemIndex === activeIndex - ) - menuItems.push(currentLocationOption) - itemIndex++ - } - - // Store the number of location-associated items for reference in the _onKeyDown method - this.menuItemCount = itemIndex - - /** the text input element **/ - const placeholder = currentPosition.fetching === type - ? 'Fetching location...' - : label || type - const textControl = { this.formControl = ctl }} - className={this._getFormControlClassname()} - type='text' - value={this.state.value} - placeholder={placeholder} - onChange={this._onTextInputChange} - onClick={this._onTextInputClick} - onKeyDown={this._onKeyDown} - /> - - // Only include the clear ('X') button add-on if a location is selected - // or if the input field has text. - const clearButton = showClearButton && location - ? - - - : null - if (isStatic) { - // 'static' mode (menu is displayed alongside input, e.g., for mobile view) - return ( -
-
- - - - - - {textControl} - {clearButton} - - -
-
    - {menuItems.length > 0 // Show typing prompt to avoid empty screen - ? menuItems - : - Begin typing to search for locations - - } -
-
- ) - } else { - // default display mode with dropdown menu - return ( -
- - - {/* location field icon -- also serves as dropdown anchor */} - } - noCaret - > - {menuItems} - - {textControl} - {clearButton} - - -
- ) - } - } -} - -// helper functions for dropdown options - -let itemKey = 0 - -function createOption (icon, title, onSelect, isActive, isLast) { - return - {isIE() - // In internet explorer 11, some really weird stuff is happening where it - // is not possible to click the text of the title, but if you click just - // above it, then it works. So, if using IE 11, just return the title text - // and avoid all the extra fancy stuff. - // See https://github.com/ibi-group/trimet-mod-otp/issues/237 - ? title - : ( -
-
-
- {title} -
-
- ) - } -
-} - -function createTransitStopOption (stop, onSelect, isActive) { - return -
-
- -
{distanceStringImperial(stop.dist, true)}
-
-
-
{stop.name} ({stop.code})
-
- {(stop.routes || []).map((route, i) => { - const name = route.shortName || route.longName - return ( - - {name} - - ) - })} -
-
-
-
- -} - -// connect to redux store - -const mapStateToProps = (state, ownProps) => { - const activeSearch = getActiveSearch(state.otp) - const query = activeSearch ? activeSearch.query : state.otp.currentQuery - const location = query[ownProps.type] - const showUserSettings = getShowUserSettings(state.otp) - return { - config: state.otp.config, - location, - user: state.otp.user, - currentPosition: state.otp.location.currentPosition, - sessionSearches: state.otp.location.sessionSearches, - nearbyStops: state.otp.location.nearbyStops, - showUserSettings, - stopsIndex: state.otp.transitIndex.stops - } -} - -const mapDispatchToProps = { - addLocationSearch, - findNearbyStops, - getCurrentPosition, - setLocation, - setLocationToCurrent, - clearLocation -} - -export default connect(mapStateToProps, mapDispatchToProps)(LocationField) diff --git a/lib/components/mobile/location-search.js b/lib/components/mobile/location-search.js index 5c7404947..11a7e02d6 100644 --- a/lib/components/mobile/location-search.js +++ b/lib/components/mobile/location-search.js @@ -4,7 +4,7 @@ import { connect } from 'react-redux' import MobileContainer from './container' import MobileNavigationBar from './navigation-bar' -import LocationField from '../form/location-field' +import LocationField from '../form/connected-location-field' import { MobileScreens, setMobileScreen } from '../../actions/ui' @@ -36,12 +36,12 @@ class MobileLocationSearch extends Component { />
diff --git a/lib/components/mobile/search-screen.js b/lib/components/mobile/search-screen.js index 364b3d17f..bfa2952cf 100644 --- a/lib/components/mobile/search-screen.js +++ b/lib/components/mobile/search-screen.js @@ -5,7 +5,7 @@ import { Row, Col } from 'react-bootstrap' import DateTimePreview from '../form/date-time-preview' import DefaultMap from '../map/default-map' -import LocationField from '../form/location-field' +import LocationField from '../form/connected-location-field' import PlanTripButton from '../form/plan-trip-button' import SettingsPreview from '../form/settings-preview' import SwitchButton from '../form/switch-button' @@ -51,13 +51,13 @@ class MobileSearchScreen extends Component {
diff --git a/lib/components/mobile/welcome-screen.js b/lib/components/mobile/welcome-screen.js index d162605a3..0d2414ea5 100644 --- a/lib/components/mobile/welcome-screen.js +++ b/lib/components/mobile/welcome-screen.js @@ -3,14 +3,12 @@ import PropTypes from 'prop-types' import { connect } from 'react-redux' import MobileContainer from './container' -import LocationField from '../form/location-field' -import UserSettings from '../form/user-settings' +import LocationField from '../form/connected-location-field' import DefaultMap from '../map/default-map' import MobileNavigationBar from './navigation-bar' import { MobileScreens, setMobileScreen } from '../../actions/ui' import { setLocationToCurrent } from '../../actions/map' -import { getShowUserSettings } from '../../util/state' class MobileWelcomeScreen extends Component { static propTypes = { @@ -38,21 +36,20 @@ class MobileWelcomeScreen extends Component { } render () { - const { showUserSettings, title } = this.props + const { title } = this.props return (
- {showUserSettings ? : null}
) @@ -62,8 +59,7 @@ class MobileWelcomeScreen extends Component { // connect to the redux store const mapStateToProps = (state, ownProps) => { - const showUserSettings = getShowUserSettings(state.otp) - return { showUserSettings } + return {} } const mapDispatchToProps = { diff --git a/lib/index.js b/lib/index.js index db9cc8670..5512a9108 100644 --- a/lib/index.js +++ b/lib/index.js @@ -2,7 +2,7 @@ import DateTimeModal from './components/form/date-time-modal' import DateTimePreview from './components/form/date-time-preview' import DefaultSearchForm from './components/form/default-search-form' import ErrorMessage from './components/form/error-message' -import LocationField from './components/form/location-field' +import LocationField from './components/form/connected-location-field' import PlanTripButton from './components/form/plan-trip-button' import SettingsPreview from './components/form/settings-preview' import SwitchButton from './components/form/switch-button' diff --git a/lib/util/geocoder.js b/lib/util/geocoder.js deleted file mode 100644 index c6ac8d6cf..000000000 --- a/lib/util/geocoder.js +++ /dev/null @@ -1,318 +0,0 @@ -import * as arcgis from '@conveyal/geocoder-arcgis-geojson' -import lonlat from '@conveyal/lonlat' -import * as pelias from 'isomorphic-mapzen-search' -import memoize from 'lodash.memoize' - -/** - * Create customized geocoder functions given a certain geocoding API, the - * config for the geocoder and response rewrite functions specific to this - * application. Any geocoder api that is added is expected to have an API that - * behaves very closely to https://github.com/conveyal/isomorphic-mapzen-search - */ -class Geocoder { - constructor (geocoderApi, geocoderConfig) { - this.api = geocoderApi - this.geocoderConfig = geocoderConfig - } - - /** - * Perform an autocomplete query. Eg, using partial text of a possible - * address or POI, attempt to find possible matches. - */ - autocomplete (query) { - return this.api.autocomplete(this.getAutocompleteQuery(query)) - .then(this.rewriteAutocompleteResponse) - } - - /** - * Get an application-specific data structure from a given feature. The - * feature is either the result of an autocomplete or a search query. This - * function returns a Promise because sometimes an asynchronous action - * needs to be taken to translate a feature into a location. For example, - * the ArcGIS autocomplete service returns results that lack full address - * data and GPS and it is expected that an extra call to the `search` API is - * done to obtain that detailed data. - */ - getLocationFromGeocodedFeature (feature) { - const location = lonlat.fromCoordinates(feature.geometry.coordinates) - location.name = feature.properties.label - return Promise.resolve(location) - } - - /** - * Do a reverse-geocode. ie get address information and attributes given a - * GPS coordiante. - */ - reverse (query) { - return this.api.reverse(this.getReverseQuery(query)) - .then(this.rewriteReverseResponse) - } - - /** - * Perform a search query. A search query is different from autocomplete in - * that it is assumed that the text provided is more or less a complete - * well-fromatted address. - */ - search (query) { - return this.api.search(this.getSearchQuery(query)) - .then(this.rewriteSearchResponse) - } - - /** - * Default autocomplete query generator - */ - getAutocompleteQuery (query) { - const {apiKey, baseUrl, boundary, options, focusPoint} = this.geocoderConfig - return { - apiKey, - boundary, - focusPoint, - options, - url: baseUrl ? `${baseUrl}/autocomplete` : undefined, - ...query - } - } - - /** - * Default reverse query generator - */ - getReverseQuery (query) { - const {apiKey, baseUrl, options} = this.geocoderConfig - return { - apiKey, - format: true, - options, - url: baseUrl ? `${baseUrl}/reverse` : undefined, - ...query - } - } - - /** - * Default search query generator. - */ - getSearchQuery (query) { - const {apiKey, baseUrl, boundary, focusPoint, options} = this.geocoderConfig - return { - apiKey, - boundary, - focusPoint, - options, - url: baseUrl ? `${baseUrl}/search` : undefined, - format: false, // keep as returned GeoJSON, - ...query - } - } - - /** - * Default rewriter for autocomplete responses - */ - rewriteAutocompleteResponse (response) { return response } - - /** - * Default rewriter for reverse responses - */ - rewriteReverseResponse (response) { return response } - - /** - * Default rewriter for search responses - */ - rewriteSearchResponse (response) { return response } -} - -/** - * Geocoder implementation for the ArcGIS geocoder. - * See https://developers.arcgis.com/rest/geocode/api-reference/overview-world-geocoding-service.htm - * - * @extends Geocoder - */ -class ArcGISGeocoder extends Geocoder { - /** - * Using the given magicKey and text, perform a search query to get detailed - * address and GPS data. Return data in an application-specific location - * format. - */ - getLocationFromGeocodedFeature (feature) { - return this.api.search({ magicKey: feature.magicKey, text: feature.text }) - .then(response => { - const feature = response.features[0] - const location = lonlat.fromCoordinates(feature.geometry.coordinates) - location.name = feature.properties.label - return location - }) - } - - /** - * Rewrite an autocomplete response into an application specific data format. - * Also, filter out any results that are collections. - */ - rewriteAutocompleteResponse (response) { - return { - // remove any autocomplete results that are collections - // (eg multiple Starbucks) - features: response.features.filter(feature => !feature.isCollection) - // add label property so location-field can handle things ok - .map(feature => ({ - ...feature, - properties: { - label: feature.text - } - })) - } - } - - /** - * Rewrite the response into an application-specific data format using the - * first feature returned from the geocoder. - */ - rewriteReverseResponse (response) { - const { features, query } = response - const { lat, lon } = query - return { - lat, - lon, - name: features[0].properties.label - } - } -} - -/** - * An implementation that doesn't use an API for geocoding. Merely allows - * clicking on the map and finding GPS coordinates by typing them in. - * - * @extends Geocoder - */ -class NoApiGeocoder extends Geocoder { - /** - * Use coordinate string parser. - */ - autocomplete (query) { - return this.parseCoordinateString(query.text) - } - - /** - * Always return the lat/lon. - */ - reverse (query) { - let { lat, lon } = query.point - lat = this.roundGPSDecimal(lat) - lon = this.roundGPSDecimal(lon) - return Promise.resolve({ lat, lon, name: `${lat}, ${lon}` }) - } - - /** - * Use coordinate string parser. - */ - search (query) { - return this.parseCoordinateString(query.text) - } - - /** - * Attempt to parse the input as a GPS coordinate. If parseable, return a - * feature. - */ - parseCoordinateString (string) { - let feature - try { - feature = { - geometry: { - coordinates: lonlat.toCoordinates(lonlat.fromLatFirstString(string)), - type: 'Point' - }, - properties: { - label: string - } - } - } catch (e) { - return Promise.resolve({ features: [] }) - } - return Promise.resolve({ features: [feature] }) - } - - roundGPSDecimal (number) { - const roundFactor = 100000 - return Math.round(number * roundFactor) / roundFactor - } -} - -/** - * Geocoder implementation for the Pelias geocoder. - * See https://pelias.io - * - * This is exported for testing purposes only. - * - * @extends Geocoder - */ -export class PeliasGeocoder extends Geocoder { - /** - * Generate an autocomplete query specifically for the Pelias API. The - * `sources` parameter is a Pelias-specific option. - */ - getAutocompleteQuery (query) { - const {apiKey, baseUrl, boundary, focusPoint, options, sources} = this.geocoderConfig - return { - apiKey, - boundary, - focusPoint, - options, - // explicitly send over null for sources if provided sources is not truthy - // in order to avoid default isomorphic-mapzen-search sources form being - // applied - sources: sources || null, - url: baseUrl ? `${baseUrl}/autocomplete` : undefined, - ...query - } - } - - /** - * Generate a search query specifically for the Pelias API. The - * `sources` parameter is a Pelias-specific option. - */ - getSearchQuery (query) { - const {apiKey, baseUrl, boundary, focusPoint, options, sources} = this.geocoderConfig - return { - apiKey, - boundary, - focusPoint, - // explicitly send over null for sources if provided sources is not truthy - // in order to avoid default isomorphic-mapzen-search sources form being - // applied - options, - sources: sources || null, - url: baseUrl ? `${baseUrl}/search` : undefined, - format: false, // keep as returned GeoJSON, - ...query - } - } - - /** - * Rewrite the response into an application-specific data format using the - * first feature returned from the geocoder. - */ - rewriteReverseResponse (response) { - const { 'point.lat': lat, 'point.lon': lon } = response.isomorphicMapzenSearchQuery - return { - lat, - lon, - name: response[0].address - } - } -} - -// Create a memoized getter to avoid recreating new geocoders each time. -const getGeocoder = memoize(geocoderConfig => { - if (!geocoderConfig || !geocoderConfig.type) { - return new NoApiGeocoder() - } - const {type} = geocoderConfig - switch (type) { - case 'ARCGIS': - return new ArcGISGeocoder(arcgis, geocoderConfig) - case 'PELIAS': - return new PeliasGeocoder(pelias, geocoderConfig) - default: - console.error(`Unkown geocoder type: "${type}". Using NoApiGeocoder.`) - return new NoApiGeocoder() - } -}) - -export default getGeocoder diff --git a/lib/util/index.js b/lib/util/index.js index b04bbc761..8d225a961 100644 --- a/lib/util/index.js +++ b/lib/util/index.js @@ -1,5 +1,4 @@ import * as distance from './distance' -import getGeocoder from './geocoder' import * as itinerary from './itinerary' import * as map from './map' import * as profile from './profile' @@ -11,7 +10,6 @@ import * as ui from './ui' const OtpUtils = { distance, - getGeocoder, itinerary, map, profile, diff --git a/lib/util/ui.js b/lib/util/ui.js index c430cc04e..bf5be4753 100644 --- a/lib/util/ui.js +++ b/lib/util/ui.js @@ -1,5 +1,3 @@ -import bowser from 'bowser' - import { MainPanelContent } from '../actions/ui' import { summarizeQuery } from './query' import { getActiveSearch } from './state' @@ -12,13 +10,6 @@ export function isMobile () { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) } -/** - * Returns true if the user is using a [redacted] browser - */ -export function isIE () { - return bowser.name === 'Internet Explorer' -} - /** * Enables scrolling for a specified selector, while disabling scrolling for all * other targets. This is adapted from https://stackoverflow.com/a/41601290/915811 diff --git a/package.json b/package.json index 506529676..bd6f79ddd 100644 --- a/package.json +++ b/package.json @@ -27,14 +27,14 @@ }, "homepage": "https://github.com/opentripplanner/otp-react-redux#readme", "dependencies": { - "@conveyal/geocoder-arcgis-geojson": "^0.0.2", "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", "@opentripplanner/core-utils": "^0.0.18", "@opentripplanner/from-to-location-picker": "^0.0.18", + "@opentripplanner/geocoder": "^0.0.18", + "@opentripplanner/location-field": "^0.0.18", "@opentripplanner/trip-form": "^0.0.18", "bootstrap": "^3.3.7", - "bowser": "^1.9.3", "clone": "^2.1.0", "connected-react-router": "^6.5.2", "copy-to-clipboard": "^3.0.8", @@ -47,7 +47,6 @@ "history": "^4.7.2", "immutability-helper": "^2.1.1", "isomorphic-fetch": "^2.2.1", - "isomorphic-mapzen-search": "^1.5.1", "leaflet": "^1.5.1", "leaflet.polylinemeasure": "github:ppete2/Leaflet.PolylineMeasure", "lodash.debounce": "^4.0.8", @@ -74,8 +73,6 @@ "redux-actions": "^1.2.1", "redux-logger": "^2.7.4", "redux-thunk": "^2.3.0", - "styled-components": "^5.0.1", - "throttle-debounce": "^2.0.1", "transitive-js": "^0.13.0", "turf-along": "^3.0.12", "velocity-react": "^1.3.3" @@ -92,11 +89,13 @@ "react": "^16.9.0", "react-dom": "^16.9.0", "redux-mock-store": "^1.5.3", - "semantic-release": "^15.13.12" + "semantic-release": "^15.13.12", + "styled-components": "^5.0.1" }, "peerDependencies": { "react": ">=15.0.0", - "react-dom": ">=15.0.0" + "react-dom": ">=15.0.0", + "styled-components": "^5.0.1" }, "jest": { "globalSetup": "/__tests__/test-utils/global-setup.js", diff --git a/yarn.lock b/yarn.lock index 69703bb28..6d7ac4463 100644 --- a/yarn.lock +++ b/yarn.lock @@ -48,11 +48,11 @@ trim-right "^1.0.1" "@babel/generator@^7.8.6": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.8.tgz#cdcd58caab730834cee9eeadb729e833b625da3e" - integrity sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg== + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.6.tgz#57adf96d370c9a63c241cd719f9111468578537a" + integrity sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg== dependencies: - "@babel/types" "^7.8.7" + "@babel/types" "^7.8.6" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" @@ -293,9 +293,9 @@ integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== "@babel/parser@^7.8.6": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.8.tgz#4c3b7ce36db37e0629be1f0d50a571d2f86f6cd4" - integrity sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA== + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.6.tgz#ba5c9910cddb77685a008e3c587af8d27b67962c" + integrity sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g== "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" @@ -1038,10 +1038,10 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.7.tgz#1fc9729e1acbb2337d5b6977a63979b4819f5d1d" - integrity sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw== +"@babel/types@^7.8.3", "@babel/types@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.6.tgz#629ecc33c2557fcde7126e58053127afdb3e6d01" + integrity sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA== dependencies: esutils "^2.0.2" lodash "^4.17.13" @@ -1063,7 +1063,7 @@ "@conveyal/lonlat" "^1.3.0" geocoder-arcgis "^2.0.4" -"@conveyal/lonlat@^1.1.0", "@conveyal/lonlat@^1.1.2", "@conveyal/lonlat@^1.3.0": +"@conveyal/lonlat@^1.1.0", "@conveyal/lonlat@^1.1.2", "@conveyal/lonlat@^1.3.0", "@conveyal/lonlat@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@conveyal/lonlat/-/lonlat-1.4.0.tgz#18a5c1349078a779e710d24af11bc02b24127ba0" integrity sha512-ag1FcRuwRGAZgeZ4e3sUq+gblf1Pgma2c9SaIVXluIrgsZ9Lrq7xhCbV0ErN8chyg/OCOoG8m/l3mgzbycQCnQ== @@ -1074,9 +1074,9 @@ integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== "@emotion/is-prop-valid@^0.8.3", "@emotion/is-prop-valid@^0.8.6": - version "0.8.8" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" - integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== + version "0.8.7" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.7.tgz#803449993f436f9a6c67752251ea3fc492a1044c" + integrity sha512-OPkKzUeiid0vEKjZqnGcy2mzxjIlCffin+L2C02pdz/bVlt5zZZE2VzO0D3XOPnH0NEeF21QNKSXiZphjr4xiQ== dependencies: "@emotion/memoize" "0.7.4" @@ -1347,6 +1347,21 @@ "@opentripplanner/location-icon" "^0.0.18" prop-types "^15.7.2" +"@opentripplanner/geocoder@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.18.tgz#fe1ecddd025b08e6b2bf51a9ddf8c65e10571b90" + integrity sha512-NvqZDJc6c+fKRXys5jkaFD5F2gtXag4gKov2L6z0d3+Sn8BTQvDTuE961J5Bb/xn8xE4IvmcIs5tQmE/B+tvBw== + dependencies: + "@conveyal/geocoder-arcgis-geojson" "^0.0.2" + "@conveyal/lonlat" "^1.4.0" + isomorphic-mapzen-search "^1.4.1" + lodash.memoize "^4.1.2" + +"@opentripplanner/humanize-distance@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.18.tgz#eeb49b826754e9e04ca84813781fa47baeaebc7f" + integrity sha512-emn2TTVBk9DUnbLPh9OIP/ZlKdbDpJzVWq+tO5HIqCIL1TW0XFEQDbQLv3b3rGS2R2LHbhKlYYJKmP36ZFS20w== + "@opentripplanner/icons@^0.0.18": version "0.0.18" resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.18.tgz#4486286988801d374a31975aec80ac326ff17061" @@ -1355,6 +1370,19 @@ "@opentripplanner/core-utils" "^0.0.18" prop-types "^15.7.2" +"@opentripplanner/location-field@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.18.tgz#c01d5a876f7cd76ee1855ed4ee186abd3ff85ae1" + integrity sha512-RAJkkgCWTuZRcjOguzFWb+z4YDLv8Lrp6V2QZJhNV289SPjokuGOuDrARl7+FQ8Di0ZuH95Ca/PipJEdeF2wAQ== + dependencies: + "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/geocoder" "^0.0.18" + "@opentripplanner/humanize-distance" "^0.0.18" + "@opentripplanner/location-icon" "^0.0.18" + prop-types "^15.7.2" + styled-icons "^9.1.0" + throttle-debounce "^2.1.0" + "@opentripplanner/location-icon@^0.0.18": version "0.0.18" resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.18.tgz#8f207e1d7032ae04081cffa981ee3117c3647478" @@ -3365,11 +3393,6 @@ bottleneck@^2.18.1: resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.4.tgz#63c505687a0ddaf89a6f515225c75e05833bb079" integrity sha512-2poBdvpAGG+dkMVKZqtDhyuMN6JviD81h89W4bfmt3UO7O60F+qf/84V0alNqL8PM1RByl4SZ1fVMu/ZvxkmcA== -bowser@^1.9.3: - version "1.9.4" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a" - integrity sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ== - bowser@^2.7.0: version "2.9.0" resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz#3bed854233b419b9a7422d9ee3e85504373821c9" @@ -6652,9 +6675,9 @@ forever-agent@~0.6.1: integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@^2.3.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.0.tgz#094ec359dc4b55e7d62e0db4acd76e89fe874d37" - integrity sha512-WXieX3G/8side6VIqx44ablyULoGruSde5PNTxoUyo5CeyAMX6nVWUd0rgist/EuX655cjhUhTo1Fo3tRYqbcA== + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== dependencies: asynckit "^0.4.0" combined-stream "^1.0.6" @@ -8277,7 +8300,7 @@ isomorphic-fetch@^2.1.1, isomorphic-fetch@^2.2.1: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" -isomorphic-mapzen-search@^1.5.1: +isomorphic-mapzen-search@^1.4.1: version "1.5.1" resolved "https://registry.yarnpkg.com/isomorphic-mapzen-search/-/isomorphic-mapzen-search-1.5.1.tgz#5ac0214cec436fb550e8ef362cf8d11b17de8e9c" integrity sha512-38GcjidOqjVQkUzDovx+ceUXHwOliIoFq+qJ/zUzaZwn2h8qEANLMTjaZkFvYN2XdSGB65zBOH5n/iP/Vs1ejA== @@ -15083,7 +15106,7 @@ throat@^4.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= -throttle-debounce@^2.0.1: +throttle-debounce@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.1.0.tgz#257e648f0a56bd9e54fe0f132c4ab8611df4e1d5" integrity sha512-AOvyNahXQuU7NN+VVvOOX+uW6FPaWdAOdRP5HfwYxAfCzXTFKRMoIMk+n+po318+ktcChx+F1Dd91G3YHeMKyg== From 18ba42078505b4cf708bd6610011864c26e11953 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 23 Mar 2020 10:53:32 -0400 Subject: [PATCH 030/115] fix(package): Fix last conflict. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d8bc17d9c..bd6f79ddd 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@mapbox/polyline": "^0.2.0", "@opentripplanner/core-utils": "^0.0.18", "@opentripplanner/from-to-location-picker": "^0.0.18", - "@opentripplanner/geocoder": "^0.0.16", + "@opentripplanner/geocoder": "^0.0.18", "@opentripplanner/location-field": "^0.0.18", "@opentripplanner/trip-form": "^0.0.18", "bootstrap": "^3.3.7", From e657f347b0309c5e92ea9b202b1c7a74b61161c9 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 23 Mar 2020 11:37:11 -0400 Subject: [PATCH 031/115] refactor(trip-details): Replace TripDetails component with its OTP-UI counterpart. --- .../narrative/connected-trip-details.js | 17 ++ .../narrative/default/default-itinerary.js | 2 +- .../narrative/line-itin/itin-body.js | 2 +- .../printable/printable-itinerary.js | 2 +- lib/components/narrative/trip-details.js | 157 ------------------ lib/index.js | 2 +- package.json | 7 +- yarn.lock | 89 +++++----- 8 files changed, 65 insertions(+), 213 deletions(-) create mode 100644 lib/components/narrative/connected-trip-details.js delete mode 100644 lib/components/narrative/trip-details.js diff --git a/lib/components/narrative/connected-trip-details.js b/lib/components/narrative/connected-trip-details.js new file mode 100644 index 000000000..ee9042b03 --- /dev/null +++ b/lib/components/narrative/connected-trip-details.js @@ -0,0 +1,17 @@ +import { connect } from 'react-redux' +import TripDetails from '@opentripplanner/trip-details' + +import { getTimeFormat, getLongDateFormat } from '../../util/time' + +// Connect imported TripDetails class to redux store. + +const mapStateToProps = (state, ownProps) => { + return { + routingType: state.otp.currentQuery.routingType, + tnc: state.otp.tnc, + timeFormat: getTimeFormat(state.otp.config), + longDateFormat: getLongDateFormat(state.otp.config) + } +} + +export default connect(mapStateToProps)(TripDetails) diff --git a/lib/components/narrative/default/default-itinerary.js b/lib/components/narrative/default/default-itinerary.js index b6b66a227..57f2717de 100644 --- a/lib/components/narrative/default/default-itinerary.js +++ b/lib/components/narrative/default/default-itinerary.js @@ -3,7 +3,7 @@ import React from 'react' import NarrativeItinerary from '../narrative-itinerary' import ItinerarySummary from './itinerary-summary' import ItineraryDetails from './itinerary-details' -import TripDetails from '../trip-details' +import TripDetails from '../connected-trip-details' import TripTools from '../trip-tools' import { formatDuration, formatTime } from '../../../util/time' diff --git a/lib/components/narrative/line-itin/itin-body.js b/lib/components/narrative/line-itin/itin-body.js index c38ced30d..713e02b7b 100644 --- a/lib/components/narrative/line-itin/itin-body.js +++ b/lib/components/narrative/line-itin/itin-body.js @@ -2,7 +2,7 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import isEqual from 'lodash.isequal' -import TripDetails from '../trip-details' +import TripDetails from '../connected-trip-details' import TripTools from '../trip-tools' import PlaceRow from './place-row' diff --git a/lib/components/narrative/printable/printable-itinerary.js b/lib/components/narrative/printable/printable-itinerary.js index ecb13c545..cf8d40cae 100644 --- a/lib/components/narrative/printable/printable-itinerary.js +++ b/lib/components/narrative/printable/printable-itinerary.js @@ -1,7 +1,7 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' -import TripDetails from '../trip-details' +import TripDetails from '../connected-trip-details' import { distanceString } from '../../../util/distance' import { formatTime, formatDuration } from '../../../util/time' import { diff --git a/lib/components/narrative/trip-details.js b/lib/components/narrative/trip-details.js deleted file mode 100644 index 0b7118d4f..000000000 --- a/lib/components/narrative/trip-details.js +++ /dev/null @@ -1,157 +0,0 @@ -import React, { Component } from 'react' -import { connect } from 'react-redux' -import { Button } from 'react-bootstrap' -import { VelocityTransitionGroup } from 'velocity-react' -import moment from 'moment' - -import { calculateFares, calculatePhysicalActivity, getTimeZoneOffset } from '../../util/itinerary' -import { formatTime, getTimeFormat, getLongDateFormat } from '../../util/time' - -class TripDetails extends Component { - render () { - const { itinerary, timeFormat, longDateFormat } = this.props - const date = moment(itinerary.startTime) - - // process the transit fare - const { centsToString, dollarsToString, maxTNCFare, minTNCFare, transitFare } = calculateFares(itinerary) - let companies - itinerary.legs.forEach(leg => { - if (leg.tncData) { - companies = leg.tncData.company - } - }) - let fare - if (transitFare || minTNCFare) { - fare = ( - - {transitFare && ( - Transit Fare: {centsToString(transitFare)} - )} - {minTNCFare !== 0 && ( - -
- - {companies.toLowerCase()} - {' '} - Fare: {dollarsToString(minTNCFare)} - {dollarsToString(maxTNCFare)} -
- )} -
- ) - } - - // Compute calories burned. - const { bikeDuration, caloriesBurned, walkDuration } = calculatePhysicalActivity(itinerary) - - const timeOptions = { - format: timeFormat, - offset: getTimeZoneOffset(itinerary) - } - - return ( -
-
Trip Details
-
- } - summary={ - - Depart {date.format(longDateFormat)} - {this.props.routingType === 'ITINERARY' && at {formatTime(itinerary.startTime, timeOptions)}} - - } - /> - {fare && ( - } - summary={fare} - /> - )} - {caloriesBurned > 0 && ( - } - summary={Calories Burned: {Math.round(caloriesBurned)}} - description={ - - Calories burned is based on {Math.round(walkDuration / 60)} minute(s){' '} - spent walking and {Math.round(bikeDuration / 60)} minute(s){' '} - spent biking during this trip. Adapted from{' '} - - Dietary Guidelines for Americans 2005, page 16, Table 4 - . - - } - /> - )} -
-
- ) - } -} - -class TripDetail extends Component { - constructor (props) { - super(props) - this.state = { - expanded: false - } - } - - _toggle = () => this.state.expanded ? this._onHideClick() : this._onExpandClick() - - _onExpandClick = () => { - this.setState({ expanded: true }) - } - - _onHideClick = () => { - this.setState({ expanded: false }) - } - - render () { - const { icon, summary, description } = this.props - return ( -
-
{icon}
-
- {summary} - {description && ( - - )} - - {this.state.expanded && ( -
- - {description} -
- )} -
-
-
- ) - } -} - -// Connect main class to redux store - -const mapStateToProps = (state, ownProps) => { - return { - routingType: state.otp.currentQuery.routingType, - tnc: state.otp.tnc, - timeFormat: getTimeFormat(state.otp.config), - longDateFormat: getLongDateFormat(state.otp.config) - } -} - -export default connect(mapStateToProps)(TripDetails) diff --git a/lib/index.js b/lib/index.js index c671bff9c..738918280 100644 --- a/lib/index.js +++ b/lib/index.js @@ -34,7 +34,7 @@ import NarrativeRoutingResults from './components/narrative/narrative-routing-re import RealtimeAnnotation from './components/narrative/realtime-annotation' import SimpleRealtimeAnnotation from './components/narrative/simple-realtime-annotation' import TransportationNetworkCompanyLeg from './components/narrative/default/tnc-leg' -import TripDetails from './components/narrative/trip-details' +import TripDetails from './components/narrative/connected-trip-details' import TripTools from './components/narrative/trip-tools' import LineItinerary from './components/narrative/line-itin/line-itinerary' diff --git a/package.json b/package.json index 75f922e0a..445f85cbc 100644 --- a/package.json +++ b/package.json @@ -29,9 +29,10 @@ "dependencies": { "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", - "@opentripplanner/from-to-location-picker": "^0.0.14", - "@opentripplanner/geocoder": "^0.0.16", - "@opentripplanner/location-field": "^0.0.16", + "@opentripplanner/from-to-location-picker": "^0.0.18", + "@opentripplanner/geocoder": "^0.0.18", + "@opentripplanner/location-field": "^0.0.18", + "@opentripplanner/trip-details": "^0.0.18", "bootstrap": "^3.3.7", "clone": "^2.1.0", "connected-react-router": "^6.5.2", diff --git a/yarn.lock b/yarn.lock index 48d3fff61..89f6e994a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1324,10 +1324,10 @@ universal-user-agent "^3.0.0" url-template "^2.0.8" -"@opentripplanner/core-utils@^0.0.14": - version "0.0.14" - resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.14.tgz#9e58e78227759ab5c13e1dad22467c474bd102b7" - integrity sha512-JMtOermSYrpPN649DEexd/EKdMPisBrooHiUAeCSdapXgxN7y1h+fUZj+OglLgUoo48wPRv7ru/n5doqVrGSaQ== +"@opentripplanner/core-utils@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.18.tgz#5109a60e262802dca3b1e7a34091c9a394f5b290" + integrity sha512-6ej3MVTd/Kz4OYnIDJBm8fT4OHkchWq+sU9G+Z6fHJhGE5nh/ljCcps/8Vew1HXK6nhaeDMm099nkA/8YKRnug== dependencies: "@mapbox/polyline" "^1.1.0" "@turf/along" "^6.0.1" @@ -1338,70 +1338,61 @@ prop-types "^15.7.2" qs "^6.9.1" -"@opentripplanner/core-utils@^0.0.16": - version "0.0.16" - resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.16.tgz#72b85f9e36fb5dc00d442d9c2e6d883efdc3fa8d" - integrity sha512-ekPxWC0woOJDbfj0Lxk+NX2fLpIGpbDRQbEsO/rF+UCCvg4sCcmobjHaMwtW6rAXtVzNMmFDYXctPW/49Qdq8A== +"@opentripplanner/from-to-location-picker@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.18.tgz#21d1164d09724becea640a95f97aadb479df8f24" + integrity sha512-y5GJxvf1La2Wk9ldEtKO5zzVnECi89HkrWdT5Tb2ZYuJrUVnPZZ28CmLEtQGSh+Qtj/kxVBMII/UOkoja3SkuQ== dependencies: - "@mapbox/polyline" "^1.1.0" - "@turf/along" "^6.0.1" - bowser "^2.7.0" - lodash.isequal "^4.5.0" - moment "^2.24.0" - moment-timezone "^0.5.27" - prop-types "^15.7.2" - qs "^6.9.1" - -"@opentripplanner/from-to-location-picker@^0.0.14": - version "0.0.14" - resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.14.tgz#efe2a3452d58d769bc0d5904753df8516279f6c7" - integrity sha512-w2jf+wErtH34CdxQkAyHf446JeCsVxOYej6JRK15jc3+LCWi4bct2A0tf1wp9uNdMvAnL06AZL6hwsED6WqrVA== - dependencies: - "@opentripplanner/core-utils" "^0.0.14" - "@opentripplanner/location-icon" "^0.0.13" + "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/location-icon" "^0.0.18" prop-types "^15.7.2" -"@opentripplanner/geocoder@^0.0.16": - version "0.0.16" - resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.16.tgz#55bdff8be36b2b68b83d62008c0fd45e03dd2a11" - integrity sha512-wpIyKThP4FhNiXDLHGHyux+g7+BAWN43ZZzdOgSBhSHoKRYXee+Ga7ht3zsNtJroZhkDQkEISXiNejK16SCWvQ== +"@opentripplanner/geocoder@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.18.tgz#fe1ecddd025b08e6b2bf51a9ddf8c65e10571b90" + integrity sha512-NvqZDJc6c+fKRXys5jkaFD5F2gtXag4gKov2L6z0d3+Sn8BTQvDTuE961J5Bb/xn8xE4IvmcIs5tQmE/B+tvBw== dependencies: "@conveyal/geocoder-arcgis-geojson" "^0.0.2" "@conveyal/lonlat" "^1.4.0" isomorphic-mapzen-search "^1.4.1" lodash.memoize "^4.1.2" -"@opentripplanner/humanize-distance@^0.0.16": - version "0.0.16" - resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.16.tgz#e8197671b45719ce5c728d34c60e80b6d816d287" - integrity sha512-qec9FZGhITC1u+YIBn0+6drxvbJr4N7FX0+VdpXl4+op6xVPlH+LPRittQhdOXdwEjUwHA9qvmksIYE70mg9lw== +"@opentripplanner/humanize-distance@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.18.tgz#eeb49b826754e9e04ca84813781fa47baeaebc7f" + integrity sha512-emn2TTVBk9DUnbLPh9OIP/ZlKdbDpJzVWq+tO5HIqCIL1TW0XFEQDbQLv3b3rGS2R2LHbhKlYYJKmP36ZFS20w== -"@opentripplanner/location-field@^0.0.16": - version "0.0.16" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.16.tgz#1d23792965e9bfcd1044521b9bef261fbba090a7" - integrity sha512-nnEspCddomJGJgWuGh8S2npUogKKa6oPCopCl0sdgU7UyI/xUpgwHwTHaxJyJNWQmd4RT+GgKv9jlzKRVtxFXA== +"@opentripplanner/location-field@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.18.tgz#c01d5a876f7cd76ee1855ed4ee186abd3ff85ae1" + integrity sha512-RAJkkgCWTuZRcjOguzFWb+z4YDLv8Lrp6V2QZJhNV289SPjokuGOuDrARl7+FQ8Di0ZuH95Ca/PipJEdeF2wAQ== dependencies: - "@opentripplanner/core-utils" "^0.0.16" - "@opentripplanner/geocoder" "^0.0.16" - "@opentripplanner/humanize-distance" "^0.0.16" - "@opentripplanner/location-icon" "^0.0.16" + "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/geocoder" "^0.0.18" + "@opentripplanner/humanize-distance" "^0.0.18" + "@opentripplanner/location-icon" "^0.0.18" prop-types "^15.7.2" styled-icons "^9.1.0" throttle-debounce "^2.1.0" -"@opentripplanner/location-icon@^0.0.13": - version "0.0.13" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.13.tgz#18e53e2dcd916814675340c9a69d2bc7797bb177" - integrity sha512-KeGm9xQLA2qdQHuPod706OUuoUk25cDjJrFA+waWaN9qQqcqSxOBavcLg5FH9yRQR8uuSTgi1yooIlccOUYnxQ== +"@opentripplanner/location-icon@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.18.tgz#8f207e1d7032ae04081cffa981ee3117c3647478" + integrity sha512-4Pv0RZZeHvDpc50XMOMUOS4E7dlYBNne/OvnOxHcbEmHSOUHGKNSiIq2EPO7Eyrae+SsKKhksv++okIiw6KOmw== dependencies: styled-icons "^9.1.0" -"@opentripplanner/location-icon@^0.0.16": - version "0.0.16" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.16.tgz#16824fb8dd522f59be39b28a2a31617b27532bcd" - integrity sha512-QcbmO7aOcbECpKfZc2VNGxYq/HY7JZP+7FW6W1PBG98ThIbdg4cSwWWf7kf8fl3LpJAhqMdV14AE1O/P/Sq8rw== +"@opentripplanner/trip-details@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-details/-/trip-details-0.0.18.tgz#69d8fa4e8a70977c9aaa71a777a34021aec0fa12" + integrity sha512-jCBgmPQhl9gsUniYSbPqDvpyFUHqsGNHUwHg+jqAplPHWu60Hn2F/P1oWf5PmjXlBV7ZFOsuTeH7HVmGfVrPrw== dependencies: + "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/humanize-distance" "^0.0.18" + moment "^2.24.0" + prop-types "^15.7.2" styled-icons "^9.1.0" + velocity-react "^1.4.3" "@semantic-release/commit-analyzer@^6.1.0": version "6.2.0" @@ -15970,7 +15961,7 @@ velocity-animate@^1.4.0: resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-1.5.2.tgz#5a351d75fca2a92756f5c3867548b873f6c32105" integrity sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg== -velocity-react@^1.3.3: +velocity-react@^1.3.3, velocity-react@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/velocity-react/-/velocity-react-1.4.3.tgz#63e41d92e334d5a3bea8b2fa02ee170f62ef4d36" integrity sha512-zvefGm85A88S3KdF9/dz5vqyFLAiwKYlXGYkHH2EbXl+CZUD1OT0a0aS1tkX/WXWTa/FUYqjBaAzAEFYuSobBQ== From 1077fbf7dad36195ce6cefc623748af458cde3bb Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 23 Mar 2020 12:18:12 -0400 Subject: [PATCH 032/115] refactor(trip-viewer-overlay): Replace TripViewerOverlay with its counterpart from OTP-UI. --- .../map/connected-trip-viewer-overlay.js | 19 ++++++ lib/components/map/default-map.js | 5 +- lib/components/map/trip-viewer-overlay.js | 60 ------------------- package.json | 1 + yarn.lock | 9 +++ 5 files changed, 32 insertions(+), 62 deletions(-) create mode 100644 lib/components/map/connected-trip-viewer-overlay.js delete mode 100644 lib/components/map/trip-viewer-overlay.js diff --git a/lib/components/map/connected-trip-viewer-overlay.js b/lib/components/map/connected-trip-viewer-overlay.js new file mode 100644 index 000000000..916464dfa --- /dev/null +++ b/lib/components/map/connected-trip-viewer-overlay.js @@ -0,0 +1,19 @@ +import { connect } from 'react-redux' +import { withLeaflet } from 'react-leaflet' +import TripViewerOverlay from '@opentripplanner/trip-viewer-overlay' + +// connect to the redux store + +const mapStateToProps = (state, ownProps) => { + const viewedTrip = state.otp.ui.viewedTrip + return { + tripData: viewedTrip + ? state.otp.transitIndex.trips[viewedTrip.tripId] + : null + } +} + +const mapDispatchToProps = { +} + +export default connect(mapStateToProps, mapDispatchToProps)(withLeaflet(TripViewerOverlay)) diff --git a/lib/components/map/default-map.js b/lib/components/map/default-map.js index b9432ffce..f979a0eb5 100644 --- a/lib/components/map/default-map.js +++ b/lib/components/map/default-map.js @@ -6,15 +6,16 @@ import { carRentalQuery, vehicleRentalQuery } from '../../actions/api' + import BaseMap from './base-map' import EndpointsOverlay from './endpoints-overlay' import ParkAndRideOverlay from './park-and-ride-overlay' +import RouteViewerOverlay from './route-viewer-overlay' import StopsOverlay from './stops-overlay' import StopViewerOverlay from './stop-viewer-overlay' import TileOverlay from './tile-overlay' import TransitiveOverlay from './transitive-overlay' -import TripViewerOverlay from './trip-viewer-overlay' -import RouteViewerOverlay from './route-viewer-overlay' +import TripViewerOverlay from './connected-trip-viewer-overlay' import VehicleRentalOverlay from './vehicle-rental-overlay' import ZipcarOverlay from './zipcar-overlay' diff --git a/lib/components/map/trip-viewer-overlay.js b/lib/components/map/trip-viewer-overlay.js deleted file mode 100644 index 42368a392..000000000 --- a/lib/components/map/trip-viewer-overlay.js +++ /dev/null @@ -1,60 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' -import { connect } from 'react-redux' -import { FeatureGroup, MapLayer, Polyline, withLeaflet } from 'react-leaflet' - -import polyline from '@mapbox/polyline' - -class TripViewerOverlay extends MapLayer { - static propTypes = { - tripData: PropTypes.object, - viewedTrip: PropTypes.object - } - - componentDidMount () { } - - // TODO: determine why the default MapLayer componentWillUnmount() method throws an error - componentWillUnmount () { } - - componentDidUpdate (prevProps) { - const oldGeometry = prevProps.tripData && prevProps.tripData.geometry - const newGeometry = this.props.tripData && this.props.tripData.geometry - if (oldGeometry === newGeometry || !newGeometry) return - const pts = polyline.decode(newGeometry.points) - this.props.leaflet.map.fitBounds(pts) - } - - createLeafletElement () { } - - updateLeafletElement () { } - - render () { - const { tripData } = this.props - - if (!tripData || !tripData.geometry) return - - const pts = polyline.decode(tripData.geometry.points) - return ( - - - - ) - } -} - -// connect to the redux store - -const mapStateToProps = (state, ownProps) => { - const viewedTrip = state.otp.ui.viewedTrip - return { - viewedTrip, - tripData: viewedTrip - ? state.otp.transitIndex.trips[viewedTrip.tripId] - : null - } -} - -const mapDispatchToProps = { -} - -export default connect(mapStateToProps, mapDispatchToProps)(withLeaflet(TripViewerOverlay)) diff --git a/package.json b/package.json index 445f85cbc..6a963e51f 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "@opentripplanner/geocoder": "^0.0.18", "@opentripplanner/location-field": "^0.0.18", "@opentripplanner/trip-details": "^0.0.18", + "@opentripplanner/trip-viewer-overlay": "^0.0.18", "bootstrap": "^3.3.7", "clone": "^2.1.0", "connected-react-router": "^6.5.2", diff --git a/yarn.lock b/yarn.lock index 89f6e994a..85016c4be 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1394,6 +1394,15 @@ styled-icons "^9.1.0" velocity-react "^1.4.3" +"@opentripplanner/trip-viewer-overlay@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-viewer-overlay/-/trip-viewer-overlay-0.0.18.tgz#7e774378cc274caf7603aa14a08d4b57cd220b14" + integrity sha512-iz+KQBFRZORz36w10kXEUHhxS4CwTCXWb8xcLYAwh9LmWkHhbGXPnClwn6PJ+BPj0PcdvLukcQaCUpoxZggfqg== + dependencies: + "@mapbox/polyline" "^1.1.0" + "@opentripplanner/core-utils" "^0.0.18" + prop-types "^15.7.2" + "@semantic-release/commit-analyzer@^6.1.0": version "6.2.0" resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.2.0.tgz#5cd25ce67ba9ba5b46e47457505e63629e186695" From b0e3cd51e405759bf94c4d748253845d495292f7 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 23 Mar 2020 12:35:23 -0400 Subject: [PATCH 033/115] refactor(narrative.css): Remove old trip-details styles. --- lib/components/narrative/narrative.css | 52 -------------------------- 1 file changed, 52 deletions(-) diff --git a/lib/components/narrative/narrative.css b/lib/components/narrative/narrative.css index 21c1ab760..ac8c4effa 100644 --- a/lib/components/narrative/narrative.css +++ b/lib/components/narrative/narrative.css @@ -116,58 +116,6 @@ fontSize: 16px; } -/* TRIP DETAILS */ - -.otp .trip-details { - border: 2px solid gray; - padding: 6px 10px; - margin-top: 16px; -} - -.otp .trip-details .trip-details-header { - font-size: 18px; - font-weight: 600; -} - -.otp .trip-details .trip-detail { - margin-top: 6px; -} - -.otp .trip-details .trip-detail .icon { - float: left; - font-size: 17px; -} - -.otp .trip-details .trip-detail .summary { - margin-left: 28px; - padding-top: 2px; -} - -.otp .trip-details .trip-detail .expand-button { - margin-left: 6px; - margin-top: -2px; - font-size: 16px; - color: blue; -} - -.otp .trip-details .trip-detail .description { - background-color: #fff; - border: 1px solid #888; - padding: 8px; - margin-top: 2px; - font-size: 12px; -} - -.otp .trip-details .trip-detail b { - font-weight: 600; -} - -.otp .trip-details .trip-detail .hide-button { - float: right; - top: 5; - right: 5; -} - /* TRIP TOOLS ROW */ .otp .trip-tools { margin-top: 10px; From 6a6aaee4bb552ad9d11fb580e4e1cc19f9ad09bc Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 23 Mar 2020 14:16:16 -0400 Subject: [PATCH 034/115] fix(connected-trip-details): Bring back styling using styled-components. --- lib/components/narrative/connected-trip-details.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/components/narrative/connected-trip-details.js b/lib/components/narrative/connected-trip-details.js index ee9042b03..cfdccb898 100644 --- a/lib/components/narrative/connected-trip-details.js +++ b/lib/components/narrative/connected-trip-details.js @@ -1,8 +1,16 @@ import { connect } from 'react-redux' -import TripDetails from '@opentripplanner/trip-details' +import styled from 'styled-components' +import UITripDetails from '@opentripplanner/trip-details' import { getTimeFormat, getLongDateFormat } from '../../util/time' +const TripDetails = styled(UITripDetails)` + border: 2px solid gray; + border-radius: 0; + padding: 6px 10px; + margin: 16px 0 10px; +` + // Connect imported TripDetails class to redux store. const mapStateToProps = (state, ownProps) => { From cd26acfdc78624f2e4425af6d6ed4cf0be3a380e Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 23 Mar 2020 14:18:01 -0400 Subject: [PATCH 035/115] refactor(connected-trip-details): Rename imported class. --- lib/components/narrative/connected-trip-details.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/components/narrative/connected-trip-details.js b/lib/components/narrative/connected-trip-details.js index cfdccb898..16183ea1e 100644 --- a/lib/components/narrative/connected-trip-details.js +++ b/lib/components/narrative/connected-trip-details.js @@ -1,10 +1,10 @@ import { connect } from 'react-redux' import styled from 'styled-components' -import UITripDetails from '@opentripplanner/trip-details' +import TripDetailsBase from '@opentripplanner/trip-details' import { getTimeFormat, getLongDateFormat } from '../../util/time' -const TripDetails = styled(UITripDetails)` +const TripDetails = styled(TripDetailsBase)` border: 2px solid gray; border-radius: 0; padding: 6px 10px; From b72c501084958eec8d1a037bfb9a52d54d5d9f17 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 23 Mar 2020 18:21:47 -0400 Subject: [PATCH 036/115] refactor(printable-itinerary): Replace PrintableItinerary with its counterpart from OTP-UI. Also change PrintLayout to support customIcons from configuration, and remove unused CSS. --- lib/components/app/print-layout.js | 48 ++-- .../narrative/printable/itinerary.css | 33 --- .../printable/printable-itinerary.js | 221 ------------------ lib/index.css | 1 - package.json | 2 + yarn.lock | 17 ++ 6 files changed, 52 insertions(+), 270 deletions(-) delete mode 100644 lib/components/narrative/printable/itinerary.css delete mode 100644 lib/components/narrative/printable/printable-itinerary.js diff --git a/lib/components/app/print-layout.js b/lib/components/app/print-layout.js index d6d126747..fa00581df 100644 --- a/lib/components/app/print-layout.js +++ b/lib/components/app/print-layout.js @@ -2,15 +2,16 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import { connect } from 'react-redux' import { Button } from 'react-bootstrap' +import TriMetLegIcon from '@opentripplanner/icons/lib/trimet-leg-icon' +import PrintableItinerary from '@opentripplanner/printable-itinerary' import BaseMap from '../map/base-map' import EndpointsOverlay from '../map/endpoints-overlay' import TransitiveOverlay from '../map/transitive-overlay' -import PrintableItinerary from '../narrative/printable/printable-itinerary' +import TripDetails from '../narrative/connected-trip-details' import { parseUrlQueryString } from '../../actions/form' import { routingQuery } from '../../actions/api' import { getActiveItinerary } from '../../util/state' -import { getTimeFormat } from '../../util/time' class PrintLayout extends Component { static propTypes = { @@ -34,14 +35,14 @@ class PrintLayout extends Component { } componentDidMount () { - const { location } = this.props + const { location, parseUrlQueryString } = this.props // Add print-view class to html tag to ensure that iOS scroll fix only applies // to non-print views. const root = document.getElementsByTagName('html')[0] root.setAttribute('class', 'print-view') // Parse the URL query parameters, if present if (location && location.search) { - this.props.parseUrlQueryString() + parseUrlQueryString() } } @@ -53,8 +54,24 @@ class PrintLayout extends Component { root.removeAttribute('class') } + /** + * Use one of the customIcons if provided, + * (similar to @opentraiplanner/trip-form/ModeIcon) + * otherwise, fall back on TriMetLegIcon. + * TODO: Combine all custom icon rendering in one place. + */ + customLegIcon = icons => { + return function ({leg, props}) { + // Check if there is a custom icon (exact match required). + if (icons && leg.mode in icons) { + return icons[leg.mode] + } + return TriMetLegIcon({leg, props}) + } + } + render () { - const { configCompanies, customIcons, itinerary, timeFormat } = this.props + const { config, customIcons, itinerary } = this.props return (
{/* The header bar, including the Toggle Map and Print buttons */} @@ -82,13 +99,15 @@ class PrintLayout extends Component { } {/* The main itinerary body */} - {itinerary - ? - : null + {itinerary && +
+ + +
}
) @@ -99,9 +118,8 @@ class PrintLayout extends Component { const mapStateToProps = (state, ownProps) => { return { - itinerary: getActiveItinerary(state.otp), - configCompanies: state.otp.config.companies, - timeFormat: getTimeFormat(state.otp.config) + config: state.otp.config, + itinerary: getActiveItinerary(state.otp) } } diff --git a/lib/components/narrative/printable/itinerary.css b/lib/components/narrative/printable/itinerary.css deleted file mode 100644 index 07b6c9dfe..000000000 --- a/lib/components/narrative/printable/itinerary.css +++ /dev/null @@ -1,33 +0,0 @@ -.otp .printable-itinerary .leg { - margin-bottom: 10px; - border-top: 1px solid gray; - padding-top: 18px; -} - -.otp .printable-itinerary .leg.collapse-top { - border-top: none; - padding-top: 0px; -} - -.otp .printable-itinerary .mode-icon { - float: left; - width: 32px; - height: 32px; -} - -.otp .printable-itinerary .leg-body { - margin-left: 40px; -} - -.otp .printable-itinerary .leg-header { - font-size: 18px; -} - -.otp .printable-itinerary .leg-details { - margin-top: 5px; -} - -.otp .printable-itinerary .leg-detail { - margin-top: 3px; - font-size: 14px; -} diff --git a/lib/components/narrative/printable/printable-itinerary.js b/lib/components/narrative/printable/printable-itinerary.js deleted file mode 100644 index cf8d40cae..000000000 --- a/lib/components/narrative/printable/printable-itinerary.js +++ /dev/null @@ -1,221 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' - -import TripDetails from '../connected-trip-details' -import { distanceString } from '../../../util/distance' -import { formatTime, formatDuration } from '../../../util/time' -import { - getCompaniesLabelFromNetworks, - getLegIcon, - getLegModeLabel, - getPlaceName, - getStepDirection, - getStepStreetName, - getTimeZoneOffset -} from '../../../util/itinerary' - -export default class PrintableItinerary extends Component { - static propTypes = { - itinerary: PropTypes.object - } - - render () { - const { - configCompanies, - customIcons, - itinerary, - timeFormat - } = this.props - - const timeOptions = { - format: timeFormat, - offset: getTimeZoneOffset(itinerary) - } - - return ( -
- {itinerary.legs.length > 0 && ( -
-
-
- Depart from {itinerary.legs[0].from.name} -
-
-
- )} - {itinerary.legs.map((leg, k) => leg.transitLeg - ? - : leg.hailedCar - ? - : - )} - -
- ) - } -} - -class TransitLeg extends Component { - static propTypes = { - leg: PropTypes.object - } - - render () { - const { customIcons, leg, interlineFollows, timeOptions } = this.props - - // Handle case of transit leg interlined w/ previous - if (leg.interlineWithPreviousLeg) { - return ( -
-
-
- Continues as{' '} - {leg.routeShortName} {leg.routeLongName}{' '} - to {leg.to.name} -
-
-
- Get off at {leg.to.name}{' '} - at {formatTime(leg.endTime, timeOptions)} -
-
-
-
- ) - } - - return ( -
-
{getLegIcon(leg, customIcons)}
-
-
- {leg.routeShortName} {leg.routeLongName} to {leg.to.name} -
-
-
- Board at {leg.from.name}{' '} - at {formatTime(leg.startTime, timeOptions)} -
-
- {interlineFollows - ? Stay on board at {leg.to.name} - : - Get off at {leg.to.name}{' '} - at {formatTime(leg.endTime, timeOptions)} - - } -
-
-
-
- ) - } -} - -class AccessLeg extends Component { - static propTypes = { - leg: PropTypes.object - } - - render () { - const { configCompanies, customIcons, leg } = this.props - - // calculate leg mode label in a special way for this component - let legModeLabel = getLegModeLabel(leg) - - if (leg.rentedBike) { - // FIXME: Special case for TriMet that needs to be refactored to - // incorporate actual company. - legModeLabel = 'Ride BIKETOWN bike' - } else if (leg.rentedCar) { - // Add extra information to printview that would otherwise clutter up - // other places that use the getLegModeLabel function - const companiesLabel = getCompaniesLabelFromNetworks( - leg.from.networks, - configCompanies - ) - legModeLabel = `Drive ${companiesLabel} ${leg.from.name}` - } else if (leg.rentedVehicle) { - const companiesLabel = getCompaniesLabelFromNetworks( - leg.from.networks, - configCompanies - ) - legModeLabel = `Ride ${companiesLabel} E-scooter` - } - - return ( -
-
{getLegIcon(leg, customIcons)}
-
-
- {legModeLabel}{' '} - {!leg.hailedCar && - leg.distance > 0 && - {distanceString(leg.distance)} } - to {getPlaceName(leg.to, configCompanies)} -
- {!leg.hailedCar && ( -
- {leg.steps.map((step, k) => { - return ( -
- {getStepDirection(step)} on {getStepStreetName(step)} -
- ) - })} -
- )} -
-
- ) - } -} - -class TNCLeg extends Component { - static propTypes = { - leg: PropTypes.object - } - - render () { - const { customIcons, leg } = this.props - const { tncData } = leg - if (!tncData) return null - - return ( -
-
{getLegIcon(leg, customIcons)}
-
-
- Take {tncData.displayName} to {leg.to.name} -
-
-
- Estimated wait time for pickup:{' '} - {formatDuration(tncData.estimatedArrival)} -
-
- Estimated travel time:{' '} - {formatDuration(leg.duration)} (does not account for traffic) -
-
-
-
- ) - } -} diff --git a/lib/index.css b/lib/index.css index 41bd670a6..3d67aa9c4 100644 --- a/lib/index.css +++ b/lib/index.css @@ -12,7 +12,6 @@ @import url(lib/components/narrative/narrative.css); @import url(lib/components/narrative/default/itinerary.css); @import url(lib/components/narrative/line-itin/itinerary.css); -@import url(lib/components/narrative/printable/itinerary.css); @import url(lib/components/mobile/mobile.css); @import url(lib/components/viewers/viewers.css); diff --git a/package.json b/package.json index 6a963e51f..0047d97af 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,9 @@ "@mapbox/polyline": "^0.2.0", "@opentripplanner/from-to-location-picker": "^0.0.18", "@opentripplanner/geocoder": "^0.0.18", + "@opentripplanner/icons": "^0.0.18", "@opentripplanner/location-field": "^0.0.18", + "@opentripplanner/printable-itinerary": "^0.0.18", "@opentripplanner/trip-details": "^0.0.18", "@opentripplanner/trip-viewer-overlay": "^0.0.18", "bootstrap": "^3.3.7", diff --git a/yarn.lock b/yarn.lock index 85016c4be..5da232a90 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1362,6 +1362,14 @@ resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.18.tgz#eeb49b826754e9e04ca84813781fa47baeaebc7f" integrity sha512-emn2TTVBk9DUnbLPh9OIP/ZlKdbDpJzVWq+tO5HIqCIL1TW0XFEQDbQLv3b3rGS2R2LHbhKlYYJKmP36ZFS20w== +"@opentripplanner/icons@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.18.tgz#4486286988801d374a31975aec80ac326ff17061" + integrity sha512-g0+8r9VL/6TPXlFak4mg8xOzAGzID5SGMurLayXvCuroFIbqwUD3/BOhGUD6+z25MvOv3Tov7V9wtN9l822eTg== + dependencies: + "@opentripplanner/core-utils" "^0.0.18" + prop-types "^15.7.2" + "@opentripplanner/location-field@^0.0.18": version "0.0.18" resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.18.tgz#c01d5a876f7cd76ee1855ed4ee186abd3ff85ae1" @@ -1382,6 +1390,15 @@ dependencies: styled-icons "^9.1.0" +"@opentripplanner/printable-itinerary@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/printable-itinerary/-/printable-itinerary-0.0.18.tgz#4137fa0000f8c1164e5fa4226243e0b887412105" + integrity sha512-uxUm80WU4m8Pni3OzkBzMI/7kmtgRSR7e3wJqy6N9PpZRyEEzUzzSaDmAS8+/nswgZyrNpeenp5ZK5e+7AJA+g== + dependencies: + "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/humanize-distance" "^0.0.18" + prop-types "^15.7.2" + "@opentripplanner/trip-details@^0.0.18": version "0.0.18" resolved "https://registry.yarnpkg.com/@opentripplanner/trip-details/-/trip-details-0.0.18.tgz#69d8fa4e8a70977c9aaa71a777a34021aec0fa12" From db1f3bf0acb2f7693e176388394fbe4db36f7f31 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Tue, 24 Mar 2020 11:08:29 -0400 Subject: [PATCH 037/115] style(PrintLayout, TripViewerOverlay): Change style and typo per PR review. --- lib/components/app/print-layout.js | 6 +++--- lib/components/map/connected-trip-viewer-overlay.js | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/components/app/print-layout.js b/lib/components/app/print-layout.js index fa00581df..e6687f166 100644 --- a/lib/components/app/print-layout.js +++ b/lib/components/app/print-layout.js @@ -56,7 +56,7 @@ class PrintLayout extends Component { /** * Use one of the customIcons if provided, - * (similar to @opentraiplanner/trip-form/ModeIcon) + * (similar to @opentriplanner/trip-form/ModeIcon) * otherwise, fall back on TriMetLegIcon. * TODO: Combine all custom icon rendering in one place. */ @@ -100,14 +100,14 @@ class PrintLayout extends Component { {/* The main itinerary body */} {itinerary && -
+ <> -
+ }
) diff --git a/lib/components/map/connected-trip-viewer-overlay.js b/lib/components/map/connected-trip-viewer-overlay.js index 916464dfa..3159e694e 100644 --- a/lib/components/map/connected-trip-viewer-overlay.js +++ b/lib/components/map/connected-trip-viewer-overlay.js @@ -13,7 +13,6 @@ const mapStateToProps = (state, ownProps) => { } } -const mapDispatchToProps = { -} +const mapDispatchToProps = {} export default connect(mapStateToProps, mapDispatchToProps)(withLeaflet(TripViewerOverlay)) From 05d593c3f0d463fce215986366db5b7476708e15 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Thu, 26 Mar 2020 10:16:49 -0400 Subject: [PATCH 038/115] fix(example.js): add 'Plan Trip' button via DefaultMainPanel fix #144 --- example.js | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/example.js b/example.js index b29df8943..72f5ac230 100644 --- a/example.js +++ b/example.js @@ -15,13 +15,10 @@ import { Navbar, Grid, Row, Col } from 'react-bootstrap' // import OTP-RR components import { - DefaultSearchForm, - ErrorMessage, + DefaultMainPanel, MobileMain, - NarrativeRoutingResults, ResponsiveWebapp, Map, - ViewerContainer, AppMenu, createOtpReducer } from './lib' @@ -81,15 +78,8 @@ class OtpRRExample extends Component { - - - -
- -
-
+ - From 82a84ae1186667785992fff162b1977affa788a1 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 26 Mar 2020 14:24:08 -0400 Subject: [PATCH 039/115] docs(date-time-modal): Clarify some comments around DateTimeSelector.dateFormatLegacy and timeFormat --- lib/components/form/date-time-modal.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/components/form/date-time-modal.js b/lib/components/form/date-time-modal.js index 4b3356017..70b22e611 100644 --- a/lib/components/form/date-time-modal.js +++ b/lib/components/form/date-time-modal.js @@ -101,10 +101,15 @@ class DateTimeModal extends Component { `. + // These props are not relevant in modern browsers, + // where `` already + // formats the time|date according to the OS settings. + dateFormatLegacy={dateFormatLegacy} timeFormatLegacy={timeFormatLegacy} />
@@ -120,10 +125,7 @@ const mapStateToProps = (state, ownProps) => { departArrive, date, time, - // These props below are for Safari on MacOS, and old browsers - // that don't support ``. - // In modern browsers, `` already - // formats the time|date according to the OS settings. + // These props below are for legacy browsers (see render method above). timeFormatLegacy: getTimeFormat(state.otp.config), dateFormatLegacy: getDateFormat(state.otp.config) } From ef82d61db0232630bd90f54320609a320218e607 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 26 Mar 2020 18:05:27 -0400 Subject: [PATCH 040/115] fix(yarn): Revert stuff to fix broken build from previous commit. --- package.json | 15 +++---- yarn.lock | 117 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 77 insertions(+), 55 deletions(-) diff --git a/package.json b/package.json index 701124d4f..d507a7f34 100644 --- a/package.json +++ b/package.json @@ -27,14 +27,14 @@ }, "homepage": "https://github.com/opentripplanner/otp-react-redux#readme", "dependencies": { - "@conveyal/geocoder-arcgis-geojson": "^0.0.2", "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", - "@opentripplanner/core-utils": "^0.0.17", - "@opentripplanner/from-to-location-picker": "^0.0.17", - "@opentripplanner/trip-form": "^0.0.17", + "@opentripplanner/core-utils": "^0.0.18", + "@opentripplanner/from-to-location-picker": "^0.0.18", + "@opentripplanner/geocoder": "^0.0.18", + "@opentripplanner/location-field": "^0.0.18", + "@opentripplanner/trip-form": "^0.0.18", "bootstrap": "^3.3.7", - "bowser": "^1.9.3", "clone": "^2.1.0", "connected-react-router": "^6.5.2", "copy-to-clipboard": "^3.0.8", @@ -47,7 +47,6 @@ "history": "^4.7.2", "immutability-helper": "^2.1.1", "isomorphic-fetch": "^2.2.1", - "isomorphic-mapzen-search": "^1.5.1", "leaflet": "^1.5.1", "leaflet.polylinemeasure": "github:ppete2/Leaflet.PolylineMeasure", "lodash.debounce": "^4.0.8", @@ -75,7 +74,6 @@ "redux-logger": "^2.7.4", "redux-thunk": "^2.3.0", "styled-components": "^5.0.1", - "throttle-debounce": "^2.0.1", "transitive-js": "^0.13.0", "turf-along": "^3.0.12", "velocity-react": "^1.3.3" @@ -92,7 +90,8 @@ "react": "^16.9.0", "react-dom": "^16.9.0", "redux-mock-store": "^1.5.3", - "semantic-release": "^15.13.12" + "semantic-release": "^15.13.12", + "styled-components": "^5.0.1" }, "peerDependencies": { "react": ">=15.0.0", diff --git a/yarn.lock b/yarn.lock index af43cfd36..39df936a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -48,11 +48,11 @@ trim-right "^1.0.1" "@babel/generator@^7.8.6": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.7.tgz#870b3cf7984f5297998152af625c4f3e341400f7" - integrity sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew== + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.6.tgz#57adf96d370c9a63c241cd719f9111468578537a" + integrity sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg== dependencies: - "@babel/types" "^7.8.7" + "@babel/types" "^7.8.6" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" @@ -293,9 +293,9 @@ integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== "@babel/parser@^7.8.6": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.7.tgz#7b8facf95d25fef9534aad51c4ffecde1a61e26a" - integrity sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A== + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.6.tgz#ba5c9910cddb77685a008e3c587af8d27b67962c" + integrity sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g== "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" @@ -1038,10 +1038,10 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.7.tgz#1fc9729e1acbb2337d5b6977a63979b4819f5d1d" - integrity sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw== +"@babel/types@^7.8.3", "@babel/types@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.6.tgz#629ecc33c2557fcde7126e58053127afdb3e6d01" + integrity sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA== dependencies: esutils "^2.0.2" lodash "^4.17.13" @@ -1063,7 +1063,7 @@ "@conveyal/lonlat" "^1.3.0" geocoder-arcgis "^2.0.4" -"@conveyal/lonlat@^1.1.0", "@conveyal/lonlat@^1.1.2", "@conveyal/lonlat@^1.3.0": +"@conveyal/lonlat@^1.1.0", "@conveyal/lonlat@^1.1.2", "@conveyal/lonlat@^1.3.0", "@conveyal/lonlat@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@conveyal/lonlat/-/lonlat-1.4.0.tgz#18a5c1349078a779e710d24af11bc02b24127ba0" integrity sha512-ag1FcRuwRGAZgeZ4e3sUq+gblf1Pgma2c9SaIVXluIrgsZ9Lrq7xhCbV0ErN8chyg/OCOoG8m/l3mgzbycQCnQ== @@ -1074,9 +1074,9 @@ integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== "@emotion/is-prop-valid@^0.8.3", "@emotion/is-prop-valid@^0.8.6": - version "0.8.8" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" - integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== + version "0.8.7" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.7.tgz#803449993f436f9a6c67752251ea3fc492a1044c" + integrity sha512-OPkKzUeiid0vEKjZqnGcy2mzxjIlCffin+L2C02pdz/bVlt5zZZE2VzO0D3XOPnH0NEeF21QNKSXiZphjr4xiQ== dependencies: "@emotion/memoize" "0.7.4" @@ -1324,10 +1324,10 @@ universal-user-agent "^3.0.0" url-template "^2.0.8" -"@opentripplanner/core-utils@^0.0.17": - version "0.0.17" - resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.17.tgz#6d436183e63615730e6ed05f87bf873d8885e8c3" - integrity sha512-JU+YA/DxCrKyfjFrWC34pPaMxDy3K7ABY+psnGzq7Y940qB3PeOMZyI6ZuoYnqMymtF4Y53zBpvMeMjkVoH3vw== +"@opentripplanner/core-utils@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.18.tgz#5109a60e262802dca3b1e7a34091c9a394f5b290" + integrity sha512-6ej3MVTd/Kz4OYnIDJBm8fT4OHkchWq+sU9G+Z6fHJhGE5nh/ljCcps/8Vew1HXK6nhaeDMm099nkA/8YKRnug== dependencies: "@mapbox/polyline" "^1.1.0" "@turf/along" "^6.0.1" @@ -1338,37 +1338,65 @@ prop-types "^15.7.2" qs "^6.9.1" -"@opentripplanner/from-to-location-picker@^0.0.17": - version "0.0.17" - resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.17.tgz#41b594c7f047c5884a5f97630d452305b3151a85" - integrity sha512-PNIO3dXAbSFkG4qKgmw21wmDiDIordNtRBC8f7H9ruT4Fjo1SnDxW6Prj+5plPnVkhh5SzmXR8PfdDe13XsljA== +"@opentripplanner/from-to-location-picker@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.18.tgz#21d1164d09724becea640a95f97aadb479df8f24" + integrity sha512-y5GJxvf1La2Wk9ldEtKO5zzVnECi89HkrWdT5Tb2ZYuJrUVnPZZ28CmLEtQGSh+Qtj/kxVBMII/UOkoja3SkuQ== + dependencies: + "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/location-icon" "^0.0.18" + prop-types "^15.7.2" + +"@opentripplanner/geocoder@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.18.tgz#fe1ecddd025b08e6b2bf51a9ddf8c65e10571b90" + integrity sha512-NvqZDJc6c+fKRXys5jkaFD5F2gtXag4gKov2L6z0d3+Sn8BTQvDTuE961J5Bb/xn8xE4IvmcIs5tQmE/B+tvBw== dependencies: - "@opentripplanner/core-utils" "^0.0.17" - "@opentripplanner/location-icon" "^0.0.17" + "@conveyal/geocoder-arcgis-geojson" "^0.0.2" + "@conveyal/lonlat" "^1.4.0" + isomorphic-mapzen-search "^1.4.1" + lodash.memoize "^4.1.2" + +"@opentripplanner/humanize-distance@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.18.tgz#eeb49b826754e9e04ca84813781fa47baeaebc7f" + integrity sha512-emn2TTVBk9DUnbLPh9OIP/ZlKdbDpJzVWq+tO5HIqCIL1TW0XFEQDbQLv3b3rGS2R2LHbhKlYYJKmP36ZFS20w== + +"@opentripplanner/icons@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.18.tgz#4486286988801d374a31975aec80ac326ff17061" + integrity sha512-g0+8r9VL/6TPXlFak4mg8xOzAGzID5SGMurLayXvCuroFIbqwUD3/BOhGUD6+z25MvOv3Tov7V9wtN9l822eTg== + dependencies: + "@opentripplanner/core-utils" "^0.0.18" prop-types "^15.7.2" -"@opentripplanner/icons@^0.0.17": - version "0.0.17" - resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.17.tgz#8843bbb9b35210714d62e3c5c74b94dee0631f94" - integrity sha512-1Ov1DgcFx7GwR3qO/NWdcyqtGDbXR/IZUEvUrb5mHPDrthejmuVYOCGUiDGl7avTxM7k85SKXMaRbQ3qSbp/eg== +"@opentripplanner/location-field@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.18.tgz#c01d5a876f7cd76ee1855ed4ee186abd3ff85ae1" + integrity sha512-RAJkkgCWTuZRcjOguzFWb+z4YDLv8Lrp6V2QZJhNV289SPjokuGOuDrARl7+FQ8Di0ZuH95Ca/PipJEdeF2wAQ== dependencies: - "@opentripplanner/core-utils" "^0.0.17" + "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/geocoder" "^0.0.18" + "@opentripplanner/humanize-distance" "^0.0.18" + "@opentripplanner/location-icon" "^0.0.18" prop-types "^15.7.2" + styled-icons "^9.1.0" + throttle-debounce "^2.1.0" -"@opentripplanner/location-icon@^0.0.17": - version "0.0.17" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.17.tgz#2793df54da3b1f50767f723236c30f0f87ca275a" - integrity sha512-kbIImQ/IHre/6gCifjuZGpuHWLddAAt9IF64Fhp4Lilou8nVJgdx9P3VyIcjt0nJmtLEV/p5zPJVVp+NzvGU9A== +"@opentripplanner/location-icon@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.18.tgz#8f207e1d7032ae04081cffa981ee3117c3647478" + integrity sha512-4Pv0RZZeHvDpc50XMOMUOS4E7dlYBNne/OvnOxHcbEmHSOUHGKNSiIq2EPO7Eyrae+SsKKhksv++okIiw6KOmw== dependencies: styled-icons "^9.1.0" -"@opentripplanner/trip-form@^0.0.17": - version "0.0.17" - resolved "https://registry.yarnpkg.com/@opentripplanner/trip-form/-/trip-form-0.0.17.tgz#1b52e938c9202e8f4acfc103aa7ba47bae940b21" - integrity sha512-taHdT9slB9WvuJBCZn7pjO+4i1KOvow789khzgLICA7Gp4xexMotn3e0lyyFyyNMoIo0Qod1J1B8sXjisU19kA== +"@opentripplanner/trip-form@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-form/-/trip-form-0.0.18.tgz#8322e2b3c554c2b020d46bbc61d3cd83be5cd60b" + integrity sha512-Yzhbwit1kWMq8FMRTUomX/OXPpmcnvUvEHNl/oA9w2gBEVpY72AcGYnJ9GPcaRGb2+hw9F+j/8PWsB/8ETA8/Q== dependencies: - "@opentripplanner/core-utils" "^0.0.17" - "@opentripplanner/icons" "^0.0.17" + "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/icons" "^0.0.18" moment "^2.17.1" "@semantic-release/commit-analyzer@^6.1.0": @@ -3365,11 +3393,6 @@ bottleneck@^2.18.1: resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.4.tgz#63c505687a0ddaf89a6f515225c75e05833bb079" integrity sha512-2poBdvpAGG+dkMVKZqtDhyuMN6JviD81h89W4bfmt3UO7O60F+qf/84V0alNqL8PM1RByl4SZ1fVMu/ZvxkmcA== -bowser@^1.9.3: - version "1.9.4" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a" - integrity sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ== - bowser@^2.7.0: version "2.9.0" resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz#3bed854233b419b9a7422d9ee3e85504373821c9" @@ -8277,7 +8300,7 @@ isomorphic-fetch@^2.1.1, isomorphic-fetch@^2.2.1: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" -isomorphic-mapzen-search@^1.5.1: +isomorphic-mapzen-search@^1.4.1: version "1.5.1" resolved "https://registry.yarnpkg.com/isomorphic-mapzen-search/-/isomorphic-mapzen-search-1.5.1.tgz#5ac0214cec436fb550e8ef362cf8d11b17de8e9c" integrity sha512-38GcjidOqjVQkUzDovx+ceUXHwOliIoFq+qJ/zUzaZwn2h8qEANLMTjaZkFvYN2XdSGB65zBOH5n/iP/Vs1ejA== @@ -15083,7 +15106,7 @@ throat@^4.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= -throttle-debounce@^2.0.1: +throttle-debounce@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.1.0.tgz#257e648f0a56bd9e54fe0f132c4ab8611df4e1d5" integrity sha512-AOvyNahXQuU7NN+VVvOOX+uW6FPaWdAOdRP5HfwYxAfCzXTFKRMoIMk+n+po318+ktcChx+F1Dd91G3YHeMKyg== From 374b52fa1b38d94cbab1cf2e9bf3cd99aa1c5cbc Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 26 Mar 2020 18:58:51 -0400 Subject: [PATCH 041/115] fix(yarn.lock): Fix broken yarn.lock --- yarn.lock | 56 +++++++++++++++++++++++-------------------------------- 1 file changed, 23 insertions(+), 33 deletions(-) diff --git a/yarn.lock b/yarn.lock index 32ba4a0f8..a2804b1f8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -50,15 +50,12 @@ lodash "^4.17.13" source-map "^0.5.0" -"@babel/generator@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.6.tgz#57adf96d370c9a63c241cd719f9111468578537a" - integrity sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg== +"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" + integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== dependencies: - "@babel/types" "^7.8.6" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" + "@babel/types" "^7.8.3" "@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": version "7.8.3" @@ -282,15 +279,10 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== -"@babel/parser@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.6.tgz#ba5c9910cddb77685a008e3c587af8d27b67962c" - integrity sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g== - -"@babel/plugin-proposal-async-generator-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" - integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== +"@babel/plugin-proposal-async-generator-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" + integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-remap-async-to-generator" "^7.8.3" @@ -1044,16 +1036,7 @@ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.8.3", "@babel/types@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.6.tgz#629ecc33c2557fcde7126e58053127afdb3e6d01" - integrity sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA== - dependencies: - esutils "^2.0.2" + "@babel/helper-validator-identifier" "^7.9.0" lodash "^4.17.13" to-fast-properties "^2.0.0" @@ -1084,9 +1067,9 @@ integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== "@emotion/is-prop-valid@^0.8.3", "@emotion/is-prop-valid@^0.8.6": - version "0.8.7" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.7.tgz#803449993f436f9a6c67752251ea3fc492a1044c" - integrity sha512-OPkKzUeiid0vEKjZqnGcy2mzxjIlCffin+L2C02pdz/bVlt5zZZE2VzO0D3XOPnH0NEeF21QNKSXiZphjr4xiQ== + version "0.8.8" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" + integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== dependencies: "@emotion/memoize" "0.7.4" @@ -1385,6 +1368,13 @@ once "^1.4.0" universal-user-agent "^4.0.0" +"@octokit/types@^2.0.0", "@octokit/types@^2.0.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.5.1.tgz#22563b3bb50034bea3176eac1860340c5e812e2a" + integrity sha512-q4Wr7RexkPRrkQpXzUYF5Fj/14Mr65RyOHj6B9d/sQACpqGcStkHZj4qMEtlMY5SnD/69jlL9ItGPbDM0dR/dA== + dependencies: + "@types/node" ">= 8" + "@opentripplanner/core-utils@^0.0.18": version "0.0.18" resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.18.tgz#5109a60e262802dca3b1e7a34091c9a394f5b290" @@ -3474,9 +3464,9 @@ bootstrap@^3.3.7: integrity sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA== bottleneck@^2.18.1: - version "2.19.4" - resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.4.tgz#63c505687a0ddaf89a6f515225c75e05833bb079" - integrity sha512-2poBdvpAGG+dkMVKZqtDhyuMN6JviD81h89W4bfmt3UO7O60F+qf/84V0alNqL8PM1RByl4SZ1fVMu/ZvxkmcA== + version "2.19.5" + resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" + integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw== bowser@^2.7.0: version "2.9.0" From 45f751a1ccff4c7bc314743df8731f40cc4f210e Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 26 Mar 2020 19:18:01 -0400 Subject: [PATCH 042/115] fix(yarn): Fix yarn.lock / --- yarn.lock | 176 ++++++++++++++++++------------------------------------ 1 file changed, 59 insertions(+), 117 deletions(-) diff --git a/yarn.lock b/yarn.lock index a2804b1f8..4e0b34b93 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1375,10 +1375,10 @@ dependencies: "@types/node" ">= 8" -"@opentripplanner/core-utils@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.18.tgz#5109a60e262802dca3b1e7a34091c9a394f5b290" - integrity sha512-6ej3MVTd/Kz4OYnIDJBm8fT4OHkchWq+sU9G+Z6fHJhGE5nh/ljCcps/8Vew1HXK6nhaeDMm099nkA/8YKRnug== +"@opentripplanner/core-utils@^0.0.14": + version "0.0.14" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.14.tgz#9e58e78227759ab5c13e1dad22467c474bd102b7" + integrity sha512-JMtOermSYrpPN649DEexd/EKdMPisBrooHiUAeCSdapXgxN7y1h+fUZj+OglLgUoo48wPRv7ru/n5doqVrGSaQ== dependencies: "@mapbox/polyline" "^1.1.0" "@turf/along" "^6.0.1" @@ -1389,66 +1389,70 @@ prop-types "^15.7.2" qs "^6.9.1" -"@opentripplanner/from-to-location-picker@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.18.tgz#21d1164d09724becea640a95f97aadb479df8f24" - integrity sha512-y5GJxvf1La2Wk9ldEtKO5zzVnECi89HkrWdT5Tb2ZYuJrUVnPZZ28CmLEtQGSh+Qtj/kxVBMII/UOkoja3SkuQ== +"@opentripplanner/core-utils@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.16.tgz#72b85f9e36fb5dc00d442d9c2e6d883efdc3fa8d" + integrity sha512-ekPxWC0woOJDbfj0Lxk+NX2fLpIGpbDRQbEsO/rF+UCCvg4sCcmobjHaMwtW6rAXtVzNMmFDYXctPW/49Qdq8A== dependencies: - "@opentripplanner/core-utils" "^0.0.18" - "@opentripplanner/location-icon" "^0.0.18" + "@mapbox/polyline" "^1.1.0" + "@turf/along" "^6.0.1" + bowser "^2.7.0" + lodash.isequal "^4.5.0" + moment "^2.24.0" + moment-timezone "^0.5.27" + prop-types "^15.7.2" + qs "^6.9.1" + +"@opentripplanner/from-to-location-picker@^0.0.14": + version "0.0.14" + resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.14.tgz#efe2a3452d58d769bc0d5904753df8516279f6c7" + integrity sha512-w2jf+wErtH34CdxQkAyHf446JeCsVxOYej6JRK15jc3+LCWi4bct2A0tf1wp9uNdMvAnL06AZL6hwsED6WqrVA== + dependencies: + "@opentripplanner/core-utils" "^0.0.14" + "@opentripplanner/location-icon" "^0.0.13" prop-types "^15.7.2" -"@opentripplanner/geocoder@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.18.tgz#fe1ecddd025b08e6b2bf51a9ddf8c65e10571b90" - integrity sha512-NvqZDJc6c+fKRXys5jkaFD5F2gtXag4gKov2L6z0d3+Sn8BTQvDTuE961J5Bb/xn8xE4IvmcIs5tQmE/B+tvBw== +"@opentripplanner/geocoder@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.16.tgz#55bdff8be36b2b68b83d62008c0fd45e03dd2a11" + integrity sha512-wpIyKThP4FhNiXDLHGHyux+g7+BAWN43ZZzdOgSBhSHoKRYXee+Ga7ht3zsNtJroZhkDQkEISXiNejK16SCWvQ== dependencies: "@conveyal/geocoder-arcgis-geojson" "^0.0.2" "@conveyal/lonlat" "^1.4.0" isomorphic-mapzen-search "^1.4.1" lodash.memoize "^4.1.2" -"@opentripplanner/humanize-distance@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.18.tgz#eeb49b826754e9e04ca84813781fa47baeaebc7f" - integrity sha512-emn2TTVBk9DUnbLPh9OIP/ZlKdbDpJzVWq+tO5HIqCIL1TW0XFEQDbQLv3b3rGS2R2LHbhKlYYJKmP36ZFS20w== +"@opentripplanner/humanize-distance@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.16.tgz#e8197671b45719ce5c728d34c60e80b6d816d287" + integrity sha512-qec9FZGhITC1u+YIBn0+6drxvbJr4N7FX0+VdpXl4+op6xVPlH+LPRittQhdOXdwEjUwHA9qvmksIYE70mg9lw== -"@opentripplanner/icons@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.18.tgz#4486286988801d374a31975aec80ac326ff17061" - integrity sha512-g0+8r9VL/6TPXlFak4mg8xOzAGzID5SGMurLayXvCuroFIbqwUD3/BOhGUD6+z25MvOv3Tov7V9wtN9l822eTg== +"@opentripplanner/location-field@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.16.tgz#1d23792965e9bfcd1044521b9bef261fbba090a7" + integrity sha512-nnEspCddomJGJgWuGh8S2npUogKKa6oPCopCl0sdgU7UyI/xUpgwHwTHaxJyJNWQmd4RT+GgKv9jlzKRVtxFXA== dependencies: - "@opentripplanner/core-utils" "^0.0.18" - prop-types "^15.7.2" - -"@opentripplanner/location-field@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.18.tgz#c01d5a876f7cd76ee1855ed4ee186abd3ff85ae1" - integrity sha512-RAJkkgCWTuZRcjOguzFWb+z4YDLv8Lrp6V2QZJhNV289SPjokuGOuDrARl7+FQ8Di0ZuH95Ca/PipJEdeF2wAQ== - dependencies: - "@opentripplanner/core-utils" "^0.0.18" - "@opentripplanner/geocoder" "^0.0.18" - "@opentripplanner/humanize-distance" "^0.0.18" - "@opentripplanner/location-icon" "^0.0.18" + "@opentripplanner/core-utils" "^0.0.16" + "@opentripplanner/geocoder" "^0.0.16" + "@opentripplanner/humanize-distance" "^0.0.16" + "@opentripplanner/location-icon" "^0.0.16" prop-types "^15.7.2" styled-icons "^9.1.0" throttle-debounce "^2.1.0" -"@opentripplanner/location-icon@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.18.tgz#8f207e1d7032ae04081cffa981ee3117c3647478" - integrity sha512-4Pv0RZZeHvDpc50XMOMUOS4E7dlYBNne/OvnOxHcbEmHSOUHGKNSiIq2EPO7Eyrae+SsKKhksv++okIiw6KOmw== +"@opentripplanner/location-icon@^0.0.13": + version "0.0.13" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.13.tgz#18e53e2dcd916814675340c9a69d2bc7797bb177" + integrity sha512-KeGm9xQLA2qdQHuPod706OUuoUk25cDjJrFA+waWaN9qQqcqSxOBavcLg5FH9yRQR8uuSTgi1yooIlccOUYnxQ== dependencies: styled-icons "^9.1.0" -"@opentripplanner/trip-form@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/trip-form/-/trip-form-0.0.18.tgz#8322e2b3c554c2b020d46bbc61d3cd83be5cd60b" - integrity sha512-Yzhbwit1kWMq8FMRTUomX/OXPpmcnvUvEHNl/oA9w2gBEVpY72AcGYnJ9GPcaRGb2+hw9F+j/8PWsB/8ETA8/Q== +"@opentripplanner/location-icon@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.16.tgz#16824fb8dd522f59be39b28a2a31617b27532bcd" + integrity sha512-QcbmO7aOcbECpKfZc2VNGxYq/HY7JZP+7FW6W1PBG98ThIbdg4cSwWWf7kf8fl3LpJAhqMdV14AE1O/P/Sq8rw== dependencies: - "@opentripplanner/core-utils" "^0.0.18" - "@opentripplanner/icons" "^0.0.18" - moment "^2.17.1" + styled-icons "^9.1.0" "@semantic-release/commit-analyzer@^6.1.0": version "6.3.3" @@ -5303,14 +5307,14 @@ debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: dependencies: ms "^2.1.1" -debug@^3.1.0, debug@^3.2.6: +debug@^3.1.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" -debuglog@*, debuglog@^1.0.1: +debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= @@ -5488,11 +5492,6 @@ detect-indent@^5.0.0, detect-indent@~5.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" @@ -7705,7 +7704,7 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -7792,7 +7791,7 @@ import-local@^2.0.0: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" -imurmurhash@*, imurmurhash@^0.1.4: +imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= @@ -9504,11 +9503,6 @@ lockfile@^1.0.4: dependencies: signal-exit "^3.0.2" -lodash._baseindexof@*: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" - integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw= - lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -9517,23 +9511,6 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" -lodash._bindcallback@*: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= - -lodash._cacheindexof@*: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" - integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI= - -lodash._createcache@*: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" - integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM= - dependencies: - lodash._getnative "^3.0.0" - lodash._createcompounder@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz#5dd2cb55372d6e70e0e2392fb2304d6631091075" @@ -9547,11 +9524,6 @@ lodash._createset@~4.0.0: resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= -lodash._getnative@*, lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= - lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -9671,11 +9643,6 @@ lodash.omit@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= -lodash.restparam@*: - version "3.6.1" - resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= - lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" @@ -10562,15 +10529,6 @@ nearley@^2.7.10: randexp "0.4.6" semver "^5.4.1" -needle@^2.2.1: - version "2.3.3" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.3.tgz#a041ad1d04a871b0ebb666f40baaf1fb47867117" - integrity sha512-EkY0GeSq87rWp1hoq/sH/wnTWgFVhYlnIkbJ0YJFfRgEFlz2RraCjBpFQ+vrEgEdp0ThfyHADmkChEhcb7PKyw== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - neo-async@^2.5.0, neo-async@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" @@ -10697,22 +10655,6 @@ node-notifier@^5.4.2: shellwords "^0.1.1" which "^1.3.0" -node-pre-gyp@*: - version "0.14.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" - integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4.4.2" - node-releases@^1.1.52: version "1.1.52" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9" @@ -10843,7 +10785,7 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.8: +npm-packlist@^1.1.12, npm-packlist@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== @@ -11030,7 +10972,7 @@ npm@^6.10.3: worker-farm "^1.7.0" write-file-atomic "^2.4.3" -npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2: +npmlog@^4.1.2, npmlog@~4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -13140,7 +13082,7 @@ raw-body@~1.1.0: bytes "1" string_decoder "0.10" -rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: +rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -14178,7 +14120,7 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^2.5.0, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@^2.5.0, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -14341,7 +14283,7 @@ semver-regex@^2.0.0: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -15311,7 +15253,7 @@ tapable@^0.2.7, tapable@~0.2.5: resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8" integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A== -tar@^4.4.10, tar@^4.4.12, tar@^4.4.13, tar@^4.4.2: +tar@^4.4.10, tar@^4.4.12, tar@^4.4.13: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== From cf0c91b3bf5b6ca92544374541c45d63da6f96d4 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 26 Mar 2020 19:27:05 -0400 Subject: [PATCH 043/115] fix(package.json): Use old pqackage.json see what happens --- package.json | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 199d97479..75f922e0a 100644 --- a/package.json +++ b/package.json @@ -29,11 +29,9 @@ "dependencies": { "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", - "@opentripplanner/core-utils": "^0.0.18", - "@opentripplanner/from-to-location-picker": "^0.0.18", - "@opentripplanner/geocoder": "^0.0.18", - "@opentripplanner/location-field": "^0.0.18", - "@opentripplanner/trip-form": "^0.0.18", + "@opentripplanner/from-to-location-picker": "^0.0.14", + "@opentripplanner/geocoder": "^0.0.16", + "@opentripplanner/location-field": "^0.0.16", "bootstrap": "^3.3.7", "clone": "^2.1.0", "connected-react-router": "^6.5.2", @@ -73,7 +71,6 @@ "redux-actions": "^1.2.1", "redux-logger": "^2.7.4", "redux-thunk": "^2.3.0", - "styled-components": "^5.0.1", "transitive-js": "^0.13.0", "turf-along": "^3.0.12", "velocity-react": "^1.3.3" From 87a8efb224be1c522aa6368e2028a8889c0c4ffc Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 27 Mar 2020 10:26:37 -0400 Subject: [PATCH 044/115] fix(yarn): Fix yarn so lint doens't complain --- package.json | 8 +- yarn.lock | 6014 ++++++++++++++++++++++++-------------------------- 2 files changed, 2865 insertions(+), 3157 deletions(-) diff --git a/package.json b/package.json index 75f922e0a..bd6f79ddd 100644 --- a/package.json +++ b/package.json @@ -29,9 +29,11 @@ "dependencies": { "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", - "@opentripplanner/from-to-location-picker": "^0.0.14", - "@opentripplanner/geocoder": "^0.0.16", - "@opentripplanner/location-field": "^0.0.16", + "@opentripplanner/core-utils": "^0.0.18", + "@opentripplanner/from-to-location-picker": "^0.0.18", + "@opentripplanner/geocoder": "^0.0.18", + "@opentripplanner/location-field": "^0.0.18", + "@opentripplanner/trip-form": "^0.0.18", "bootstrap": "^3.3.7", "clone": "^2.1.0", "connected-react-router": "^6.5.2", diff --git a/yarn.lock b/yarn.lock index 4e0b34b93..39df936a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,134 +2,130 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/code-frame@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== dependencies: "@babel/highlight" "^7.8.3" -"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" - integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== - dependencies: - browserslist "^4.9.1" - invariant "^2.2.4" - semver "^5.5.0" - "@babel/core@^7.1.0", "@babel/core@^7.1.2", "@babel/core@^7.3.4": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" - integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.0" - "@babel/parser" "^7.9.0" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - convert-source-map "^1.7.0" + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" + integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" + "@babel/helpers" "^7.5.5" + "@babel/parser" "^7.5.5" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + convert-source-map "^1.1.0" debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" + json5 "^2.1.0" lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.1.3", "@babel/generator@^7.4.0", "@babel/generator@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce" - integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA== +"@babel/generator@^7.1.3", "@babel/generator@^7.4.0", "@babel/generator@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" + integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== dependencies: - "@babel/types" "^7.9.0" + "@babel/types" "^7.5.5" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" + trim-right "^1.0.1" -"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== +"@babel/generator@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.6.tgz#57adf96d370c9a63c241cd719f9111468578537a" + integrity sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.8.6" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" - integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== dependencies: - "@babel/helper-explode-assignable-expression" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/types" "^7.0.0" -"@babel/helper-builder-react-jsx-experimental@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.0.tgz#066d80262ade488f9c1b1823ce5db88a4cedaa43" - integrity sha512-3xJEiyuYU4Q/Ar9BsHisgdxZsRlsShMe90URZ0e6przL26CCs8NJbDoxH94kKT17PcxlMhsCAwZd90evCo26VQ== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-module-imports" "^7.8.3" - "@babel/types" "^7.9.0" + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" -"@babel/helper-builder-react-jsx@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz#16bf391990b57732700a3278d4d9a81231ea8d32" - integrity sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw== +"@babel/helper-builder-react-jsx@^7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4" + integrity sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw== dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/types" "^7.9.0" + "@babel/types" "^7.3.0" + esutils "^2.0.0" -"@babel/helper-compilation-targets@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde" - integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw== +"@babel/helper-call-delegate@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" + integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== dependencies: - "@babel/compat-data" "^7.8.6" - browserslist "^4.9.1" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" -"@babel/helper-create-class-features-plugin@^7.8.3": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz#243a5b46e2f8f0f674dc1387631eb6b28b851de0" - integrity sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg== +"@babel/helper-create-class-features-plugin@^7.4.4", "@babel/helper-create-class-features-plugin@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4" + integrity sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg== dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" -"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" - integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== +"@babel/helper-define-map@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" + integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.7.0" + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.5.5" + lodash "^4.17.13" -"@babel/helper-define-map@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" - integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/types" "^7.8.3" - lodash "^4.17.13" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" -"@babel/helper-explode-assignable-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" - integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== dependencies: - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" "@babel/helper-function-name@^7.8.3": version "7.8.3" @@ -140,6 +136,13 @@ "@babel/template" "^7.8.3" "@babel/types" "^7.8.3" +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== + dependencies: + "@babel/types" "^7.0.0" + "@babel/helper-get-function-arity@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" @@ -147,87 +150,93 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-hoist-variables@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" - integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== +"@babel/helper-hoist-variables@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" + integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.4.4" -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== +"@babel/helper-member-expression-to-functions@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" + integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.5.5" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.0.0-beta.49": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" + integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.0.0" -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== +"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" + integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.9.0" + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/template" "^7.4.4" + "@babel/types" "^7.5.5" lodash "^4.17.13" -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== +"@babel/helper-optimise-call-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.0.0" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== -"@babel/helper-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" - integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== +"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" + integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== dependencies: lodash "^4.17.13" -"@babel/helper-remap-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" - integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-wrap-function" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-wrap-function" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" -"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" - integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== +"@babel/helper-replace-supers@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" + integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.6" + "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== +"@babel/helper-simple-access@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-split-export-declaration@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" + integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== + dependencies: + "@babel/types" "^7.4.4" "@babel/helper-split-export-declaration@^7.8.3": version "7.8.3" @@ -236,37 +245,41 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-validator-identifier@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" - integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw== +"@babel/helper-wrap-function@^7.1.0", "@babel/helper-wrap-function@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" + integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.2.0" -"@babel/helper-wrap-function@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" - integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== +"@babel/helpers@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" + integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" -"@babel/helpers@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" - integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== +"@babel/highlight@^7.0.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" + integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" "@babel/highlight@^7.8.3": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" - integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" + integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== dependencies: - "@babel/helper-validator-identifier" "^7.9.0" chalk "^2.0.0" + esutils "^2.0.2" js-tokens "^4.0.0" "@babel/parser@7.1.3": @@ -274,724 +287,685 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" integrity sha512-gqmspPZOMW3MIRb9HlrnbZHXI1/KHTOroBwN1NcLL6pWxzqzEKGvRTq0W/PxS45OtQGbaFikSQpkS5zbnsQm2w== -"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" - integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" + integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== -"@babel/plugin-proposal-async-generator-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" - integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== +"@babel/parser@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.6.tgz#ba5c9910cddb77685a008e3c587af8d27b67962c" + integrity sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g== + +"@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" + integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-proposal-class-properties@^7.1.0", "@babel/plugin-proposal-class-properties@^7.3.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" - integrity sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA== + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4" + integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A== dependencies: - "@babel/helper-create-class-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-create-class-features-plugin" "^7.5.5" + "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-decorators@^7.1.2": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz#2156860ab65c5abf068c3f67042184041066543e" - integrity sha512-e3RvdvS4qPJVTe288DlXjwKflpfy1hr0j5dz5WpIYYeP7vQZg2WfAEIp8k5/Lwis/m5REXEteIz6rrcDtXXG7w== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.4.4.tgz#de9b2a1a8ab0196f378e2a82f10b6e2a36f21cc0" + integrity sha512-z7MpQz3XC/iQJWXH9y+MaWcLPNSMY9RQSthrLzak8R8hCj0fuyNk+Dzi9kfNe/JxxlWQ2g7wkABbgWjW36MTcw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-decorators" "^7.8.3" + "@babel/helper-create-class-features-plugin" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-decorators" "^7.2.0" "@babel/plugin-proposal-do-expressions@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.8.3.tgz#2ccf97061e93d5ffff986dda3f1b54efe9df7719" - integrity sha512-NoMcN+0+SS1DVswjDCfz+Jfm9ViOYuFtv1lm0QInEugbEXK2iH3jeSq38WmIiTP+2QKqo2zt8xku77gqHINZkw== + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.5.0.tgz#ceb594d4a618545b00aa0b5cd61cad4aaaeb7a5a" + integrity sha512-xe0QQrhm+DGj6H23a6XtwkJNimy1fo71O/YVBfrfvfSl0fsq9T9dfoQBIY4QceEIdUo7u9s7OPEdsWEuizfGeg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-do-expressions" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-do-expressions" "^7.2.0" -"@babel/plugin-proposal-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" - integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== +"@babel/plugin-proposal-dynamic-import@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506" + integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" "@babel/plugin-proposal-export-default-from@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.8.3.tgz#4cb7c2fdeaed490b60d9bfd3dc8a20f81f9c2e7c" - integrity sha512-PYtv2S2OdCdp7GSPDg5ndGZFm9DmWFvuLoS5nBxZCgOBggluLnhTScspJxng96alHQzPyrrHxvC9/w4bFuspeA== + version "7.5.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.5.2.tgz#2c0ac2dcc36e3b2443fead2c3c5fc796fb1b5145" + integrity sha512-wr9Itk05L1/wyyZKVEmXWCdcsp/e185WUNl6AfYZeEKYaUPPvHXRDqO5K1VH7/UamYqGJowFRuCv30aDYZawsg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-export-default-from" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-export-default-from" "^7.2.0" "@babel/plugin-proposal-export-namespace-from@^7.0.0", "@babel/plugin-proposal-export-namespace-from@^7.2.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.8.3.tgz#63ad57265d0e3912afd666eb44ce26fa8cd2c774" - integrity sha512-WKK+9jz6TWUTX1uej9/EUVOmM1sK7aHv6bZyxbUV3NJjbiIZRqJITeXGMo7D631J72PEnIORh5VOlFCSlrLicg== + version "7.5.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.5.2.tgz#ccd5ed05b06d700688ff1db01a9dd27155e0d2a0" + integrity sha512-TKUdOL07anjZEbR1iSxb5WFh810KyObdd29XLFLGo1IDsSuGrjH3ouWSbAxHNmrVKzr9X71UYl2dQ7oGGcRp0g== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-export-namespace-from" "^7.2.0" "@babel/plugin-proposal-function-bind@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.8.3.tgz#e34a1e984771b84b6e5322745edeadca7e500ced" - integrity sha512-6q7VAHJQa9x4P6Lm6h6KHoJUEhx2r1buFKseHICe0ogb1LWxducO4tsQp3hd/7BVBo485YBsn6tJnpuwWm/9cA== + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.2.0.tgz#94dc2cdc505cafc4e225c0014335a01648056bf7" + integrity sha512-qOFJ/eX1Is78sywwTxDcsntLOdb5ZlHVVqUz5xznq8ldAfOVIyZzp1JE2rzHnaksZIhrqMrwIpQL/qcEprnVbw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-function-bind" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-function-bind" "^7.2.0" "@babel/plugin-proposal-function-sent@^7.1.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.8.3.tgz#341fd532b7eadbbbdd8bcb715150f279a779f14f" - integrity sha512-lu9wQjLnXd6Zy6eBKr0gE175xfD+da1rv2wOWEnZlD5KIxl894Tg34ppZ7ANR0jzQJMn+7pGuzSdy6JK4zGtKg== + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.5.0.tgz#39233aa801145e7d8072077cdb2d25f781c1ffd7" + integrity sha512-JXdfiQpKoC6UgQliZkp3NX7K3MVec1o1nfTWiCCIORE5ag/QZXhL0aSD8/Y2K+hIHonSTxuJF9rh9zsB6hBi2A== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-wrap-function" "^7.8.3" - "@babel/plugin-syntax-function-sent" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-wrap-function" "^7.2.0" + "@babel/plugin-syntax-function-sent" "^7.2.0" -"@babel/plugin-proposal-json-strings@^7.0.0", "@babel/plugin-proposal-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" - integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== +"@babel/plugin-proposal-json-strings@^7.0.0", "@babel/plugin-proposal-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" + integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" "@babel/plugin-proposal-logical-assignment-operators@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.8.3.tgz#e94810d96cb76f20524e66ba617171c21f3c0124" - integrity sha512-TLPLojGZYBeeoesO2NQIMLUJKD9N5oJlxG6iHLx7l7EvNQP5DfzeyxdI2lMPo5I7ih4Jv/vxrlwIPf6aJw422Q== + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.2.0.tgz#8a5cea6c42a7c87446959e02fff5fad012c56f57" + integrity sha512-0w797xwdPXKk0m3Js74hDi0mCTZplIu93MOSfb1ZLd/XFe3abWypx1QknVk0J+ohnsjYpvjH4Gwfo2i3RicB6Q== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.2.0" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" - integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.4.4.tgz#41c360d59481d88e0ce3a3f837df10121a769b39" + integrity sha512-Amph7Epui1Dh/xxUxS2+K22/MUi6+6JVTvy3P58tja3B6yKTSjwwx0/d83rF7551D6PVSSoplQb8GCwqec7HRw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.2.0" -"@babel/plugin-proposal-numeric-separator@^7.0.0", "@babel/plugin-proposal-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" - integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== +"@babel/plugin-proposal-numeric-separator@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.2.0.tgz#646854daf4cd22fd6733f6076013a936310443ac" + integrity sha512-DohMOGDrZiMKS7LthjUZNNcWl8TAf5BZDwZAH4wpm55FuJTHgfqPGdibg7rZDmont/8Yg0zA03IgT6XLeP+4sg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-numeric-separator" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz#a28993699fc13df165995362693962ba6b061d6f" - integrity sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow== +"@babel/plugin-proposal-object-rest-spread@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" + integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" -"@babel/plugin-proposal-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" - integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== +"@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" + integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" -"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" - integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== +"@babel/plugin-proposal-optional-chaining@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.2.0.tgz#ae454f4c21c6c2ce8cb2397dc332ae8b420c5441" + integrity sha512-ea3Q6edZC/55wEBVZAEz42v528VulyO0eir+7uky/sT4XRcdkWJcFi1aPtitTlwUzGnECWJNExWww1SStt+yWw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-chaining" "^7.2.0" "@babel/plugin-proposal-pipeline-operator@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-pipeline-operator/-/plugin-proposal-pipeline-operator-7.8.3.tgz#c3569228e7466f91bfff7f1c1ae18fb5d36b3097" - integrity sha512-Z0qV3aUYoLUAnVLdfLTlz/GJYfcrbX7Mhrp897Twik29wQseAFAAXQ4TPvN1oswVBHdN74sLPIn9HVfTXtjuQA== + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-pipeline-operator/-/plugin-proposal-pipeline-operator-7.5.0.tgz#4100ec55ef4f6a4c2490b5f5a4f2a22dfa272c06" + integrity sha512-HFYuu/yGnkn69ligXxU0ohOVvQDsMNOUJs/c4PYLUVS6ntCYOyGmRQQaSYJARJ9rvc7/ulZKIzxd4wk91hN63A== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-pipeline-operator" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-pipeline-operator" "^7.5.0" "@babel/plugin-proposal-throw-expressions@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.8.3.tgz#155f36ae40c2a88ae685c35e3220f8a0d426cf24" - integrity sha512-tH40s9JnoR+r45ZXKWW+PC5xzPQfVJix3pR1D8Ty5l9sn5NnrbZUzw8MtnNxu/Bz7p0imyeSYj9FQVccEymOEg== + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.2.0.tgz#2d9e452d370f139000e51db65d0a85dc60c64739" + integrity sha512-adsydM8DQF4i5DLNO4ySAU5VtHTPewOtNBV3u7F4lNMPADFF9bWQ+iDtUUe8+033cYCUz+bFlQdXQJmJOwoLpw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-throw-expressions" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-throw-expressions" "^7.2.0" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" - integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" + integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.8" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" -"@babel/plugin-syntax-async-generators@^7.8.0": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== +"@babel/plugin-syntax-async-generators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" + integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== dependencies: - "@babel/helper-plugin-utils" "^7.8.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-decorators@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.8.3.tgz#8d2c15a9f1af624b0025f961682a9d53d3001bda" - integrity sha512-8Hg4dNNT9/LcA1zQlfwuKR8BUc/if7Q7NkTam9sGTcJphLwpf2g4S42uhspQrIrR+dpzE0dtTqBVFoHl8GtnnQ== +"@babel/plugin-syntax-decorators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz#c50b1b957dcc69e4b1127b65e1c33eef61570c1b" + integrity sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-do-expressions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-do-expressions/-/plugin-syntax-do-expressions-7.8.3.tgz#e54edb578dc2c05e3b0055fac5cc55a9767d22dd" - integrity sha512-puRiUTVDQ69iRX41eeVWqOftZK31waWqZfwKB/TGzPfgi7097twx/DpwfOfyqEGqYtvpQF3jpHwT6UBzvSyAjw== +"@babel/plugin-syntax-do-expressions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-do-expressions/-/plugin-syntax-do-expressions-7.2.0.tgz#f3d4b01be05ecde2892086d7cfd5f1fa1ead5a2a" + integrity sha512-/u4rJ+XEmZkIhspVuKRS+7WLvm7Dky9j9TvGK5IgId8B3FKir9MG+nQxDZ9xLn10QMBvW58dZ6ABe2juSmARjg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== +"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" + integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== dependencies: - "@babel/helper-plugin-utils" "^7.8.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-export-default-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.8.3.tgz#f1e55ce850091442af4ba9c2550106035b29d678" - integrity sha512-a1qnnsr73KLNIQcQlcQ4ZHxqqfBKM6iNQZW2OMTyxNbA2WC7SHWHtGVpFzWtQAuS2pspkWVzdEBXXx8Ik0Za4w== +"@babel/plugin-syntax-export-default-from@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.2.0.tgz#edd83b7adc2e0d059e2467ca96c650ab6d2f3820" + integrity sha512-c7nqUnNST97BWPtoe+Ssi+fJukc9P9/JMZ71IOMNQWza2E+Psrd46N6AEvtw6pqK+gt7ChjXyrw4SPDO79f3Lw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== +"@babel/plugin-syntax-export-namespace-from@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.2.0.tgz#8d257838c6b3b779db52c0224443459bd27fb039" + integrity sha512-1zGA3UNch6A+A11nIzBVEaE3DDJbjfB+eLIcf0GGOh/BJr/8NxL3546MGhV/r0RhH4xADFIEso39TKCfEMlsGA== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-flow@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz#f2c883bd61a6316f2c89380ae5122f923ba4527f" - integrity sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg== +"@babel/plugin-syntax-flow@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c" + integrity sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-function-bind@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.8.3.tgz#17d722cd8efc9bb9cf8bc59327f2b26295b352f7" - integrity sha512-gEYag4Q3CfqlQcJQQw/KSWdV2husGOnIsOsRlyzkoaNqj2V/V/CSdSJDCGSl67oJ1bdIYP6TjORWPH561dSJpA== +"@babel/plugin-syntax-function-bind@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.2.0.tgz#68fe85b0c0da67125f87bf239c68051b06c66309" + integrity sha512-/WzU1lLU2l0wDfB42Wkg6tahrmtBbiD8C4H6EGSX0M4GAjzN6JiOpq/Uh8G6GSoR6lPMvhjM0MNiV6znj6y/zg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-function-sent@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.8.3.tgz#5a4874bdfc271f0fa1c470bf508dc54af3041e19" - integrity sha512-NNEutF0x2PdWYij2bmf/i50dSq4SUdgFij4BZwj3I4qDZgql3dlFJRyvwGHAhwKYElUKHaP0wQ/yO1d/enpJaw== +"@babel/plugin-syntax-function-sent@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.2.0.tgz#91474d4d400604e4c6cbd4d77cd6cb3b8565576c" + integrity sha512-2MOVuJ6IMAifp2cf0RFkHQaOvHpbBYyWCvgtF/WVqXhTd7Bgtov8iXVCadLXp2FN1BrI2EFl+JXuwXy0qr3KoQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-import-meta@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.8.3.tgz#230afff79d3ccc215b5944b438e4e266daf3d84d" - integrity sha512-vYiGd4wQ9gx0Lngb7+bPCwQXGK/PR6FeTIJ+TIOlq+OfOKG/kCAOO2+IBac3oMM9qV7/fU76hfcqxUaLKZf1hQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-json-strings@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.2.0.tgz#2333ef4b875553a3bcd1e93f8ebc09f5b9213a40" + integrity sha512-Hq6kFSZD7+PHkmBN8bCpHR6J8QEoCuEV/B38AIQscYjgMZkGlXB7cHNFzP5jR4RCh5545yP1ujHdmO7hAgKtBA== dependencies: - "@babel/helper-plugin-utils" "^7.8.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-jsx@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" - integrity sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A== +"@babel/plugin-syntax-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" + integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz#3995d7d7ffff432f6ddc742b47e730c054599897" - integrity sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg== +"@babel/plugin-syntax-jsx@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" + integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== +"@babel/plugin-syntax-logical-assignment-operators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.2.0.tgz#fcab7388530e96c6f277ce494c55caa6c141fcfb" + integrity sha512-l/NKSlrnvd73/EL540t9hZhcSo4TULBrIPs9Palju8Oc/A8DXDO+xQf04whfeuZLpi8AuIvCAdpKmmubLN4EfQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" - integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== +"@babel/plugin-syntax-nullish-coalescing-operator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.2.0.tgz#f75083dfd5ade73e783db729bbd87e7b9efb7624" + integrity sha512-lRCEaKE+LTxDQtgbYajI04ddt6WW0WJq57xqkAZ+s11h4YgfRHhVA/Y2VhfPzzFD4qeLHWg32DMp9HooY4Kqlg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== +"@babel/plugin-syntax-numeric-separator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.2.0.tgz#7470fe070c2944469a756752a69a6963135018be" + integrity sha512-DroeVNkO/BnGpL2R7+ZNZqW+E24aR/4YWxP3Qb15d6lPU8KDzF8HlIUIRCOJRn4X77/oyW4mJY+7FHfY82NLtQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-optional-catch-binding@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" + integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== dependencies: - "@babel/helper-plugin-utils" "^7.8.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-optional-chaining@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== +"@babel/plugin-syntax-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" + integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== dependencies: - "@babel/helper-plugin-utils" "^7.8.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-pipeline-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-pipeline-operator/-/plugin-syntax-pipeline-operator-7.8.3.tgz#945d9f13958408e2b1048f6ebe03f370d390aaca" - integrity sha512-GhiBvlXZLWeP+MjKaEv33KmiR/QMCv4iCwz1AuuAp7pHxBvOxxyQmIPukh+N/py6PRLYG10bvRCNeenG34QbDA== +"@babel/plugin-syntax-optional-chaining@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.2.0.tgz#a59d6ae8c167e7608eaa443fda9fa8fa6bf21dff" + integrity sha512-HtGCtvp5Uq/jH/WNUPkK6b7rufnCPLLlDAFN7cmACoIjaOOiXxUt3SswU5loHqrhtqTsa/WoLQ1OQ1AGuZqaWA== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-throw-expressions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.8.3.tgz#c763bcf26d202ddb65f1299a29d63aad312adb54" - integrity sha512-Mv3shY1i7ZssY4OY+eLZJAmNCwqTcpv2qOKO9x6irELSygfKWVSMXk0igJsA9UhU4hOdw0qMGkjj9TAk4MqzwQ== +"@babel/plugin-syntax-pipeline-operator@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-pipeline-operator/-/plugin-syntax-pipeline-operator-7.5.0.tgz#8ea7c2c22847c797748bf07752722a317079dc1e" + integrity sha512-5FVxPiMTMXWk4R7Kq9pt272nDu8VImJdaIzvXFSTcXFbgKWWaOdbic12TvUvl6cK+AE5EgnhwvxuWik4ZYYdzg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" - integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== +"@babel/plugin-syntax-throw-expressions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.2.0.tgz#79001ee2afe1b174b1733cdc2fc69c9a46a0f1f8" + integrity sha512-ngwynuqu1Rx0JUS9zxSDuPgW1K8TyVZCi2hHehrL4vyjqE7RGoNHWlZsS7KQT2vw9Yjk4YLa0+KldBXTRdPLRg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-arrow-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" - integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== +"@babel/plugin-transform-arrow-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" + integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" - integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== +"@babel/plugin-transform-async-to-generator@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" + integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" -"@babel/plugin-transform-block-scoped-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" - integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== +"@babel/plugin-transform-block-scoped-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" + integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" - integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== +"@babel/plugin-transform-block-scoping@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce" + integrity sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.13" -"@babel/plugin-transform-classes@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz#8603fc3cc449e31fdbdbc257f67717536a11af8d" - integrity sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ== +"@babel/plugin-transform-classes@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" + integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-define-map" "^7.8.3" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.5.5" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" - integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== +"@babel/plugin-transform-computed-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" + integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@^7.8.3": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz#fadb2bc8e90ccaf5658de6f8d4d22ff6272a2f4b" - integrity sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ== +"@babel/plugin-transform-destructuring@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" + integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" - integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== +"@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" + integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" -"@babel/plugin-transform-duplicate-keys@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" - integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== +"@babel/plugin-transform-duplicate-keys@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" + integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-exponentiation-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" - integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== +"@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" + integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-flow-strip-types@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz#8a3538aa40434e000b8f44a3c5c9ac7229bd2392" - integrity sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg== +"@babel/plugin-transform-flow-strip-types@^7.0.0": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz#d267a081f49a8705fc9146de0768c6b58dccd8f7" + integrity sha512-WyVedfeEIILYEaWGAUWzVNyqG4sfsNooMhXWsu/YzOvVGcsnPb5PguysjJqI3t3qiaYj0BR8T2f5njdjTGe44Q== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-flow" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.2.0" -"@babel/plugin-transform-for-of@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" - integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== +"@babel/plugin-transform-for-of@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" + integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" - integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== +"@babel/plugin-transform-function-name@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" + integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" - integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== +"@babel/plugin-transform-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" + integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-member-expression-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" - integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== +"@babel/plugin-transform-member-expression-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" + integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-amd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4" - integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== +"@babel/plugin-transform-modules-amd@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" + integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940" - integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== +"@babel/plugin-transform-modules-commonjs@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74" + integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ== dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-simple-access" "^7.8.3" + "@babel/helper-module-transforms" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-systemjs@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90" - integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== +"@babel/plugin-transform-modules-systemjs@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" + integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-umd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" - integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" - integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== +"@babel/plugin-transform-modules-umd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" + integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-new-target@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" - integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== +"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz#9d269fd28a370258199b4294736813a60bbdd106" + integrity sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + regexp-tree "^0.1.6" -"@babel/plugin-transform-object-super@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" - integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== +"@babel/plugin-transform-new-target@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" + integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-parameters@^7.8.7": - version "7.9.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz#3028d0cc20ddc733166c6e9c8534559cee09f54a" - integrity sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg== +"@babel/plugin-transform-object-super@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" + integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" -"@babel/plugin-transform-property-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" - integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== +"@babel/plugin-transform-parameters@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" + integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-call-delegate" "^7.4.4" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-react-display-name@^7.2.0", "@babel/plugin-transform-react-display-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz#70ded987c91609f78353dd76d2fb2a0bb991e8e5" - integrity sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A== +"@babel/plugin-transform-property-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" + integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-react-jsx-development@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.9.0.tgz#3c2a130727caf00c2a293f0aed24520825dbf754" - integrity sha512-tK8hWKrQncVvrhvtOiPpKrQjfNX3DtkNLSX4ObuGcpS9p0QrGetKmlySIGR07y48Zft8WVgPakqd/bk46JrMSw== +"@babel/plugin-transform-react-display-name@^7.0.0", "@babel/plugin-transform-react-display-name@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" + integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-react-jsx-self@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz#f4f26a325820205239bb915bad8e06fcadabb49b" - integrity sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ== +"@babel/plugin-transform-react-jsx-self@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" + integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" -"@babel/plugin-transform-react-jsx-source@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz#89ef93025240dd5d17d3122294a093e5e0183de0" - integrity sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw== +"@babel/plugin-transform-react-jsx-source@^7.0.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b" + integrity sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" -"@babel/plugin-transform-react-jsx@^7.9.4": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz#86f576c8540bd06d0e95e0b61ea76d55f6cbd03f" - integrity sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw== +"@babel/plugin-transform-react-jsx@^7.0.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290" + integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg== dependencies: - "@babel/helper-builder-react-jsx" "^7.9.0" - "@babel/helper-builder-react-jsx-experimental" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/helper-builder-react-jsx" "^7.3.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" -"@babel/plugin-transform-regenerator@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" - integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== +"@babel/plugin-transform-regenerator@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" + integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== dependencies: - regenerator-transform "^0.14.2" + regenerator-transform "^0.14.0" -"@babel/plugin-transform-reserved-words@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" - integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== +"@babel/plugin-transform-reserved-words@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" + integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-shorthand-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" - integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== +"@babel/plugin-transform-shorthand-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" + integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" - integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== +"@babel/plugin-transform-spread@^7.2.0": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" + integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-sticky-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" - integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== +"@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" + integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-regex" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" -"@babel/plugin-transform-template-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" - integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== +"@babel/plugin-transform-template-literals@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" + integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-typeof-symbol@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" - integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== +"@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" + integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-unicode-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" - integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== +"@babel/plugin-transform-unicode-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" + integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" "@babel/preset-env@^7.1.0", "@babel/preset-env@^7.5.5": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.0.tgz#a5fc42480e950ae8f5d9f8f2bbc03f52722df3a8" - integrity sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ== - dependencies: - "@babel/compat-data" "^7.9.0" - "@babel/helper-compilation-targets" "^7.8.7" - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-proposal-async-generator-functions" "^7.8.3" - "@babel/plugin-proposal-dynamic-import" "^7.8.3" - "@babel/plugin-proposal-json-strings" "^7.8.3" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-numeric-separator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-chaining" "^7.9.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.8.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.8.3" - "@babel/plugin-transform-async-to-generator" "^7.8.3" - "@babel/plugin-transform-block-scoped-functions" "^7.8.3" - "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.9.0" - "@babel/plugin-transform-computed-properties" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.8.3" - "@babel/plugin-transform-dotall-regex" "^7.8.3" - "@babel/plugin-transform-duplicate-keys" "^7.8.3" - "@babel/plugin-transform-exponentiation-operator" "^7.8.3" - "@babel/plugin-transform-for-of" "^7.9.0" - "@babel/plugin-transform-function-name" "^7.8.3" - "@babel/plugin-transform-literals" "^7.8.3" - "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.9.0" - "@babel/plugin-transform-modules-commonjs" "^7.9.0" - "@babel/plugin-transform-modules-systemjs" "^7.9.0" - "@babel/plugin-transform-modules-umd" "^7.9.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" - "@babel/plugin-transform-new-target" "^7.8.3" - "@babel/plugin-transform-object-super" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.8.7" - "@babel/plugin-transform-property-literals" "^7.8.3" - "@babel/plugin-transform-regenerator" "^7.8.7" - "@babel/plugin-transform-reserved-words" "^7.8.3" - "@babel/plugin-transform-shorthand-properties" "^7.8.3" - "@babel/plugin-transform-spread" "^7.8.3" - "@babel/plugin-transform-sticky-regex" "^7.8.3" - "@babel/plugin-transform-template-literals" "^7.8.3" - "@babel/plugin-transform-typeof-symbol" "^7.8.4" - "@babel/plugin-transform-unicode-regex" "^7.8.3" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.9.0" - browserslist "^4.9.1" - core-js-compat "^3.6.2" + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.5.tgz#bc470b53acaa48df4b8db24a570d6da1fef53c9a" + integrity sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-dynamic-import" "^7.5.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.5.5" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.5.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.5.5" + "@babel/plugin-transform-classes" "^7.5.5" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.5.0" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/plugin-transform-duplicate-keys" "^7.5.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.4" + "@babel/plugin-transform-function-name" "^7.4.4" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-member-expression-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.5.0" + "@babel/plugin-transform-modules-commonjs" "^7.5.0" + "@babel/plugin-transform-modules-systemjs" "^7.5.0" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" + "@babel/plugin-transform-new-target" "^7.4.4" + "@babel/plugin-transform-object-super" "^7.5.5" + "@babel/plugin-transform-parameters" "^7.4.4" + "@babel/plugin-transform-property-literals" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.4.5" + "@babel/plugin-transform-reserved-words" "^7.2.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.4.4" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.4.4" + "@babel/types" "^7.5.5" + browserslist "^4.6.0" + core-js-compat "^3.1.1" invariant "^2.2.2" - levenary "^1.1.1" + js-levenshtein "^1.1.3" semver "^5.5.0" "@babel/preset-flow@^7.0.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.9.0.tgz#fee847c3e090b0b2d9227c1949e4da1d1379280d" - integrity sha512-88uSmlshIrlmPkNkEcx3UpSZ6b8n0UGBq0/0ZMZCF/uxAW0XIAUuDHBhIOAh0pvweafH4RxOwi/H3rWhtqOYPA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-flow-strip-types" "^7.9.0" - -"@babel/preset-modules@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0.tgz#afd764835d9535ec63d8c7d4caf1c06457263da2" + integrity sha512-bJOHrYOPqJZCkPVbG1Lot2r5OSsB+iUOaxiHdlOeB1yPWS6evswVHwvkDLZ54WTaTRIk89ds0iHmGZSnxlPejQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" + "@babel/plugin-transform-flow-strip-types" "^7.0.0" "@babel/preset-react@^7.0.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.9.4.tgz#c6c97693ac65b6b9c0b4f25b948a8f665463014d" - integrity sha512-AxylVB3FXeOTQXNXyiuAQJSvss62FEotbX2Pzx3K/7c+MKJMdSg6Ose6QYllkdCFA8EInCJVw7M/o5QbLuA4ZQ== + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" + integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-react-display-name" "^7.8.3" - "@babel/plugin-transform-react-jsx" "^7.9.4" - "@babel/plugin-transform-react-jsx-development" "^7.9.0" - "@babel/plugin-transform-react-jsx-self" "^7.9.0" - "@babel/plugin-transform-react-jsx-source" "^7.9.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" "@babel/preset-stage-0@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/preset-stage-0/-/preset-stage-0-7.8.3.tgz#b6a0eca1a3b72e07f9caf58f998e97568028f6f5" - integrity sha512-+l6FlG1j73t4wh78W41StbcCz0/9a1/y+vxfnjtHl060kSmcgMfGzK9MEkLvrCOXfhp9RCX+d88sm6rOqxEIEQ== + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/preset-stage-0/-/preset-stage-0-7.0.0.tgz#999aaec79ee8f0a763042c68c06539c97c6e0646" + integrity sha512-FBMd0IiARPtH5aaOFUVki6evHiJQiY0pFy7fizyRF7dtwc+el3nwpzvhb9qBNzceG1OIJModG1xpE0DDFjPXwA== "@babel/runtime-corejs2@^7.0.0", "@babel/runtime-corejs2@^7.5.5": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.9.2.tgz#f11d074ff99b9b4319b5ecf0501f12202bf2bf4d" - integrity sha512-ayjSOxuK2GaSDJFCtLgHnYjuMyIpViNujWrZo8GUpN60/n7juzJKK5yOo6RFVb0zdU9ACJFK+MsZrUnj3OmXMw== + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.5.5.tgz#c3214c08ef20341af4187f1c9fbdc357fbec96b2" + integrity sha512-FYATQVR00NSNi7mUfpPDp7E8RYMXDuO8gaix7u/w3GekfUinKgX1AcTxs7SoiEmoEW9mbpjrwqWSW6zCmw5h8A== dependencies: core-js "^2.6.5" - regenerator-runtime "^0.13.4" - -"@babel/runtime-corejs3@^7.8.3": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.9.2.tgz#26fe4aa77e9f1ecef9b776559bbb8e84d34284b7" - integrity sha512-HHxmgxbIzOfFlZ+tdeRKtaxWOMUoCG5Mu3wKeUmOxjYrwb3AAHgnmtCUbPPK11/raIWLIBK250t8E2BPO0p7jA== - dependencies: - core-js-pure "^3.0.0" - regenerator-runtime "^0.13.4" + regenerator-runtime "^0.13.2" "@babel/runtime@7.0.0": version "7.0.0" @@ -1000,14 +974,23 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" - integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" + integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" + integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== dependencies: - regenerator-runtime "^0.13.4" + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" -"@babel/template@^7.4.0", "@babel/template@^7.8.3", "@babel/template@^7.8.6": +"@babel/template@^7.8.3": version "7.8.6" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== @@ -1016,34 +999,58 @@ "@babel/parser" "^7.8.6" "@babel/types" "^7.8.6" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.1.4", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" - integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.4", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" + integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/parser" "^7.5.5" + "@babel/types" "^7.5.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/traverse@^7.4.5": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.6.tgz#acfe0c64e1cd991b3e32eae813a6eb564954b5ff" + integrity sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" + "@babel/generator" "^7.8.6" "@babel/helper-function-name" "^7.8.3" "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.0" - "@babel/types" "^7.9.0" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.1.3", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" - integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== +"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.1.3", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" + integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@babel/types@^7.8.3", "@babel/types@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.6.tgz#629ecc33c2557fcde7126e58053127afdb3e6d01" + integrity sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA== dependencies: - "@babel/helper-validator-identifier" "^7.9.0" + esutils "^2.0.2" lodash "^4.17.13" to-fast-properties "^2.0.0" "@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" + integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA== dependencies: exec-sh "^0.3.2" minimist "^1.2.0" @@ -1067,9 +1074,9 @@ integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== "@emotion/is-prop-valid@^0.8.3", "@emotion/is-prop-valid@^0.8.6": - version "0.8.8" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" - integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== + version "0.8.7" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.7.tgz#803449993f436f9a6c67752251ea3fc492a1044c" + integrity sha512-OPkKzUeiid0vEKjZqnGcy2mzxjIlCffin+L2C02pdz/bVlt5zZZE2VzO0D3XOPnH0NEeF21QNKSXiZphjr4xiQ== dependencies: "@emotion/memoize" "0.7.4" @@ -1088,86 +1095,76 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== -"@iarna/cli@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@iarna/cli/-/cli-1.2.0.tgz#0f7af5e851afe895104583c4ca07377a8094d641" - integrity sha512-ukITQAqVs2n9HGmn3car/Ir7d3ta650iXhrG7pjr3EWdFmJuuOVWgYsu7ftsSe5VifEFFhjxVuX9+8F7L8hwcA== - dependencies: - signal-exit "^3.0.2" - update-notifier "^2.2.0" - yargs "^8.0.2" - -"@jest/console@^24.7.1", "@jest/console@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" - integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== +"@jest/console@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545" + integrity sha512-iNhtIy2M8bXlAOULWVTUxmnelTLFneTNEkHCgPmgd+zNwy9zVddJ6oS5rZ9iwoscNdT5mMwUd0C51v/fSlzItg== dependencies: - "@jest/source-map" "^24.9.0" + "@jest/source-map" "^24.3.0" chalk "^2.0.1" slash "^2.0.0" -"@jest/core@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" - integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== +"@jest/core@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.8.0.tgz#fbbdcd42a41d0d39cddbc9f520c8bab0c33eed5b" + integrity sha512-R9rhAJwCBQzaRnrRgAdVfnglUuATXdwTRsYqs6NMdVcAl5euG8LtWDe+fVkN27YfKVBW61IojVsXKaOmSnqd/A== dependencies: "@jest/console" "^24.7.1" - "@jest/reporters" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" + "@jest/reporters" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" ansi-escapes "^3.0.0" chalk "^2.0.1" exit "^0.1.2" graceful-fs "^4.1.15" - jest-changed-files "^24.9.0" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" + jest-changed-files "^24.8.0" + jest-config "^24.8.0" + jest-haste-map "^24.8.0" + jest-message-util "^24.8.0" jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-resolve-dependencies "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - jest-watcher "^24.9.0" + jest-resolve-dependencies "^24.8.0" + jest-runner "^24.8.0" + jest-runtime "^24.8.0" + jest-snapshot "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" + jest-watcher "^24.8.0" micromatch "^3.1.10" p-each-series "^1.0.0" + pirates "^4.0.1" realpath-native "^1.1.0" rimraf "^2.5.4" - slash "^2.0.0" strip-ansi "^5.0.0" -"@jest/environment@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" - integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== - dependencies: - "@jest/fake-timers" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - -"@jest/fake-timers@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" - integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== - dependencies: - "@jest/types" "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - -"@jest/reporters@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" - integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" +"@jest/environment@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.8.0.tgz#0342261383c776bdd652168f68065ef144af0eac" + integrity sha512-vlGt2HLg7qM+vtBrSkjDxk9K0YtRBi7HfRFaDxoRtyi+DyVChzhF20duvpdAnKVBV6W5tym8jm0U9EfXbDk1tw== + dependencies: + "@jest/fake-timers" "^24.8.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" + jest-mock "^24.8.0" + +"@jest/fake-timers@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.8.0.tgz#2e5b80a4f78f284bcb4bd5714b8e10dd36a8d3d1" + integrity sha512-2M4d5MufVXwi6VzZhJ9f5S/wU4ud2ck0kxPof1Iz3zWx6Y+V2eJrES9jEktB6O3o/oEyk+il/uNu9PvASjWXQw== + dependencies: + "@jest/types" "^24.8.0" + jest-message-util "^24.8.0" + jest-mock "^24.8.0" + +"@jest/reporters@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.8.0.tgz#075169cd029bddec54b8f2c0fc489fd0b9e05729" + integrity sha512-eZ9TyUYpyIIXfYCrw0UHUWUvE35vx5I92HGMgS93Pv7du+GHIzl+/vh8Qj9MCWFK/4TqyttVBPakWMOfZRIfxw== + dependencies: + "@jest/environment" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.2" @@ -1175,75 +1172,74 @@ istanbul-lib-instrument "^3.0.1" istanbul-lib-report "^2.0.4" istanbul-lib-source-maps "^3.0.1" - istanbul-reports "^2.2.6" - jest-haste-map "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" + istanbul-reports "^2.1.1" + jest-haste-map "^24.8.0" + jest-resolve "^24.8.0" + jest-runtime "^24.8.0" + jest-util "^24.8.0" jest-worker "^24.6.0" - node-notifier "^5.4.2" + node-notifier "^5.2.1" slash "^2.0.0" source-map "^0.6.0" string-length "^2.0.0" -"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" - integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== +"@jest/source-map@^24.3.0": + version "24.3.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.3.0.tgz#563be3aa4d224caf65ff77edc95cd1ca4da67f28" + integrity sha512-zALZt1t2ou8le/crCeeiRYzvdnTzaIlpOWaet45lNSqNJUnXbppUUFR4ZUAlzgDmKee4Q5P/tKXypI1RiHwgag== dependencies: callsites "^3.0.0" graceful-fs "^4.1.15" source-map "^0.6.0" -"@jest/test-result@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" - integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== +"@jest/test-result@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.8.0.tgz#7675d0aaf9d2484caa65e048d9b467d160f8e9d3" + integrity sha512-+YdLlxwizlfqkFDh7Mc7ONPQAhA4YylU1s529vVM1rsf67vGZH/2GGm5uO8QzPeVyaVMobCQ7FTxl38QrKRlng== dependencies: - "@jest/console" "^24.9.0" - "@jest/types" "^24.9.0" + "@jest/console" "^24.7.1" + "@jest/types" "^24.8.0" "@types/istanbul-lib-coverage" "^2.0.0" -"@jest/test-sequencer@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" - integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== +"@jest/test-sequencer@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.8.0.tgz#2f993bcf6ef5eb4e65e8233a95a3320248cf994b" + integrity sha512-OzL/2yHyPdCHXEzhoBuq37CE99nkme15eHkAzXRVqthreWZamEMA0WoetwstsQBCXABhczpK03JNbc4L01vvLg== dependencies: - "@jest/test-result" "^24.9.0" - jest-haste-map "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" + "@jest/test-result" "^24.8.0" + jest-haste-map "^24.8.0" + jest-runner "^24.8.0" + jest-runtime "^24.8.0" -"@jest/transform@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" - integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== +"@jest/transform@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.8.0.tgz#628fb99dce4f9d254c6fd9341e3eea262e06fef5" + integrity sha512-xBMfFUP7TortCs0O+Xtez2W7Zu1PLH9bvJgtraN1CDST6LBM/eTOZ9SfwS/lvV8yOfcDpFmwf9bq5cYbXvqsvA== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^24.9.0" + "@jest/types" "^24.8.0" babel-plugin-istanbul "^5.1.0" chalk "^2.0.1" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.1.15" - jest-haste-map "^24.9.0" - jest-regex-util "^24.9.0" - jest-util "^24.9.0" + jest-haste-map "^24.8.0" + jest-regex-util "^24.3.0" + jest-util "^24.8.0" micromatch "^3.1.10" - pirates "^4.0.1" realpath-native "^1.1.0" slash "^2.0.0" source-map "^0.6.1" write-file-atomic "2.4.1" -"@jest/types@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" - integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== +"@jest/types@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.8.0.tgz#f31e25948c58f0abd8c845ae26fcea1491dea7ad" + integrity sha512-g17UxVr2YfBtaMUxn9u/4+siG1ptg9IGYAYwvpwn61nBg779RXnjE/m7CxYcIzEt0AbHZZAHSEZNhkE2WxURVg== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^13.0.0" + "@types/yargs" "^12.0.9" "@mapbox/polyline@^0.2.0": version "0.2.0" @@ -1257,142 +1253,81 @@ dependencies: meow "^5.0.0" -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== +"@nodelib/fs.scandir@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.1.tgz#7fa8fed654939e1a39753d286b48b4836d00e0eb" + integrity sha512-NT/skIZjgotDSiXs0WqYhgcuBKhUMgfekCmCGtkUAiLqZdOnrdjmZr9wRl3ll64J9NF79uZ4fk16Dx0yMc/Xbg== dependencies: - "@nodelib/fs.stat" "2.0.3" + "@nodelib/fs.stat" "2.0.1" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== +"@nodelib/fs.stat@2.0.1", "@nodelib/fs.stat@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.1.tgz#814f71b1167390cfcb6a6b3d9cdeb0951a192c14" + integrity sha512-+RqhBlLn6YRBGOIoVYthsG0J9dfpO79eJyN7BYBkZJtfqrBwf2KK+rD/M/yjZR6WBmIhAgOV7S60eCgaSWtbFw== -"@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== +"@nodelib/fs.walk@^1.2.1": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.2.tgz#6a6450c5e17012abd81450eb74949a4d970d2807" + integrity sha512-J/DR3+W12uCzAJkw7niXDcqcKBg6+5G5Q/ZpThpGNzAUz70eOR6RV4XnnSN01qHZiVl0eavoxJsBypQoKsV2QQ== dependencies: - "@nodelib/fs.scandir" "2.1.3" + "@nodelib/fs.scandir" "2.1.1" fastq "^1.6.0" -"@octokit/auth-token@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.0.tgz#b64178975218b99e4dfe948253f0673cbbb59d9f" - integrity sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg== - dependencies: - "@octokit/types" "^2.0.0" - -"@octokit/endpoint@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.0.tgz#4c7acd79ab72df78732a7d63b09be53ec5a2230b" - integrity sha512-3nx+MEYoZeD0uJ+7F/gvELLvQJzLXhep2Az0bBSXagbApDvDW0LWwpnAIY/hb0Jwe17A0fJdz0O12dPh05cj7A== +"@octokit/endpoint@^5.1.0": + version "5.3.2" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.3.2.tgz#2deda2d869cac9ba7f370287d55667be2a808d4b" + integrity sha512-gRjteEM9I6f4D8vtwU2iGUTn9RX/AJ0SVXiqBUEuYEWVGGAVjSXdT0oNmghH5lvQNWs8mwt6ZaultuG6yXivNw== dependencies: - "@octokit/types" "^2.0.0" + deepmerge "4.0.0" is-plain-object "^3.0.0" - universal-user-agent "^5.0.0" - -"@octokit/plugin-paginate-rest@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz#004170acf8c2be535aba26727867d692f7b488fc" - integrity sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q== - dependencies: - "@octokit/types" "^2.0.1" - -"@octokit/plugin-request-log@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz#eef87a431300f6148c39a7f75f8cfeb218b2547e" - integrity sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw== - -"@octokit/plugin-rest-endpoint-methods@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz#3288ecf5481f68c494dd0602fc15407a59faf61e" - integrity sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ== - dependencies: - "@octokit/types" "^2.0.1" - deprecation "^2.3.1" - -"@octokit/request-error@^1.0.2": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801" - integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA== - dependencies: - "@octokit/types" "^2.0.0" - deprecation "^2.0.0" - once "^1.4.0" + universal-user-agent "^3.0.0" + url-template "^2.0.8" -"@octokit/request-error@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.0.tgz#94ca7293373654400fbb2995f377f9473e00834b" - integrity sha512-rtYicB4Absc60rUv74Rjpzek84UbVHGHJRu4fNVlZ1mCcyUPPuzFfG9Rn6sjHrd95DEsmjSt1Axlc699ZlbDkw== +"@octokit/request-error@^1.0.1", "@octokit/request-error@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.0.4.tgz#15e1dc22123ba4a9a4391914d80ec1e5303a23be" + integrity sha512-L4JaJDXn8SGT+5G0uX79rZLv0MNJmfGa4vb4vy1NnpjSnWDLJRy6m90udGwvMmavwsStgbv2QNkPzzTCMmL+ig== dependencies: - "@octokit/types" "^2.0.0" deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.2.0": - version "5.3.4" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.3.4.tgz#fbc950bf785d59da3b0399fc6d042c8cf52e2905" - integrity sha512-qyj8G8BxQyXjt9Xu6NvfvOr1E0l35lsXtwm3SopsYg/JWXjlsnwqLc8rsD2OLguEL/JjLfBvrXr4az7z8Lch2A== +"@octokit/request@^5.0.0": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.0.2.tgz#59a920451f24811c016ddc507adcc41aafb2dca5" + integrity sha512-z1BQr43g4kOL4ZrIVBMHwi68Yg9VbkRUyuAgqCp1rU3vbYa69+2gIld/+gHclw15bJWQnhqqyEb7h5a5EqgZ0A== dependencies: - "@octokit/endpoint" "^6.0.0" - "@octokit/request-error" "^2.0.0" - "@octokit/types" "^2.0.0" + "@octokit/endpoint" "^5.1.0" + "@octokit/request-error" "^1.0.1" deprecation "^2.0.0" is-plain-object "^3.0.0" node-fetch "^2.3.0" once "^1.4.0" - universal-user-agent "^5.0.0" + universal-user-agent "^3.0.0" "@octokit/rest@^16.27.0": - version "16.43.1" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.43.1.tgz#3b11e7d1b1ac2bbeeb23b08a17df0b20947eda6b" - integrity sha512-gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw== - dependencies: - "@octokit/auth-token" "^2.4.0" - "@octokit/plugin-paginate-rest" "^1.1.1" - "@octokit/plugin-request-log" "^1.0.0" - "@octokit/plugin-rest-endpoint-methods" "2.4.0" - "@octokit/request" "^5.2.0" + version "16.28.7" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.28.7.tgz#a2c2db5b318da84144beba82d19c1a9dbdb1a1fa" + integrity sha512-cznFSLEhh22XD3XeqJw51OLSfyL2fcFKUO+v2Ep9MTAFfFLS1cK1Zwd1yEgQJmJoDnj4/vv3+fGGZweG+xsbIA== + dependencies: + "@octokit/request" "^5.0.0" "@octokit/request-error" "^1.0.2" atob-lite "^2.0.0" before-after-hook "^2.0.0" btoa-lite "^1.0.0" - deprecation "^2.0.0" - lodash.get "^4.4.2" - lodash.set "^4.3.2" - lodash.uniq "^4.5.0" - octokit-pagination-methods "^1.1.0" - once "^1.4.0" - universal-user-agent "^4.0.0" - -"@octokit/types@^2.0.0", "@octokit/types@^2.0.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.5.1.tgz#22563b3bb50034bea3176eac1860340c5e812e2a" - integrity sha512-q4Wr7RexkPRrkQpXzUYF5Fj/14Mr65RyOHj6B9d/sQACpqGcStkHZj4qMEtlMY5SnD/69jlL9ItGPbDM0dR/dA== - dependencies: - "@types/node" ">= 8" - -"@opentripplanner/core-utils@^0.0.14": - version "0.0.14" - resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.14.tgz#9e58e78227759ab5c13e1dad22467c474bd102b7" - integrity sha512-JMtOermSYrpPN649DEexd/EKdMPisBrooHiUAeCSdapXgxN7y1h+fUZj+OglLgUoo48wPRv7ru/n5doqVrGSaQ== - dependencies: - "@mapbox/polyline" "^1.1.0" - "@turf/along" "^6.0.1" - bowser "^2.7.0" - lodash.isequal "^4.5.0" - moment "^2.24.0" - moment-timezone "^0.5.27" - prop-types "^15.7.2" - qs "^6.9.1" + deprecation "^2.0.0" + lodash.get "^4.4.2" + lodash.set "^4.3.2" + lodash.uniq "^4.5.0" + octokit-pagination-methods "^1.1.0" + once "^1.4.0" + universal-user-agent "^3.0.0" + url-template "^2.0.8" -"@opentripplanner/core-utils@^0.0.16": - version "0.0.16" - resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.16.tgz#72b85f9e36fb5dc00d442d9c2e6d883efdc3fa8d" - integrity sha512-ekPxWC0woOJDbfj0Lxk+NX2fLpIGpbDRQbEsO/rF+UCCvg4sCcmobjHaMwtW6rAXtVzNMmFDYXctPW/49Qdq8A== +"@opentripplanner/core-utils@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.18.tgz#5109a60e262802dca3b1e7a34091c9a394f5b290" + integrity sha512-6ej3MVTd/Kz4OYnIDJBm8fT4OHkchWq+sU9G+Z6fHJhGE5nh/ljCcps/8Vew1HXK6nhaeDMm099nkA/8YKRnug== dependencies: "@mapbox/polyline" "^1.1.0" "@turf/along" "^6.0.1" @@ -1403,65 +1338,75 @@ prop-types "^15.7.2" qs "^6.9.1" -"@opentripplanner/from-to-location-picker@^0.0.14": - version "0.0.14" - resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.14.tgz#efe2a3452d58d769bc0d5904753df8516279f6c7" - integrity sha512-w2jf+wErtH34CdxQkAyHf446JeCsVxOYej6JRK15jc3+LCWi4bct2A0tf1wp9uNdMvAnL06AZL6hwsED6WqrVA== +"@opentripplanner/from-to-location-picker@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.18.tgz#21d1164d09724becea640a95f97aadb479df8f24" + integrity sha512-y5GJxvf1La2Wk9ldEtKO5zzVnECi89HkrWdT5Tb2ZYuJrUVnPZZ28CmLEtQGSh+Qtj/kxVBMII/UOkoja3SkuQ== dependencies: - "@opentripplanner/core-utils" "^0.0.14" - "@opentripplanner/location-icon" "^0.0.13" + "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/location-icon" "^0.0.18" prop-types "^15.7.2" -"@opentripplanner/geocoder@^0.0.16": - version "0.0.16" - resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.16.tgz#55bdff8be36b2b68b83d62008c0fd45e03dd2a11" - integrity sha512-wpIyKThP4FhNiXDLHGHyux+g7+BAWN43ZZzdOgSBhSHoKRYXee+Ga7ht3zsNtJroZhkDQkEISXiNejK16SCWvQ== +"@opentripplanner/geocoder@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.18.tgz#fe1ecddd025b08e6b2bf51a9ddf8c65e10571b90" + integrity sha512-NvqZDJc6c+fKRXys5jkaFD5F2gtXag4gKov2L6z0d3+Sn8BTQvDTuE961J5Bb/xn8xE4IvmcIs5tQmE/B+tvBw== dependencies: "@conveyal/geocoder-arcgis-geojson" "^0.0.2" "@conveyal/lonlat" "^1.4.0" isomorphic-mapzen-search "^1.4.1" lodash.memoize "^4.1.2" -"@opentripplanner/humanize-distance@^0.0.16": - version "0.0.16" - resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.16.tgz#e8197671b45719ce5c728d34c60e80b6d816d287" - integrity sha512-qec9FZGhITC1u+YIBn0+6drxvbJr4N7FX0+VdpXl4+op6xVPlH+LPRittQhdOXdwEjUwHA9qvmksIYE70mg9lw== +"@opentripplanner/humanize-distance@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.18.tgz#eeb49b826754e9e04ca84813781fa47baeaebc7f" + integrity sha512-emn2TTVBk9DUnbLPh9OIP/ZlKdbDpJzVWq+tO5HIqCIL1TW0XFEQDbQLv3b3rGS2R2LHbhKlYYJKmP36ZFS20w== + +"@opentripplanner/icons@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.18.tgz#4486286988801d374a31975aec80ac326ff17061" + integrity sha512-g0+8r9VL/6TPXlFak4mg8xOzAGzID5SGMurLayXvCuroFIbqwUD3/BOhGUD6+z25MvOv3Tov7V9wtN9l822eTg== + dependencies: + "@opentripplanner/core-utils" "^0.0.18" + prop-types "^15.7.2" -"@opentripplanner/location-field@^0.0.16": - version "0.0.16" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.16.tgz#1d23792965e9bfcd1044521b9bef261fbba090a7" - integrity sha512-nnEspCddomJGJgWuGh8S2npUogKKa6oPCopCl0sdgU7UyI/xUpgwHwTHaxJyJNWQmd4RT+GgKv9jlzKRVtxFXA== +"@opentripplanner/location-field@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.18.tgz#c01d5a876f7cd76ee1855ed4ee186abd3ff85ae1" + integrity sha512-RAJkkgCWTuZRcjOguzFWb+z4YDLv8Lrp6V2QZJhNV289SPjokuGOuDrARl7+FQ8Di0ZuH95Ca/PipJEdeF2wAQ== dependencies: - "@opentripplanner/core-utils" "^0.0.16" - "@opentripplanner/geocoder" "^0.0.16" - "@opentripplanner/humanize-distance" "^0.0.16" - "@opentripplanner/location-icon" "^0.0.16" + "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/geocoder" "^0.0.18" + "@opentripplanner/humanize-distance" "^0.0.18" + "@opentripplanner/location-icon" "^0.0.18" prop-types "^15.7.2" styled-icons "^9.1.0" throttle-debounce "^2.1.0" -"@opentripplanner/location-icon@^0.0.13": - version "0.0.13" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.13.tgz#18e53e2dcd916814675340c9a69d2bc7797bb177" - integrity sha512-KeGm9xQLA2qdQHuPod706OUuoUk25cDjJrFA+waWaN9qQqcqSxOBavcLg5FH9yRQR8uuSTgi1yooIlccOUYnxQ== +"@opentripplanner/location-icon@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.18.tgz#8f207e1d7032ae04081cffa981ee3117c3647478" + integrity sha512-4Pv0RZZeHvDpc50XMOMUOS4E7dlYBNne/OvnOxHcbEmHSOUHGKNSiIq2EPO7Eyrae+SsKKhksv++okIiw6KOmw== dependencies: styled-icons "^9.1.0" -"@opentripplanner/location-icon@^0.0.16": - version "0.0.16" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.16.tgz#16824fb8dd522f59be39b28a2a31617b27532bcd" - integrity sha512-QcbmO7aOcbECpKfZc2VNGxYq/HY7JZP+7FW6W1PBG98ThIbdg4cSwWWf7kf8fl3LpJAhqMdV14AE1O/P/Sq8rw== +"@opentripplanner/trip-form@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-form/-/trip-form-0.0.18.tgz#8322e2b3c554c2b020d46bbc61d3cd83be5cd60b" + integrity sha512-Yzhbwit1kWMq8FMRTUomX/OXPpmcnvUvEHNl/oA9w2gBEVpY72AcGYnJ9GPcaRGb2+hw9F+j/8PWsB/8ETA8/Q== dependencies: - styled-icons "^9.1.0" + "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/icons" "^0.0.18" + moment "^2.17.1" "@semantic-release/commit-analyzer@^6.1.0": - version "6.3.3" - resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.3.3.tgz#885f7e46e2f0aef23a23be0904dbf18d6ece45ca" - integrity sha512-Pyv1ZL2u5AIOY4YbxFCAB5J1PEh5yON8ylbfiPiriDGGW6Uu1U3Y8lysMtWu+FUD5x7tSnyIzhqx0+fxPxqbgw== + version "6.2.0" + resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.2.0.tgz#5cd25ce67ba9ba5b46e47457505e63629e186695" + integrity sha512-oUtPydYcbtJsEY6WCPi4wynTgRecK5zCkKaGmHi+9Xl7d6jGf7LomnJCg++6dNF1tyavrbGMSdXTCPH6Dx9LbA== dependencies: conventional-changelog-angular "^5.0.0" conventional-commits-filter "^2.0.0" - conventional-commits-parser "^3.0.7" + conventional-commits-parser "^3.0.0" debug "^4.0.0" import-from "^3.0.0" lodash "^4.17.4" @@ -1472,9 +1417,9 @@ integrity sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg== "@semantic-release/github@^5.1.0": - version "5.5.8" - resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-5.5.8.tgz#2c16d212ca057ba0b0553b6eb62ff0949cfbca6a" - integrity sha512-YxbBXbCThs/Xk3E4QU01AMIUM8eb0UTvjHJtclTDR3/DEW7kUpmXQqBMnSh3qCTuk4scRFIoaF0fGU/0xByZug== + version "5.4.2" + resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-5.4.2.tgz#1dbde876228c03ff9a000893a18aff5c6ab2cd61" + integrity sha512-8gkOa5tED/+sjAPwZRYsLaGr6VuAGLZinSvLsuF9/l4qLeYV8gvj7fhjFJepGu6y31t7PR2J9SWzmsqsBAyyKQ== dependencies: "@octokit/rest" "^16.27.0" "@semantic-release/error" "^2.2.0" @@ -1484,37 +1429,37 @@ dir-glob "^3.0.0" fs-extra "^8.0.0" globby "^10.0.0" - http-proxy-agent "^3.0.0" - https-proxy-agent "^4.0.0" - issue-parser "^5.0.0" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.1" + issue-parser "^4.0.0" lodash "^4.17.4" mime "^2.4.3" p-filter "^2.0.0" p-retry "^4.0.0" + parse-github-url "^1.0.1" url-join "^4.0.0" "@semantic-release/npm@^5.0.5": - version "5.3.5" - resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-5.3.5.tgz#4a83952056d32e1401e1078c3910a159afc0cba8" - integrity sha512-AOREQ6rUT8OAiqXvWCp0kMNjcdnLLq1JdP0voZL4l5zf6Tgs/65YA7ctP+9shthW01Ps85Nu0pILW3p9GkaYuw== + version "5.1.13" + resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-5.1.13.tgz#7b06d62b4d9c8336ae5a5c85eede26fb89f19e3b" + integrity sha512-pONvpoEtGH1nd6Wj3SryACNJ/YXXsvSSekE9Pdk6mnaRv7lGhXdaeJJr6Lr4L8WK98oZv4aJOr68vTac2Oc+dA== dependencies: "@semantic-release/error" "^2.2.0" aggregate-error "^3.0.0" - execa "^3.2.0" + execa "^1.0.0" fs-extra "^8.0.0" - lodash "^4.17.15" + lodash "^4.17.4" nerf-dart "^1.0.0" normalize-url "^4.0.0" - npm "^6.10.3" + npm "^6.8.0" rc "^1.2.8" read-pkg "^5.0.0" registry-auth-token "^4.0.0" - tempy "^0.3.0" "@semantic-release/release-notes-generator@^7.1.2": - version "7.3.5" - resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-7.3.5.tgz#ed0941d5b594f18fa1d2667493c03e811f97c0ff" - integrity sha512-LGjgPBGjjmjap/76O0Md3wc04Y7IlLnzZceLsAkcYRwGQdRPTTFUJKqDQTuieWTs7zfHzQoZqsqPfFxEN+g2+Q== + version "7.2.1" + resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-7.2.1.tgz#2c0c340e7be2a3d27c28cb869b6737a70f2862fe" + integrity sha512-TdlYgYH6amhE80i9L9HPcTwYzk4Rma7qM1g7XJEEfip7dNXWgmrBeibN4DJmTg/qrUFDd4GD86lFDcYXNZDNow== dependencies: conventional-changelog-angular "^5.0.0" conventional-changelog-writer "^4.0.0" @@ -1525,7 +1470,7 @@ import-from "^3.0.0" into-stream "^5.0.0" lodash "^4.17.4" - read-pkg-up "^7.0.0" + read-pkg-up "^6.0.0" "@styled-icons/boxicons-logos@^9.4.1": version "9.4.1" @@ -1759,9 +1704,9 @@ "@turf/helpers" "6.x" "@types/babel__core@^7.1.0": - version "7.1.6" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.6.tgz#16ff42a5ae203c9af1c6e190ed1f30f83207b610" - integrity sha512-tTnhWszAqvXnhW7m5jQU9PomXSiKXk2sFxpahXvI20SZKu9ylPi8WtIxueZ6ehDWikPT0jeFujMj3X4ZHuf3Tg== + version "7.1.2" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f" + integrity sha512-cfCCrFmiGY/yq0NuKNxIQvZFy9kY/1immpSpTngOnyIbD4+eJOG5mxphhHDv3CHL9GltO4GcKr54kGBg3RNdbg== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1770,9 +1715,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" - integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc" + integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ== dependencies: "@babel/types" "^7.0.0" @@ -1785,17 +1730,12 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.9.tgz#be82fab304b141c3eee81a4ce3b034d0eba1590a" - integrity sha512-jEFQ8L1tuvPjOI8lnpaf73oCJe+aoxL6ygqSy6c8LcW98zaC+4mzWuQIRCEvKeCOu+lbqdXcg4Uqmm1S8AP1tw== + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.7.tgz#2496e9ff56196cc1429c72034e07eab6121b6f3f" + integrity sha512-CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw== dependencies: "@babel/types" "^7.3.0" -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - "@types/eslint-visitor-keys@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" @@ -1821,9 +1761,9 @@ integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== "@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c" + integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg== dependencies: "@types/istanbul-lib-coverage" "*" @@ -1836,30 +1776,25 @@ "@types/istanbul-lib-report" "*" "@types/json-schema@^7.0.3": - version "7.0.4" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" - integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== + version "7.0.3" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636" + integrity sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A== "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/node@*", "@types/node@>= 8": - version "12.12.31" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.31.tgz#d6b4f9645fee17f11319b508fb1001797425da51" - integrity sha512-T+wnJno8uh27G9c+1T+a1/WYCHzLeDqtsGJkoEdSp2X8RTh3oOCZQcUnjAx90CS8cmmADX51O0FI/tu9s0yssg== +"@types/node@*": + version "12.6.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.8.tgz#e469b4bf9d1c9832aee4907ba8a051494357c12c" + integrity sha512-aX+gFgA5GHcDi89KG5keey2zf0WfZk/HAQotEamsK2kbey+8yGKcson0hbK8E+v0NArlCJQCqMP161YhV6ZXLg== "@types/normalize-package-data@^2.4.0": version "2.4.0" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - "@types/q@^1.5.1": version "1.5.2" resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" @@ -1880,17 +1815,10 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== -"@types/yargs-parser@*": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" - integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== - -"@types/yargs@^13.0.0": - version "13.0.8" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.8.tgz#a38c22def2f1c2068f8971acb3ea734eb3c64a99" - integrity sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA== - dependencies: - "@types/yargs-parser" "*" +"@types/yargs@^12.0.2", "@types/yargs@^12.0.9": + version "12.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916" + integrity sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw== "@typescript-eslint/experimental-utils@1.13.0", "@typescript-eslint/experimental-utils@^1.13.0": version "1.13.0" @@ -1928,9 +1856,9 @@ JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@^1.3.4, JSONStream@^1.3.5: through ">=2.2.7 <3" abab@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" - integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== + version "2.0.0" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" + integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== abbrev@1, abbrev@~1.1.1: version "1.1.1" @@ -1949,10 +1877,15 @@ acorn-dynamic-import@^2.0.0: dependencies: acorn "^4.0.3" +acorn-dynamic-import@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" + integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== + acorn-globals@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" - integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + version "4.3.2" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.2.tgz#4e2c2313a597fd589720395f6354b41cd5ec8006" + integrity sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ== dependencies: acorn "^6.0.1" acorn-walk "^6.0.1" @@ -1965,29 +1898,25 @@ acorn-jsx@^3.0.0: acorn "^3.0.4" acorn-jsx@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" - integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + version "5.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" + integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" - integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + version "1.7.0" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.7.0.tgz#aac6a559d27af6176b076ab6fb13c5974c213e3b" + integrity sha512-XhahLSsCB6X6CJbe+uNu3Mn9sJBNFxtBN9NLgAOQovfS6Kh0lDUtmlclhjn9CvEK7A7YyRU13PXlNcpSiLI9Yw== dependencies: - acorn "^7.0.0" - acorn-walk "^7.0.0" - xtend "^4.0.2" + acorn "^6.1.1" + acorn-dynamic-import "^4.0.0" + acorn-walk "^6.1.1" + xtend "^4.0.1" -acorn-walk@^6.0.1: +acorn-walk@^6.0.1, acorn-walk@^6.1.1: version "6.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== -acorn-walk@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e" - integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ== - acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" @@ -1999,19 +1928,14 @@ acorn@^4.0.3: integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= acorn@^5.0.0, acorn@^5.2.1, acorn@^5.5.0, acorn@^5.5.3: - version "5.7.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + version "5.7.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== -acorn@^6.0.1, acorn@^6.0.7: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== - -acorn@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" - integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== +acorn@^6.0.1, acorn@^6.0.7, acorn@^6.1.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.2.1.tgz#3ed8422d6dec09e6121cc7a843ca86a330a86b51" + integrity sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q== agent-base@4, agent-base@^4.3.0: version "4.3.0" @@ -2020,11 +1944,6 @@ agent-base@4, agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" -agent-base@5: - version "5.1.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" - integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== - agent-base@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" @@ -2040,17 +1959,17 @@ agentkeepalive@^3.4.1: humanize-ms "^1.2.1" aggregate-error@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" - integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== + version "3.0.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.0.tgz#5b5a3c95e9095f311c9ab16c19fb4f3527cd3f79" + integrity sha512-yKD9kEoJIR+2IFqhMwayIBgheLYbB3PS2OBhWae1L/ODTd/JF/30cW0bc9TqzRL3k4U41Dieu3BF4I29p8xesA== dependencies: clean-stack "^2.0.0" - indent-string "^4.0.0" + indent-string "^3.2.0" -airbnb-prop-types@^2.1.0, airbnb-prop-types@^2.15.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.15.0.tgz#5287820043af1eb469f5b0af0d6f70da6c52aaef" - integrity sha512-jUh2/hfKsRjNFC4XONQrxo/n/3GG4Tn6Hl0WlFQN5PY9OMC9loSCoAYKnZsWaP8wEfd5xcrPloK0Zg6iS1xwVA== +airbnb-prop-types@^2.1.0, airbnb-prop-types@^2.13.2: + version "2.14.0" + resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.14.0.tgz#3d45cb1459f4ce78fdf1240563d1aa2315391168" + integrity sha512-Yb09vUkr3KP9r9NqfRuYtDYZG76wt8mhTUi2Vfzsghk+qkg01/gOc9NU8n63ZcMCLzpAdMEXyKjCHlxV62yN1A== dependencies: array.prototype.find "^2.1.0" function.prototype.name "^1.1.1" @@ -2061,7 +1980,7 @@ airbnb-prop-types@^2.1.0, airbnb-prop-types@^2.15.0: object.entries "^1.1.0" prop-types "^15.7.2" prop-types-exact "^1.2.0" - react-is "^16.9.0" + react-is "^16.8.6" ajv-keywords@^1.1.1: version "1.5.1" @@ -2077,11 +1996,11 @@ ajv@^4.7.0: json-stable-stringify "^1.0.1" ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== dependencies: - fast-deep-equal "^3.1.1" + fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" @@ -2137,11 +2056,6 @@ ansi-regex@^4.0.0, ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - ansi-styles@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.0.1.tgz#b033f57f93e2d28adeb8bc11138fa13da0fd20a3" @@ -2164,14 +2078,6 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - ansicolors@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" @@ -2288,6 +2194,11 @@ array-filter@^1.0.0: resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= + array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" @@ -2298,20 +2209,34 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= -array-includes@^3.0.2, array-includes@^3.0.3, array-includes@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" - integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== +array-includes@^3.0.2, array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0" - is-string "^1.0.5" + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= + +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +array-uniq@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-2.1.0.tgz#46603d5e28e79bfd02b046fcc1d77c6820bd8e98" + integrity sha512-bdHxtev7FN6+MXI1YFW0Q8mQ8dTJc2S8AMfju+ZR77pbg2yAdVyDlwkaUI7Har0LyOMRFPHrJ9lYdyjZZswdlQ== + array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" @@ -2323,20 +2248,21 @@ array-unique@^0.3.2: integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= array.prototype.find@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c" - integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.0.tgz#630f2eaf70a39e608ac3573e45cf8ccd0ede9ad7" + integrity sha512-Wn41+K1yuO5p7wRZDl7890c3xvv5UBrfVXTVIe28rSQb6LS0fZMDrQB6PAcxQFRFy6vJTLDc3A2+3CjQdzVKRg== dependencies: define-properties "^1.1.3" - es-abstract "^1.17.4" + es-abstract "^1.13.0" -array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== +array.prototype.flat@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz#812db8f02cad24d3fab65dd67eabe3b8903494a4" + integrity sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw== dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + define-properties "^1.1.2" + es-abstract "^1.10.0" + function-bind "^1.1.1" arrify@^1.0.1: version "1.0.1" @@ -2408,9 +2334,9 @@ async-each@^1.0.0, async-each@^1.0.1: integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== async@^2.1.2: version "2.6.3" @@ -2429,7 +2355,7 @@ atob-lite@^2.0.0: resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= -atob@^2.1.2: +atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== @@ -2457,26 +2383,26 @@ autoprefixer@^6.3.1: postcss-value-parser "^3.2.3" autoprefixer@^9.6.1: - version "9.7.5" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.5.tgz#8df10b9ff9b5814a8d411a5cfbab9c793c392376" - integrity sha512-URo6Zvt7VYifomeAfJlMFnYDhow1rk2bufwkbamPEAtQFcL11moLk4PnR7n9vlu7M+BkXAZkHFA0mIcY7tjQFg== + version "9.6.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.1.tgz#51967a02d2d2300bb01866c1611ec8348d355a47" + integrity sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw== dependencies: - browserslist "^4.11.0" - caniuse-lite "^1.0.30001036" + browserslist "^4.6.3" + caniuse-lite "^1.0.30000980" chalk "^2.4.2" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^7.0.27" - postcss-value-parser "^4.0.3" + postcss "^7.0.17" + postcss-value-parser "^4.0.0" aws-sdk@^2.414.0: - version "2.647.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.647.0.tgz#d1edc65f0018ef8252d142e620eef20fe699e1ef" - integrity sha512-yOORXYUpy2x7yantXF4rdobRPMsCUIc75Vmp9d1x397iWkQkEU9F7YEBR+QnoBoWs1DQZUV1DcSR5JJ4z43I2A== + version "2.502.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.502.0.tgz#b3192f82389db982605462c8394cc3fa8c475b3e" + integrity sha512-VHFdbnJLuzON/35qE4x33PwzWFxAR/0A1wCIvc3sfOVisiGFuvBhQKC24uBlvFMrdPDnrL+8wKCHwfICgCqZtw== dependencies: buffer "4.9.1" events "1.1.1" - ieee754 "1.1.13" + ieee754 "1.1.8" jmespath "0.15.0" querystring "0.2.0" sax "1.2.1" @@ -2490,14 +2416,16 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" - integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== + version "1.9.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.0.tgz#24390e6ad61386b0a747265754d2a17219de862c" + integrity sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A== axobject-query@^2.0.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.1.2.tgz#2bdffc0371e643e5f03ba99065d5179b9ca79799" - integrity sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" + integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww== + dependencies: + ast-types-flow "0.0.7" babel-cli@^6.4.5: version "6.26.0" @@ -2556,16 +2484,16 @@ babel-core@^6.26.0, babel-core@^6.4.5: source-map "^0.5.7" babel-eslint@^10.0.1: - version "10.1.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" - integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== + version "10.0.2" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.2.tgz#182d5ac204579ff0881684b040560fdcc1558456" + integrity sha512-UdsurWPtgiPgpJ06ryUnuaSXC2s0WoSZnQmEpbAH65XZSdwowgN5MvyP7e88nW07FYXv72erVtpBkxyDVKhH1Q== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/parser" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + eslint-scope "3.7.1" eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" babel-generator@^6.26.0: version "6.26.1" @@ -2722,16 +2650,16 @@ babel-helpers@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^24.1.0, babel-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" - integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== +babel-jest@^24.1.0, babel-jest@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.8.0.tgz#5c15ff2b28e20b0f45df43fe6b7f2aae93dba589" + integrity sha512-+5/kaZt4I9efoXzPlZASyK/lN9qdRKmmUav9smVc0ruPQD7IsfucQ87gpOE8mn2jbDuS6M/YOW6n3v9ZoIfgnw== dependencies: - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" "@types/babel__core" "^7.1.0" babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.9.0" + babel-preset-jest "^24.6.0" chalk "^2.4.2" slash "^2.0.0" @@ -2783,10 +2711,10 @@ babel-plugin-istanbul@^5.1.0: istanbul-lib-instrument "^3.3.0" test-exclude "^5.2.3" -babel-plugin-jest-hoist@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" - integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== +babel-plugin-jest-hoist@^24.6.0: + version "24.6.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.6.0.tgz#f7f7f7ad150ee96d7a5e8e2c5da8319579e78019" + integrity sha512-3pKNH6hMt9SbOv0F3WVmy5CWQ4uogS3k0GY5XLyQHJ9EGpAT9XWkFd2ZiXXtkwFHdAHa5j7w7kfxSP5lAIwu7w== dependencies: "@types/babel__traverse" "^7.0.6" @@ -2802,9 +2730,9 @@ babel-plugin-lodash@^3.3.4: require-package-name "^2.0.1" babel-plugin-react-require@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/babel-plugin-react-require/-/babel-plugin-react-require-3.1.3.tgz#ba3d7305b044a90c35c32c5a9ab943fd68e1638d" - integrity sha512-kDXhW2iPTL81x4Ye2aUMdEXQ56JP0sBJmRQRXJPH5FsNB7fOc/YCsHTqHv8IovPyw9Rk07gdd7MVUz8tUmRBCA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-react-require/-/babel-plugin-react-require-3.1.1.tgz#5c3d2564fa16b1e45212ed52519db147b1596106" + integrity sha512-XFz+B0dWx41fnGnugzCWn5rOgrDHb150N5gFhUfO3BgYDCT25o4sofRtd9uUfqUHoRu+t4/r5Cr2RMPIKuCt2g== "babel-plugin-styled-components@>= 1": version "1.10.7" @@ -3236,13 +3164,13 @@ babel-preset-flow@^6.23.0: dependencies: babel-plugin-transform-flow-strip-types "^6.22.0" -babel-preset-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" - integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== +babel-preset-jest@^24.6.0: + version "24.6.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz#66f06136eefce87797539c0d63f1769cc3915984" + integrity sha512-pdZqLEdmy1ZK5kyRUfvBb2IfTPb2BUvIJczlPspS8fWmBQslNNDBqVfh7BW5leOVJMDZKzjD8XEyABTk6gQ5yw== dependencies: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.9.0" + babel-plugin-jest-hoist "^24.6.0" babel-preset-react@^6.3.13: version "6.24.1" @@ -3345,9 +3273,9 @@ babylon@^6.18.0: integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== bail@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" - integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.4.tgz#7181b66d508aa3055d3f6c13f0a0c720641dde9b" + integrity sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww== balanced-match@^0.4.2: version "0.4.2" @@ -3360,9 +3288,9 @@ balanced-match@^1.0.0: integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + version "1.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== base@^0.11.1: version "0.11.2" @@ -3399,10 +3327,10 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -bin-links@^1.1.2, bin-links@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.8.tgz#bd39aadab5dc4bdac222a07df5baf1af745b2228" - integrity sha512-KgmVfx+QqggqP9dA3iIc5pA4T1qEEEL+hOhOhNPaUm77OTrJoOXE/C05SJLNJe6m/2wUK7F1tDSou7n5TfCDzQ== +bin-links@^1.1.2, bin-links@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.6.tgz#30d33e810829305e5e61b90cfcb9a3a4f65eb516" + integrity sha512-b5rV3uVyrlrJWLI3mawUUf5t2f9mCEQm/TqT5zNj6DPYhYDZaNp0AYaYd/CVASkSEklayNDLliZHVdo2J3niPw== dependencies: bluebird "^3.5.3" cmd-shim "^3.0.0" @@ -3416,13 +3344,6 @@ binary-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -3468,9 +3389,9 @@ bootstrap@^3.3.7: integrity sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA== bottleneck@^2.18.1: - version "2.19.5" - resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" - integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw== + version "2.19.4" + resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.4.tgz#63c505687a0ddaf89a6f515225c75e05833bb079" + integrity sha512-2poBdvpAGG+dkMVKZqtDhyuMN6JviD81h89W4bfmt3UO7O60F+qf/84V0alNqL8PM1RByl4SZ1fVMu/ZvxkmcA== bowser@^2.7.0: version "2.9.0" @@ -3547,10 +3468,10 @@ browser-pack@^6.0.1: through2 "^2.0.0" umd "^3.0.0" -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== +browser-process-hrtime@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== browser-resolve@^1.11.0, browser-resolve@^1.11.3, browser-resolve@^1.7.0: version "1.11.3" @@ -3630,9 +3551,9 @@ browserify-zlib@^0.2.0, browserify-zlib@~0.2.0: pako "~1.0.5" browserify@^16.1.0, browserify@^16.2.3: - version "16.5.0" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.5.0.tgz#a1c2bc0431bec11fd29151941582e3f645ede881" - integrity sha512-6bfI3cl76YLAnCZ75AGu/XPOsqUhRyc0F/olGIJeCxtfxF2HvPKEcmjU9M8oAPxl4uBY1U7Nry33Q6koV3f2iw== + version "16.3.0" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.3.0.tgz#4d414466e0b07492fff493a009ea883a9f2db230" + integrity sha512-BWaaD7alyGZVEBBwSTYx4iJF5DswIGzK17o8ai9w4iKRbYpk3EOiprRHMRRA8DCZFmFeOdx7A385w2XdFvxWmg== dependencies: JSONStream "^1.0.3" assert "^1.4.0" @@ -3671,7 +3592,7 @@ browserify@^16.1.0, browserify@^16.2.3: shasum "^1.0.0" shell-quote "^1.6.1" stream-browserify "^2.0.0" - stream-http "^3.0.0" + stream-http "^2.0.0" string_decoder "^1.1.1" subarg "^1.0.0" syntax-error "^1.1.1" @@ -3691,20 +3612,19 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@^4.0.0, browserslist@^4.11.0, browserslist@^4.6.4, browserslist@^4.8.3, browserslist@^4.9.1: - version "4.11.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.0.tgz#aef4357b10a8abda00f97aac7cd587b2082ba1ad" - integrity sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A== +browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.2, browserslist@^4.6.3, browserslist@^4.6.4: + version "4.6.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453" + integrity sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA== dependencies: - caniuse-lite "^1.0.30001035" - electron-to-chromium "^1.3.380" - node-releases "^1.1.52" - pkg-up "^3.1.0" + caniuse-lite "^1.0.30000984" + electron-to-chromium "^1.3.191" + node-releases "^1.1.25" -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== +bser@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.0.tgz#65fc784bf7f87c009b973c12db6546902fa9c7b5" + integrity sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg== dependencies: node-int64 "^0.4.0" @@ -3714,9 +3634,9 @@ btoa-lite@^1.0.0: integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= budo@^11.6.1: - version "11.6.3" - resolved "https://registry.yarnpkg.com/budo/-/budo-11.6.3.tgz#146408e1f646b2b30528bef88fb491e3fd34fdf3" - integrity sha512-U9pV6SoSxGduY/wnoIlDwEEUhxtTFqYqoyWvi3B5nJ/abSxuNmolfAfzgOQIEXqtHhPEA4FlM+VNzdEDOjpIjw== + version "11.6.2" + resolved "https://registry.yarnpkg.com/budo/-/budo-11.6.2.tgz#0f26fc3db54fe4ab9561a0387bf34ae2a617c7e6" + integrity sha512-y6rcQHf//rqY1hsVJOUXGCHD0IZyVbbzAR1Cs1CYwI/akS7A8VMDhUNU9eXdQF2kM92ogPXEDsHo5ESdv5ZwPA== dependencies: bole "^2.0.0" browserify "^16.2.3" @@ -3746,7 +3666,7 @@ budo@^11.6.1: term-color "^1.0.1" url-trim "^1.0.0" watchify-middleware "^1.8.2" - ws "^6.2.1" + ws "^1.1.1" xtend "^4.0.0" buffer-equal@^1.0.0: @@ -3769,7 +3689,7 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= -buffer@4.9.1: +buffer@4.9.1, buffer@^4.3.0: version "4.9.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= @@ -3778,19 +3698,10 @@ buffer@4.9.1: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - buffer@^5.0.2: - version "5.5.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.5.0.tgz#9c3caa3d623c33dd1c7ef584b89b88bf9c9bc1ce" - integrity sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww== + version "5.2.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" + integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" @@ -3821,9 +3732,9 @@ bytes@1: integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + version "12.0.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" + integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== dependencies: bluebird "^3.5.5" chownr "^1.1.1" @@ -3905,9 +3816,9 @@ camelcase-keys@^4.0.0: quick-lru "^1.0.0" camelcase-keys@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.1.tgz#cd3e2d2d7db767aa3f247e4c2df93b4661008945" - integrity sha512-BPCNVH56RVIxQQIXskp5tLQXUNGQ6sXr7iCv1FHDt81xBOQ/1r6H8SPxf19InVP6DexWar4s87q9thfuk8X9HA== + version "6.0.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.0.0.tgz#12a07a6f50189213c3e8626c4069e28b997d01d1" + integrity sha512-NW1C7M9/uDZlfDP0+pWv0yAtgni7AZ9bYKtWgIfJylNXUFfis2BxsX3lCVuZE12wtRePEfJjnG6T9CnMohEybw== dependencies: camelcase "^5.3.1" map-obj "^4.0.0" @@ -3959,14 +3870,14 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30001038" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001038.tgz#439606cdafff1e10e0a795a7ff72fe26965fe8ba" - integrity sha512-yeQ2l99M9upOgMIRfZEdes6HuPbQiRZIMBumUwdXeEQz+faSXUZtZ8xeyEdU+TlJckH09M5NtM038sjKsRa2ow== + version "1.0.30000986" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000986.tgz#0439a4052bbd3243fa01c9998601b9226e7ea6b7" + integrity sha512-8SKJ12AFwG0ReMjPwRH+keFsX/ucw2bi6LC7upeXBvxjgrMqHaTxgYhkRGm+eOwUWvVcqXDgqM7QNlRJMhvXZg== -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000941, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001036: - version "1.0.30001038" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz#44da3cbca2ab6cb6aa83d1be5d324e17f141caff" - integrity sha512-zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000941, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000984: + version "1.0.30000986" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000986.tgz#f34350e367cc900509511574817ac092112bf7ab" + integrity sha512-pM+LnkoAX0+QnIH3tpW5EnkmfpEoqOD8FAcoBvsl3Xh6DXkgctiCxeCbXphP/k3XJtJzm+zOAJbi6U6IVkpWZQ== capture-exit@^2.0.0: version "2.0.0" @@ -3994,9 +3905,9 @@ caseless@~0.12.0: integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= ccount@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.5.tgz#ac82a944905a65ce204eb03023157edf29425c17" - integrity sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.4.tgz#9cf2de494ca84060a2a8d2854edd6dfb0445f386" + integrity sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w== center-align@^0.1.1: version "0.1.3" @@ -4050,24 +3961,24 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4 supports-color "^5.3.0" character-entities-html4@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" - integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g== + version "1.1.3" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.3.tgz#5ce6e01618e47048ac22f34f7f39db5c6fd679ef" + integrity sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg== character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" - integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + version "1.1.3" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz#3c729991d9293da0ede6dddcaf1f2ce1009ee8b4" + integrity sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww== character-entities@^1.0.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" - integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + version "1.2.3" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.3.tgz#bbed4a52fe7ef98cc713c6d80d9faa26916d54e6" + integrity sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w== character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" - integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== + version "1.1.3" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz#1647f4f726638d3ea4a750cf5d1975c1c7919a85" + integrity sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg== chardet@^0.7.0: version "0.7.0" @@ -4084,7 +3995,7 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= -cheerio@^1.0.0-rc.3: +cheerio@^1.0.0-rc.2: version "1.0.0-rc.3" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== @@ -4112,10 +4023,10 @@ chokidar@^1.6.1: optionalDependencies: fsevents "^1.0.0" -chokidar@^2.0.4, chokidar@^2.1.1, chokidar@^2.1.2, chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== +chokidar@^2.0.2, chokidar@^2.0.4, chokidar@^2.1.1, chokidar@^2.1.2: + version "2.1.6" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" + integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== dependencies: anymatch "^2.0.0" async-each "^1.0.1" @@ -4131,10 +4042,10 @@ chokidar@^2.0.4, chokidar@^2.1.1, chokidar@^2.1.2, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== +chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" + integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== ci-info@^1.5.0: version "1.6.0" @@ -4184,9 +4095,9 @@ classnames@^2.2.5: integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + version "2.1.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.1.0.tgz#9e7fec7f3f8340a2ab4f127c80273085e8fbbdd0" + integrity sha512-uQWrpRm+iZZUCAp7ZZJQbd4Za9I3AjR/3YTjmcnAtkauaIm/T5CT6U8zVI6e60T6OANqBFAzuR9/HB3NzuZCRA== cli-boxes@^1.0.0: version "1.0.0" @@ -4266,15 +4177,6 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - clone-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" @@ -4339,9 +4241,9 @@ code-point-at@^1.0.0: integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= collapse-white-space@^1.0.0, collapse-white-space@^1.0.2: - version "1.0.6" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" - integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.5.tgz#c2495b699ab1ed380d29a1091e01063e75dbbe3a" + integrity sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ== collection-visit@^1.0.0: version "1.0.0" @@ -4358,19 +4260,12 @@ color-convert@^1.3.0, color-convert@^1.9.0, color-convert@^1.9.1: dependencies: color-name "1.1.3" -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0, color-name@~1.1.4: +color-name@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -4457,11 +4352,16 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: delayed-stream "~1.0.0" comma-separated-tokens@^1.0.1: - version "1.0.8" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" - integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== + version "1.0.7" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.7.tgz#419cd7fb3258b1ed838dc0953167a25e152f5b59" + integrity sha512-Jrx3xsP4pPv4AwJUDWY9wOXGtwPXARej6Xd99h4TUGotmf8APuquKMpK+dnD3UgyxK7OEWaisjZz+3b5jtL6xQ== + +commander@^2.11.0, commander@^2.19.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== -commander@^2.11.0, commander@^2.19.0, commander@~2.20.3: +commander@~2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -4593,16 +4493,20 @@ connect-pushstate@^1.1.0: integrity sha1-vKsiQnHEOWBKD7D2FMCl9WPojiQ= connected-react-router@^6.5.2: - version "6.8.0" - resolved "https://registry.yarnpkg.com/connected-react-router/-/connected-react-router-6.8.0.tgz#ddc687b31d498322445d235d660798489fa56cae" - integrity sha512-E64/6krdJM3Ag3MMmh2nKPtMbH15s3JQDuaYJvOVXzu6MbHbDyIvuwLOyhQIuP4Om9zqEfZYiVyflROibSsONg== + version "6.5.2" + resolved "https://registry.yarnpkg.com/connected-react-router/-/connected-react-router-6.5.2.tgz#422af70f86cb276681e20ab4295cf27dd9b6c7e3" + integrity sha512-qzsLPZCofSI80fwy+HgxtEgSGS4ndYUUZAWaw1dqaOGPLKX/FVwIOEb7q+hjHdnZ4v5pKZcNv5GG4urjujIoyA== dependencies: + immutable "^3.8.1" prop-types "^15.7.2" + seamless-immutable "^7.1.3" console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= + dependencies: + date-now "^0.1.4" console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" @@ -4625,35 +4529,43 @@ continuable-cache@^0.3.1: integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8= conventional-changelog-angular@^5.0.0: - version "5.0.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz#269540c624553aded809c29a3508fdc2b544c059" - integrity sha512-QDEmLa+7qdhVIv8sFZfVxU1VSyVvnXPsxq8Vam49mKUcO1Z8VTLEJk9uI21uiJUsnmm0I4Hrsdc9TgkOQo9WSA== + version "5.0.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz#299fdd43df5a1f095283ac16aeedfb0a682ecab0" + integrity sha512-YD1xzH7r9yXQte/HF9JBuEDfvjxxwDGGwZU1+ndanbY0oFgA+Po1T9JDSpPLdP0pZT6MhCAsdvFKC4TJ4MTJTA== dependencies: compare-func "^1.3.1" q "^1.5.1" conventional-changelog-writer@^4.0.0: - version "4.0.11" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.11.tgz#9f56d2122d20c96eb48baae0bf1deffaed1edba4" - integrity sha512-g81GQOR392I+57Cw3IyP1f+f42ME6aEkbR+L7v1FBBWolB0xkjKTeCWVguzRrp6UiT1O6gBpJbEy2eq7AnV1rw== + version "4.0.7" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.7.tgz#e4b7d9cbea902394ad671f67108a71fa90c7095f" + integrity sha512-p/wzs9eYaxhFbrmX/mCJNwJuvvHR+j4Fd0SQa2xyAhYed6KBiZ780LvoqUUvsayP4R1DtC27czalGUhKV2oabw== dependencies: compare-func "^1.3.1" conventional-commits-filter "^2.0.2" dateformat "^3.0.0" - handlebars "^4.4.0" + handlebars "^4.1.2" json-stringify-safe "^5.0.1" - lodash "^4.17.15" - meow "^5.0.0" + lodash "^4.2.1" + meow "^4.0.0" semver "^6.0.0" split "^1.0.0" through2 "^3.0.0" conventional-commit-types@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-2.3.0.tgz#bc3c8ebba0a9e4b3ecc548f1d0674e251ab8be22" - integrity sha512-6iB39PrcGYdz0n3z31kj6/Km6mK9hm9oMRhwcLnKxE7WNoeRKZbTAobliKrbYZ5jqyCvtcVEfjCiaEzhL3AVmQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-2.1.1.tgz#352eb53f56fbc7c1a6c1ba059c2b6670c90b2a8a" + integrity sha512-0Ts+fEdmjqYDOQ1yZ+LNgdSPO335XZw9qC10M7CxtLP3nIMGmeMhmkM8Taffa4+MXN13bRPlp0CtH+QfOzKTzw== + +conventional-commits-filter@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz#55a135de1802f6510b6758e0a6aa9e0b28618db3" + integrity sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A== + dependencies: + is-subset "^0.1.1" + modify-values "^1.0.0" -conventional-commits-filter@^2.0.0, conventional-commits-filter@^2.0.2: +conventional-commits-filter@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz#f122f89fbcd5bb81e2af2fcac0254d062d1039c1" integrity sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ== @@ -4661,23 +4573,23 @@ conventional-commits-filter@^2.0.0, conventional-commits-filter@^2.0.2: lodash.ismatch "^4.4.0" modify-values "^1.0.0" -conventional-commits-parser@^3.0.0, conventional-commits-parser@^3.0.7: - version "3.0.8" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz#23310a9bda6c93c874224375e72b09fb275fe710" - integrity sha512-YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ== +conventional-commits-parser@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz#fe1c49753df3f98edb2285a5e485e11ffa7f2e4c" + integrity sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg== dependencies: JSONStream "^1.0.4" - is-text-path "^1.0.1" - lodash "^4.17.15" - meow "^5.0.0" + is-text-path "^1.0.0" + lodash "^4.2.1" + meow "^4.0.0" split2 "^2.0.0" - through2 "^3.0.0" + through2 "^2.0.0" trim-off-newlines "^1.0.0" -convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== dependencies: safe-buffer "~5.1.1" @@ -4704,29 +4616,30 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= copy-to-clipboard@^3.0.8: - version "3.3.1" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" - integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== + version "3.2.0" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.2.0.tgz#d2724a3ccbfed89706fac8a894872c979ac74467" + integrity sha512-eOZERzvCmxS8HWzugj4Uxl8OJxa7T2k1Gi0X5qavwydHIfuSHq2dTD09LOg/XyGq4Zpb5IsR/2OJ5lbOegz78w== dependencies: toggle-selection "^1.0.6" -core-js-compat@^3.6.2: - version "3.6.4" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" - integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA== +core-js-compat@^3.1.1: + version "3.1.4" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.4.tgz#e4d0c40fbd01e65b1d457980fe4112d4358a7408" + integrity sha512-Z5zbO9f1d0YrJdoaQhphVAnKPimX92D6z8lCGphH89MNRxlL1prI9ExJPqVwP0/kgkQCv8c4GJGT8X16yUncOg== dependencies: - browserslist "^4.8.3" - semver "7.0.0" + browserslist "^4.6.2" + core-js-pure "3.1.4" + semver "^6.1.1" -core-js-pure@^3.0.0: - version "3.6.4" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a" - integrity sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw== +core-js-pure@3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.4.tgz#5fa17dc77002a169a3566cc48dc774d2e13e3769" + integrity sha512-uJ4Z7iPNwiu1foygbcZYJsJs1jiXrTTCvxfLDXNhI/I+NHbSIEyr548y4fcsCEyWY0XgfAG/qqaunJ1SThHenA== core-js@2, core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + version "2.6.9" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" + integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== core-js@^1.0.0: version "1.2.7" @@ -4734,16 +4647,16 @@ core-js@^1.0.0: integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= core-js@^3.1.4: - version "3.6.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" - integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw== + version "3.1.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.1.4.tgz#3a2837fc48e582e1ae25907afcd6cf03b0cc7a07" + integrity sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ== core-util-is@1.0.2, "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" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cosmiconfig@^5.0.0: +cosmiconfig@^5.0.0, cosmiconfig@^5.0.1: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== @@ -4753,17 +4666,6 @@ cosmiconfig@^5.0.0: js-yaml "^3.13.1" parse-json "^4.0.0" -cosmiconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.7.2" - create-ecdh@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" @@ -4822,15 +4724,6 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" - integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - crypt@~0.0.1: version "0.0.2" resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" @@ -4921,12 +4814,12 @@ css-select-base-adapter@^0.1.1: integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" + integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ== dependencies: boolbase "^1.0.0" - css-what "^3.2.1" + css-what "^2.1.2" domutils "^1.7.0" nth-check "^1.0.2" @@ -4949,13 +4842,13 @@ css-selector-tokenizer@^0.5.1: fastparse "^1.1.1" css-selector-tokenizer@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz#11e5e27c9a48d90284f22d45061c303d7a25ad87" - integrity sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw== + version "0.7.1" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" + integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== dependencies: - cssesc "^3.0.0" - fastparse "^1.1.2" - regexpu-core "^4.6.0" + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" css-to-react-native@^3.0.0: version "3.0.0" @@ -4966,32 +4859,32 @@ css-to-react-native@^3.0.0: css-color-keywords "^1.0.0" postcss-value-parser "^4.0.2" -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== +css-tree@1.0.0-alpha.29: + version "1.0.0-alpha.29" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" + integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" + mdn-data "~1.1.0" + source-map "^0.5.3" -css-tree@1.0.0-alpha.39: - version "1.0.0-alpha.39" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" - integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== +css-tree@1.0.0-alpha.33: + version "1.0.0-alpha.33" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.33.tgz#970e20e5a91f7a378ddd0fc58d0b6c8d4f3be93e" + integrity sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w== dependencies: - mdn-data "2.0.6" - source-map "^0.6.1" + mdn-data "2.0.4" + source-map "^0.5.3" -css-what@2.1: +css-unit-converter@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" + integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= + +css-what@2.1, css-what@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== -css-what@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" - integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== - cssdb@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" @@ -5007,11 +4900,6 @@ cssesc@^2.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - cssnano-preset-default@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" @@ -5118,12 +5006,12 @@ cssnano@^4.1.10: is-resolvable "^1.0.0" postcss "^7.0.0" -csso@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" - integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== +csso@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" + integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg== dependencies: - css-tree "1.0.0-alpha.39" + css-tree "1.0.0-alpha.29" csso@~2.3.1: version "2.3.2" @@ -5146,9 +5034,9 @@ cssstyle@^1.0.0: cssom "0.3.x" currency-formatter@^1.4.2: - version "1.5.5" - resolved "https://registry.yarnpkg.com/currency-formatter/-/currency-formatter-1.5.5.tgz#907790bb0b7f129c4a64d2924e0d7fa36db0cf52" - integrity sha512-PEsZ9fK2AwPBYgzWTtqpSckam7hFDkT8ZKFAOrsooR0XbydZEKuFioUzcc3DoT2mCDkscjf1XdT6Qq53ababZQ== + version "1.5.4" + resolved "https://registry.yarnpkg.com/currency-formatter/-/currency-formatter-1.5.4.tgz#115ebd438a3f94ab335516ce27ef9511a5e05c02" + integrity sha512-8qyGfrJO2ulabrlP4AidcV4kXpuTMqWJ61NW16QK3u+1L/9R0x7XM4f4hQ8HVlJyzBcxJV4SZMYx7zYoAhpArA== dependencies: accounting "^0.4.1" locale-currency "0.0.2" @@ -5178,49 +5066,49 @@ cz-conventional-changelog@2.1.0, cz-conventional-changelog@^2.1.0: word-wrap "^1.0.3" d3-color@1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.0.tgz#89c45a995ed773b13314f06460df26d60ba0ecaf" - integrity sha512-TzNPeJy2+iEepfiL92LAAB7fvnp/dV2YwANPVHdDWmYMm23qIJBYww3qT8I8C1wXrmrg4UWs7BKc2tKIgyjzHg== + version "1.2.8" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.2.8.tgz#4eaf9b60ef188c893fcf8b28f3546aafebfbd9f4" + integrity sha512-yeANXzP37PHk0DbSTMNPhnJD+Nn4G//O5E825bR6fAfHH43hobSBpgB9G9oWVl9+XgUaQ4yCnsX1H+l8DoaL9A== d3-dispatch@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" - integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.5.tgz#e25c10a186517cd6c82dd19ea018f07e01e39015" + integrity sha512-vwKx+lAqB1UuCeklr6Jh1bvC4SZgbSqbkGBLClItFBIYH4vqDJCA7qfoy14lXmJdnBOdxndAMxjCbImJYW7e6g== d3-drag@1: - version "1.2.5" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" - integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== + version "1.2.3" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.3.tgz#46e206ad863ec465d88c588098a1df444cd33c64" + integrity sha512-8S3HWCAg+ilzjJsNtWW1Mutl74Nmzhb9yU6igspilaJzeZVFktmY6oO9xOh5TDk+BM2KrNFjttZNoJJmDnkjkg== dependencies: d3-dispatch "1" d3-selection "1" d3-ease@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.6.tgz#ebdb6da22dfac0a22222f2d4da06f66c416a0ec0" - integrity sha512-SZ/lVU7LRXafqp7XtIcBdxnWl8yyLpgOmzAk0mWBI9gXNzLDx5ybZgnRbH9dN/yY5tzVBqCQ9avltSnqVwessQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.5.tgz#8ce59276d81241b1b72042d6af2d40e76d936ffb" + integrity sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ== d3-interpolate@1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" - integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== + version "1.3.2" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.3.2.tgz#417d3ebdeb4bc4efcc8fd4361c55e4040211fd68" + integrity sha512-NlNKGopqaz9qM1PXh9gBF1KSCVh+jSFErrSlD/4hybwoNX/gt1d8CDbDW+3i+5UOHhjC6s6nMvRxcuoMVNgL2w== dependencies: d3-color "1" d3-selection@1, d3-selection@^1.1.0, d3-selection@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.1.tgz#98eedbbe085fbda5bafa2f9e3f3a2f4d7d622a98" - integrity sha512-BTIbRjv/m5rcVTfBs4AMBLKs4x8XaaLkwm28KWu9S2vKNqXkXt2AH2Qf0sdPZHjFxcWg/YL53zcqAz+3g4/7PA== + version "1.4.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.0.tgz#ab9ac1e664cf967ebf1b479cc07e28ce9908c474" + integrity sha512-EYVwBxQGEjLCKF2pJ4+yrErskDnz5v403qvAid96cNdCMr8rmCYfY5RGzWz24mdIbxmDf6/4EAH+K9xperD5jg== d3-timer@1: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.9.tgz#f7bb8c0d597d792ff7131e1c24a36dd471a471ba" + integrity sha512-rT34J5HnQUHhcLvhSB9GjCkN0Ddd5Y8nCwDBG2u6wQEeYxT/Lf51fTFFkldeib/sE/J0clIe0pnCfs6g/lRbyg== d3-transition@1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" - integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== + version "1.2.0" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.2.0.tgz#f538c0e21b2aa1f05f3e965f8567e81284b3b2b8" + integrity sha512-VJ7cmX/FPIPJYuaL2r1o1EMHLttvoIuZhhuAlRoOxDzogV8iQS6jYulDm3xEU3TqL80IZIhI551/ebmCMrkvhw== dependencies: d3-color "1" d3-dispatch "1" @@ -5230,9 +5118,9 @@ d3-transition@1: d3-timer "1" d3-zoom@^1.7.1: - version "1.8.3" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a" - integrity sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ== + version "1.7.3" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.7.3.tgz#f444effdc9055c38077c4299b4df999eb1d47ccb" + integrity sha512-xEBSwFx5Z9T3/VrwDkMt+mr0HCzv7XjpGURJ8lWmIC8wxe32L39eWHIasEe/e7Ox8MPU4p1hvH8PKN2olLzIBg== dependencies: d3-dispatch "1" d3-drag "1" @@ -5246,9 +5134,9 @@ d3@^3.5.8: integrity sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g= damerau-levenshtein@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" - integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== + version "1.0.5" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414" + integrity sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA== dash-ast@^1.0.0: version "1.0.0" @@ -5271,6 +5159,11 @@ data-urls@^1.0.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= + dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -5300,20 +5193,20 @@ debug@3.1.0: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -debug@^3.1.0: +debug@^3.1.0, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" +debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -5355,16 +5248,9 @@ deep-eql@^3.0.1: type-detect "^4.0.0" deep-equal@^1.0.0, deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= deep-extend@^0.6.0: version "0.6.0" @@ -5376,6 +5262,11 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= +deepmerge@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.0.0.tgz#3e3110ca29205f120d7cb064960a39c3d2087c09" + integrity sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww== + default-gateway@^2.6.0: version "2.7.2" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-2.7.2.tgz#b7ef339e5e024b045467af403d50348db4642d0f" @@ -5440,25 +5331,25 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -deprecation@^2.0.0, deprecation@^2.3.1: +deprecation@^2.0.0: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== deps-sort@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" - integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw== + version "2.0.0" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" + integrity sha1-CRckkC6EZYJg65EHSMzNGvbiH7U= dependencies: JSONStream "^1.0.3" - shasum-object "^1.0.0" + shasum "^1.0.0" subarg "^1.0.0" through2 "^2.0.0" des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" @@ -5469,9 +5360,9 @@ destroy@~1.0.4: integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= detab@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.3.tgz#33e5dd74d230501bd69985a0d2b9a3382699a130" - integrity sha512-Up8P0clUVwq0FnFjDclzZsy9PadzRn5FFxrr47tQQvMHqyiFYVbpH8oXDzWtF0Q7pYy3l+RPmtBl+BsFF6wH0A== + version "2.0.2" + resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.2.tgz#074970d1a807b045d0258a4235df5928dd683561" + integrity sha512-Q57yPrxScy816TTE1P/uLRXLDKjXhvYTbfxS/e6lPD+YrqghbsMlGB9nQzj/zVtSPaF0DFPSdO916EWO4sQUyQ== dependencies: repeat-string "^1.5.4" @@ -5492,6 +5383,11 @@ detect-indent@^5.0.0, detect-indent@~5.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" @@ -5505,7 +5401,7 @@ detective@^4.0.0: acorn "^5.2.1" defined "^1.0.0" -detective@^5.2.0: +detective@^5.0.2: version "5.2.0" resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== @@ -5522,15 +5418,15 @@ dezalgo@^1.0.0, dezalgo@~1.0.3: asap "^2.0.0" wrappy "1" -diff-sequences@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" - integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== +diff-sequences@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975" + integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw== diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + version "4.0.1" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" + integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q== diffie-hellman@^5.0.0: version "5.0.3" @@ -5588,9 +5484,9 @@ doctrine@^3.0.0: esutils "^2.0.2" documentation@^12.0.3: - version "12.1.4" - resolved "https://registry.yarnpkg.com/documentation/-/documentation-12.1.4.tgz#ec0aafbd9d3879a44189d2d4434953ae3a258598" - integrity sha512-GGS635tR8bBR/m/AuUZ6MCZmFXZA25Wk9S/TTHNe+EMkTCoDdlcft56dZCjF7voCmfnMqKRo8sXAukf/ciA5IA== + version "12.0.3" + resolved "https://registry.yarnpkg.com/documentation/-/documentation-12.0.3.tgz#32f91da8e5cb4104f69db9fd32c87773a1ad6240" + integrity sha512-RoqkH+mQ4Vi/nFMxG0BaqPAnjKfsJ9lbLWB8KqoKVAZy+urSpk1K1zBzaFesdDkKeaR3aBgeR3RjtHp8Ut/1Wg== dependencies: "@babel/core" "^7.1.2" "@babel/generator" "^7.1.3" @@ -5625,12 +5521,11 @@ documentation@^12.0.3: diff "^4.0.1" doctrine-temporary-fork "2.1.0" get-port "^4.0.0" - git-url-parse "^11.1.2" + git-url-parse "^10.0.1" github-slugger "1.2.0" glob "^7.1.2" globals-docs "^2.4.0" highlight.js "^9.15.5" - ini "^1.3.5" js-yaml "^3.10.0" lodash "^4.17.10" mdast-util-inject "^1.1.0" @@ -5644,6 +5539,7 @@ documentation@^12.0.3: remark-html "^8.0.0" remark-reference-links "^4.0.1" remark-toc "^5.0.0" + remote-origin-url "0.4.0" resolve "^1.8.1" stream-array "^1.1.2" strip-json-comments "^2.0.1" @@ -5665,15 +5561,7 @@ dom-helpers@^3.2.0, dom-helpers@^3.2.1, dom-helpers@^3.4.0: dependencies: "@babel/runtime" "^7.1.2" -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@~0.1.1: +dom-serializer@0, dom-serializer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== @@ -5691,11 +5579,6 @@ domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== - domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" @@ -5733,20 +5616,13 @@ dot-prop@^3.0.0: dependencies: is-obj "^1.0.0" -dot-prop@^4.1.0: +dot-prop@^4.1.0, dot-prop@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== dependencies: is-obj "^1.0.0" -dot-prop@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" - integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== - dependencies: - is-obj "^2.0.0" - dotenv@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" @@ -5792,15 +5668,15 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.380: - version "1.3.386" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.386.tgz#224f97c808da76014096848f80bb9342b6a95cdb" - integrity sha512-M7JHfp32Bq6Am59AWgglh2d3nqe6y8Y94Vcb/AXUsO3DGvKUHYI5ML9+U5oNShfdOEfurrrjKSoSgFt2mz7mpw== +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.191: + version "1.3.204" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.204.tgz#1ea5c6d495bab77995aa135dbcbc1d383dd4e21e" + integrity sha512-T0eXE6hfbtpzRUaI7aHI/HYJ29Ndk84aVSborRAmXfWvBvz2EuB2OWYUxNcUX9d+jtqEIjgZjWMdoxS0hp5j1g== elliptic@^6.0.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== + version "6.5.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.0.tgz#2b8ed4c891b7de3200e14412a5b8248c7af505ca" + integrity sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -5830,11 +5706,6 @@ emojis-list@^2.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -5869,23 +5740,18 @@ entities@^1.1.1, entities@~1.1.1: resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== -entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== - env-ci@^4.0.0: - version "4.5.2" - resolved "https://registry.yarnpkg.com/env-ci/-/env-ci-4.5.2.tgz#40b08825dcf4ed5b2cddd3d638190571cf96347a" - integrity sha512-lS+edpNp2+QXEPkx6raEMIjKxKKWnJ4+VWzovYJ2NLYiJAYenSAXotFfVdgaFxdbVnvAbUI8epQDa1u12ERxfQ== + version "4.1.1" + resolved "https://registry.yarnpkg.com/env-ci/-/env-ci-4.1.1.tgz#b8438fc7258a0dc7a4f4c4816de730767946a718" + integrity sha512-eTgpkALDeYRGNhYM2fO9LKsWDifoUgKL7hxpPZqFMP2IU7f+r89DtKqCmk3yQB/jxS8CmZTfKnWO5TiIDFs9Hw== dependencies: - execa "^3.2.0" + execa "^1.0.0" java-properties "^1.0.0" -env-paths@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" - integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== +env-paths@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" + integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA= envify@^4.1.0: version "4.1.0" @@ -5896,75 +5762,64 @@ envify@^4.1.0: through "~2.3.4" enzyme-adapter-react-16@^1.4.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz#b16db2f0ea424d58a808f9df86ab6212895a4501" - integrity sha512-SkvDrb8xU3lSxID8Qic9rB8pvevDbLybxPK6D/vW7PrT0s2Cl/zJYuXvsd1EBTz0q4o3iqG3FJhpYz3nUNpM2Q== + version "1.14.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.14.0.tgz#204722b769172bcf096cb250d33e6795c1f1858f" + integrity sha512-7PcOF7pb4hJUvjY7oAuPGpq3BmlCig3kxXGi2kFx0YzJHppqX1K8IIV9skT1IirxXlu8W7bneKi+oQ10QRnhcA== dependencies: - enzyme-adapter-utils "^1.13.0" - enzyme-shallow-equal "^1.0.1" + enzyme-adapter-utils "^1.12.0" has "^1.0.3" object.assign "^4.1.0" - object.values "^1.1.1" + object.values "^1.1.0" prop-types "^15.7.2" - react-is "^16.12.0" + react-is "^16.8.6" react-test-renderer "^16.0.0-0" semver "^5.7.0" -enzyme-adapter-utils@^1.13.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.0.tgz#01c885dde2114b4690bf741f8dc94cee3060eb78" - integrity sha512-YuEtfQp76Lj5TG1NvtP2eGJnFKogk/zT70fyYHXK2j3v6CtuHqc8YmgH/vaiBfL8K1SgVVbQXtTcgQZFwzTVyQ== +enzyme-adapter-utils@^1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.12.0.tgz#96e3730d76b872f593e54ce1c51fa3a451422d93" + integrity sha512-wkZvE0VxcFx/8ZsBw0iAbk3gR1d9hK447ebnSYBf95+r32ezBq+XDSAvRErkc4LZosgH8J7et7H7/7CtUuQfBA== dependencies: - airbnb-prop-types "^2.15.0" - function.prototype.name "^1.1.2" + airbnb-prop-types "^2.13.2" + function.prototype.name "^1.1.0" object.assign "^4.1.0" - object.fromentries "^2.0.2" + object.fromentries "^2.0.0" prop-types "^15.7.2" - semver "^5.7.1" - -enzyme-shallow-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.1.tgz#7afe03db3801c9b76de8440694096412a8d9d49e" - integrity sha512-hGA3i1so8OrYOZSM9whlkNmVHOicJpsjgTzC+wn2JMJXhq1oO4kA4bJ5MsfzSIcC71aLDKzJ6gZpIxrqt3QTAQ== - dependencies: - has "^1.0.3" - object-is "^1.0.2" + semver "^5.6.0" enzyme-to-json@^3.4.0: - version "3.4.4" - resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.4.4.tgz#b30726c59091d273521b6568c859e8831e94d00e" - integrity sha512-50LELP/SCPJJGic5rAARvU7pgE3m1YaNj7JLM+Qkhl5t7PAs6fiyc8xzc50RnkKPFQCv0EeFVjEWdIFRGPWMsA== + version "3.4.0" + resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.4.0.tgz#2b6330a784a57ba68298e3c0d6cef17ee4fedc0e" + integrity sha512-gbu8P8PMAtb+qtKuGVRdZIYxWHC03q1dGS3EKRmUzmTDIracu3o6cQ0d4xI2YWojbelbxjYOsmqM5EgAL0WgIA== dependencies: - lodash "^4.17.15" - react-is "^16.12.0" + lodash "^4.17.12" enzyme@^3.10.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" - integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== - dependencies: - array.prototype.flat "^1.2.3" - cheerio "^1.0.0-rc.3" - enzyme-shallow-equal "^1.0.1" - function.prototype.name "^1.1.2" + version "3.10.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.10.0.tgz#7218e347c4a7746e133f8e964aada4a3523452f6" + integrity sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg== + dependencies: + array.prototype.flat "^1.2.1" + cheerio "^1.0.0-rc.2" + function.prototype.name "^1.1.0" has "^1.0.3" - html-element-map "^1.2.0" - is-boolean-object "^1.0.1" - is-callable "^1.1.5" - is-number-object "^1.0.4" - is-regex "^1.0.5" - is-string "^1.0.5" + html-element-map "^1.0.0" + is-boolean-object "^1.0.0" + is-callable "^1.1.4" + is-number-object "^1.0.3" + is-regex "^1.0.4" + is-string "^1.0.4" is-subset "^0.1.1" lodash.escape "^4.0.1" lodash.isequal "^4.5.0" - object-inspect "^1.7.0" - object-is "^1.0.2" + object-inspect "^1.6.0" + object-is "^1.0.1" object.assign "^4.1.0" - object.entries "^1.1.1" - object.values "^1.1.1" - raf "^3.4.1" + object.entries "^1.0.4" + object.values "^1.0.4" + raf "^3.4.0" rst-selector-parser "^2.2.3" - string.prototype.trim "^1.2.1" + string.prototype.trim "^1.1.2" err-code@^1.0.0: version "1.1.2" @@ -5986,33 +5841,55 @@ error-ex@^1.2.0, error-ex@^1.3.1: is-arrayish "^0.2.1" error@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" - integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== + version "7.0.2" + resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" + integrity sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI= dependencies: string-template "~0.2.1" + xtend "~4.0.0" errorify@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/errorify/-/errorify-0.3.1.tgz#53e0aaeeb18adc3e55f9f1eb4e2d95929f41b79b" integrity sha1-U+Cq7rGK3D5V+fHrTi2Vkp9Bt5s= -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.4: - version "1.17.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" - integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== +es-abstract@^1.10.0, es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.7.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-keys "^1.0.12" + +es-abstract@^1.17.0-next.1: + version "1.17.0-next.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0-next.1.tgz#94acc93e20b05a6e96dacb5ab2f1cb3a81fc2172" + integrity sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" + is-callable "^1.1.4" + is-regex "^1.0.4" object-inspect "^1.7.0" object-keys "^1.1.1" object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" + string.prototype.trimleft "^2.1.0" + string.prototype.trimright "^2.1.0" + +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" es-to-primitive@^1.2.1: version "1.2.1" @@ -6041,9 +5918,9 @@ es6-promisify@^5.0.0: es6-promise "^4.0.3" es6-promisify@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.1.0.tgz#32e3e7e796f924a6723f09ded24e71100ea57472" - integrity sha512-jCsk2fpfEFusVv1MDkF4Uf0hAzIKNDMgR6LyOIw6a3jwkN1sCgWzuwgnsHY9YSQ8n8P31HoncvE0LC44cpWTrw== + version "6.0.1" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.0.1.tgz#6edaa45f3bd570ffe08febce66f7116be4b1cdb6" + integrity sha512-J3ZkwbEnnO+fGAKrjVpeUAnZshAdfZvbhQpqfIH9kSAspReRC4nJnu8ewm55b4y9ElyeuhCTzJD0XiH8Tsbhlw== escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" @@ -6056,11 +5933,11 @@ escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escodegen@^1.9.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" - integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ== + version "1.11.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" + integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw== dependencies: - esprima "^4.0.1" + esprima "^3.1.3" estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" @@ -6078,58 +5955,57 @@ eslint-config-standard@^12.0.0: integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== eslint-import-resolver-node@^0.3.2: - version "0.3.3" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" - integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== + version "0.3.2" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== dependencies: debug "^2.6.9" - resolve "^1.13.1" + resolve "^1.5.0" -eslint-module-utils@^2.4.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz#7878f7504824e1b857dd2505b59a8e5eda26a708" - integrity sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q== +eslint-module-utils@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c" + integrity sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw== dependencies: - debug "^2.6.9" + debug "^2.6.8" pkg-dir "^2.0.0" eslint-plugin-es@^1.3.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz#12acae0f4953e76ba444bfd1b2271081ac620998" - integrity sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA== + version "1.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6" + integrity sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw== dependencies: - eslint-utils "^1.4.2" + eslint-utils "^1.3.0" regexpp "^2.0.1" eslint-plugin-flowtype@^3.4.2: - version "3.13.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz#e241ebd39c0ce519345a3f074ec1ebde4cf80f2c" - integrity sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw== + version "3.12.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.12.2.tgz#f02fb8a4e20993bff860292bdd39b93d511d7326" + integrity sha512-Fky+noPK7WPEAuclGRBsRHNukmSc9h2cUMpht9+tVd30YoJwz3xK7ma1QQ69wIjVTbk2N0sA6QjEo2DlIf9LlA== dependencies: - lodash "^4.17.15" + lodash "^4.17.11" eslint-plugin-import@^2.16.0: - version "2.20.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3" - integrity sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw== + version "2.18.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6" + integrity sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ== dependencies: array-includes "^3.0.3" - array.prototype.flat "^1.2.1" contains-path "^0.1.0" debug "^2.6.9" doctrine "1.5.0" eslint-import-resolver-node "^0.3.2" - eslint-module-utils "^2.4.1" + eslint-module-utils "^2.4.0" has "^1.0.3" minimatch "^3.0.4" object.values "^1.1.0" read-pkg-up "^2.0.0" - resolve "^1.12.0" + resolve "^1.11.0" eslint-plugin-jest@^22.3.0: - version "22.21.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.21.0.tgz#8137294645866636160487d9764224b9a43e2eb1" - integrity sha512-OaqnSS7uBgcGiqXUiEnjoqxPNKvR4JWG5mSRkzVoR6+vDwlqqp11beeql1hYs0HTbdhiwrxWLxbX0Vx7roG3Ew== + version "22.14.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.14.0.tgz#f9b09837f665cfe360b55c08866904255294cc16" + integrity sha512-Xtc9ZTtxdYFC7vu0PHxDeQ9lOMQ8gjwMmSQq/ni83TdflgL3eVh/qg3t99I7gcDxpeXfcp+lHu9C0vN3QAhATw== dependencies: "@typescript-eslint/experimental-utils" "^1.13.0" @@ -6166,27 +6042,32 @@ eslint-plugin-promise@^4.0.1: integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== eslint-plugin-react@^7.12.4: - version "7.19.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666" - integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ== + version "7.14.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz#911030dd7e98ba49e1b2208599571846a66bdf13" + integrity sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA== dependencies: - array-includes "^3.1.1" + array-includes "^3.0.3" doctrine "^2.1.0" has "^1.0.3" - jsx-ast-utils "^2.2.3" - object.entries "^1.1.1" - object.fromentries "^2.0.2" - object.values "^1.1.1" + jsx-ast-utils "^2.1.0" + object.entries "^1.1.0" + object.fromentries "^2.0.0" + object.values "^1.1.0" prop-types "^15.7.2" - resolve "^1.15.1" - semver "^6.3.0" - string.prototype.matchall "^4.0.2" - xregexp "^4.3.0" + resolve "^1.10.1" eslint-plugin-standard@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz#ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4" - integrity sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ== + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz#f845b45109c99cd90e77796940a344546c8f6b5c" + integrity sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA== + +eslint-scope@3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" + integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug= + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" eslint-scope@^3.7.1: version "3.7.3" @@ -6204,17 +6085,17 @@ eslint-scope@^4.0.0, eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.3.1, eslint-utils@^1.4.2: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== +eslint-utils@^1.3.0, eslint-utils@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.0.tgz#e2c3c8dba768425f897cf0f9e51fe2e241485d4c" + integrity sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ== dependencies: - eslint-visitor-keys "^1.1.0" + eslint-visitor-keys "^1.0.0" -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== eslint@^5.0.0, eslint@^5.15.1: version "5.16.0" @@ -6280,17 +6161,22 @@ esprima@^2.6.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= -esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: +esprima@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= + +esprima@^4.0.0, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.0.0, esquery@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.2.0.tgz#a010a519c0288f2530b3404124bfb5f02e9797fe" - integrity sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q== + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== dependencies: - estraverse "^5.0.0" + estraverse "^4.0.0" esrecurse@^4.1.0: version "4.2.1" @@ -6299,20 +6185,15 @@ esrecurse@^4.1.0: dependencies: estraverse "^4.1.0" -estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.0.0.tgz#ac81750b482c11cca26e4b07e83ed8f75fbcdc22" - integrity sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A== +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +esutils@^2.0.0, esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= etag@~1.8.1: version "1.8.1" @@ -6330,9 +6211,9 @@ events@^2.0.0: integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== events@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== + version "3.0.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" + integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -6343,9 +6224,9 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: safe-buffer "^5.1.1" exec-sh@^0.3.2: - version "0.3.4" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" - integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== + version "0.3.2" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b" + integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg== execa@^0.10.0: version "0.10.0" @@ -6386,37 +6267,6 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" - integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^3.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^3.2.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" - integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -6466,17 +6316,17 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" - integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== +expect@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.8.0.tgz#471f8ec256b7b6129ca2524b2a62f030df38718d" + integrity sha512-/zYvP8iMDrzaaxHVa724eJBCKqSHmO0FA7EDkBiRHxg6OipmMn1fN+C8T9L9K8yr7UONkOifu6+LLH+z76CnaA== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^24.8.0" ansi-styles "^3.2.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.9.0" + jest-get-type "^24.8.0" + jest-matcher-utils "^24.8.0" + jest-message-util "^24.8.0" + jest-regex-util "^24.3.0" extend-shallow@^2.0.1: version "2.0.1" @@ -6493,6 +6343,11 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" +extend@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extend/-/extend-1.3.0.tgz#d1516fb0ff5624d2ebf9123ea1dac5a1994004f8" + integrity sha1-0VFvsP9WJNLr+RI+odrFoZlABPg= + extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" @@ -6538,49 +6393,44 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= fast-glob@^3.0.3: - version "3.2.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.2.tgz#ade1a9d91148965d4bf7c51f72e1ca662d32e63d" - integrity sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A== + version "3.0.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.0.4.tgz#d484a41005cb6faeb399b951fd1bd70ddaebb602" + integrity sha512-wkIbV6qg37xTJwqSsdnIphL1e+LaGz4AIQqr00mIubMaEhv1/HEmJ0uuCGZRNRUkZZmOB5mJKO0ZUTVq+SxMQg== dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" - merge2 "^1.3.0" + "@nodelib/fs.stat" "^2.0.1" + "@nodelib/fs.walk" "^1.2.1" + glob-parent "^5.0.0" + is-glob "^4.0.1" + merge2 "^1.2.3" micromatch "^4.0.2" - picomatch "^2.2.1" fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= -fast-levenshtein@~2.0.6: +fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -fast-safe-stringify@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" - integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== - -fastparse@^1.1.1, fastparse@^1.1.2: +fastparse@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== fastq@^1.6.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.1.tgz#4570c74f2ded173e71cf0beb08ac70bb85826791" - integrity sha512-mpIH5sKYueh3YyeJwqtVo8sORi0CgtmkVbK6kZStpQlZBYQuTzG2CZ7idSiJuA7bY0SFCWUc5WIs+oYumGCQNw== + version "1.6.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2" + integrity sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA== dependencies: - reusify "^1.0.4" + reusify "^1.0.0" faye-websocket@~0.10.0: version "0.10.0" @@ -6590,11 +6440,11 @@ faye-websocket@~0.10.0: websocket-driver ">=0.5.1" fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + version "2.0.0" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg= dependencies: - bser "2.1.1" + bser "^2.0.0" fbjs@^0.8.4: version "0.8.17" @@ -6618,9 +6468,9 @@ fetch-everywhere@^1.0.5: whatwg-fetch ">=0.10.0" figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== figures@^2.0.0: version "2.0.0" @@ -6630,9 +6480,9 @@ figures@^2.0.0: escape-string-regexp "^1.0.5" figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + version "3.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.0.0.tgz#756275c964646163cc6f9197c7a0295dbfd04de9" + integrity sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g== dependencies: escape-string-regexp "^1.0.5" @@ -6650,11 +6500,6 @@ file-loader@^0.8.5: dependencies: loader-utils "~0.2.5" -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" @@ -6737,7 +6582,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.1.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -6746,10 +6591,11 @@ find-up@^4.1.0: path-exists "^4.0.0" find-versions@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" - integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== + version "3.1.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.1.0.tgz#10161f29cf3eb4350dec10a29bdde75bff0df32d" + integrity sha512-NCTfNiVzeE/xL+roNDffGuRbrWI6atI18lTJ22vKp7rs2OhYzMK3W1dIdO2TUndH/QMcacM4d1uWwgcZcHK69Q== dependencies: + array-uniq "^2.1.0" semver-regex "^2.0.0" findup-sync@^3.0.0: @@ -6784,9 +6630,9 @@ flatted@^2.0.0: integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== flatten@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" - integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + version "1.0.2" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I= flow-bin@0.84.0: version "0.84.0" @@ -6829,9 +6675,9 @@ forever-agent@~0.6.1: integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@^2.3.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" - integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + version "2.5.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.0.tgz#094ec359dc4b55e7d62e0db4acd76e89fe874d37" + integrity sha512-WXieX3G/8side6VIqx44ablyULoGruSde5PNTxoUyo5CeyAMX6nVWUd0rgist/EuX655cjhUhTo1Fo3tRYqbcA== dependencies: asynckit "^0.4.0" combined-stream "^1.0.6" @@ -6890,7 +6736,7 @@ fs-extra@^7.0.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^8.0.0, fs-extra@^8.1.0: +fs-extra@^8.0.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== @@ -6944,36 +6790,37 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.0.0, fsevents@^1.2.7: - version "1.2.12" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" - integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== dependencies: - bindings "^1.5.0" nan "^2.12.1" + node-pre-gyp "^0.12.0" function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.1, function.prototype.name@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45" - integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg== +function.prototype.name@^1.1.0, function.prototype.name@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.1.tgz#6d252350803085abc2ad423d4fe3be2f9cbda392" + integrity sha512-e1NzkiJuw6xqVH7YSdiW/qDHebcmMhPNe6w+4ZYYEg0VA+LaLzx37RimbPLuonHhYGFGPx1ME2nSi74JiaCr/Q== dependencies: define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - functions-have-names "^1.2.0" + function-bind "^1.1.1" + functions-have-names "^1.1.1" + is-callable "^1.1.4" functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -functions-have-names@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91" - integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA== +functions-have-names@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.1.1.tgz#79d35927f07b8e7103d819fed475b64ccf7225ea" + integrity sha512-U0kNHUoxwPNPWOJaMG7Z00d4a/qZVrFtzWJRaK8V9goaVOCXBSQSJpt3MYGNtkScKEBKovxLjnNdC9MlXwo5Pw== garnish@^5.0.0: version "5.2.0" @@ -7010,15 +6857,10 @@ genfun@^5.0.0: resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== - gentle-fs@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.3.1.tgz#11201bf66c18f930ddca72cf69460bdfa05727b1" - integrity sha512-OlwBBwqCFPcjm33rF2BjW+Pr6/ll2741l+xooiwTCeaX2CA1ZuclavyMBe0/KlR21/XGsgY6hzEQZ15BdNa13Q== + version "2.3.0" + resolved "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.3.0.tgz#13538db5029400f98684be4894e8a7d8f0d1ea7f" + integrity sha512-3k2CgAmPxuz7S6nKK+AqFE2AdM1QuwqKLPKzIET3VRwK++3q96MsNFobScDjlCrq97ZJ8y5R725MOlm6ffUCjg== dependencies: aproba "^1.1.2" chownr "^1.1.2" @@ -7124,48 +6966,20 @@ git-log-parser@^1.2.0: through2 "~2.0.0" traverse "~0.6.6" -git-remote-origin-url@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-3.1.0.tgz#c90c1cb0f66658566bbc900509ab093a1522d2b3" - integrity sha512-yVSfaTMO7Bqk6Xx3696ufNfjdrajX7Ig9GuAeO2V3Ji7stkDoBNFldnWIAsy0qviUd0Z+X2P6ziJENKztW7cBQ== - dependencies: - gitconfiglocal "^2.1.0" - -git-repo-info@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/git-repo-info/-/git-repo-info-2.1.1.tgz#220ffed8cbae74ef8a80e3052f2ccb5179aed058" - integrity sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg== - -git-repo-is-up-to-date@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/git-repo-is-up-to-date/-/git-repo-is-up-to-date-1.1.0.tgz#00e9f5dab56e420e4f6baca4000facdc4bbe7d2a" - integrity sha512-1wmqIbQc9KaK03Szd655uFuZwW9iRcSFb5ail+CMtYy6I7pmbk1XGrewB34hGmJFndHzYr9BtA+mGUYdfWqw1w== - dependencies: - execa "^2.0.4" - git-remote-origin-url "^3.0.0" - git-repo-info "^2.1.0" - -git-up@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.1.tgz#cb2ef086653640e721d2042fe3104857d89007c0" - integrity sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw== +git-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-2.1.0.tgz#2f14cfe78327e7c4a2b92fcac7bfc674fdfad40c" + integrity sha512-MJgwfcSd9qxgDyEYpRU/CDxNpUadrK80JHuEQDG4Urn0m7tpSOgCBrtiSIa9S9KH8Tbuo/TN8SSQmJBvsw1HkA== dependencies: is-ssh "^1.3.0" - parse-url "^5.0.0" - -git-url-parse@^11.1.2: - version "11.1.2" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.1.2.tgz#aff1a897c36cc93699270587bea3dbcbbb95de67" - integrity sha512-gZeLVGY8QVKMIkckncX+iCq2/L8PlwncvDFKiWkBn9EtCfYDbliRTTp6qzyQ1VMdITUfq7293zDzfpjdiGASSQ== - dependencies: - git-up "^4.0.0" + parse-url "^3.0.2" -gitconfiglocal@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-2.1.0.tgz#07c28685c55cc5338b27b5acbcfe34aeb92e43d1" - integrity sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg== +git-url-parse@^10.0.1: + version "10.1.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-10.1.0.tgz#a27813218f8777e91d15f1c121b83bf14721b67e" + integrity sha512-goZOORAtFjU1iG+4zZgWq+N7It09PqS3Xsy43ZwhP5unDD0tTSmXTpqULHodMdJXGejm3COwXIhIRT6Z8DYVZQ== dependencies: - ini "^1.3.2" + git-up "^2.0.0" github-slugger@1.2.0: version "1.2.0" @@ -7175,9 +6989,9 @@ github-slugger@1.2.0: emoji-regex ">=6.0.0 <=6.1.1" github-slugger@^1.0.0, github-slugger@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" - integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== + version "1.2.1" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.2.1.tgz#47e904e70bf2dccd0014748142d31126cfd49508" + integrity sha512-SsZUjg/P03KPzQBt7OxJPasGw6NRO5uOgiZ5RGXVud5iSIZ0eNZeNp5rTwCxtavrRUa/A77j8mePVc5lEvk0KQ== dependencies: emoji-regex ">=6.0.0 <=6.1.1" @@ -7204,10 +7018,10 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== +glob-parent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" + integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== dependencies: is-glob "^4.0.1" @@ -7239,7 +7053,7 @@ glob@7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -7279,9 +7093,9 @@ global-prefix@^1.0.1: which "^1.2.14" globals-docs@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/globals-docs/-/globals-docs-2.4.1.tgz#d16887709f4a15eb22d97e96343591f87a2ee3db" - integrity sha512-qpPnUKkWnz8NESjrCvnlGklsgiQzlq+rcCxoG5uNQ+dNA7cFMCmn231slLAwS2N/PlkzZ3COL8CcS10jXmLHqg== + version "2.4.0" + resolved "https://registry.yarnpkg.com/globals-docs/-/globals-docs-2.4.0.tgz#f2c647544eb6161c7c38452808e16e693c2dafbb" + integrity sha512-B69mWcqCmT3jNYmSxRxxOXWfzu3Go8NQXPfl2o0qPd1EEFhwW0dFUg9ztTu915zPQzqwIhWAlw6hmfIcCK4kkQ== globals@^11.1.0, globals@^11.7.0: version "11.12.0" @@ -7294,9 +7108,9 @@ globals@^9.18.0: integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== globby@^10.0.0: - version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" - integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== + version "10.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22" + integrity sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A== dependencies: "@types/glob" "^7.1.1" array-union "^2.1.0" @@ -7324,7 +7138,7 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3: +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== @@ -7339,10 +7153,10 @@ gud@^1.0.0: resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== -handlebars@^4.4.0: - version "4.7.3" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.3.tgz#8ece2797826886cf8082d1726ff21d2a022550ee" - integrity sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg== +handlebars@^4.1.2: + version "4.5.3" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482" + integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA== dependencies: neo-async "^2.6.0" optimist "^0.6.1" @@ -7355,7 +7169,7 @@ har-schema@^2.0.0: resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= -har-validator@~5.1.3: +har-validator@~5.1.0: version "5.1.3" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== @@ -7457,9 +7271,9 @@ hash.js@^1.0.0, hash.js@^1.0.3: minimalistic-assert "^1.0.1" hast-util-is-element@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.0.4.tgz#059090a05cc02e275df1ad02caf8cb422fcd2e02" - integrity sha512-NFR6ljJRvDcyPP5SbV7MyPBgF47X3BsskLnmw1U34yL+X6YC0MoBx9EyMg8Jtx4FzGH95jw8+c1VPLHaRA0wDQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.0.3.tgz#423b4b26fe8bf1f25950fe052e9ce8f83fd5f6a4" + integrity sha512-C62CVn7jbjp89yOhhy7vrkSaB7Vk906Gtcw/Ihd+Iufnq+2pwOZjdPmpzpKLWJXPJBMDX3wXg4FqmdOayPcewA== hast-util-sanitize@^1.0.0: version "1.3.1" @@ -7485,9 +7299,9 @@ hast-util-to-html@^4.0.0: xtend "^4.0.1" hast-util-whitespace@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz#e4fe77c4a9ae1cb2e6c25e02df0043d0164f6e41" - integrity sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A== + version "1.0.3" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-1.0.3.tgz#6d161b307bd0693b5ec000c7c7e8b5445109ee34" + integrity sha512-AlkYiLTTwPOyxZ8axq2/bCwRUPjIPBfrHkXuCR92B38b3lSdU22R5F/Z4DL6a2kxWpekWq1w6Nj48tWat6GeRA== haversine@^1.1.0: version "1.1.1" @@ -7505,21 +7319,21 @@ hex-color-regex@^1.1.0: integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== highlight.js@^9.15.5, highlight.js@^9.7.0: - version "9.18.1" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c" - integrity sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg== + version "9.15.8" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.15.8.tgz#f344fda123f36f1a65490e932cf90569e4999971" + integrity sha512-RrapkKQWwE+wKdF73VsOa2RQdIoO3mxwJ4P8mhbI6KYJUraUHRKM5w5zQQKXNk0xNL4UVRdulV9SBJcmzJNzVA== history@^4.7.2, history@^4.9.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" - integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + version "4.9.0" + resolved "https://registry.yarnpkg.com/history/-/history-4.9.0.tgz#84587c2068039ead8af769e9d6a6860a14fa1bca" + integrity sha512-H2DkjCjXf0Op9OAr6nJ56fcRkTSNrUiv41vNJ6IswJjif6wlpZK0BTfFbi7qK9dXLSYZxkq5lBsj3vUjlYBYZA== dependencies: "@babel/runtime" "^7.1.2" loose-envify "^1.2.0" - resolve-pathname "^3.0.0" + resolve-pathname "^2.2.0" tiny-invariant "^1.0.2" tiny-warning "^1.0.0" - value-equal "^1.0.1" + value-equal "^0.4.0" hmac-drbg@^1.0.0: version "1.0.1" @@ -7530,13 +7344,20 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: +hoist-non-react-statics@^3.0.0: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== dependencies: react-is "^16.7.0" +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" + integrity sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA== + dependencies: + react-is "^16.7.0" + home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" @@ -7557,17 +7378,10 @@ hook-std@^2.0.0: resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-2.0.0.tgz#ff9aafdebb6a989a354f729bb6445cf4a3a7077c" integrity sha512-zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g== -hosted-git-info@^2.1.4, hosted-git-info@^2.7.1, hosted-git-info@^2.8.8: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -hosted-git-info@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.4.tgz#be4973eb1fd2737b11c9c7c19380739bb249f60d" - integrity sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ== - dependencies: - lru-cache "^5.1.1" +hosted-git-info@^2.1.4, hosted-git-info@^2.7.1, hosted-git-info@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" + integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== hsl-regex@^1.0.0: version "1.0.0" @@ -7584,10 +7398,10 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== -html-element-map@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.2.0.tgz#dfbb09efe882806af63d990cf6db37993f099f22" - integrity sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw== +html-element-map@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.1.0.tgz#e5aab9a834caf883b421f8bd9eaedcaac887d63c" + integrity sha512-iqiG3dTZmy+uUaTmHarTL+3/A2VW9ox/9uasKEZC+R/wAtUrTcRlXPSaPqsnWPfIu8wqn09jQNwMRqzL54jSYA== dependencies: array-filter "^1.0.0" @@ -7598,15 +7412,10 @@ html-encoding-sniffer@^1.0.2: dependencies: whatwg-encoding "^1.0.1" -html-escaper@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.1.tgz#beed86b5d2b921e92533aa11bce6d8e3b583dee7" - integrity sha512-hNX23TjWwD3q56HpWjUHOKj1+4KKlnjv9PcmBUYKVpga+2cnb9nDx/B1o0yO4n+RZXZdiNxzx6B24C9aNMTkkQ== - html-void-elements@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" - integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== + version "1.0.4" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.4.tgz#95e8bb5ecd6b88766569c2645f2b5f1591db9ba5" + integrity sha512-yMk3naGPLrfvUV9TdDbuYXngh/TpHbA6TrOw3HL9kS8yhwx7i309BReNg7CbAJXGE+UMJ6je5OqJ7lC63o6YuQ== htmlescape@^1.1.0: version "1.1.1" @@ -7654,14 +7463,6 @@ http-proxy-agent@^2.1.0: agent-base "4" debug "3.1.0" -http-proxy-agent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-3.0.0.tgz#598f42dc815949a11e2c6dbfdf24cd8a4c165327" - integrity sha512-uGuJaBWQWDQCJI5ip0d/VTYZW0nRrlLWXA4A7P1jrsa+f77rW2yXz315oBt6zGCF6l8C2tlMxY7ffULCj+5FhA== - dependencies: - agent-base "5" - debug "4" - http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -7676,6 +7477,14 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= +https-proxy-agent@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" + integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg== + dependencies: + agent-base "^4.3.0" + debug "^3.1.0" + https-proxy-agent@^2.2.3: version "2.2.4" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" @@ -7684,19 +7493,6 @@ https-proxy-agent@^2.2.3: agent-base "^4.3.0" debug "^3.1.0" -https-proxy-agent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" - integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== - dependencies: - agent-base "5" - debug "4" - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -7704,7 +7500,7 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -7716,7 +7512,12 @@ icss-replace-symbols@^1.1.0: resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= -ieee754@1.1.13, ieee754@^1.1.4: +ieee754@1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + integrity sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q= + +ieee754@^1.1.4: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== @@ -7744,9 +7545,9 @@ ignore@^4.0.6: integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== ignore@^5.0.2, ignore@^5.1.1, ignore@^5.1.2: - version "5.1.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" - integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== + version "5.1.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.2.tgz#e28e584d43ad7e92f96995019cc43b9e1ac49558" + integrity sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ== immutability-helper@^2.1.1: version "2.9.1" @@ -7755,6 +7556,11 @@ immutability-helper@^2.1.1: dependencies: invariant "^2.2.0" +immutable@^3.8.1: + version "3.8.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= + import-fresh@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" @@ -7763,10 +7569,10 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" -import-fresh@^3.0.0, import-fresh@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== +import-fresh@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" + integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -7796,7 +7602,7 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^3.0.0: +indent-string@^3.0.0, indent-string@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= @@ -7829,7 +7635,7 @@ inflight@^1.0.4, inflight@~1.0.6: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -7844,7 +7650,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.3, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== @@ -7864,9 +7670,9 @@ init-package-json@^1.10.3: validate-npm-package-name "^3.0.0" inject-lr-script@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/inject-lr-script/-/inject-lr-script-2.2.0.tgz#58d91cd99e5de1a3f172aa076f7db8651ee72db2" - integrity sha512-lFLjCOg2XP8233AiET5vFePo910vhNIkKHDzUptNhc+4Y7dsp/TNBiusUUpaxzaGd6UDHy0Lozfl9AwmteK6DQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/inject-lr-script/-/inject-lr-script-2.1.0.tgz#e61b5e84c118733906cbea01ec3d746698a39f65" + integrity sha1-5htehMEYczkGy+oB7D10Zpijn2U= dependencies: resp-modifier "^6.0.0" @@ -7897,9 +7703,9 @@ inquirer@6.2.0: through "^2.3.6" inquirer@^6.2.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + version "6.5.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" + integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA== dependencies: ansi-escapes "^3.2.0" chalk "^2.4.2" @@ -7939,27 +7745,18 @@ internal-ip@^3.0.1: default-gateway "^2.6.0" ipaddr.js "^1.5.2" -internal-slot@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" - integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== - dependencies: - es-abstract "^1.17.0-next.1" - has "^1.0.3" - side-channel "^1.0.2" - interpret@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== into-stream@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-5.1.1.tgz#f9a20a348a11f3c13face22763f2d02e127f4db8" - integrity sha512-krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA== + version "5.1.0" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-5.1.0.tgz#b05f37d8fed05c06a0b43b556d74e53e5af23878" + integrity sha512-cbDhb8qlxKMxPBk/QxTtYg1DQ4CwXmadu7quG3B7nrJsgSncEreF2kwWKZFdnjc/lSNNIkFPsjI7SM0Cx/QXPw== dependencies: from2 "^2.3.0" - p-is-promise "^3.0.0" + p-is-promise "^2.0.0" invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" @@ -8021,9 +7818,9 @@ is-accessor-descriptor@^1.0.0: kind-of "^6.0.0" is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" - integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.3.tgz#eb04cc47219a8895d8450ace4715abff2258a1f8" + integrity sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA== is-alphanumeric@^1.0.0: version "1.0.0" @@ -8031,18 +7828,13 @@ is-alphanumeric@^1.0.0: integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ= is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" - integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz#57ae21c374277b3defe0274c640a5704b8f6657c" + integrity sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA== dependencies: is-alphabetical "^1.0.0" is-decimal "^1.0.0" -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -8060,10 +7852,10 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" -is-boolean-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.1.tgz#10edc0900dd127697a92f6f9807c7617d68ac48e" - integrity sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ== +is-boolean-object@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" + integrity sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M= is-buffer@^1.1.0, is-buffer@^1.1.4, is-buffer@^1.1.5, is-buffer@~1.1.1: version "1.1.6" @@ -8071,14 +7863,14 @@ is-buffer@^1.1.0, is-buffer@^1.1.4, is-buffer@^1.1.5, is-buffer@~1.1.1: integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-buffer@^2.0.0, is-buffer@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" + integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== -is-callable@^1.1.4, is-callable@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== +is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== is-ci@^1.0.10: version "1.2.1" @@ -8128,14 +7920,14 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.3.tgz#381068759b9dc807d8c0dc0bfbae2b68e1da48b7" + integrity sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ== is-descriptor@^0.1.0: version "0.1.6" @@ -8195,9 +7987,11 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-finite@^1.0.0, is-finite@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= + dependencies: + number-is-nan "^1.0.0" is-fullwidth-code-point@^1.0.0: version "1.0.0" @@ -8243,9 +8037,9 @@ is-glob@^4.0.0, is-glob@^4.0.1: is-extglob "^2.1.1" is-hexadecimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" - integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz#e8a426a69b6d31470d3a33a47bb825cda02506ee" + integrity sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA== is-installed-globally@^0.1.0: version "0.1.0" @@ -8265,10 +8059,10 @@ is-npm@^1.0.0: resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= -is-number-object@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" - integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== +is-number-object@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" + integrity sha1-8mWrian0RQNO9q/xWo8AsA9VF5k= is-number@^2.1.0: version "2.1.0" @@ -8299,11 +8093,6 @@ is-obj@^1.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - is-path-inside@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" @@ -8350,12 +8139,12 @@ is-redirect@^1.0.0: resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= -is-regex@^1.0.4, is-regex@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= dependencies: - has "^1.0.3" + has "^1.0.1" is-relative@^1.0.0: version "1.0.0" @@ -8386,15 +8175,10 @@ is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0, is-stream@~1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== +is-string@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64" + integrity sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ= is-subset@^0.1.1: version "0.1.1" @@ -8422,7 +8206,7 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.1" -is-text-path@^1.0.1: +is-text-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= @@ -8452,9 +8236,9 @@ is-valid-glob@^1.0.0: integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= is-whitespace-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" - integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz#b3ad9546d916d7d3ffa78204bca0c26b56257fac" + integrity sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ== is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" @@ -8462,9 +8246,9 @@ is-windows@^1.0.1, is-windows@^1.0.2: integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-word-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" - integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.3.tgz#264d15541cbad0ba833d3992c34e6b40873b08aa" + integrity sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A== is-wsl@^1.1.0: version "1.1.0" @@ -8530,10 +8314,10 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -issue-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-5.0.0.tgz#0e22a40bc275b6c7da6ddf4a9b979e8ca9faf0d4" - integrity sha512-q/16W7EPHRL0FKVz9NU++TUsoygXGj6JOi88oulyAcQG+IEZ0T6teVdE+VLbe19OfL/tbV8Wi3Dfo0HedeHW0Q== +issue-parser@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-4.0.0.tgz#397817323abbb70c7c29cea2ff62448cf83b686c" + integrity sha512-1RmmAXHl5+cqTZ9dRr861xWy0Gkc9TWTEklgjKv+nhlB1dY1NmGBV8b20jTWRL5cPGpOIXkz84kEcDBM8Nc0cw== dependencies: lodash.capitalize "^4.2.1" lodash.escaperegexp "^4.1.2" @@ -8579,323 +8363,321 @@ istanbul-lib-source-maps@^3.0.1: rimraf "^2.6.3" source-map "^0.6.1" -istanbul-reports@^2.2.6: - version "2.2.7" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" - integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== +istanbul-reports@^2.1.1: + version "2.2.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" + integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA== dependencies: - html-escaper "^2.0.0" + handlebars "^4.1.2" java-properties@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211" integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ== -jest-changed-files@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" - integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== +jest-changed-files@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.8.0.tgz#7e7eb21cf687587a85e50f3d249d1327e15b157b" + integrity sha512-qgANC1Yrivsq+UrLXsvJefBKVoCsKB0Hv+mBb6NMjjZ90wwxCDmU3hsCXBya30cH+LnPYjwgcU65i6yJ5Nfuug== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^24.8.0" execa "^1.0.0" throat "^4.0.0" -jest-cli@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" - integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== +jest-cli@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.8.0.tgz#b075ac914492ed114fa338ade7362a301693e989" + integrity sha512-+p6J00jSMPQ116ZLlHJJvdf8wbjNbZdeSX9ptfHX06/MSNaXmKihQzx5vQcw0q2G6JsdVkUIdWbOWtSnaYs3yA== dependencies: - "@jest/core" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" + "@jest/core" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" exit "^0.1.2" import-local "^2.0.0" is-ci "^2.0.0" - jest-config "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" + jest-config "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" prompts "^2.0.1" realpath-native "^1.1.0" - yargs "^13.3.0" + yargs "^12.0.2" -jest-config@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" - integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== +jest-config@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.8.0.tgz#77db3d265a6f726294687cbbccc36f8a76ee0f4f" + integrity sha512-Czl3Nn2uEzVGsOeaewGWoDPD8GStxCpAe0zOYs2x2l0fZAgPbCr3uwUkgNKV3LwE13VXythM946cd5rdGkkBZw== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.9.0" - "@jest/types" "^24.9.0" - babel-jest "^24.9.0" + "@jest/test-sequencer" "^24.8.0" + "@jest/types" "^24.8.0" + babel-jest "^24.8.0" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^24.9.0" - jest-environment-node "^24.9.0" - jest-get-type "^24.9.0" - jest-jasmine2 "^24.9.0" + jest-environment-jsdom "^24.8.0" + jest-environment-node "^24.8.0" + jest-get-type "^24.8.0" + jest-jasmine2 "^24.8.0" jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" + jest-resolve "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" micromatch "^3.1.10" - pretty-format "^24.9.0" + pretty-format "^24.8.0" realpath-native "^1.1.0" -jest-diff@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" - integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== +jest-diff@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.8.0.tgz#146435e7d1e3ffdf293d53ff97e193f1d1546172" + integrity sha512-wxetCEl49zUpJ/bvUmIFjd/o52J+yWcoc5ZyPq4/W1LUKGEhRYDIbP1KcF6t+PvqNrGAFk4/JhtxDq/Nnzs66g== dependencies: chalk "^2.0.1" - diff-sequences "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" + diff-sequences "^24.3.0" + jest-get-type "^24.8.0" + pretty-format "^24.8.0" jest-docblock@^24.3.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" - integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz#b9c32dac70f72e4464520d2ba4aec02ab14db5dd" + integrity sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg== dependencies: detect-newline "^2.1.0" -jest-each@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" - integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== +jest-each@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.8.0.tgz#a05fd2bf94ddc0b1da66c6d13ec2457f35e52775" + integrity sha512-NrwK9gaL5+XgrgoCsd9svsoWdVkK4gnvyhcpzd6m487tXHqIdYeykgq3MKI1u4I+5Zf0tofr70at9dWJDeb+BA== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" - jest-get-type "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - -jest-environment-jsdom@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" - integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" + jest-get-type "^24.8.0" + jest-util "^24.8.0" + pretty-format "^24.8.0" + +jest-environment-jsdom@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz#300f6949a146cabe1c9357ad9e9ecf9f43f38857" + integrity sha512-qbvgLmR7PpwjoFjM/sbuqHJt/NCkviuq9vus9NBn/76hhSidO+Z6Bn9tU8friecegbJL8gzZQEMZBQlFWDCwAQ== + dependencies: + "@jest/environment" "^24.8.0" + "@jest/fake-timers" "^24.8.0" + "@jest/types" "^24.8.0" + jest-mock "^24.8.0" + jest-util "^24.8.0" jsdom "^11.5.1" -jest-environment-node@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" - integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== +jest-environment-node@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.8.0.tgz#d3f726ba8bc53087a60e7a84ca08883a4c892231" + integrity sha512-vIGUEScd1cdDgR6sqn2M08sJTRLQp6Dk/eIkCeO4PFHxZMOgy+uYLPMC4ix3PEfM5Au/x3uQ/5Tl0DpXXZsJ/Q== dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" + "@jest/environment" "^24.8.0" + "@jest/fake-timers" "^24.8.0" + "@jest/types" "^24.8.0" + jest-mock "^24.8.0" + jest-util "^24.8.0" -jest-get-type@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" - integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== +jest-get-type@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.8.0.tgz#a7440de30b651f5a70ea3ed7ff073a32dfe646fc" + integrity sha512-RR4fo8jEmMD9zSz2nLbs2j0zvPpk/KCEz3a62jJWbd2ayNo0cb+KFRxPHVhE4ZmgGJEQp0fosmNz84IfqM8cMQ== -jest-haste-map@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" - integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== +jest-haste-map@^24.8.0: + version "24.8.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.8.1.tgz#f39cc1d2b1d907e014165b4bd5a957afcb992982" + integrity sha512-SwaxMGVdAZk3ernAx2Uv2sorA7jm3Kx+lR0grp6rMmnY06Kn/urtKx1LPN2mGTea4fCT38impYT28FfcLUhX0g== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^24.8.0" anymatch "^2.0.0" fb-watchman "^2.0.0" graceful-fs "^4.1.15" invariant "^2.2.4" - jest-serializer "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.9.0" + jest-serializer "^24.4.0" + jest-util "^24.8.0" + jest-worker "^24.6.0" micromatch "^3.1.10" sane "^4.0.3" walker "^1.0.7" optionalDependencies: fsevents "^1.2.7" -jest-jasmine2@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" - integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== +jest-jasmine2@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz#a9c7e14c83dd77d8b15e820549ce8987cc8cd898" + integrity sha512-cEky88npEE5LKd5jPpTdDCLvKkdyklnaRycBXL6GNmpxe41F0WN44+i7lpQKa/hcbXaQ+rc9RMaM4dsebrYong== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" + "@jest/environment" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" co "^4.6.0" - expect "^24.9.0" + expect "^24.8.0" is-generator-fn "^2.0.0" - jest-each "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" + jest-each "^24.8.0" + jest-matcher-utils "^24.8.0" + jest-message-util "^24.8.0" + jest-runtime "^24.8.0" + jest-snapshot "^24.8.0" + jest-util "^24.8.0" + pretty-format "^24.8.0" throat "^4.0.0" -jest-leak-detector@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" - integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== +jest-leak-detector@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz#c0086384e1f650c2d8348095df769f29b48e6980" + integrity sha512-cG0yRSK8A831LN8lIHxI3AblB40uhv0z+SsQdW3GoMMVcK+sJwrIIyax5tu3eHHNJ8Fu6IMDpnLda2jhn2pD/g== dependencies: - jest-get-type "^24.9.0" - pretty-format "^24.9.0" + pretty-format "^24.8.0" -jest-matcher-utils@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" - integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== +jest-matcher-utils@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz#2bce42204c9af12bde46f83dc839efe8be832495" + integrity sha512-lex1yASY51FvUuHgm0GOVj7DCYEouWSlIYmCW7APSqB9v8mXmKSn5+sWVF0MhuASG0bnYY106/49JU1FZNl5hw== dependencies: chalk "^2.0.1" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" + jest-diff "^24.8.0" + jest-get-type "^24.8.0" + pretty-format "^24.8.0" -jest-message-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" - integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== +jest-message-util@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.8.0.tgz#0d6891e72a4beacc0292b638685df42e28d6218b" + integrity sha512-p2k71rf/b6ns8btdB0uVdljWo9h0ovpnEe05ZKWceQGfXYr4KkzgKo3PBi8wdnd9OtNh46VpNIJynUn/3MKm1g== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" "@types/stack-utils" "^1.0.1" chalk "^2.0.1" micromatch "^3.1.10" slash "^2.0.0" stack-utils "^1.0.1" -jest-mock@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" - integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== +jest-mock@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.8.0.tgz#2f9d14d37699e863f1febf4e4d5a33b7fdbbde56" + integrity sha512-6kWugwjGjJw+ZkK4mDa0Df3sDlUTsV47MSrT0nGQ0RBWJbpODDQ8MHDVtGtUYBne3IwZUhtB7elxHspU79WH3A== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^24.8.0" jest-pnp-resolver@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== -jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" - integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== +jest-regex-util@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" + integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== -jest-resolve-dependencies@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" - integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== +jest-resolve-dependencies@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz#19eec3241f2045d3f990dba331d0d7526acff8e0" + integrity sha512-hyK1qfIf/krV+fSNyhyJeq3elVMhK9Eijlwy+j5jqmZ9QsxwKBiP6qukQxaHtK8k6zql/KYWwCTQ+fDGTIJauw== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^24.8.0" jest-regex-util "^24.3.0" - jest-snapshot "^24.9.0" + jest-snapshot "^24.8.0" -jest-resolve@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" - integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== +jest-resolve@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.8.0.tgz#84b8e5408c1f6a11539793e2b5feb1b6e722439f" + integrity sha512-+hjSzi1PoRvnuOICoYd5V/KpIQmkAsfjFO71458hQ2Whi/yf1GDeBOFj8Gxw4LrApHsVJvn5fmjcPdmoUHaVKw== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^24.8.0" browser-resolve "^1.11.3" chalk "^2.0.1" jest-pnp-resolver "^1.2.1" realpath-native "^1.1.0" -jest-runner@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" - integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== +jest-runner@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.8.0.tgz#4f9ae07b767db27b740d7deffad0cf67ccb4c5bb" + integrity sha512-utFqC5BaA3JmznbissSs95X1ZF+d+4WuOWwpM9+Ak356YtMhHE/GXUondZdcyAAOTBEsRGAgH/0TwLzfI9h7ow== dependencies: "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" + "@jest/environment" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" chalk "^2.4.2" exit "^0.1.2" graceful-fs "^4.1.15" - jest-config "^24.9.0" + jest-config "^24.8.0" jest-docblock "^24.3.0" - jest-haste-map "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-leak-detector "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" + jest-haste-map "^24.8.0" + jest-jasmine2 "^24.8.0" + jest-leak-detector "^24.8.0" + jest-message-util "^24.8.0" + jest-resolve "^24.8.0" + jest-runtime "^24.8.0" + jest-util "^24.8.0" jest-worker "^24.6.0" source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" - integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== +jest-runtime@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.8.0.tgz#05f94d5b05c21f6dc54e427cd2e4980923350620" + integrity sha512-Mq0aIXhvO/3bX44ccT+czU1/57IgOMyy80oM0XR/nyD5zgBcesF84BPabZi39pJVA6UXw+fY2Q1N+4BiVUBWOA== dependencies: "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" + "@jest/environment" "^24.8.0" "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" + "@types/yargs" "^12.0.2" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" + jest-config "^24.8.0" + jest-haste-map "^24.8.0" + jest-message-util "^24.8.0" + jest-mock "^24.8.0" jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" + jest-resolve "^24.8.0" + jest-snapshot "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" realpath-native "^1.1.0" slash "^2.0.0" strip-bom "^3.0.0" - yargs "^13.3.0" + yargs "^12.0.2" -jest-serializer@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" - integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== +jest-serializer@^24.4.0: + version "24.4.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" + integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q== -jest-snapshot@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" - integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== +jest-snapshot@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.8.0.tgz#3bec6a59da2ff7bc7d097a853fb67f9d415cb7c6" + integrity sha512-5ehtWoc8oU9/cAPe6fez6QofVJLBKyqkY2+TlKTOf0VllBB/mqUNdARdcjlZrs9F1Cv+/HKoCS/BknT0+tmfPg== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^24.9.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" - expect "^24.9.0" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" + expect "^24.8.0" + jest-diff "^24.8.0" + jest-matcher-utils "^24.8.0" + jest-message-util "^24.8.0" + jest-resolve "^24.8.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^24.9.0" - semver "^6.2.0" - -jest-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" - integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== - dependencies: - "@jest/console" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/source-map" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" + pretty-format "^24.8.0" + semver "^5.5.0" + +jest-util@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.8.0.tgz#41f0e945da11df44cc76d64ffb915d0716f46cd1" + integrity sha512-DYZeE+XyAnbNt0BG1OQqKy/4GVLPtzwGx5tsnDrFcax36rVE3lTA5fbvgmbVPUZf9w77AJ8otqR4VBbfFJkUZA== + dependencies: + "@jest/console" "^24.7.1" + "@jest/fake-timers" "^24.8.0" + "@jest/source-map" "^24.3.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" callsites "^3.0.0" chalk "^2.0.1" graceful-fs "^4.1.15" @@ -8904,37 +8686,37 @@ jest-util@^24.9.0: slash "^2.0.0" source-map "^0.6.0" -jest-validate@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" - integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== +jest-validate@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.8.0.tgz#624c41533e6dfe356ffadc6e2423a35c2d3b4849" + integrity sha512-+/N7VOEMW1Vzsrk3UWBDYTExTPwf68tavEPKDnJzrC6UlHtUDU/fuEdXqFoHzv9XnQ+zW6X3qMZhJ3YexfeLDA== dependencies: - "@jest/types" "^24.9.0" - camelcase "^5.3.1" + "@jest/types" "^24.8.0" + camelcase "^5.0.0" chalk "^2.0.1" - jest-get-type "^24.9.0" - leven "^3.1.0" - pretty-format "^24.9.0" - -jest-watcher@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" - integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== - dependencies: - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" + jest-get-type "^24.8.0" + leven "^2.1.0" + pretty-format "^24.8.0" + +jest-watcher@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.8.0.tgz#58d49915ceddd2de85e238f6213cef1c93715de4" + integrity sha512-SBjwHt5NedQoVu54M5GEx7cl7IGEFFznvd/HNT8ier7cCAx/Qgu9ZMlaTQkvK22G1YOpcWBLQPFSImmxdn3DAw== + dependencies: + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" + "@types/yargs" "^12.0.9" ansi-escapes "^3.0.0" chalk "^2.0.1" - jest-util "^24.9.0" + jest-util "^24.8.0" string-length "^2.0.0" -jest-worker@^24.6.0, jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== +jest-worker@^24.6.0: + version "24.6.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.6.0.tgz#7f81ceae34b7cde0c9827a6980c35b7cdc0161b3" + integrity sha512-jDwgW5W9qGNvpI1tNnvajh0a5IE/PuGLFmHk6aR/BZFz8tSgGw17GsDPXAJ6p91IvYDjOw8GpFbvvZGAK+DPQQ== dependencies: - merge-stream "^2.0.0" + merge-stream "^1.0.1" supports-color "^6.1.0" jest-yaml-transform@^0.2.0: @@ -8946,12 +8728,12 @@ jest-yaml-transform@^0.2.0: js-yaml "^3.9.1" jest@^24.1.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" - integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-24.8.0.tgz#d5dff1984d0d1002196e9b7f12f75af1b2809081" + integrity sha512-o0HM90RKFRNWmAWvlyV8i5jGZ97pFwkeVoGvPW1EtLTgJc2+jcuqcbbqcSZLE/3f2S5pt0y2ZBETuhpWNl1Reg== dependencies: import-local "^2.0.0" - jest-cli "^24.9.0" + jest-cli "^24.8.0" jmespath@0.15.0: version "0.15.0" @@ -8959,9 +8741,14 @@ jmespath@0.15.0: integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= js-base64@^2.1.9: - version "2.5.2" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.2.tgz#313b6274dda718f714d00b3330bbae6e38e90209" - integrity sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ== + version "2.5.1" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" + integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw== + +js-levenshtein@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -9097,12 +8884,12 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" - integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== +json5@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" + integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== dependencies: - minimist "^1.2.5" + minimist "^1.2.0" jsonfile@^4.0.0: version "4.0.0" @@ -9131,10 +8918,10 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jsx-ast-utils@^2.2.1, jsx-ast-utils@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f" - integrity sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA== +jsx-ast-utils@^2.1.0, jsx-ast-utils@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz#4d4973ebf8b9d2837ee91a8208cc66f3a2776cfb" + integrity sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ== dependencies: array-includes "^3.0.3" object.assign "^4.1.0" @@ -9164,11 +8951,11 @@ kind-of@^5.0.0: integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== -kleur@^3.0.3: +kleur@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== @@ -9228,29 +9015,22 @@ lead@^1.0.0: "leaflet.polylinemeasure@github:ppete2/Leaflet.PolylineMeasure": version "1.0.0" - resolved "https://codeload.github.com/ppete2/Leaflet.PolylineMeasure/tar.gz/b85a4b9d3541e4339f9b25ca2264f5af8b42344d" + resolved "https://codeload.github.com/ppete2/Leaflet.PolylineMeasure/tar.gz/8fed0cbe7c17dae4e1ce0852fa243d8467325a77" leaflet@^1.5.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.6.0.tgz#aecbb044b949ec29469eeb31c77a88e2f448f308" - integrity sha512-CPkhyqWUKZKFJ6K8umN5/D2wrJ2+/8UIpXppY7QDnUZW5bZL5+SEI2J7GBpwh4LIupOKqbNSQXgqmrEJopHVNQ== + version "1.5.1" + resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.5.1.tgz#9afb9d963d66c870066b1342e7a06f92840f46bf" + integrity sha512-ekM9KAeG99tYisNBg0IzEywAlp0hYI5XRipsqRXyRTeuU8jcuntilpp+eFf5gaE0xubc9RuSNIVtByEKwqFV0w== left-pad@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= levn@^0.3.0, levn@~0.3.0: version "0.3.0" @@ -9261,9 +9041,9 @@ levn@^0.3.0, levn@~0.3.0: type-check "~0.3.2" libcipm@^4.0.7: - version "4.0.8" - resolved "https://registry.yarnpkg.com/libcipm/-/libcipm-4.0.8.tgz#dcea4919e10dfbce420327e63901613b9141bc89" - integrity sha512-IN3hh2yDJQtZZ5paSV4fbvJg4aHxCCg5tcZID/dSVlTuUiWktsgaldVljJv6Z5OUlYspx6xQkbR0efNodnIrOA== + version "4.0.7" + resolved "https://registry.yarnpkg.com/libcipm/-/libcipm-4.0.7.tgz#76cd675c98bdaae64db88b782b01b804b6d02c8a" + integrity sha512-fTq33otU3PNXxxCTCYCYe7V96o59v/o7bvtspmbORXpgFk+wcWrGf5x6tBgui5gCed/45/wtPomBsZBYm5KbIw== dependencies: bin-links "^1.1.2" bluebird "^3.5.1" @@ -9271,7 +9051,7 @@ libcipm@^4.0.7: find-npm-prefix "^1.0.2" graceful-fs "^4.1.11" ini "^1.3.5" - lock-verify "^2.1.0" + lock-verify "^2.0.2" mkdirp "^0.5.1" npm-lifecycle "^3.0.0" npm-logical-tree "^1.2.1" @@ -9380,10 +9160,10 @@ libnpmteam@^1.0.2: get-stream "^4.0.0" npm-registry-fetch "^4.0.0" -libnpx@^10.2.2: - version "10.2.3" - resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.3.tgz#d5e01f12d383ffca9a947807ca6a8f587d38fe2c" - integrity sha512-bCvdARu55fLQBhMfcYGF0GznF1kB2sqxq/9zKZ3652M8DDFWpVpCnpgzjzn0yWMDMez5ZGMBiX24yR11uEYZVQ== +libnpx@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.0.tgz#1bf4a1c9f36081f64935eb014041da10855e3102" + integrity sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ== dependencies: dotenv "^5.0.1" npm-package-arg "^6.0.0" @@ -9451,12 +9231,12 @@ loader-utils@^0.2.16, loader-utils@~0.2.2, loader-utils@~0.2.5: object-assign "^4.0.1" loader-utils@^1.0.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== dependencies: big.js "^5.2.2" - emojis-list "^3.0.0" + emojis-list "^2.0.0" json5 "^1.0.1" locale-currency@0.0.2: @@ -9488,11 +9268,10 @@ locate-path@^5.0.0: p-locate "^4.1.0" lock-verify@^2.0.2, lock-verify@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.2.0.tgz#12432feb68bb647071c78c44bde16029a0f7d935" - integrity sha512-BhM1Vqsu7x0s+EalTifNjdDPks+ZjdAhComvnA6VcCIlDOI5ouELXqAe1BYuEIP4zGN0W08xVm6byJV1LnCiJg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.1.0.tgz#fff4c918b8db9497af0c5fa7f6d71555de3ceb47" + integrity sha512-vcLpxnGvrqisKvLQ2C2v0/u7LVly17ak2YSgoK4PrdsYBXQIax19vhKiLfvKNFx7FRrpTnitrpzF/uuCMuorIg== dependencies: - "@iarna/cli" "^1.2.0" npm-package-arg "^6.1.0" semver "^5.4.1" @@ -9715,7 +9494,7 @@ lodash@4.17.14: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.14.tgz#9ce487ae66c96254fe20b599f21b6816028078ba" integrity sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw== -lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5: +lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -9736,14 +9515,14 @@ loglevel-colored-level-prefix@^1.0.0: loglevel "^1.4.1" loglevel@^1.4.1: - version "1.6.7" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz#b3e034233188c68b889f5b862415306f565e2c56" - integrity sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A== + version "1.6.3" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280" + integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA== longest-streak@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" - integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.3.tgz#3de7a3f47ee18e9074ded8575b5c091f5d0a4105" + integrity sha512-9lz5IVdpwsKLMzQi0MQ+oD9EA0mIGcWYP7jXMTZVXP8D42PwuAk+M/HBFYQoxt1G5OR8m7aSIgb1UymfWGBWEw== longest@^1.0.1: version "1.0.1" @@ -9878,9 +9657,9 @@ map-visit@^1.0.0: object-visit "^1.0.0" markdown-escapes@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" - integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.3.tgz#6155e10416efaafab665d466ce598216375195f5" + integrity sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw== markdown-table@^1.1.0: version "1.1.3" @@ -9888,9 +9667,9 @@ markdown-table@^1.1.0: integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== marked-terminal@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-3.3.0.tgz#25ce0c0299285998c7636beaefc87055341ba1bd" - integrity sha512-+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A== + version "3.2.0" + resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-3.2.0.tgz#3fc91d54569332bcf096292af178d82219000474" + integrity sha512-Yr1yVS0BbDG55vx7be1D0mdv+jGs9AW563o/Tt/7FTsId2J0yqhrTeXAqq/Q0DyyXltIn6CSxzesQuFqXgafjQ== dependencies: ansi-escapes "^3.1.0" cardinal "^2.1.1" @@ -9899,15 +9678,15 @@ marked-terminal@^3.2.0: node-emoji "^1.4.1" supports-hyperlinks "^1.0.1" -marked@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.7.0.tgz#b64201f051d271b1edc10a04d1ae9b74bb8e5c0e" - integrity sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg== +marked@^0.6.0: + version "0.6.3" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.3.tgz#79babad78af638ba4d522a9e715cdfdd2429e946" + integrity sha512-Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ== mastarm@^5.1.3: - version "5.3.1" - resolved "https://registry.yarnpkg.com/mastarm/-/mastarm-5.3.1.tgz#37511b77e9974e142719d00343a45ad6e51bfa47" - integrity sha512-SRVWXGT8x2Iwx/GiWeLZOfgh2JH/NsHo++CzV+gW3ZPv7cNglKjQjW1YvekdFQlba5OzGwSYTKfnS6C6x59XnA== + version "5.1.3" + resolved "https://registry.yarnpkg.com/mastarm/-/mastarm-5.1.3.tgz#954258f4db34e908dc2e3b923b7caaaa5e24655e" + integrity sha512-tPlZP/DSPMEKmB+j9Bjvu8vATOW4DuI1y0X77vttKUA/e0BsoWsb3imteEP0OAu6eQW47n/PU7EdEodqurdinA== dependencies: "@babel/core" "^7.3.4" "@babel/plugin-proposal-class-properties" "^7.3.4" @@ -9950,12 +9729,9 @@ mastarm@^5.1.3: eslint-plugin-promise "^4.0.1" eslint-plugin-react "^7.12.4" eslint-plugin-standard "^4.0.0" - execa "^2.0.4" exorcist "^1.0.1" flow-bin "0.84.0" flow-runtime "^0.17.0" - fs-extra "^8.1.0" - git-repo-is-up-to-date "^1.1.0" glob "^7.1.3" isomorphic-fetch "^2.2.1" jest "^24.1.0" @@ -9983,9 +9759,9 @@ mastarm@^5.1.3: yamljs "^0.3.0" math-expression-evaluator@^1.2.14: - version "1.2.22" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz#c14dcb3d8b4d150e5dcea9c68c8dad80309b0d5e" - integrity sha512-L0j0tFVZBQQLeEjmWOvDLoRciIY8gQGWahvkztXUal8jH8R5Rlqo9GCvgqvXcy9LQhEWdQCVvzqAbxgYNt4blQ== + version "1.2.17" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" + integrity sha1-3oGf282E3M2PrlnGrreWFbnSZqw= math-random@^1.0.1: version "1.0.4" @@ -10011,16 +9787,16 @@ md5@^2.2.1: is-buffer "~1.1.1" mdast-util-compact@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz#d531bb7667b5123abf20859be086c4d06c894593" - integrity sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.3.tgz#98a25cc8a7865761a41477b3a87d1dcef0b1e79d" + integrity sha512-nRiU5GpNy62rZppDKbLwhhtw5DXoFMqw9UNZFmlPsNaQCZ//WLjGKUwWMdJrUH+Se7UvtO2gXtAMe0g/N+eI5w== dependencies: unist-util-visit "^1.1.0" mdast-util-definitions@^1.2.0: - version "1.2.5" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-1.2.5.tgz#3fe622a4171c774ebd06f11e9f8af7ec53ea5c74" - integrity sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA== + version "1.2.4" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-1.2.4.tgz#2b54ad4eecaff9d9fcb6bf6f9f6b68b232d77ca7" + integrity sha512-HfUArPog1j4Z78Xlzy9Q4aHLnrF/7fb57cooTHypyGoe2XFNbcx/kWZDoOz+ra8CkUzvg3+VHV434yqEd1DRmA== dependencies: unist-util-visit "^1.0.0" @@ -10049,9 +9825,9 @@ mdast-util-to-hast@^3.0.0: xtend "^4.0.1" mdast-util-to-string@^1.0.0, mdast-util-to-string@^1.0.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" - integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== + version "1.0.6" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.6.tgz#7d85421021343b33de1552fc71cb8e5b4ae7536d" + integrity sha512-868pp48gUPmZIhfKrLbaDneuzGiw3OTDjHc5M1kAepR2CWBJ+HpEsm252K4aXdiP5coVZaJPOqGtVU6Po8xnXg== mdast-util-toc@^3.0.0: version "3.1.0" @@ -10068,10 +9844,10 @@ mdn-data@2.0.4: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== -mdn-data@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" - integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== +mdn-data@~1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" + integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== mdurl@^1.0.1: version "1.0.1" @@ -10112,13 +9888,6 @@ measure-text@^0.0.4: url-loader "~0.5.7" webpack "^2.0.7-beta" -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= - dependencies: - mimic-fn "^1.0.0" - mem@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" @@ -10136,6 +9905,21 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" +meow@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" + integrity sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A== + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist "^1.1.3" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + meow@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" @@ -10151,15 +9935,17 @@ meow@^5.0.0: trim-newlines "^2.0.0" yargs-parser "^10.0.0" -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +merge-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= + dependencies: + readable-stream "^2.0.1" -merge2@^1.2.3, merge2@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" - integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== +merge2@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" + integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA== merge@^1.2.1: version "1.2.1" @@ -10246,17 +10032,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.43.0: - version "1.43.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" - integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== +mime-db@1.42.0: + version "1.42.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" + integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.26" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" - integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== + version "2.1.25" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.25.tgz#39772d46621f93e2a80a856c53b86a62156a6437" + integrity sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg== dependencies: - mime-db "1.43.0" + mime-db "1.42.0" mime@1.3.x: version "1.3.6" @@ -10278,7 +10064,7 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== -mimic-fn@^2.0.0, mimic-fn@^2.1.0: +mimic-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== @@ -10322,16 +10108,16 @@ minimist@0.0.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.5.tgz#d7aa327bcecf518f9106ac6b8f003fa3bcea8566" integrity sha1-16oye87PUY+RBqxrjwA/o7zqhWY= -minimist@1.2.0: +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" @@ -10376,12 +10162,12 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@~0.5.0, mkdirp@~0.5.1: - version "0.5.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" - integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: - minimist "^1.2.5" + minimist "0.0.8" modify-values@^1.0.0: version "1.0.1" @@ -10409,16 +10195,16 @@ module-deps-sortable@5.0.0: xtend "^4.0.0" module-deps@^6.0.0: - version "6.2.2" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.2.tgz#d8a15c2265dfc119153c29bb47386987d0ee423b" - integrity sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w== + version "6.2.1" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.1.tgz#cfe558784060e926824f474b4e647287837cda50" + integrity sha512-UnEn6Ah36Tu4jFiBbJVUtt0h+iXqxpLqDvPS8nllbw5RZFmNJ1+Mz5BjYnM9ieH80zyxHkARGLnMIHlPK5bu6A== dependencies: JSONStream "^1.0.3" browser-resolve "^1.7.0" cached-path-relative "^1.0.2" concat-stream "~1.6.0" defined "^1.0.0" - detective "^5.2.0" + detective "^5.0.2" duplexer2 "^0.1.2" inherits "^2.0.1" parents "^1.0.0" @@ -10437,7 +10223,14 @@ mold-source-map@~0.4.0: convert-source-map "^1.1.0" through "~2.2.7" -moment-timezone@^0.5.23, moment-timezone@^0.5.27: +moment-timezone@^0.5.23: + version "0.5.26" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.26.tgz#c0267ca09ae84631aa3dc33f65bedbe6e8e0d772" + integrity sha512-sFP4cgEKTCymBBKgoxZjYzlSovC20Y6J7y3nanDc5RoBIXKlZhoYwBoZGe3flwU6A372AcRwScH8KiwV6zjy1g== + dependencies: + moment ">= 2.9.0" + +moment-timezone@^0.5.27: version "0.5.28" resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.28.tgz#f093d789d091ed7b055d82aa81a82467f72e4338" integrity sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw== @@ -10449,10 +10242,10 @@ moment-timezone@^0.5.23, moment-timezone@^0.5.27: resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== -moo@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" - integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== +moo@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e" + integrity sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw== move-concurrently@^1.0.1: version "1.0.1" @@ -10519,16 +10312,25 @@ natural-compare@^1.4.0: integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= nearley@^2.7.10: - version "2.19.1" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.19.1.tgz#4af4006e16645ff800e9f993c3af039857d9dbdc" - integrity sha512-xq47GIUGXxU9vQg7g/y1o1xuKnkO7ev4nRWqftmQrLkfnE/FjRqDaGOUakM8XHPn/6pW3bGjU2wgoJyId90rqg== + version "2.18.0" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.18.0.tgz#a9193612dd6d528a2e47e743b1dc694cfe105223" + integrity sha512-/zQOMCeJcioI0xJtd5RpBiWw2WP7wLe6vq8/3Yu0rEwgus/G/+pViX80oA87JdVgjRt2895mZSv2VfZmy4W1uw== dependencies: commander "^2.19.0" - moo "^0.5.0" + moo "^0.4.3" railroad-diagrams "^1.0.0" randexp "0.4.6" semver "^5.4.1" +needle@^2.2.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + neo-async@^2.5.0, neo-async@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" @@ -10567,9 +10369,9 @@ node-emoji@^1.10.0, node-emoji@^1.4.1: lodash.toarray "^4.4.0" node-fetch-npm@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" - integrity sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" + integrity sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw== dependencies: encoding "^0.1.11" json-parse-better-errors "^1.0.0" @@ -10588,22 +10390,22 @@ node-fetch@^2.3.0: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== -node-gyp@^5.0.2, node-gyp@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.0.tgz#8e31260a7af4a2e2f994b0673d4e0b3866156332" - integrity sha512-OUTryc5bt/P8zVgNUmC6xdXiDJxLMAW8cF5tLQOT9E5sOQj+UeQxnnPy74K3CLCa/SOjjBlbuzDLR8ANwA+wmw== +node-gyp@^5.0.2, node-gyp@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.0.5.tgz#f6cf1da246eb8c42b097d7cd4d6c3ce23a4163af" + integrity sha512-WABl9s4/mqQdZneZHVWVG4TVr6QQJZUC6PAx47ITSk9lreZ1n+7Z9mMAIbA3vnO4J9W20P7LhCxtzfWsAD/KDw== dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.2" - mkdirp "^0.5.1" - nopt "^4.0.1" - npmlog "^4.1.2" - request "^2.88.0" - rimraf "^2.6.3" - semver "^5.7.1" + env-paths "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + request "^2.87.0" + rimraf "2" + semver "~5.3.0" tar "^4.4.12" - which "^1.3.1" + which "1" node-int64@^0.4.0: version "0.4.0" @@ -10644,10 +10446,10 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^5.4.2: - version "5.4.3" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" - integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== +node-notifier@^5.2.1: + version "5.4.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.0.tgz#7b455fdce9f7de0c63538297354f3db468426e6a" + integrity sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ== dependencies: growly "^1.3.0" is-wsl "^1.1.0" @@ -10655,17 +10457,40 @@ node-notifier@^5.4.2: shellwords "^0.1.1" which "^1.3.0" -node-releases@^1.1.52: - version "1.1.52" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9" - integrity sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ== +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-releases@^1.1.25: + version "1.1.26" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.26.tgz#f30563edc5c7dc20cf524cc8652ffa7be0762937" + integrity sha512-fZPsuhhUHMTlfkhDLGtfY80DSJTjOcx+qD1j5pqPkuhUHVS7xHZIg9EE4DHK8O3f0zTxXHX5VIkDG8pu98/wfQ== + dependencies: + semver "^5.3.0" + +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= dependencies: - semver "^6.3.0" + abbrev "1" nopt@^4.0.1, nopt@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" - integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= dependencies: abbrev "1" osenv "^0.1.4" @@ -10697,7 +10522,7 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= -normalize-url@^1.4.0: +normalize-url@^1.4.0, normalize-url@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= @@ -10707,15 +10532,15 @@ normalize-url@^1.4.0: query-string "^4.1.0" sort-keys "^1.0.0" -normalize-url@^3.0.0, normalize-url@^3.3.0: +normalize-url@^3.0.0: version "3.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== normalize-url@^4.0.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + version "4.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" + integrity sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ== now-and-later@^2.0.0: version "2.0.1" @@ -10725,9 +10550,9 @@ now-and-later@^2.0.0: once "^1.3.2" npm-audit-report@^1.3.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.3.tgz#8226deeb253b55176ed147592a3995442f2179ed" - integrity sha512-8nH/JjsFfAWMvn474HB9mpmMjrnKb1Hx/oTAdjv4PT9iZBvBxiZ+wtDUapHCJwLqYGQVPaAfs+vL5+5k9QndXw== + version "1.3.2" + resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.2.tgz#303bc78cd9e4c226415076a4f7e528c89fc77018" + integrity sha512-abeqS5ONyXNaZJPGAf6TOUMNdSe1Y6cpc9MLBRn+CuUoYbfdca6AxOyXVlfIv9OgKX+cacblbG5w7A6ccwoTPw== dependencies: cli-table3 "^0.5.0" console-control-strings "^1.1.0" @@ -10752,9 +10577,9 @@ npm-install-checks@^3.0.2: semver "^2.3.0 || 3.x || 4 || 5" npm-lifecycle@^3.0.0, npm-lifecycle@^3.1.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309" - integrity sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g== + version "3.1.4" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.4.tgz#de6975c7d8df65f5150db110b57cce498b0b604c" + integrity sha512-tgs1PaucZwkxECGKhC/stbEgFyc3TGh2TJcg2CDr6jbvQRdteHNhmMeljRzpe4wgFAXQADoy1cSqqi7mtiAa5A== dependencies: byline "^5.0.0" graceful-fs "^4.1.15" @@ -10785,14 +10610,13 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.12, npm-packlist@^1.4.8: - version "1.4.8" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" - integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== +npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848" + integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" - npm-normalize-package-bin "^1.0.1" npm-pick-manifest@^3.0.0, npm-pick-manifest@^3.0.2: version "3.0.2" @@ -10803,19 +10627,19 @@ npm-pick-manifest@^3.0.0, npm-pick-manifest@^3.0.2: npm-package-arg "^6.0.0" semver "^5.4.1" -npm-profile@^4.0.2, npm-profile@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.4.tgz#28ee94390e936df6d084263ee2061336a6a1581b" - integrity sha512-Ta8xq8TLMpqssF0H60BXS1A90iMoM6GeKwsmravJ6wYjWwSzcYBTdyWa3DZCYqPutacBMEm7cxiOkiIeCUAHDQ== +npm-profile@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.2.tgz#8272a71c19634d0dce9c35a5daf8ee589cbb0f52" + integrity sha512-VRsC04pvRH+9cF+PoVh2nTmJjiG21yu59IHpsBpkxk+jaGAV8lxx96G4SDc0jOHAkfWLXbc6kIph3dGAuRnotQ== dependencies: aproba "^1.1.2 || 2" figgy-pudding "^3.4.1" npm-registry-fetch "^4.0.0" -npm-registry-fetch@^4.0.0, npm-registry-fetch@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.3.tgz#3c2179e39e04f9348b1c2979545951d36bee8766" - integrity sha512-WGvUx0lkKFhu9MbiGFuT9nG2NpfQ+4dCJwRwwtK2HK5izJEvwDxMeUyqbuMS7N/OkpVCqDorV6rO5E4V9F8lJw== +npm-registry-fetch@^4.0.0, npm-registry-fetch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.2.tgz#2b1434f93ccbe6b6385f8e45f45db93e16921d7a" + integrity sha512-Z0IFtPEozNdeZRPh3aHHxdG+ZRpzcbQaJLthsm3VhNf6DScicTFRHZzK82u8RsJUsUHkX+QH/zcB/5pmd20H4A== dependencies: JSONStream "^1.3.4" bluebird "^3.5.1" @@ -10832,29 +10656,15 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" - integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== - dependencies: - path-key "^3.0.0" - -npm-run-path@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - npm-user-validate@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz#8ceca0f5cea04d4e93519ef72d0557a75122e951" integrity sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE= -npm@^6.10.3: - version "6.14.4" - resolved "https://registry.yarnpkg.com/npm/-/npm-6.14.4.tgz#50a1c6274fb451ca18f6ff472d2a73f006adbd66" - integrity sha512-B8UDDbWvdkW6RgXFn8/h2cHJP/u/FPa4HWeGzW23aNEBARN3QPrRaHqPIZW2NSN3fW649gtgUDNZpaRs0zTMPw== +npm@^6.8.0: + version "6.13.4" + resolved "https://registry.yarnpkg.com/npm/-/npm-6.13.4.tgz#1e95b0f311999cf682384c38865dfeb3127203bb" + integrity sha512-vTcUL4SCg3AzwInWTbqg1OIaOXlzKSS8Mb8kc5avwrJpcvevDA5J9BhYSuei+fNs3pwOp4lzA5x2FVDXACvoXA== dependencies: JSONStream "^1.3.5" abbrev "~1.1.1" @@ -10862,12 +10672,12 @@ npm@^6.10.3: ansistyles "~0.1.3" aproba "^2.0.0" archy "~1.0.0" - bin-links "^1.1.7" + bin-links "^1.1.6" bluebird "^3.5.5" byte-size "^5.0.1" cacache "^12.0.3" call-limit "^1.1.1" - chownr "^1.1.4" + chownr "^1.1.3" ci-info "^2.0.0" cli-columns "^3.1.2" cli-table3 "^0.5.1" @@ -10883,10 +10693,10 @@ npm@^6.10.3: fs-vacuum "~1.2.10" fs-write-stream-atomic "~1.0.10" gentle-fs "^2.3.0" - glob "^7.1.6" + glob "^7.1.4" graceful-fs "^4.2.3" has-unicode "~2.0.1" - hosted-git-info "^2.8.8" + hosted-git-info "^2.8.5" iferr "^1.0.2" infer-owner "^1.0.4" inflight "~1.0.6" @@ -10903,7 +10713,7 @@ npm@^6.10.3: libnpmorg "^1.0.1" libnpmsearch "^2.0.2" libnpmteam "^1.0.2" - libnpx "^10.2.2" + libnpx "^10.2.0" lock-verify "^2.1.0" lockfile "^1.0.4" lodash._baseuniq "~4.6.0" @@ -10914,9 +10724,9 @@ npm@^6.10.3: lru-cache "^5.1.1" meant "~1.0.1" mississippi "^3.0.0" - mkdirp "^0.5.4" + mkdirp "~0.5.1" move-concurrently "^1.0.1" - node-gyp "^5.1.0" + node-gyp "^5.0.5" nopt "~4.0.1" normalize-package-data "^2.5.0" npm-audit-report "^1.3.2" @@ -10924,16 +10734,16 @@ npm@^6.10.3: npm-install-checks "^3.0.2" npm-lifecycle "^3.1.4" npm-package-arg "^6.1.1" - npm-packlist "^1.4.8" + npm-packlist "^1.4.7" npm-pick-manifest "^3.0.2" - npm-profile "^4.0.4" - npm-registry-fetch "^4.0.3" + npm-profile "^4.0.2" + npm-registry-fetch "^4.0.2" npm-user-validate "~1.0.0" npmlog "~4.1.2" once "~1.4.0" opener "^1.5.1" osenv "^0.1.5" - pacote "^9.5.12" + pacote "^9.5.11" path-is-inside "~1.0.2" promise-inflight "~1.0.1" qrcode-terminal "^0.12.0" @@ -10944,11 +10754,11 @@ npm@^6.10.3: read-installed "~4.0.3" read-package-json "^2.1.1" read-package-tree "^5.3.1" - readable-stream "^3.6.0" + readable-stream "^3.4.0" readdir-scoped-modules "^1.1.0" request "^2.88.0" retry "^0.12.0" - rimraf "^2.7.1" + rimraf "^2.6.3" safe-buffer "^5.1.2" semver "^5.7.1" sha "^3.0.0" @@ -10972,7 +10782,7 @@ npm@^6.10.3: worker-farm "^1.7.0" write-file-atomic "^2.4.3" -npmlog@^4.1.2, npmlog@~4.1.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -11000,9 +10810,9 @@ number-is-nan@^1.0.0: integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= nwsapi@^2.0.7: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + version "2.1.4" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" + integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== oauth-sign@~0.9.0: version "0.9.0" @@ -11028,15 +10838,20 @@ object-hash@^1.3.1: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== +object-inspect@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== + object-inspect@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== -object-is@^1.0.1, object-is@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" - integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== +object-is@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" + integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -11065,27 +10880,27 @@ object.assign@^4.0.4, object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.entries@^1.1.0, object.entries@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b" - integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ== +object.entries@^1.0.4, object.entries@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" + integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== dependencies: define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.12.0" function-bind "^1.1.1" has "^1.0.3" -object.fromentries@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" - integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== +object.fromentries@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" + integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA== dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + define-properties "^1.1.2" + es-abstract "^1.11.0" function-bind "^1.1.1" - has "^1.0.3" + has "^1.0.1" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: +object.getownpropertydescriptors@^2.0.3: version "2.1.0" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== @@ -11108,13 +10923,13 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" - integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== +object.values@^1.0.4, object.values@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" + integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== dependencies: define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.12.0" function-bind "^1.1.1" has "^1.0.3" @@ -11156,13 +10971,6 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== - dependencies: - mimic-fn "^2.1.0" - opener@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" @@ -11184,16 +10992,21 @@ optimist@^0.6.1: wordwrap "~0.0.2" optionator@^0.8.1, optionator@^0.8.2: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= dependencies: deep-is "~0.1.3" - fast-levenshtein "~2.0.6" + fast-levenshtein "~2.0.4" levn "~0.3.0" prelude-ls "~1.1.2" type-check "~0.3.2" - word-wrap "~1.2.3" + wordwrap "~1.0.0" + +options@>=0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8= ordered-read-streams@^1.0.0: version "1.0.1" @@ -11219,15 +11032,6 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - os-locale@^3.0.0, os-locale@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" @@ -11237,7 +11041,7 @@ os-locale@^3.0.0, os-locale@^3.1.0: lcid "^2.0.0" mem "^4.0.0" -os-name@^3.1.0: +os-name@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== @@ -11298,21 +11102,11 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - p-is-promise@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== -p-is-promise@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971" - integrity sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ== - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -11320,10 +11114,17 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" - integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== +p-limit@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" + integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== + dependencies: + p-try "^2.0.0" + +p-limit@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" + integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== dependencies: p-try "^2.0.0" @@ -11364,9 +11165,9 @@ p-reduce@^2.0.0: integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== p-retry@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.2.0.tgz#ea9066c6b44f23cab4cd42f6147cdbbc6604da5d" - integrity sha512-jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA== + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.1.0.tgz#9ce7cef2069e84bf590df3b8ec18d740109338d6" + integrity sha512-oepllyG9gX1qH4Sm20YAKxg1GA7L7puhvGnTfimi31P07zSIj7SDV6YtuAx9nbJF51DES+2CIIRkXs8GKqWJxA== dependencies: "@types/retry" "^0.12.0" retry "^0.12.0" @@ -11391,10 +11192,10 @@ package-json@^4.0.0: registry-url "^3.0.3" semver "^5.1.0" -pacote@^9.1.0, pacote@^9.5.12, pacote@^9.5.3: - version "9.5.12" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.12.tgz#1e11dd7a8d736bcc36b375a9804d41bb0377bf66" - integrity sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ== +pacote@^9.1.0, pacote@^9.5.11, pacote@^9.5.3: + version "9.5.11" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.11.tgz#524152077cb392c47b1fbe198aa28f778bef7ee1" + integrity sha512-DMDPvFKCjCg6zMS4IfzZyvT57O/bX8XGG00eEoy4K/S4Wj+qiN8KbnmKpsTvfS6OL9r5TAicxMKWbj1yV2Yh4g== dependencies: bluebird "^3.5.3" cacache "^12.0.2" @@ -11442,9 +11243,9 @@ pad-right@^0.2.2: repeat-string "^1.5.2" pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + version "1.0.10" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" + integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== parallel-transform@^1.1.0: version "1.2.0" @@ -11470,9 +11271,9 @@ parents@^1.0.0, parents@^1.0.1: path-platform "~0.11.15" parse-asn1@^5.0.0: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== + version "5.1.4" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" + integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" @@ -11502,6 +11303,18 @@ parse-filepath@^1.0.2: map-cache "^0.2.0" path-root "^0.1.1" +parse-git-config@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/parse-git-config/-/parse-git-config-0.2.0.tgz#272833fdd15fea146fb75d336d236b963b6ff706" + integrity sha1-Jygz/dFf6hRvt10zbSNrljtv9wY= + dependencies: + ini "^1.3.3" + +parse-github-url@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" + integrity sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw== + parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" @@ -11547,22 +11360,22 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= -parse-path@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.1.tgz#0ec769704949778cb3b8eda5e994c32073a1adff" - integrity sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA== +parse-path@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-3.0.4.tgz#a48b7b529da41f34d9d1428602a39b29fc7180e4" + integrity sha512-wP70vtwv2DyrM2YoA7ZHVv4zIXa4P7dGgHlj+VwyXNDduLLVJ7NMY1zsFxjUUJ3DAwJLupGb1H5gMDDiNlJaxw== dependencies: is-ssh "^1.3.0" protocols "^1.4.0" -parse-url@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.1.tgz#99c4084fc11be14141efa41b3d117a96fcb9527f" - integrity sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg== +parse-url@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-3.0.2.tgz#602787a7063a795d72b8673197505e72f60610be" + integrity sha1-YCeHpwY6eV1yuGcxl1BecvYGEL4= dependencies: is-ssh "^1.3.0" - normalize-url "^3.3.0" - parse-path "^4.0.0" + normalize-url "^1.9.1" + parse-path "^3.0.1" protocols "^1.4.0" parse5@4.0.0: @@ -11629,11 +11442,6 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -11657,9 +11465,9 @@ path-root@^0.1.1: path-root-regex "^0.1.0" path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + version "1.7.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30= dependencies: isarray "0.0.1" @@ -11708,24 +11516,24 @@ pbkdf2@^3.0.3: sha.js "^2.4.8" pem@^1.13.2: - version "1.14.4" - resolved "https://registry.yarnpkg.com/pem/-/pem-1.14.4.tgz#a68c70c6e751ccc5b3b5bcd7af78b0aec1177ff9" - integrity sha512-v8lH3NpirgiEmbOqhx0vwQTxwi0ExsiWBGYh0jYNq7K6mQuO4gI6UEFlr6fLAdv9TPXRt6GqiwE37puQdIDS8g== + version "1.14.2" + resolved "https://registry.yarnpkg.com/pem/-/pem-1.14.2.tgz#ab29350416bc3a532c30beeee0d541af897fb9ac" + integrity sha512-TOnPtq3ZFnCniOZ+rka4pk8UIze9xG1qI+wNE7EmkiR/cg+53uVvk5QbkWZ7M6RsuOxzz62FW1hlAobJr/lTOA== dependencies: es6-promisify "^6.0.0" md5 "^2.2.1" os-tmpdir "^1.0.1" - which "^2.0.2" + which "^1.3.1" performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.5, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== +picomatch@^2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" + integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== pify@^2.0.0, pify@^2.3.0: version "2.3.0" @@ -11790,13 +11598,6 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-up@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" - integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== - dependencies: - find-up "^3.0.0" - plur@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/plur/-/plur-1.0.0.tgz#db85c6814f5e5e5a3b49efc28d604fec62975156" @@ -11813,12 +11614,12 @@ posix-character-classes@^0.1.0: integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss-attribute-case-insensitive@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" - integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.1.tgz#b2a721a0d279c2f9103a36331c88981526428cc7" + integrity sha512-L2YKB3vF4PetdTIthQVeT+7YiSzMoNMLLYxPXXppOOP7NoazEAy45sh2LvJ8leCQjfBcfkYQs8TtCcQjeZTp8A== dependencies: postcss "^7.0.2" - postcss-selector-parser "^6.0.2" + postcss-selector-parser "^5.0.0" postcss-calc@^5.2.0: version "5.3.1" @@ -11830,13 +11631,14 @@ postcss-calc@^5.2.0: reduce-css-calc "^1.2.6" postcss-calc@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.2.tgz#504efcd008ca0273120568b0792b16cdcde8aac1" - integrity sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ== + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" + integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" + css-unit-converter "^1.1.1" + postcss "^7.0.5" + postcss-selector-parser "^5.0.0-rc.4" + postcss-value-parser "^3.3.1" postcss-color-functional-notation@^2.0.1: version "2.0.1" @@ -12081,9 +11883,9 @@ postcss-import@^12.0.1: resolve "^1.1.7" postcss-initial@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.2.tgz#f018563694b3c16ae8eaabe3c585ac6319637b2d" - integrity sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.1.tgz#99d319669a13d6c06ef8e70d852f68cb1b399b61" + integrity sha512-I2Sz83ZSHybMNh02xQDK609lZ1/QOyYeuizCjzEhlMgeV/HcDJapQiH4yTqLjZss0X6/6VvKFXUeObaHpJoINw== dependencies: lodash.template "^4.5.0" postcss "^7.0.2" @@ -12530,11 +12332,11 @@ postcss-reporter@^6.0.1: postcss "^7.0.7" postcss-safe-parser@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" - integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" + integrity sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ== dependencies: - postcss "^7.0.26" + postcss "^7.0.0" postcss-selector-matches@^4.0.0: version "4.0.0" @@ -12562,15 +12364,15 @@ postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: uniq "^1.0.1" postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" + integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= dependencies: - dot-prop "^5.2.0" + dot-prop "^4.1.1" indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: +postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: version "5.0.0" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== @@ -12579,15 +12381,6 @@ postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" - integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - postcss-svgo@^2.1.1: version "2.1.6" resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" @@ -12626,12 +12419,17 @@ postcss-unique-selectors@^4.0.1: postcss "^7.0.0" uniqs "^2.0.0" -postcss-value-parser@^3.0.0, postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: +postcss-value-parser@^3.0.0, postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss-value-parser@^4.0.2, postcss-value-parser@^4.0.3: +postcss-value-parser@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz#99a983d365f7b2ad8d0f9b8c3094926eab4b936d" + integrity sha512-ESPktioptiSUchCKgggAkzdmkgzKfmp0EU8jXH+5kbIUB+unr0Y4CY9SRMvibuvYUBjNh1ACLbxqYNpdTQOteQ== + +postcss-value-parser@^4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d" integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg== @@ -12673,10 +12471,10 @@ postcss@^6.0.1: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.5, postcss@^7.0.6, postcss@^7.0.7: - version "7.0.27" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9" - integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ== +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.5, postcss@^7.0.6, postcss@^7.0.7: + version "7.0.17" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f" + integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -12726,9 +12524,9 @@ prettier-eslint-cli@^5.0.0: yargs "^13.2.4" prettier-eslint@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-9.0.1.tgz#fbf507cde7329141cd368c6aeb54a70715d02cf4" - integrity sha512-KZT65QTosSAqBBqmrC+RpXbsMRe7Os2YSR9cAfFbDlyPAopzA/S5bioiZ3rpziNQNSJaOxmtXSx07EQ+o2Dlug== + version "9.0.0" + resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-9.0.0.tgz#b9a6ecb67c69be43cbd598addf7ff0b6753e6999" + integrity sha512-0dael2aMpMAxAwClnLi2Coc30v3BubsTX6clqseZ8NFCJZnbZlwxZGHHESYBlqTyN9lvZDHHv+XdeHW0fKhxJQ== dependencies: "@typescript-eslint/parser" "^1.10.2" common-tags "^1.4.0" @@ -12745,9 +12543,9 @@ prettier-eslint@^9.0.0: vue-eslint-parser "^2.0.2" prettier@^1.7.0: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== + version "1.18.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" + integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== pretty-format@^23.0.1: version "23.6.0" @@ -12757,12 +12555,12 @@ pretty-format@^23.0.1: ansi-regex "^3.0.0" ansi-styles "^3.2.0" -pretty-format@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" - integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== +pretty-format@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.8.0.tgz#8dae7044f58db7cb8be245383b565a963e3c27f2" + integrity sha512-P952T7dkrDEplsR+TuY7q3VXDae5Sr7zmQb12JU/NDQa/3CH7/QW0yvqLcGN6jL+zQFKaoJcPc+yJxMTGmosqw== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^24.8.0" ansi-regex "^4.0.0" ansi-styles "^3.2.0" react-is "^16.8.4" @@ -12827,12 +12625,12 @@ promise@^7.1.1: asap "~2.0.3" prompts@^2.0.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" - integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.1.0.tgz#bf90bc71f6065d255ea2bdc0fe6520485c1b45db" + integrity sha512-+x5TozgqYdOwWsQFZizE/Tra3fKvAoy037kOyU6cgz84n8f6zxngLOV4O32kTwt9FcLCxAqw0P/c8rOr9y+Gfg== dependencies: - kleur "^3.0.3" - sisteransi "^1.0.4" + kleur "^3.0.2" + sisteransi "^1.0.0" promzard@^0.3.0: version "0.3.0" @@ -12851,12 +12649,12 @@ prop-types-exact@^1.2.0: reflect.ownkeys "^0.2.0" prop-types-extra@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b" - integrity sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew== + version "1.1.0" + resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.0.tgz#32609910ea2dcf190366bacd3490d5a6412a605f" + integrity sha512-QFyuDxvMipmIVKD2TwxLVPzMnO4e5oOf1vr3tJIomL8E7d0lr6phTHd5nkPhFIzTD1idBLLEPeylL9g+rrTzRg== dependencies: react-is "^16.3.2" - warning "^4.0.0" + warning "^3.0.0" prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" @@ -12906,10 +12704,15 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= +psl@^1.1.24: + version "1.6.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.6.0.tgz#60557582ee23b6c43719d9890fb4170ecd91e110" + integrity sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA== + psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + version "1.2.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.2.0.tgz#df12b5b1b3a30f51c329eacbdef98f3a6e136dc6" + integrity sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA== public-encrypt@^4.0.0: version "4.0.3" @@ -12953,7 +12756,7 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.2.4, punycode@^1.3.2: +punycode@^1.2.4, punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= @@ -12973,10 +12776,15 @@ qrcode-terminal@^0.12.0: resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== -qs@^6.3.0, qs@^6.4.0, qs@^6.5.1, qs@^6.9.1: - version "6.9.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" - integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== +qs@^6.3.0, qs@^6.4.0, qs@^6.5.1: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@^6.9.1: + version "6.9.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9" + integrity sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA== qs@~6.5.2: version "6.5.2" @@ -12992,9 +12800,9 @@ query-string@^4.1.0, query-string@^4.2.3: strict-uri-encode "^1.0.0" query-string@^6.8.2: - version "6.11.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.11.1.tgz#ab021f275d463ce1b61e88f0ce6988b3e8fe7c2c" - integrity sha512-1ZvJOUl8ifkkBxu2ByVM/8GijMIPx+cef7u3yroO3Ogm4DOdZcF5dcrWTIlSHe3Pg/mtlt6/eFjObDfJureZZA== + version "6.9.0" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.9.0.tgz#1c3b727c370cf00f177c99f328fda2108f8fa3dd" + integrity sha512-KG4bhCFYapExLsUHrFt+kQVEegF2agm4cpF/VNc6pZVthIfCc/GK8t8VyNIE3nyXG9DK3Tf2EGkxjR6/uRdYsA== dependencies: decode-uri-component "^0.2.0" split-on-first "^1.0.0" @@ -13025,7 +12833,7 @@ qw@~1.0.1: resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" integrity sha1-77/cdA+a0FQwRCassYNBLMi5ltQ= -raf@^3.4.1: +raf@^3.4.0: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== @@ -13082,7 +12890,7 @@ raw-body@~1.1.0: bytes "1" string_decoder "0.10" -rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: +rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -13130,14 +12938,14 @@ react-dates@^6.0.2: react-portal "^3.0.0" react-dom@^16.9.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== + version "16.9.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962" + integrity sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.19.1" + scheduler "^0.15.0" react-event-listener@^0.6.0: version "0.6.6" @@ -13149,25 +12957,30 @@ react-event-listener@^0.6.0: warning "^4.0.1" react-fontawesome@^1.5.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/react-fontawesome/-/react-fontawesome-1.7.1.tgz#f74f5a338fef3ee3b379820109c1cba47290f035" - integrity sha512-kottReWW1I9Uupub6A5YX4VK7qfpFnEjAcm5zB4Aepst7iofONT27GJYdTcRsj7q5uQu9PXBL7GsxAFKANNUVg== + version "1.6.1" + resolved "https://registry.yarnpkg.com/react-fontawesome/-/react-fontawesome-1.6.1.tgz#eddce17e7dc731aa09fd4a186688a61793a16c5c" + integrity sha1-7dzhfn3HMaoJ/UoYZoimF5OhbFw= dependencies: prop-types "^15.5.6" -react-is@^16.12.0, react-is@^16.3.2, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== +react-is@^16.3.2, react-is@^16.6.0, react-is@^16.9.0: + version "16.9.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" + integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== + +react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6: + version "16.8.6" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" + integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== react-leaflet@^2.4.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-2.6.3.tgz#a826c20d7f4b530f38a1b71bfa9c51cefb598ce0" - integrity sha512-0ynYVkPNVJmjO7ewR+zBBu3sxbWmwJYkxd6SUJkQKG40+JNJEvYGSFPvP8W1BS9d0MntZFDTzEM1OdBiWMrlEA== + version "2.4.0" + resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-2.4.0.tgz#9cef74e14aeeb094bfe662b46de1682623c090ea" + integrity sha512-ex9MAz2cUAmdUucsjv180OYszdqxHIyEwzWAuMOOuxE7yUmRscxZKR5h0f+vG4shR+SekZYUBk0+gCv8apRADQ== dependencies: - "@babel/runtime" "^7.8.7" - fast-deep-equal "^3.1.1" - hoist-non-react-statics "^3.3.2" + "@babel/runtime" "^7.4.5" + fast-deep-equal "^2.0.1" + hoist-non-react-statics "^3.3.0" warning "^4.0.3" react-lifecycles-compat@^3.0.4: @@ -13176,9 +12989,9 @@ react-lifecycles-compat@^3.0.4: integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== react-moment-proptypes@^1.2.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/react-moment-proptypes/-/react-moment-proptypes-1.7.0.tgz#89881479840a76c13574a86e3bb214c4ba564e7a" - integrity sha512-ZbOn/P4u469WEGAw5hgkS/E+g1YZqdves2BjYsLluJobzUZCtManhjHiZKjniBVT7MSHM6D/iKtRVzlXVv3ikA== + version "1.6.0" + resolved "https://registry.yarnpkg.com/react-moment-proptypes/-/react-moment-proptypes-1.6.0.tgz#8ec266ee392a08ba3412d2df2eebf833ab1046df" + integrity sha512-4h7EuhDMTzQqZ+02KUUO+AVA7PqhbD88yXB740nFpNDyDS/bj9jiPyn2rwr9sa8oDyaE1ByFN9+t5XPyPTmN6g== dependencies: moment ">=1.6.0" @@ -13209,15 +13022,16 @@ react-prop-types@^0.4.0: warning "^3.0.0" react-redux@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.0.tgz#f970f62192b3981642fec46fd0db18a074fe879d" - integrity sha512-EvCAZYGfOLqwV7gh849xy9/pt55rJXPwmYvI4lilPM5rUT/1NxuuN59ipdBksRVSvz0KInbPnp4IfoXJXCqiDA== + version "7.1.0" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.1.0.tgz#72af7cf490a74acdc516ea9c1dd80e25af9ea0b2" + integrity sha512-hyu/PoFK3vZgdLTg9ozbt7WF3GgX5+Yn3pZm5/96/o4UueXA+zj08aiSC9Mfj2WtD1bvpIb3C5yvskzZySzzaw== dependencies: - "@babel/runtime" "^7.5.5" + "@babel/runtime" "^7.4.5" hoist-non-react-statics "^3.3.0" + invariant "^2.2.4" loose-envify "^1.4.0" prop-types "^15.7.2" - react-is "^16.9.0" + react-is "^16.8.6" react-resize-detector@^2.1.0: version "2.3.0" @@ -13230,9 +13044,9 @@ react-resize-detector@^2.1.0: resize-observer-polyfill "^1.5.0" react-router@^5.0.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.1.2.tgz#6ea51d789cb36a6be1ba5f7c0d48dd9e817d3418" - integrity sha512-yjEuMFy1ONK246B+rsa0cUam5OeAQ8pyclRDgpxuSCrAlJ1qN9uZ5IgyKC7gQg0w8OM50NXHEegPh/ks9YuR2A== + version "5.0.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.0.1.tgz#04ee77df1d1ab6cb8939f9f01ad5702dbadb8b0f" + integrity sha512-EM7suCPNKb1NxcTZ2LEOWFtQBQRQXecLxVpdsP4DW4PbbqYWeRiLyV/Tt1SdCrvT2jcyXAXmVTmzvSzrPR63Bg== dependencies: "@babel/runtime" "^7.1.2" history "^4.9.0" @@ -13245,46 +13059,47 @@ react-router@^5.0.1: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-swipeable-views-core@^0.13.7: - version "0.13.7" - resolved "https://registry.yarnpkg.com/react-swipeable-views-core/-/react-swipeable-views-core-0.13.7.tgz#c082b553f26e83fd20fc17f934200eb717023c8a" - integrity sha512-ekn9oDYfBt0oqJSGGwLEhKvn+QaqMGTy//9dURTLf+vp7W5j6GvmKryYdnwJCDITaPFI2hujXV4CH9krhvaE5w== +react-swipeable-views-core@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/react-swipeable-views-core/-/react-swipeable-views-core-0.13.1.tgz#8829a922462a8bdd701709cd1b385393d38f1527" + integrity sha512-EP8sCvvD7VDiZLglPt9icMuMNu8qLRLk0ab/fB1HXv7lX8ClnwF3UMCM0ZrN3sguSY7CsX3LevducGGsT1VcDg== dependencies: "@babel/runtime" "7.0.0" warning "^4.0.1" -react-swipeable-views-utils@^0.13.9: - version "0.13.9" - resolved "https://registry.yarnpkg.com/react-swipeable-views-utils/-/react-swipeable-views-utils-0.13.9.tgz#a66e98f2f4502d8b00182901f80d13b2f903e10f" - integrity sha512-QLGxRKrbJCbWz94vkWLzb1Daaa2Y/TZKmsNKQ6WSNrS+chrlfZ3z9tqZ7YUJlW6pRWp3QZdLSY3UE3cN0TXXmw== +react-swipeable-views-utils@^0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/react-swipeable-views-utils/-/react-swipeable-views-utils-0.13.3.tgz#c234d8d836bb085803631a9fef0adb2f9597221f" + integrity sha512-CZkJwiNQPISkyTsPMUPiJgwJBrUVd7NC3WSUvx30uwvPb0Sy2w2+tpU51qeYc6YwIhex0s5Eu5YPjK3PDBh+gA== dependencies: "@babel/runtime" "7.0.0" + fbjs "^0.8.4" keycode "^2.1.7" prop-types "^15.6.0" react-event-listener "^0.6.0" - react-swipeable-views-core "^0.13.7" - shallow-equal "^1.2.1" + react-swipeable-views-core "^0.13.1" react-swipeable-views@^0.13.3: - version "0.13.9" - resolved "https://registry.yarnpkg.com/react-swipeable-views/-/react-swipeable-views-0.13.9.tgz#d6a6c508bf5288ad55509f9c65916db5df0f2cec" - integrity sha512-WXC2FKYvZ9QdJ31v9LjEJEl1bA7E4AcaloTkbW0uU0dYf5uvv4aOpiyxubvOkVl1a5L2UAHmKSif4TmJ9usrSg== + version "0.13.3" + resolved "https://registry.yarnpkg.com/react-swipeable-views/-/react-swipeable-views-0.13.3.tgz#2ad886767c6b2de88000606a14bedde12156e6d0" + integrity sha512-LBHRA5ZouipmoLLwi0cqB8qc7NHLskbXmT1I+ZztC9JfmgKrfichw5R+7q4igQ+5VbaP6jL1vn8BtHW96WYNFQ== dependencies: "@babel/runtime" "7.0.0" + dom-helpers "^3.2.1" prop-types "^15.5.4" - react-swipeable-views-core "^0.13.7" - react-swipeable-views-utils "^0.13.9" + react-swipeable-views-core "^0.13.1" + react-swipeable-views-utils "^0.13.3" warning "^4.0.1" react-test-renderer@^16.0.0-0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1" - integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ== + version "16.9.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.9.0.tgz#7ed657a374af47af88f66f33a3ef99c9610c8ae9" + integrity sha512-R62stB73qZyhrJo7wmCW9jgl/07ai+YzvouvCXIJLBkRlRqLx4j9RqcLEAfNfU3OxTGucqR2Whmn3/Aad6L3hQ== dependencies: object-assign "^4.1.1" prop-types "^15.6.2" - react-is "^16.8.6" - scheduler "^0.19.1" + react-is "^16.9.0" + scheduler "^0.15.0" react-transition-group@^2.0.0, react-transition-group@^2.2.0: version "2.9.0" @@ -13297,9 +13112,9 @@ react-transition-group@^2.0.0, react-transition-group@^2.2.0: react-lifecycles-compat "^3.0.4" react@^16.9.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== + version "16.9.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa" + integrity sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -13393,14 +13208,14 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" -read-pkg-up@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== +read-pkg-up@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-6.0.0.tgz#da75ce72762f2fa1f20c5a40d4dd80c77db969e3" + integrity sha512-odtTvLl+EXo1eTsMnoUHRmg/XmXdTkwXVxy4VFE9Kp6cCq7b3l7QMdBndND3eAFzrbSAXC/WCUOQQ9rLjifKZw== dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" + find-up "^4.0.0" + read-pkg "^5.1.1" + type-fest "^0.5.0" read-pkg@^1.0.0: version "1.1.0" @@ -13429,7 +13244,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -read-pkg@^5.0.0, read-pkg@^5.2.0: +read-pkg@^5.0.0, read-pkg@^5.1.1: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== @@ -13447,9 +13262,9 @@ read@1, read@~1.0.1, read@~1.0.7: mute-stream "~0.0.4" "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -13459,10 +13274,10 @@ read@1, read@~1.0.1, read@~1.0.7: string_decoder "~1.1.1" util-deprecate "~1.0.1" -"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== +"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -13571,11 +13386,11 @@ reduce-css-calc@^1.2.6: reduce-function-call "^1.0.1" reduce-function-call@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f" - integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ== + version "1.0.2" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" + integrity sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk= dependencies: - balanced-match "^1.0.0" + balanced-match "^0.4.2" reduce-reducers@^0.1.0: version "0.1.5" @@ -13599,9 +13414,9 @@ redux-logger@^2.7.4: deep-diff "0.3.4" redux-mock-store@^1.5.3: - version "1.5.4" - resolved "https://registry.yarnpkg.com/redux-mock-store/-/redux-mock-store-1.5.4.tgz#90d02495fd918ddbaa96b83aef626287c9ab5872" - integrity sha512-xmcA0O/tjCLXhh9Fuiq6pMrJCwFRaouA8436zcikdIpYWWCjU76CRk+i2bHx8EeiSiMGnB85/lZdU3wIJVXHTA== + version "1.5.3" + resolved "https://registry.yarnpkg.com/redux-mock-store/-/redux-mock-store-1.5.3.tgz#1f10528949b7ce8056c2532624f7cafa98576c6d" + integrity sha512-ryhkkb/4D4CUGpAV2ln1GOY/uh51aczjcRz9k2L2bPx/Xja3c5pSGJJPyR25GNVRXtKIExScdAgFdiXp68GmJA== dependencies: lodash.isplainobject "^4.0.6" @@ -13611,9 +13426,9 @@ redux-thunk@^2.3.0: integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== redux@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" - integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== + version "4.0.4" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.4.tgz#4ee1aeb164b63d6a1bcc57ae4aa0b6e6fa7a3796" + integrity sha512-vKv4WdiJxOWKxK0yRoaK3Y4pxxB0ilzVx6dszU2W8wLxlb2yikRph4iV/ymtdJ6ZxpBLFbyrxklnT5yBbQSl3Q== dependencies: loose-envify "^1.4.0" symbol-observable "^1.2.0" @@ -13623,10 +13438,10 @@ reflect.ownkeys@^0.2.0: resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA= -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== +regenerate-unicode-properties@^8.0.2: + version "8.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" + integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== dependencies: regenerate "^1.4.0" @@ -13650,10 +13465,10 @@ regenerator-runtime@^0.12.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== -regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== +regenerator-runtime@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== regenerator-transform@^0.10.0: version "0.10.1" @@ -13664,13 +13479,12 @@ regenerator-transform@^0.10.0: babel-types "^6.19.0" private "^0.1.6" -regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== +regenerator-transform@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" + integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== dependencies: - "@babel/runtime" "^7.8.4" - private "^0.1.8" + private "^0.1.6" regex-cache@^0.4.2: version "0.4.4" @@ -13687,19 +13501,25 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" +regexp-tree@^0.1.6: + version "0.1.11" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.11.tgz#c9c7f00fcf722e0a56c7390983a7a63dd6c272f3" + integrity sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg== regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== +regexpu-core@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + regexpu-core@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" @@ -13709,17 +13529,17 @@ regexpu-core@^2.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^4.6.0, regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== +regexpu-core@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" + integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== dependencies: regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" + regenerate-unicode-properties "^8.0.2" + regjsgen "^0.5.0" + regjsparser "^0.6.0" unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" + unicode-match-property-value-ecmascript "^1.1.0" registry-auth-token@^3.0.1: version "3.4.0" @@ -13730,11 +13550,12 @@ registry-auth-token@^3.0.1: safe-buffer "^5.0.1" registry-auth-token@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" - integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== + version "4.0.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz#30e55961eec77379da551ea5c4cf43cbf03522be" + integrity sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw== dependencies: rc "^1.2.8" + safe-buffer "^5.0.1" registry-url@^3.0.3: version "3.1.0" @@ -13748,10 +13569,10 @@ regjsgen@^0.2.0: resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= -regjsgen@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== +regjsgen@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" + integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== regjsparser@^0.1.4: version "0.1.5" @@ -13760,10 +13581,10 @@ regjsparser@^0.1.4: dependencies: jsesc "~0.5.0" -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== +regjsparser@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" + integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== dependencies: jsesc "~0.5.0" @@ -13865,6 +13686,13 @@ remark@^9.0.0: argparse "~0.1.15" autolinker "~0.15.0" +remote-origin-url@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/remote-origin-url/-/remote-origin-url-0.4.0.tgz#4d3e2902f34e2d37d1c263d87710b77eb4086a30" + integrity sha1-TT4pAvNOLTfRwmPYdxC3frQIajA= + dependencies: + parse-git-config "^0.2.0" + remove-bom-buffer@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" @@ -13909,26 +13737,26 @@ replace-ext@1.0.0, replace-ext@^1.0.0: resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= -request-promise-core@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" - integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== +request-promise-core@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" + integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== dependencies: - lodash "^4.17.15" + lodash "^4.17.11" request-promise-native@^1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" - integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== + version "1.0.7" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" + integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== dependencies: - request-promise-core "1.1.3" + request-promise-core "1.1.2" stealthy-require "^1.1.1" tough-cookie "^2.3.3" request@^2.72.0, request@^2.74.0, request@^2.87.0, request@^2.88.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -13937,7 +13765,7 @@ request@^2.72.0, request@^2.74.0, request@^2.87.0, request@^2.88.0: extend "~3.0.2" forever-agent "~0.6.1" form-data "~2.3.2" - har-validator "~5.1.3" + har-validator "~5.1.0" http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" @@ -13947,7 +13775,7 @@ request@^2.72.0, request@^2.74.0, request@^2.87.0, request@^2.88.0: performance-now "^2.1.0" qs "~6.5.2" safe-buffer "^5.1.2" - tough-cookie "~2.5.0" + tough-cookie "~2.4.3" tunnel-agent "^0.6.0" uuid "^3.3.2" @@ -14028,10 +13856,10 @@ resolve-options@^1.1.0: dependencies: value-or-function "^3.0.0" -resolve-pathname@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" - integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== +resolve-pathname@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879" + integrity sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg== resolve-url@^0.2.1: version "0.2.1" @@ -14043,10 +13871,17 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1: - version "1.15.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== +resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" + integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw== + dependencies: + path-parse "^1.0.6" + +resolve@^1.10.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz#be0aa4c06acd53083505abb35f4d66932ab35d16" + integrity sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w== dependencies: path-parse "^1.0.6" @@ -14081,7 +13916,7 @@ retry@^0.12.0: resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= -reusify@^1.0.4: +reusify@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== @@ -14113,6 +13948,13 @@ right-pad@^1.0.1: resolved "https://registry.yarnpkg.com/right-pad/-/right-pad-1.0.1.tgz#8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0" integrity sha1-jKCMLLtbVedNr6lr9/0aJ9VoyNA= +rimraf@2, rimraf@^2.5.0, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + rimraf@2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -14120,13 +13962,6 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^2.5.0, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -14154,9 +13989,9 @@ rsvp@^4.8.4: integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== run-async@^2.2.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" - integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= dependencies: is-promise "^2.1.0" @@ -14173,9 +14008,9 @@ run-queue@^1.0.0, run-queue@^1.0.3: aproba "^1.1.1" rxjs@^6.1.0, rxjs@^6.4.0, rxjs@^6.5.2: - version "6.5.4" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" - integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== + version "6.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== dependencies: tslib "^1.9.0" @@ -14231,18 +14066,23 @@ sax@>=0.6.0, sax@^1.2.4, sax@~1.2.1, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== +scheduler@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e" + integrity sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" +seamless-immutable@^7.1.3: + version "7.1.4" + resolved "https://registry.yarnpkg.com/seamless-immutable/-/seamless-immutable-7.1.4.tgz#6e9536def083ddc4dea0207d722e0e80d0f372f8" + integrity sha512-XiUO1QP4ki4E2PHegiGAlu6r82o5A+6tRh7IkGGTVg/h+UoeX4nFBeCGPOhb4CYjvkqsfm/TUtvOMYC1xmV30A== + semantic-release@^15.13.12: - version "15.14.0" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.14.0.tgz#6ee79b7b3598332378190412880049709fa23376" - integrity sha512-Cn43W35AOLY0RMcDbtwhJODJmWg6YCs1+R5jRQsTmmkEGzkV4B2F/QXkjVZpl4UbH91r93GGH0xhoq9kh7I5PA== + version "15.13.18" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.13.18.tgz#72e284c6f7cb7817e1aaaa0a9d73600a9447d146" + integrity sha512-JtfdrhF1zRm91nJH/Rg3taftbWGwktJqqrJJdbmZGKYx63cfC4PoaS0jxRifGJUdmmgW/Kxz8f5bhtB+p1bu8A== dependencies: "@semantic-release/commit-analyzer" "^6.1.0" "@semantic-release/error" "^2.2.0" @@ -14250,26 +14090,26 @@ semantic-release@^15.13.12: "@semantic-release/npm" "^5.0.5" "@semantic-release/release-notes-generator" "^7.1.2" aggregate-error "^3.0.0" - cosmiconfig "^6.0.0" + cosmiconfig "^5.0.1" debug "^4.0.0" env-ci "^4.0.0" - execa "^3.2.0" + execa "^1.0.0" figures "^3.0.0" find-versions "^3.0.0" get-stream "^5.0.0" git-log-parser "^1.2.0" hook-std "^2.0.0" - hosted-git-info "^3.0.0" - lodash "^4.17.15" - marked "^0.7.0" + hosted-git-info "^2.7.1" + lodash "^4.17.4" + marked "^0.6.0" marked-terminal "^3.2.0" p-locate "^4.0.0" p-reduce "^2.0.0" - read-pkg-up "^7.0.0" + read-pkg-up "^6.0.0" resolve-from "^5.0.0" semver "^6.0.0" signale "^1.2.1" - yargs "^15.0.1" + yargs "^13.1.0" semver-diff@^2.0.0: version "2.1.0" @@ -14283,7 +14123,7 @@ semver-regex@^2.0.0: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -14293,16 +14133,16 @@ semver@5.5.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.1: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= + send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -14372,23 +14212,11 @@ sha@^3.0.0: dependencies: graceful-fs "^4.1.2" -shallow-equal@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" - integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== - shallowequal@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== -shasum-object@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" - integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg== - dependencies: - fast-safe-stringify "^2.0.7" - shasum@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" @@ -14404,27 +14232,20 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - shell-quote@^1.4.2, shell-quote@^1.6.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" - integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" shelljs@0.7.6: version "0.7.6" @@ -14440,18 +14261,10 @@ shellwords@^0.1.1: resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== -side-channel@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947" - integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA== - dependencies: - es-abstract "^1.17.0-next.1" - object-inspect "^1.7.0" - signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= signale@^1.2.1: version "1.4.0" @@ -14481,10 +14294,10 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -sisteransi@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== +sisteransi@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.2.tgz#ec57d64b6f25c4f26c0e2c7dd23f2d7f12f7e418" + integrity sha512-ZcYcZcT69nSLAR2oLN2JwNmLkJEKGooFMCdvOkFrToUt/WfcRWqhIg4P4KwY4dmLbuyXIx4o4YmPsvMRJYJd/w== slack-node@^0.1.8: version "0.1.8" @@ -14604,11 +14417,11 @@ source-list-map@^2.0.0: integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== dependencies: - atob "^2.1.2" + atob "^2.1.1" decode-uri-component "^0.2.0" resolve-url "^0.2.1" source-map-url "^0.4.0" @@ -14622,9 +14435,9 @@ source-map-support@^0.4.15: source-map "^0.5.6" source-map-support@^0.5.6, source-map-support@~0.5.10: - version "0.5.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" - integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + version "0.5.12" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" + integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -14645,9 +14458,9 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== space-separated-tokens@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" - integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== + version "1.1.4" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.4.tgz#27910835ae00d0adfcdbd0ad7e611fb9544351fa" + integrity sha512-UyhMSmeIqZrQn2UdjYpxEkwY9JUrn8pP+7L4f91zRzOQuI8MF1FGLfYU9DKCYeLdo7LXMxwrX5zKFy7eeeVHuA== spawn-error-forwarder@~1.0.0: version "1.0.0" @@ -14768,9 +14581,9 @@ stacked@^1.1.1: integrity sha1-LH+jjMfjejQRp3zY55LeRI+faXU= state-toggle@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" - integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== + version "1.0.2" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.2.tgz#75e93a61944116b4959d665c8db2d243631d6ddc" + integrity sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw== static-extend@^0.1.1: version "0.1.2" @@ -14828,7 +14641,7 @@ stream-each@^1.1.0: end-of-stream "^1.1.0" stream-shift "^1.0.0" -stream-http@^2.7.2: +stream-http@^2.0.0, stream-http@^2.7.2: version "2.8.3" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== @@ -14839,16 +14652,6 @@ stream-http@^2.7.2: to-arraybuffer "^1.0.0" xtend "^4.0.0" -stream-http@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.1.0.tgz#22fb33fe9b4056b4eccf58bd8f400c4b993ffe57" - integrity sha512-cuB6RgO7BqC4FBYzmnvhob5Do3wIdIsXAgGycHJnW+981gHqoYcYz9lqjJrk8WXRddbwPuqPYRl+bag6mYv4lw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^3.0.6" - xtend "^4.0.0" - stream-iterate@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz#2bd7c77296c1702a46488b8ad41f79865eecd4e1" @@ -14924,48 +14727,36 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== +string-width@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.1.0.tgz#ba846d1daa97c3c596155308063e075ed1c99aff" + integrity sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.matchall@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" - integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0" - has-symbols "^1.0.1" - internal-slot "^1.0.2" - regexp.prototype.flags "^1.3.0" - side-channel "^1.0.2" + strip-ansi "^5.2.0" -string.prototype.trim@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" - integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw== +string.prototype.trim@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz#75a729b10cfc1be439543dae442129459ce61e3d" + integrity sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg== dependencies: define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.13.0" function-bind "^1.1.1" -string.prototype.trimleft@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" - integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== +string.prototype.trimleft@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" + integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== dependencies: define-properties "^1.1.3" function-bind "^1.1.1" -string.prototype.trimright@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" - integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== +string.prototype.trimright@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" + integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== dependencies: define-properties "^1.1.3" function-bind "^1.1.1" @@ -14975,7 +14766,14 @@ string_decoder@0.10, string_decoder@~0.10.x: resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= -string_decoder@^1.0.0, string_decoder@^1.1.1: +string_decoder@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== + dependencies: + safe-buffer "~5.1.0" + +string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -15032,13 +14830,6 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -15056,11 +14847,6 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" @@ -15203,16 +14989,16 @@ svgo@^0.7.0: whet.extend "~0.9.9" svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + version "1.3.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313" + integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ== dependencies: chalk "^2.4.1" coa "^2.0.2" css-select "^2.0.0" css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" + css-tree "1.0.0-alpha.33" + csso "^3.5.1" js-yaml "^3.13.1" mkdirp "~0.5.1" object.values "^1.1.0" @@ -15239,9 +15025,9 @@ syntax-error@^1.1.1: acorn-node "^1.2.0" table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + version "5.4.4" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.4.tgz#6e0f88fdae3692793d1077fd172a4667afe986a6" + integrity sha512-IIfEAUx5QlODLblLrGTTLJA7Tk0iLSGBvgY8essPRVNGHAzThujww1YqHLs6h3HfTg55h++RzLHH5Xw/rfv+mg== dependencies: ajv "^6.10.2" lodash "^4.17.14" @@ -15253,7 +15039,7 @@ tapable@^0.2.7, tapable@~0.2.5: resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8" integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A== -tar@^4.4.10, tar@^4.4.12, tar@^4.4.13: +tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.13: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -15266,20 +15052,6 @@ tar@^4.4.10, tar@^4.4.12, tar@^4.4.13: safe-buffer "^5.1.2" yallist "^3.0.3" -temp-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" - integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= - -tempy@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8" - integrity sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ== - dependencies: - temp-dir "^1.0.0" - type-fest "^0.3.1" - unique-string "^1.0.0" - term-color@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/term-color/-/term-color-1.0.1.tgz#38e192553a473e35e41604ff5199846bf8117a3a" @@ -15401,9 +15173,9 @@ timers-browserify@^1.0.1: process "~0.11.0" timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + version "2.0.10" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== dependencies: setimmediate "^1.0.4" @@ -15413,9 +15185,9 @@ timsort@^0.3.0: integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= tiny-invariant@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" - integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.6.tgz#b3f9b38835e36a41c843a3b0907a5a7b3755de73" + integrity sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA== tiny-lr@^1.1.0: version "1.1.1" @@ -15530,7 +15302,7 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== -tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: +tough-cookie@^2.3.3, tough-cookie@^2.3.4: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== @@ -15538,6 +15310,14 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" @@ -15568,9 +15348,9 @@ traverse@~0.6.6: integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= trim-lines@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.3.tgz#839514be82428fd9e7ec89e35081afe8f6f93115" - integrity sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.2.tgz#c8adbdbdae21bb5c2766240a661f693afe23e59b" + integrity sha512-3GOuyNeTqk3FAqc3jOJtw7FTjYl94XBR5aD9QnDbK/T4CA9sW/J0l9RoaRPE9wyPP7NF331qnHnvJFBJ+IDkmQ== trim-newlines@^2.0.0: version "2.0.0" @@ -15588,9 +15368,9 @@ trim-right@^1.0.1: integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= trim-trailing-lines@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz#7f0739881ff76657b7776e10874128004b625a94" - integrity sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz#d2f1e153161152e9f02fabc670fb40bec2ea2e3a" + integrity sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q== trim@0.0.1: version "0.0.1" @@ -15598,11 +15378,16 @@ trim@0.0.1: integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= trough@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" - integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.4.tgz#3b52b1f13924f460c3fbfd0df69b587dbcbc762e" + integrity sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q== -tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.9.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + +tslib@^1.9.3: version "1.11.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== @@ -15684,35 +15469,30 @@ type-detect@^4.0.0, type-detect@^4.0.5: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" - integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== +type-fest@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" + integrity sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw== type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - typedarray@^0.0.6, typedarray@~0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^3.2.1: - version "3.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" - integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== + version "3.5.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" + integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== ua-parser-js@^0.7.18: - version "0.7.21" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" - integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== + version "0.7.20" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098" + integrity sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw== uglify-js@^2.8.27: version "2.8.29" @@ -15725,9 +15505,9 @@ uglify-js@^2.8.27: uglify-to-browserify "~1.0.0" uglify-js@^3.1.4: - version "3.8.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.8.0.tgz#f3541ae97b2f048d7e7e3aa4f39fd8a1f5d7a805" - integrity sha512-ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ== + version "3.7.3" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.3.tgz#f918fce9182f466d5140f24bb0ff35c2d32dcc6a" + integrity sha512-7tINm46/3puUA4hCkKYo4Xdts+JDaVC9ZPRcG8Xw9R4nhO/gZgUM3TENq8IF4Vatk8qCig4MzP/c8G4u2BkVQg== dependencies: commander "~2.20.3" source-map "~0.6.1" @@ -15738,21 +15518,26 @@ uglify-to-browserify@~1.0.0: integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= uglifyify@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/uglifyify/-/uglifyify-5.0.2.tgz#7d0269885e09faa963208a9ec6721afcaf45fc50" - integrity sha512-NcSk6pgoC+IgwZZ2tVLVHq+VNKSvLPlLkF5oUiHPVOJI0s/OlSVYEGXG9PCAH0hcyFZLyvt4KBdPAQBRlVDn1Q== + version "5.0.1" + resolved "https://registry.yarnpkg.com/uglifyify/-/uglifyify-5.0.1.tgz#70b1d8b413c410348c8e35e7f8bd1330a422d5f6" + integrity sha512-PO44rgExvwj3rkK0UzenHVnPU18drBy9x9HOUmgkuRh6K2KIsDqrB5LqxGtjybgGTOS1JeP8SBc+TN5rhiva6w== dependencies: convert-source-map "~1.1.0" + extend "^1.2.1" minimatch "^3.0.2" terser "^3.7.5" through "~2.3.4" - xtend "^4.0.1" uid-number@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= +ultron@1.0.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po= + umask@^1.1.0, umask@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" @@ -15797,12 +15582,12 @@ underscore@~1.7.0: integrity sha1-a7rwh3UA02vjTsqlhODbn+8DUgk= unherit@^1.0.4: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" - integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.2.tgz#14f1f397253ee4ec95cec167762e77df83678449" + integrity sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w== dependencies: - inherits "^2.0.0" - xtend "^4.0.0" + inherits "^2.0.1" + xtend "^4.0.1" unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" @@ -15817,15 +15602,15 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== +unicode-match-property-value-ecmascript@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" + integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" + integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== unified@^6.0.0: version "6.2.0" @@ -15896,9 +15681,9 @@ unist-builder@^1.0.1, unist-builder@^1.0.2: object-assign "^4.1.0" unist-util-generated@^1.1.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.5.tgz#1e903e68467931ebfaea386dae9ea253628acd42" - integrity sha512-1TC+NxQa4N9pNdayCYA1EGUOCAO0Le3fVp7Jzns6lnua/mYgwHo0tz5WUAfrdpNch1RZLHc61VZ1SDgrtNXLSw== + version "1.1.4" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.4.tgz#2261c033d9fc23fae41872cdb7663746e972c1a7" + integrity sha512-SA7Sys3h3X4AlVnxHdvN/qYdr4R38HzihoEVY2Q2BZu8NHWDnw5OGcC/tXWjQfd4iG+M6qRFNIRGqJmp2ez4Ww== unist-util-is@^2.0.0, unist-util-is@^2.1.2: version "2.1.3" @@ -15911,14 +15696,14 @@ unist-util-is@^3.0.0: integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== unist-util-position@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" - integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.0.3.tgz#fff942b879538b242096c148153826664b1ca373" + integrity sha512-28EpCBYFvnMeq9y/4w6pbnFmCUfzlsc41NJui5c51hOFjBA1fejcwc+5W4z2+0ECVbScG3dURS3JTVqwenzqZw== unist-util-remove-position@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" - integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A== + version "1.1.3" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.3.tgz#d91aa8b89b30cb38bad2924da11072faa64fd972" + integrity sha512-CtszTlOjP2sBGYc2zcKA/CvNdTdEs3ozbiJ63IPBxh8iZg42SCCb8m04f8z2+V1aSk5a7BxbZKEdoDjadmBkWA== dependencies: unist-util-visit "^1.1.0" @@ -15928,9 +15713,9 @@ unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== unist-util-stringify-position@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" - integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.1.tgz#de2a2bc8d3febfa606652673a91455b6a36fb9f3" + integrity sha512-Zqlf6+FRI39Bah8Q6ZnNGrEHUhwJOkHde2MHVk96lLyftfJJckaPslKgzhVcviXj8KcE9UJM9F+a4JEiBUTYgA== dependencies: "@types/unist" "^2.0.2" @@ -15956,19 +15741,12 @@ units-css@^0.4.0: isnumeric "^0.2.0" viewport-dimensions "^0.2.0" -universal-user-agent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557" - integrity sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg== - dependencies: - os-name "^3.1.0" - -universal-user-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-5.0.0.tgz#a3182aa758069bf0e79952570ca757de3579c1d9" - integrity sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q== +universal-user-agent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-3.0.0.tgz#4cc88d68097bffd7ac42e3b7c903e7481424b4b9" + integrity sha512-T3siHThqoj5X0benA5H0qcDnrKGXzU8TKoX15x/tQHw1hQBvIEBHjxQ2klizYsqBOO/Q+WuxoQUihadeeqDnoA== dependencies: - os-name "^3.1.0" + os-name "^3.0.0" universalify@^0.1.0: version "0.1.2" @@ -15999,11 +15777,11 @@ unzip-response@^2.0.1: integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + version "1.1.2" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" + integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== -update-notifier@^2.2.0, update-notifier@^2.3.0, update-notifier@^2.5.0: +update-notifier@^2.3.0, update-notifier@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== @@ -16051,6 +15829,11 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" +url-template@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" + integrity sha1-/FZaPMy/93MMd19WQflVV5FDnyE= + url-trim@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-trim/-/url-trim-1.0.0.tgz#40057e2f164b88e5daca7269da47e6d1dd837adc" @@ -16108,14 +15891,12 @@ util-promisify@^2.1.0: object.getownpropertydescriptors "^2.0.3" util.promisify@^1.0.0, util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" util@0.10.3: version "0.10.3" @@ -16144,9 +15925,9 @@ uuid@3.3.2: integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== uuid@^3.3.2, uuid@^3.3.3: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== v8flags@^2.1.1: version "2.1.1" @@ -16170,10 +15951,10 @@ validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: dependencies: builtins "^1.0.3" -value-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" - integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== +value-equal@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7" + integrity sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw== value-or-function@^3.0.0: version "3.0.0" @@ -16196,9 +15977,9 @@ velocity-react@^1.3.3: velocity-animate "^1.4.0" vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + version "1.0.3" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" + integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw== verror@1.10.0: version "1.10.0" @@ -16210,9 +15991,9 @@ verror@1.10.0: extsprintf "^1.2.0" vfile-location@^2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" - integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== + version "2.0.5" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.5.tgz#c83eb02f8040228a8d2b3f10e485be3e3433e0a2" + integrity sha512-Pa1ey0OzYBkLPxPZI3d9E+S4BmvfVwNAAXrrqGbwTVXWaX2p9kM1zZ+n35UtVM06shmWKH4RPRN8KI80qE3wNQ== vfile-message@^1.0.0: version "1.1.1" @@ -16222,17 +16003,17 @@ vfile-message@^1.0.0: unist-util-stringify-position "^1.1.1" vfile-message@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.3.tgz#0dd4f6879fb240a8099b22bd3755536c92e59ba5" - integrity sha512-qQg/2z8qnnBHL0psXyF72kCjb9YioIynvyltuNKFaUhRtqTIcIMP3xnBaPzirVZNuBrUe1qwFciSx2yApa4byw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.1.tgz#951881861c22fc1eb39f873c0b93e336a64e8f6d" + integrity sha512-KtasSV+uVU7RWhUn4Lw+wW1Zl/nW8JWx7JCPps10Y9JRRIDeDXf8wfBLoOSsJLyo27DqMyAi54C6Jf/d6Kr2Bw== dependencies: - "@types/unist" "^2.0.0" + "@types/unist" "^2.0.2" unist-util-stringify-position "^2.0.0" vfile-reporter@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-6.0.1.tgz#45d4dc11df2e312196ea2ceb95e42a67fc8ce814" - integrity sha512-0OppK9mo8G2XUpv+hIKLVSDsoxJrXnOy73+vIm0jQUOUFYRduqpFHX+QqAQfvRHyX9B0UFiRuNJnBOjQCIsw1g== + version "6.0.0" + resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-6.0.0.tgz#753119f51dec9289b7508b457afc0cddf5e07f2e" + integrity sha512-8Is0XxFxWJUhPJdOg3CyZTqd3ICCWg6r304PuBl818ZG91h4FMS3Q+lrOPS+cs5/DZK3H0+AkJdH0J8JEwKtDA== dependencies: repeat-string "^1.5.0" string-width "^4.0.0" @@ -16242,14 +16023,14 @@ vfile-reporter@^6.0.0: vfile-statistics "^1.1.0" vfile-sort@^2.1.0, vfile-sort@^2.1.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.2.tgz#720fe067ce156aba0b411a01bb0dc65596aa1190" - integrity sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA== + version "2.2.1" + resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.1.tgz#74e714f9175618cdae96bcaedf1a3dc711d87567" + integrity sha512-5dt7xEhC44h0uRQKhbM2JAe0z/naHphIZlMOygtMBM9Nn0pZdaX5fshhwWit9wvsuP8t/wp43nTDRRErO1WK8g== vfile-statistics@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.4.tgz#b99fd15ecf0f44ba088cc973425d666cb7a9f245" - integrity sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA== + version "1.1.3" + resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.3.tgz#e9c87071997fbcb4243764d2c3805e0bb0820c60" + integrity sha512-CstaK/ebTz1W3Qp41Bt9Lj/2DmumFsCwC2sKahDNSPh0mPh7/UyMLCoU8ZBX34CRU0d61B4W41yIFsV0NKMZeA== vfile@^2.0.0: version "2.3.0" @@ -16262,9 +16043,9 @@ vfile@^2.0.0: vfile-message "^1.0.0" vfile@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.0.3.tgz#1e50b824fb5e5affd718e225c7bb1af6d97d4408" - integrity sha512-lREgT5sF05TQk68LO6APy0In+TkFGnFEgKChK2+PHIaTrFQ9oHCKXznZ7VILwgYVBcl0gv4lGATFZBLhi2kVQg== + version "4.0.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.0.1.tgz#fc3d43a1c71916034216bf65926d5ee3c64ed60c" + integrity sha512-lRHFCuC4SQBFr7Uq91oJDJxlnftoTLQ7eKIpMdubhYcVMho4781a8MWXLy3qZrZ0/STD1kRiKc0cQOHm4OkPeA== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -16326,9 +16107,9 @@ vinyl@^2.0.0, vinyl@^2.1.0: replace-ext "^1.0.0" vm-browserify@^1.0.0, vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" + integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== vue-eslint-parser@^2.0.2: version "2.0.3" @@ -16343,19 +16124,19 @@ vue-eslint-parser@^2.0.2: lodash "^4.17.4" vue-template-compiler@^2.5.16: - version "2.6.11" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080" - integrity sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA== + version "2.6.10" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.10.tgz#323b4f3495f04faa3503337a82f5d6507799c9cc" + integrity sha512-jVZkw4/I/HT5ZMvRnhv78okGusqe0+qH2A0Em0Cp8aq78+NK9TII263CDVz2QXZsIT+yyV/gZc/j/vlwa+Epyg== dependencies: de-indent "^1.0.2" he "^1.1.0" w3c-hr-time@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= dependencies: - browser-process-hrtime "^1.0.0" + browser-process-hrtime "^0.1.2" walker@^1.0.7, walker@~1.0.5: version "1.0.7" @@ -16371,7 +16152,7 @@ warning@^3.0.0: dependencies: loose-envify "^1.0.0" -warning@^4.0.0, warning@^4.0.1, warning@^4.0.3: +warning@^4.0.1, warning@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== @@ -16404,11 +16185,11 @@ watchify@^3.11.1: xtend "^4.0.0" watchpack@^1.3.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2" - integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA== + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== dependencies: - chokidar "^2.1.8" + chokidar "^2.0.2" graceful-fs "^4.1.2" neo-async "^2.5.0" @@ -16425,9 +16206,9 @@ webidl-conversions@^4.0.2: integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== webpack-sources@^1.0.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + version "1.3.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" + integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== dependencies: source-list-map "^2.0.0" source-map "~0.6.1" @@ -16500,9 +16281,9 @@ whatwg-url@^6.4.1: webidl-conversions "^4.0.2" whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + version "7.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" + integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== dependencies: lodash.sortby "^4.7.0" tr46 "^1.0.1" @@ -16528,20 +16309,13 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which@1, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -16568,7 +16342,7 @@ windows-release@^3.1.0: dependencies: execa "^1.0.0" -word-wrap@^1.0.3, word-wrap@~1.2.3: +word-wrap@^1.0.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -16583,6 +16357,11 @@ wordwrap@~0.0.2: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + worker-farm@^1.6.0, worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -16607,15 +16386,6 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -16646,6 +16416,14 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" +ws@^1.1.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51" + integrity sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w== + dependencies: + options ">=0.0.5" + ultron "1.0.x" + ws@^5.2.0: version "5.2.2" resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" @@ -16653,13 +16431,6 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -ws@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - x-is-string@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" @@ -16688,14 +16459,7 @@ xmlbuilder@~9.0.1: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= -xregexp@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50" - integrity sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g== - dependencies: - "@babel/runtime-corejs3" "^7.8.3" - -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -16720,13 +16484,6 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yaml@^1.7.2: - version "1.8.3" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.3.tgz#2f420fca58b68ce3a332d0ca64be1d191dd3f87a" - integrity sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw== - dependencies: - "@babel/runtime" "^7.8.7" - yamljs@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/yamljs/-/yamljs-0.3.0.tgz#dc060bf267447b39f7304e9b2bfbe8b5a7ddb03b" @@ -16750,18 +16507,10 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^18.1.1: - version "18.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.2.tgz#2f482bea2136dbde0861683abea7756d30b504f1" - integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ== +yargs-parser@^13.1.1: + version "13.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -16773,13 +16522,6 @@ yargs-parser@^4.2.0: dependencies: camelcase "^3.0.0" -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" - integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= - dependencies: - camelcase "^4.1.0" - yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" @@ -16823,10 +16565,10 @@ yargs@^12.0.2: y18n "^3.2.1 || ^4.0.0" yargs-parser "^11.1.1" -yargs@^13.2.4, yargs@^13.3.0: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== +yargs@^13.1.0, yargs@^13.2.4: + version "13.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" + integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== dependencies: cliui "^5.0.0" find-up "^3.0.0" @@ -16837,24 +16579,7 @@ yargs@^13.2.4, yargs@^13.3.0: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.1.2" - -yargs@^15.0.1: - version "15.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" - integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.1" + yargs-parser "^13.1.1" yargs@^6.0.0: version "6.6.0" @@ -16875,25 +16600,6 @@ yargs@^6.0.0: y18n "^3.2.1" yargs-parser "^4.2.0" -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" - integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A= - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^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 "^7.0.0" - yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" From b8216f1b2b4c06e26468ee571e75429ac8f4fe10 Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Fri, 27 Mar 2020 08:22:39 -0700 Subject: [PATCH 045/115] refactor(itinerary): use otp-ui itinerary-body --- .../narrative/line-itin/access-leg-body.js | 200 ---------- .../line-itin/connected-itinerary-body.js | 80 ++++ .../connected-transit-leg-subheader.js | 33 ++ .../narrative/line-itin/itin-body.js | 65 --- .../narrative/line-itin/itin-summary.js | 109 ----- .../narrative/line-itin/itinerary.css | 375 ------------------ .../narrative/line-itin/line-itinerary.js | 7 +- .../narrative/line-itin/place-row.js | 216 ---------- .../narrative/line-itin/transit-leg-body.js | 237 ----------- lib/reducers/create-otp-reducer.js | 2 +- package.json | 29 +- yarn.lock | 217 ++++++---- 12 files changed, 266 insertions(+), 1304 deletions(-) delete mode 100644 lib/components/narrative/line-itin/access-leg-body.js create mode 100644 lib/components/narrative/line-itin/connected-itinerary-body.js create mode 100644 lib/components/narrative/line-itin/connected-transit-leg-subheader.js delete mode 100644 lib/components/narrative/line-itin/itin-body.js delete mode 100644 lib/components/narrative/line-itin/itin-summary.js delete mode 100644 lib/components/narrative/line-itin/itinerary.css delete mode 100644 lib/components/narrative/line-itin/place-row.js delete mode 100644 lib/components/narrative/line-itin/transit-leg-body.js diff --git a/lib/components/narrative/line-itin/access-leg-body.js b/lib/components/narrative/line-itin/access-leg-body.js deleted file mode 100644 index 698651796..000000000 --- a/lib/components/narrative/line-itin/access-leg-body.js +++ /dev/null @@ -1,200 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import { VelocityTransitionGroup } from 'velocity-react' -import currencyFormatter from 'currency-formatter' - -import LegDiagramPreview from '../leg-diagram-preview' - -import { distanceString } from '../../../util/distance' -import { - getLegModeLabel, - getLegIcon, - getPlaceName, - getStepDirection, - getStepStreetName -} from '../../../util/itinerary' -import { formatDuration, formatTime } from '../../../util/time' -import { isMobile } from '../../../util/ui' - -import DirectionIcon from '../../icons/direction-icon' - -/** - * Component for access (e.g. walk/bike/etc.) leg in narrative itinerary. This - * particular component is used in the line-itin (i.e., trimet-mod-otp) version - * of the narrative itinerary. - */ -export default class AccessLegBody extends Component { - static propTypes = { - leg: PropTypes.object, - routingType: PropTypes.string - } - - constructor (props) { - super(props) - this.state = { expanded: false } - } - - _onStepsHeaderClick = () => { - this.setState({ expanded: !this.state.expanded }) - } - - _onSummaryClick = () => { - this.props.setActiveLeg(this.props.legIndex, this.props.leg) - } - - render () { - const { config, customIcons, followsTransit, leg, timeOptions } = this.props - - if (leg.mode === 'CAR' && leg.hailedCar) { - return ( - - ) - } - - return ( -
- - -
- {formatDuration(leg.duration)} - {leg.steps && } -
- - {this.props.routingType === 'ITINERARY' && } - - {this.state.expanded && } - -
- ) - } -} - -class TNCLeg extends Component { - render () { - // TODO: ensure that client ID fields are populated - const { - config, - LYFT_CLIENT_ID, - UBER_CLIENT_ID, - customIcons, - followsTransit, - leg, - timeOptions - } = this.props - const universalLinks = { - 'UBER': `https://m.uber.com/${isMobile() ? 'ul/' : ''}?client_id=${UBER_CLIENT_ID}&action=setPickup&pickup[latitude]=${leg.from.lat}&pickup[longitude]=${leg.from.lon}&pickup[formatted_address]=${encodeURI(leg.from.name)}&dropoff[latitude]=${leg.to.lat}&dropoff[longitude]=${leg.to.lon}&dropoff[formatted_address]=${encodeURI(leg.to.name)}`, - 'LYFT': `https://lyft.com/ride?id=lyft&partner=${LYFT_CLIENT_ID}&pickup[latitude]=${leg.from.lat}&pickup[longitude]=${leg.from.lon}&destination[latitude]=${leg.to.lat}&destination[longitude]=${leg.to.lon}` - } - const { tncData } = leg - - if (!tncData || !tncData.estimatedArrival) return null - return ( -
-
- Wait {!followsTransit && {Math.round(tncData.estimatedArrival / 60)} minutes }for {tncData.displayName} pickup -
- -
- {/* The icon/summary row */} - - - {/* The "Book Ride" button */} -
- - Book Ride - - {followsTransit &&
} - {followsTransit && ( -
-
-
- Wait until {formatTime(leg.startTime - tncData.estimatedArrival * 1000, timeOptions)} to book -
-
-
- )} -
- - {/* The estimated travel time */} -
- Estimated travel time: {formatDuration(leg.duration)} (does not account for traffic) -
- - {/* The estimated travel cost */} - {tncData.minCost && -

Estimated cost: { - `${currencyFormatter.format(tncData.minCost, { code: tncData.currency })} - ${currencyFormatter.format(tncData.maxCost, { code: tncData.currency })}` - }

- } -
-
- ) - } -} - -class AccessLegSummary extends Component { - render () { - const { config, customIcons, leg } = this.props - return ( -
- {/* Mode-specific icon */} -
{getLegIcon(leg, customIcons)}
- - {/* Leg description, e.g. "Walk 0.5 mi to..." */} -
- {getLegModeLabel(leg)} - {' '} - {leg.distance > 0 && {distanceString(leg.distance)}} - {` to ${getPlaceName(leg.to, config.companies)}`} -
-
- ) - } -} - -class AccessLegSteps extends Component { - static propTypes = { - steps: PropTypes.array - } - - render () { - return ( -
- {this.props.steps.map((step, k) => { - return
-
- -
- -
- {getStepDirection(step)} - {step.relativeDirection === 'ELEVATOR' ? ' to ' : ' on '} - - {getStepStreetName(step)} - -
-
- })} -
- ) - } -} diff --git a/lib/components/narrative/line-itin/connected-itinerary-body.js b/lib/components/narrative/line-itin/connected-itinerary-body.js new file mode 100644 index 000000000..6d9115d3d --- /dev/null +++ b/lib/components/narrative/line-itin/connected-itinerary-body.js @@ -0,0 +1,80 @@ +import isEqual from 'lodash.isequal' +import TriMetLegIcon from '@opentripplanner/icons/lib/trimet-leg-icon' +import TransitLegSummary from '@opentripplanner/itinerary-body/lib/defaults/transit-leg-summary' +import ItineraryBody from '@opentripplanner/itinerary-body/lib/otp-react-redux/itinerary-body' +import LineColumnContent from '@opentripplanner/itinerary-body/lib/otp-react-redux/line-column-content' +import PlaceName from '@opentripplanner/itinerary-body/lib/otp-react-redux/place-name' +import RouteDescription from '@opentripplanner/itinerary-body/lib/otp-react-redux/route-description' +import React, { Component } from 'react' +import { connect } from 'react-redux' + +import { showLegDiagram } from '../../../actions/map' +import { setActiveLeg } from '../../../actions/narrative' +import { setViewedTrip } from '../../../actions/ui' +import TransitLegSubheader from './connected-transit-leg-subheader' +import TripDetails from '../trip-details' +import TripTools from '../trip-tools' + +const noop = () => {} + +class ConnectedItineraryBody extends Component { + shouldComponentUpdate (nextProps, nextState) { + return !isEqual(this.props.companies, nextProps.companies) || + !isEqual(this.props.itinerary, nextProps.itinerary) + } + + render () { + const { + config, + diagramVisible, + itinerary, + setActiveLeg, + setViewedTrip, + showLegDiagram + } = this.props + + return ( +
+ + + +
+ ) + } +} + +const mapStateToProps = (state, ownProps) => { + return { + config: state.otp.config, + diagramVisible: state.otp.ui.diagramLeg + } +} + +const mapDispatchToProps = { + setActiveLeg, + setViewedTrip, + showLegDiagram +} + +export default connect(mapStateToProps, mapDispatchToProps)( + ConnectedItineraryBody +) diff --git a/lib/components/narrative/line-itin/connected-transit-leg-subheader.js b/lib/components/narrative/line-itin/connected-transit-leg-subheader.js new file mode 100644 index 000000000..130374022 --- /dev/null +++ b/lib/components/narrative/line-itin/connected-transit-leg-subheader.js @@ -0,0 +1,33 @@ +import TransitLegSubheader from '@opentripplanner/itinerary-body/lib/otp-react-redux/transit-leg-subheader' +import React, { Component } from 'react' +import { connect } from 'react-redux' + +import { setMainPanelContent, setViewedStop } from '../../../actions/ui' + +class ConnectedTransitLegSubheader extends Component { + onClick = (payload) => { + const { setMainPanelContent, setViewedStop } = this.props + setMainPanelContent(null) + setViewedStop(payload) + } + + render () { + const { languageConfig, leg } = this.props + return ( + + ) + } +} + +const mapDispatchToProps = { + setMainPanelContent, + setViewedStop +} + +export default connect(null, mapDispatchToProps)( + ConnectedTransitLegSubheader +) diff --git a/lib/components/narrative/line-itin/itin-body.js b/lib/components/narrative/line-itin/itin-body.js deleted file mode 100644 index c38ced30d..000000000 --- a/lib/components/narrative/line-itin/itin-body.js +++ /dev/null @@ -1,65 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import isEqual from 'lodash.isequal' - -import TripDetails from '../trip-details' -import TripTools from '../trip-tools' - -import PlaceRow from './place-row' - -export default class ItineraryBody extends Component { - static propTypes = { - companies: PropTypes.string, - itinerary: PropTypes.object, - routingType: PropTypes.string - } - - constructor (props) { - super(props) - this.rowKey = 0 - } - - shouldComponentUpdate (nextProps, nextState) { - return !isEqual(this.props.companies, nextProps.companies) || - !isEqual(this.props.itinerary, nextProps.itinerary) - } - - render () { - const { itinerary, setActiveLeg, timeOptions } = this.props - - const rows = [] - let followsTransit = false - itinerary.legs.forEach((leg, i) => { - // Create a row containing this leg's start place and leg traversal details - rows.push( - - ) - // If this is the last leg, create a special PlaceRow for the destination only - if (i === itinerary.legs.length - 1) { - rows.push( - ) - } - if (leg.transitLeg) followsTransit = true - }) - - return ( -
- {rows} - - -
- ) - } -} diff --git a/lib/components/narrative/line-itin/itin-summary.js b/lib/components/narrative/line-itin/itin-summary.js deleted file mode 100644 index e8965fe35..000000000 --- a/lib/components/narrative/line-itin/itin-summary.js +++ /dev/null @@ -1,109 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' - -import { calculateFares, calculatePhysicalActivity, getLegIcon, isTransit } from '../../../util/itinerary' -import { formatDuration, formatTime } from '../../../util/time' - -// TODO: make this a prop -const defaultRouteColor = '#008' - -export default class ItinerarySummary extends Component { - static propTypes = { - itinerary: PropTypes.object - } - - _onSummaryClicked = () => { - if (typeof this.props.onClick === 'function') this.props.onClick() - } - - render () { - const { customIcons, itinerary, timeOptions } = this.props - const { - centsToString, - maxTNCFare, - minTNCFare, - transitFare - } = calculateFares(itinerary) - // TODO: support non-USD - const minTotalFare = minTNCFare * 100 + transitFare - const maxTotalFare = maxTNCFare * 100 + transitFare - - const { caloriesBurned } = calculatePhysicalActivity(itinerary) - - return ( -
-
- {/* Travel time in hrs/mins */} -
{formatDuration(itinerary.duration)}
- - {/* Duration as time range */} -
- {formatTime(itinerary.startTime, timeOptions)} - {formatTime(itinerary.endTime, timeOptions)} -
- - {/* Fare / Calories */} -
- {minTotalFare > 0 && - {centsToString(minTotalFare)} - {minTotalFare !== maxTotalFare && - {centsToString(maxTotalFare)}} - - } - {Math.round(caloriesBurned)} Cals -
- - {/* Number of transfers, if applicable */} - {itinerary.transfers > 0 && ( -
- {itinerary.transfers} transfer{itinerary.transfers > 1 ? 's' : ''} -
- )} - -
-
- {itinerary.legs.filter(leg => { - return !(leg.mode === 'WALK' && itinerary.transitTime > 0) - }).map((leg, k) => { - return
-
{getLegIcon(leg, customIcons)}
- {isTransit(leg.mode) - ? ( -
- {getRouteNameForBadge(leg)} -
- ) - : (
) - } -
- })} -
-
- ) - } -} - -// Helper functions - -function getRouteLongName (leg) { - return leg.routes && leg.routes.length > 0 - ? leg.routes[0].longName - : leg.routeLongName -} - -function getRouteNameForBadge (leg) { - const shortName = leg.routes && leg.routes.length > 0 - ? leg.routes[0].shortName : leg.routeShortName - - const longName = getRouteLongName(leg) - - // check for max - if (longName && longName.toLowerCase().startsWith('max')) return null - - // check for streetcar - if (longName && longName.startsWith('Portland Streetcar')) return longName.split('-')[1].trim().split(' ')[0] - - return shortName || longName -} - -function getRouteColorForBadge (leg) { - return leg.routeColor ? '#' + leg.routeColor : defaultRouteColor -} diff --git a/lib/components/narrative/line-itin/itinerary.css b/lib/components/narrative/line-itin/itinerary.css deleted file mode 100644 index 89df3acf0..000000000 --- a/lib/components/narrative/line-itin/itinerary.css +++ /dev/null @@ -1,375 +0,0 @@ -.otp .options.profile .itin-body .place-row { - margin-left: 55px; -} - -.otp .line-itin { - margin-bottom: 20px; -} - -/* Itinerary summary */ - -.otp .line-itin .itin-summary { - padding-right: 5px; - height: 60px; - display: table; - width: 100%; - margin-bottom: 15px; -} - -.otp .desktop-narrative-container .options.itinerary .line-itin .itin-summary { - display: none; -} - -.otp .line-itin .itin-summary .details { - display: table-cell; - vertical-align: top; -} - -.otp .line-itin .itin-summary .header { - font-weight: bold; - font-size: 18px; - margin-top: -3px; -} - -.otp .line-itin .itin-summary .detail { - font-size: 13px; - color: #999999; -} - -.otp .line-itin .itin-summary .routes { - display: table-cell; - text-align: right; -} - -.otp .line-itin .itin-summary .routes .route-preview { - display: inline-block; - margin-left: 8px; - vertical-align: top; -} - -.otp .line-itin .itin-summary .routes .route-preview .mode-icon { - height: 30px; - width: 30px; -} - -.otp .line-itin .itin-summary .routes .route-preview .short-name { - color: white; - font-weight: 500; - text-align: center; - margin-top: 6px; - font-size: 15px; - padding-top: 2px; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - width: 30px; - height: 30px; - border-radius: 15px; - border: 2px solid white; - box-shadow: 0 0 0.5em #000; -} - -/* Itinerary main body */ - -.otp .line-itin .itin-body { - padding: 20px 0px; -} - -.otp .line-itin .place-row { - display: table; - width: 100%; -} - - -/* Departure/arrival time (1st column in table) */ - -.otp .line-itin .time { - display: table-cell; - width: 60px; - font-size: 14px; - color: #999999; - text-align: right; - padding-right: 4px; - padding-top: 1px; - vertical-align: top; -} - -/* The place icon and line itself (2nd column in table) */ -.otp .line-itin .line-container { - position: relative; - display: table-cell; - width: 20px; - max-width: 20px; -} - -.otp .line-itin .place-icon-group { - position: absolute; - font-size: 18px; - left: -8px; - top: -7px; - z-index: 20; -} - -.otp .line-itin .leg-line { - position: absolute; - top: 11px; - bottom: -11px; - z-index: 10; -} - -// Internet explorer specific media query to apply the below styling to fix -// rendering issues with table cell display with undefined heights. -/*@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { - .otp .line-itin .line-container { - overflow: hidden; // hack for IE to render table cell correctly. - } - - .otp .line-itin .leg-line { - height: 1000px; // hack for IE to render table cell correctly. - } -}*/ - -.otp .line-itin .leg-line-walk { - left: 6px; - right: 6px; - background: radial-gradient(ellipse at center, #87cefa 40%, transparent 10%); - background-size: 12px 12px; - background-repeat: repeat-y; - background-position: center -5px; -} - -.otp .line-itin .leg-line-bicycle { - left: 7.5px; - right: 7.5px; - background: repeating-linear-gradient( - 0deg, - red, - red 8px, - white 8px, - white 12.5px - ); -} - -.otp .line-itin .leg-line-car { - left: 7.5px; - right: 7.5px; - background: repeating-linear-gradient( - 0deg, - grey, - grey 8px, - white 8px, - white 12.5px - ); -} - -.otp .line-itin .leg-line-micromobility { - left: 7.5px; - right: 7.5px; - background: repeating-linear-gradient( - 0deg, - #f5a729, - #f5a729 8px, - white 8px, - white 12.5px - ); -} - -.otp .line-itin .leg-line-transit { - left: 5px; - right: 5px; - background-color: gray; -} - -/* Place/Leg details (3rd column in table) */ - -.otp .line-itin .place-details { - font-size: 13px; - display: table-cell; - padding-top: 1px; -} - -.otp .line-itin .place-name { - font-size: 18px; - line-height: 20px; - padding-left: 4px; - font-weight: 500; - color: black; -} - -.otp .line-itin .place-subheader { - font-size: 12px; - padding-left: 4px; - padding-top: 1px; - font-weight: 300; - color: gray; -} - -.otp .line-itin .interline-dot { - position: relative; - float: left; - margin-left: -13.5px; - z-index: 25; - color: #fff; -} - -.otp .line-itin .interline-name { - font-size: 14px; - font-weight: 400; - line-height: 16px; -} - -/* Leg body general */ - -.otp .line-itin .leg-body { - padding: 12px 0px 18px 4px; - font-size: 13px; - color: #999999; -} - -.otp .line-itin .summary { - cursor: pointer; -} - -.otp .line-itin .leg-body .icon { - height: 24px; - width: 24px; - float: left; - margin-right: 6px; -} - -.otp .line-itin .leg-body .leg-description { - display: table; -} - -.otp .line-itin .leg-body .leg-description > div { - display: table-cell; - vertical-align: middle; -} - -/* Leg steps (for turn-by-turn) */ - -.otp .line-itin .leg-body .steps-header { - font-size: 13px; - margin-top: 10px; - color: #999999; - font-style: normal; - display: inline-block; -} - -.otp .line-itin .leg-body .step-row { - font-size: 13px; - margin-top: 8px; - color: #999999; - font-style: normal; -} - -/* Transit leg details */ - -.otp .line-itin .leg-body .route-name { - color: #999999; - margin-top: 5px; -} - -.otp .line-itin .leg-body .route-short-name { - display: inline-block; - background-color: #0f6aac; - padding-top: 1px; - color: white; - font-weight: 500; - font-size: 14px; - margin-right: 6px; - text-align: center; - width: 24px; - height: 24px; - border-radius: 12px; - border: 1px solid white; - box-shadow: 0 0 0.25em #000; - margin-right: 8px; -} - -.otp .line-itin .leg-body .route-long-name { - font-size: 13px; - line-height: 16px; - font-weight: 500; -} - -.otp .line-itin .leg-body .transit-leg-details { - margin-top: 5px; -} - -.otp .line-itin .leg-body .agency-info { - margin-top: 5px; - -} - -.otp .line-itin .leg-body .transit-leg-details .header { - cursor: pointer; - color: #999999; - font-size: 13px; -} - -/* Intermediate stops */ - -.otp .line-itin .leg-body .transit-leg-details .intermediate-stops .stop-row { - z-index: 30; - position: relative; -} - -.otp .line-itin .leg-body .transit-leg-details .intermediate-stops .stop-marker { - float: left; - margin-left: -17px; - color: white; -} - -.otp .line-itin .leg-body .transit-leg-details .intermediate-stops .stop-name { - color: #999999; - font-size: 14px; - margin-top: 3px; -} - -/* Transit alerts */ - -.otp .line-itin .leg-body .transit-alerts-toggle { - display: inline-block; - margin-top: 8px; - color: #D14727; - font-weight: 400; - cursor: pointer; -} - -.otp .line-itin .leg-body .transit-alerts { - margin-top: 3px; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert { - margin-top: 5px; - background-color: #eee; - padding: 8px; - color: black; - border-radius: 4px; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert .alert-icon { - float: left; - font-size: 18px; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert .alert-header { - font-size: 14px; - margin-left: 30px; - font-weight: 600; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert .alert-body { - font-size: 12px; - margin-left: 30px; - /* white space pre-wrap is required to render line breaks correctly. */ - white-space: pre-wrap; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert .effective-date { - margin-top: 5px; - margin-left: 30px; - font-size: 12px; - font-style: italic; -} diff --git a/lib/components/narrative/line-itin/line-itinerary.js b/lib/components/narrative/line-itin/line-itinerary.js index 6c89ddae0..2ca69e267 100644 --- a/lib/components/narrative/line-itin/line-itinerary.js +++ b/lib/components/narrative/line-itin/line-itinerary.js @@ -5,7 +5,7 @@ import SimpleRealtimeAnnotation from '../simple-realtime-annotation' import { getLegModeLabel, getTimeZoneOffset, isTransit } from '../../../util/itinerary' import ItinerarySummary from './itin-summary' -import ItineraryBody from './itin-body' +import ItineraryBody from './connected-itinerary-body' export default class LineItinerary extends NarrativeItinerary { _headerText () { @@ -68,10 +68,7 @@ export default class LineItinerary extends NarrativeItinerary { customIcons={customIcons} /> {showRealtimeAnnotation && } {active || expanded - ? + ? : null} {itineraryFooter}
diff --git a/lib/components/narrative/line-itin/place-row.js b/lib/components/narrative/line-itin/place-row.js deleted file mode 100644 index 24090a6d2..000000000 --- a/lib/components/narrative/line-itin/place-row.js +++ /dev/null @@ -1,216 +0,0 @@ -import LocationIcon from '@opentripplanner/location-icon' -import React, { Component, PureComponent } from 'react' -import { connect } from 'react-redux' - -import ViewStopButton from '../../viewers/view-stop-button' -import { - getCompaniesLabelFromNetworks, - getModeForPlace, - getPlaceName -} from '../../../util/itinerary' -import { formatTime } from '../../../util/time' - -import TransitLegBody from './transit-leg-body' -import AccessLegBody from './access-leg-body' - -// TODO: make this a prop -const defaultRouteColor = '#008' - -class PlaceRow extends Component { - _createLegLine (leg) { - switch (leg.mode) { - case 'WALK': return
- case 'BICYCLE': - case 'BICYCLE_RENT': - return
- case 'CAR': return
- case 'MICROMOBILITY': - case 'MICROMOBILITY_RENT': - return
- default: - return
- } - } - - /* eslint-disable complexity */ - render () { - const { config, customIcons, leg, legIndex, place, time, timeOptions, followsTransit } = this.props - const stackIcon = (name, color, size) => - let icon - if (!leg) { // This is the itinerary destination - icon = ( - - {stackIcon('circle', 'white', 26)} - - - ) - } else if (legIndex === 0) { // The is the origin - icon = ( - - {stackIcon('circle', 'white', 26)} - - - ) - } else { // This is an intermediate place - icon = ( - - {stackIcon('circle', 'white', 22)} - {stackIcon('circle-o', 'black', 22)} - - ) - } - // NOTE: Previously there was a check for itineraries that changed vehicles - // at a single stop, which would render the stop place the same as the - // interline stop. However, this prevents the user from being able to click - // on the stop viewer in this case, which they may want to do in order to - // check the real-time arrival information for the next leg of their journey. - const interline = leg && leg.interlineWithPreviousLeg - return ( -
-
- {time && formatTime(time, timeOptions)} -
-
- {leg && this._createLegLine(leg) } -
{!interline && icon}
-
-
- {/* Dot separating interlined segments, if applicable */} - {interline &&
} - - {/* The place name */} -
- {interline - ?
Stay on Board at {place.name}
- :
{getPlaceName(place, config.companies)}
- } -
- - {/* Place subheading: Transit stop */} - {place.stopId && !interline && ( -
- Stop ID {place.stopId.split(':')[1]} - -
- )} - - {/* Place subheading: rented vehicle (e.g., scooter, bike, car) pickup */} - {leg && (leg.rentedVehicle || leg.rentedBike || leg.rentedCar) && ( - - )} - - {/* Show the leg, if present */} - {leg && ( - leg.transitLeg - ? (/* This is a transit leg */ - - ) - : (/* This is an access (e.g. walk/bike/etc.) leg */ - - ) - )} -
-
- ) - } -} - -// connect to the redux store - -const mapStateToProps = (state, ownProps) => { - return { - // Pass config in order to give access to companies definition (used to - // determine proper place names for rental vehicles). - config: state.otp.config - } -} - -const mapDispatchToProps = { } - -export default connect(mapStateToProps, mapDispatchToProps)(PlaceRow) - -/** - * A component to display vehicle rental data. The word "Vehicle" has been used - * because a future refactor is intended to combine car rental, bike rental - * and micromobility rental all within this component. The future refactor is - * assuming that the leg.rentedCar and leg.rentedBike response elements from OTP - * will eventually be merged into the leg.rentedVehicle element. - */ -class RentedVehicleLeg extends PureComponent { - render () { - const { config, leg } = this.props - const configCompanies = config.companies || [] - - // Sometimes rented vehicles can be walked over things like stairs or other - // ways that forbid the main mode of travel. - if (leg.mode === 'WALK') { - return ( -
- Walk vehicle along {leg.from.name} -
- ) - } - - let rentalDescription = 'Pick up' - if (leg.rentedBike) { - // TODO: Special case for TriMet may need to be refactored. - rentalDescription += ` shared bike` - } else { - // Add company and vehicle labels. - let vehicleName = '' - // TODO allow more flexibility in customizing these mode strings - let modeString = leg.rentedVehicle - ? 'E-scooter' - : leg.rentedBike - ? 'bike' - : 'car' - - // The networks attribute of the from data will only appear at the very - // beginning of the rental. It is possible that there will be some forced - // walking that occurs in the middle of the rental, so once the main mode - // resumes there won't be any network info. In that case we simply return - // that the rental is continuing. - if (leg.from.networks) { - const companiesLabel = getCompaniesLabelFromNetworks( - leg.from.networks, - configCompanies - ) - rentalDescription += ` ${companiesLabel}` - // Only show vehicle name for car rentals. For bikes and E-scooters, these - // IDs/names tend to be less relevant (or entirely useless) in this context. - if (leg.rentedCar && leg.from.name) { - vehicleName = leg.from.name - } - modeString = getModeForPlace(leg.from) - } else { - rentalDescription = 'Continue using rental' - } - - rentalDescription += ` ${modeString} ${vehicleName}` - } - // e.g., Pick up REACHNOW rented car XYZNDB OR - // Pick up SPIN E-scooter - // Pick up shared bike - return ( -
- {rentalDescription} -
- ) - } -} diff --git a/lib/components/narrative/line-itin/transit-leg-body.js b/lib/components/narrative/line-itin/transit-leg-body.js deleted file mode 100644 index a1fafdb1d..000000000 --- a/lib/components/narrative/line-itin/transit-leg-body.js +++ /dev/null @@ -1,237 +0,0 @@ -import React, { Component } from 'react' -import { connect } from 'react-redux' -import PropTypes from 'prop-types' -import { VelocityTransitionGroup } from 'velocity-react' -import moment from 'moment' - -import ViewTripButton from '../../viewers/view-trip-button' -import { getIcon } from '../../../util/itinerary' -import { - formatDuration, - getLongDateFormat, - getTimeFormat -} from '../../../util/time' - -// TODO: support multi-route legs for profile routing - -class TransitLegBody extends Component { - static propTypes = { - leg: PropTypes.object, - legIndex: PropTypes.number, - setActiveLeg: PropTypes.func - } - - constructor (props) { - super(props) - this.state = { - alertsExpanded: false, - stopsExpanded: false - } - } - - _onToggleStopsClick = () => { - this.setState({ stopsExpanded: !this.state.stopsExpanded }) - } - - _onToggleAlertsClick = () => { - this.setState({ alertsExpanded: !this.state.alertsExpanded }) - } - - _onSummaryClick = () => { - this.props.setActiveLeg(this.props.legIndex, this.props.leg) - } - - render () { - const { customIcons, leg, longDateFormat, operator, timeFormat } = this.props - const { - agencyBrandingUrl, - agencyName, - agencyUrl, - alerts, - mode, - routeShortName, - routeLongName, - headsign - } = leg - const { alertsExpanded, stopsExpanded } = this.state - - // If the config contains an operator with a logo URL, prefer that over the - // one provided by OTP (which is derived from agency.txt#agency_branding_url) - const logoUrl = operator && operator.logo ? operator.logo : agencyBrandingUrl - - // get the iconKey for the leg's icon - let iconKey = mode - if (typeof customIcons.customIconForLeg === 'function') { - const customIcon = customIcons.customIconForLeg(leg) - if (customIcon) iconKey = customIcon - } - - return ( -
- {/* The Route Icon/Name Bar; clickable to set as active leg */} -
-
-
-
{getIcon(iconKey, customIcons)}
-
- {routeShortName && ( -
- {routeShortName} -
- )} -
- {routeLongName} - {headsign && to {headsign}} -
-
-
- - {/* Agency information */} - { -
- Service operated by{' '} - - {agencyName}{logoUrl && - - } - -
- } - - {/* Alerts toggle */} - {alerts && alerts.length > 0 && ( -
- {alerts.length} {pluralize('alert', alerts)} - {' '} - -
- )} - - {/* The Alerts body, if visible */} - - {alertsExpanded && - - } - - {/* The "Ride X Min / X Stops" Row, including IntermediateStops body */} - {leg.intermediateStops && leg.intermediateStops.length > 0 && ( -
- - {/* The header summary row, clickable to expand intermediate stops */} -
- {leg.duration && Ride {formatDuration(leg.duration)}} - {leg.intermediateStops && ( - - {' / '} - {leg.intermediateStops.length + 1} - {' stops '} - - - )} - - {/* The ViewTripButton. TODO: make configurable */} - -
- {/* IntermediateStops expanded body */} - - {stopsExpanded ? : null } - - - {/* Average wait details, if present */} - {leg.averageWait && Typical Wait: {formatDuration(leg.averageWait)}} -
- )} -
- ) - } -} - -// Connect to the redux store - -const mapStateToProps = (state, ownProps) => { - return { - longDateFormat: getLongDateFormat(state.otp.config), - operator: state.otp.config.operators.find(operator => operator.id === ownProps.leg.agencyId), - timeFormat: getTimeFormat(state.otp.config) - } -} - -const mapDispatchToProps = {} - -export default connect(mapStateToProps, mapDispatchToProps)(TransitLegBody) - -class IntermediateStops extends Component { - static propTypes = { - stops: PropTypes.array - } - - render () { - return ( -
- {this.props.stops.map((stop, k) => { - return
-
-
{stop.name}
-
- })} -
- ) - } -} - -class AlertsBody extends Component { - static propTypes = { - alerts: PropTypes.array - } - - render () { - const { longDateFormat, timeFormat } = this.props - return ( -
- {this.props.alerts - .sort((a, b) => b.effectiveStartDate - a.effectiveStartDate) - .map((alert, i) => { - // If alert is effective as of +/- one day, use today, tomorrow, or - // yesterday with time. Otherwise, use long date format. - const dateTimeString = moment(alert.effectiveStartDate) - .calendar(null, { - sameDay: `${timeFormat}, [Today]`, - nextDay: `${timeFormat}, [Tomorrow]`, - lastDay: `${timeFormat}, [Yesterday]`, - lastWeek: `${longDateFormat}`, - sameElse: `${longDateFormat}` - }) - const effectiveDateString = `Effective as of ${dateTimeString}` - return ( -
-
- {alert.alertHeaderText - ?
{alert.alertHeaderText}
- : null - } -
{alert.alertDescriptionText}
-
{effectiveDateString}
-
- ) - }) - } -
- ) - } -} - -// TODO use pluralize that for internationalization (and complex plurals, i.e., not just adding 's') -function pluralize (str, list) { - return `${str}${list.length > 1 ? 's' : ''}` -} diff --git a/lib/reducers/create-otp-reducer.js b/lib/reducers/create-otp-reducer.js index d265283e4..664e0a213 100644 --- a/lib/reducers/create-otp-reducer.js +++ b/lib/reducers/create-otp-reducer.js @@ -251,7 +251,7 @@ function createOtpReducer (config, initialQuery) { } }, ui: { - diagramLeg: { $set: false } + diagramLeg: { $set: null } } }) case 'NON_REALTIME_ROUTING_RESPONSE': diff --git a/package.json b/package.json index 86a5e199e..2c6258564 100644 --- a/package.json +++ b/package.json @@ -29,20 +29,21 @@ "dependencies": { "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", - "@opentripplanner/base-map": "^0.0.18", - "@opentripplanner/core-utils": "^0.0.18", - "@opentripplanner/endpoints-overlay": "^0.0.18", - "@opentripplanner/from-to-location-picker": "^0.0.18", - "@opentripplanner/geocoder": "^0.0.18", - "@opentripplanner/location-field": "^0.0.18", - "@opentripplanner/location-icon": "^0.0.18", - "@opentripplanner/park-and-ride-overlay": "^0.0.18", - "@opentripplanner/route-viewer-overlay": "^0.0.18", - "@opentripplanner/stop-viewer-overlay": "^0.0.18", - "@opentripplanner/stops-overlay": "^0.0.18", - "@opentripplanner/transitive-overlay": "^0.0.18", - "@opentripplanner/trip-viewer-overlay": "^0.0.18", - "@opentripplanner/vehicle-rental-overlay": "^0.0.18", + "@opentripplanner/base-map": "^0.0.19", + "@opentripplanner/core-utils": "^0.0.19", + "@opentripplanner/endpoints-overlay": "^0.0.19", + "@opentripplanner/from-to-location-picker": "^0.0.19", + "@opentripplanner/geocoder": "^0.0.19", + "@opentripplanner/itinerary-body": "^0.0.19", + "@opentripplanner/location-field": "^0.0.19", + "@opentripplanner/location-icon": "^0.0.19", + "@opentripplanner/park-and-ride-overlay": "^0.0.19", + "@opentripplanner/route-viewer-overlay": "^0.0.19", + "@opentripplanner/stop-viewer-overlay": "^0.0.19", + "@opentripplanner/stops-overlay": "^0.0.19", + "@opentripplanner/transitive-overlay": "^0.0.19", + "@opentripplanner/trip-viewer-overlay": "^0.0.19", + "@opentripplanner/vehicle-rental-overlay": "^0.0.19", "bootstrap": "^3.3.7", "clone": "^2.1.0", "connected-react-router": "^6.5.2", diff --git a/yarn.lock b/yarn.lock index 8e80c0af3..a6beb362c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1331,18 +1331,18 @@ universal-user-agent "^3.0.0" url-template "^2.0.8" -"@opentripplanner/base-map@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/base-map/-/base-map-0.0.18.tgz#afd04eca83cbf972e0c4b0db5c8fdd42fd7ce040" - integrity sha512-6sUUL1WpFASxm8vhLSsCIER/VwsVPgAF27MEz5tatk5Fdl2KG3DD9+WeW41b1iUzkaK1S0b1z2y4Ozn52RqU0g== +"@opentripplanner/base-map@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/base-map/-/base-map-0.0.19.tgz#71b0d77c7e8265f742f5383c943663436eb3369b" + integrity sha512-X/OtKsCoVOfJ4GrkDfvW5zufDE2dTzdGsagojrrTk0mzJTh1Kv+x+Oe3iXJfllg5U61yt06PDunFdsZE5kHr2w== dependencies: - "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/core-utils" "^0.0.19" prop-types "^15.7.2" -"@opentripplanner/core-utils@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.18.tgz#5109a60e262802dca3b1e7a34091c9a394f5b290" - integrity sha512-6ej3MVTd/Kz4OYnIDJBm8fT4OHkchWq+sU9G+Z6fHJhGE5nh/ljCcps/8Vew1HXK6nhaeDMm099nkA/8YKRnug== +"@opentripplanner/core-utils@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.19.tgz#152991efb07d578abf40649ce0dde1c62a8ec4e3" + integrity sha512-9j0j8pGba+af5kz0K8+6bNLy/34BL7CEIHkLQyyLv3H30GpzJWQ+r9z6zIcwndVcoBqEcrn6gLBr1S2KrBscZA== dependencies: "@mapbox/polyline" "^1.1.0" "@turf/along" "^6.0.1" @@ -1353,119 +1353,142 @@ prop-types "^15.7.2" qs "^6.9.1" -"@opentripplanner/endpoints-overlay@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/endpoints-overlay/-/endpoints-overlay-0.0.18.tgz#688b83c756ad3c97679c417afbcd9ab86b7db1c6" - integrity sha512-6wLnCVO522IO/HZSp/mJDuCT04FoQWZpHJ/54h7ZQVWbowxwdXHz1f0PtFsxvMwZB2jN4W7h257p0g1CRiKunw== +"@opentripplanner/endpoints-overlay@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/endpoints-overlay/-/endpoints-overlay-0.0.19.tgz#667a70b8b0526cc3fd01e4f69e4839cf04a85ca5" + integrity sha512-0Cd4dd5yYXP42udDAKGNHj00WuCXwoWThj03IWagKOpbr7T5g7ag7B1RkbMJQICYsFvqg9stQJ3AnOmNrwBBPw== dependencies: - "@opentripplanner/core-utils" "^0.0.18" - "@opentripplanner/location-icon" "^0.0.18" + "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/location-icon" "^0.0.19" prop-types "^15.7.2" styled-icons "^9.1.0" -"@opentripplanner/from-to-location-picker@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.18.tgz#21d1164d09724becea640a95f97aadb479df8f24" - integrity sha512-y5GJxvf1La2Wk9ldEtKO5zzVnECi89HkrWdT5Tb2ZYuJrUVnPZZ28CmLEtQGSh+Qtj/kxVBMII/UOkoja3SkuQ== +"@opentripplanner/from-to-location-picker@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.19.tgz#5dd78fff068c84c256fa504dd163ca70e51b2cd9" + integrity sha512-ZNPJVRO2OIOKjdRLOX4fnOvWTX07ccTXEuUfXPpITOf8QBHnJZPTFBgBSMmfqxMfcuLf6NRD4+YzFcllIO4opQ== dependencies: - "@opentripplanner/core-utils" "^0.0.18" - "@opentripplanner/location-icon" "^0.0.18" + "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/location-icon" "^0.0.19" prop-types "^15.7.2" -"@opentripplanner/geocoder@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.18.tgz#fe1ecddd025b08e6b2bf51a9ddf8c65e10571b90" - integrity sha512-NvqZDJc6c+fKRXys5jkaFD5F2gtXag4gKov2L6z0d3+Sn8BTQvDTuE961J5Bb/xn8xE4IvmcIs5tQmE/B+tvBw== +"@opentripplanner/geocoder@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.19.tgz#4ff8b1baf3c322491f472db31c3fbd7ed576b2a1" + integrity sha512-BOkOY85fj6E2CAFemlMH3qu/e4t9xG3llKrvasm8Vh23PI3FwQRtDQoN8qz3vK4s/pjZsd0D/TpS8+bQGI9HQQ== dependencies: "@conveyal/geocoder-arcgis-geojson" "^0.0.2" "@conveyal/lonlat" "^1.4.0" isomorphic-mapzen-search "^1.4.1" lodash.memoize "^4.1.2" -"@opentripplanner/humanize-distance@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.18.tgz#eeb49b826754e9e04ca84813781fa47baeaebc7f" - integrity sha512-emn2TTVBk9DUnbLPh9OIP/ZlKdbDpJzVWq+tO5HIqCIL1TW0XFEQDbQLv3b3rGS2R2LHbhKlYYJKmP36ZFS20w== +"@opentripplanner/humanize-distance@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.19.tgz#30d445e9f586afcf0488a8fe27157d62b29fd563" + integrity sha512-gEDH3oB8XZoraPWfsmVfEZYqPN/aqh+Z3Pjc35asJmdOCVKuWWnSem/W4qyK6hBnpMV3RUl9TBKl3B5ubnqBLA== -"@opentripplanner/location-field@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.18.tgz#c01d5a876f7cd76ee1855ed4ee186abd3ff85ae1" - integrity sha512-RAJkkgCWTuZRcjOguzFWb+z4YDLv8Lrp6V2QZJhNV289SPjokuGOuDrARl7+FQ8Di0ZuH95Ca/PipJEdeF2wAQ== +"@opentripplanner/icons@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.19.tgz#7681ad2b202e18f361cc4ae32b9c14e162500e50" + integrity sha512-yGNBamoCzvdzcc86RFfZGW5SsktOsXV2G+USPr9goWoP1Hw1IukSn2gEWP8s8qvBCulAMr7HZdLHSXAT9TXk9w== dependencies: - "@opentripplanner/core-utils" "^0.0.18" - "@opentripplanner/geocoder" "^0.0.18" - "@opentripplanner/humanize-distance" "^0.0.18" - "@opentripplanner/location-icon" "^0.0.18" + "@opentripplanner/core-utils" "^0.0.19" + prop-types "^15.7.2" + +"@opentripplanner/itinerary-body@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/itinerary-body/-/itinerary-body-0.0.19.tgz#44c7858f848a625c7327de38850adc2f0a086667" + integrity sha512-f7H8eXWUAArlqBUkvg9IqN+hbQgtVSqcLtwu+EMjNmO9/grU6qR1z9guyXudNi5BS+jsngIla8mNNC60+8l7tA== + dependencies: + "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/humanize-distance" "^0.0.19" + "@opentripplanner/icons" "^0.0.19" + "@opentripplanner/location-icon" "^0.0.19" + currency-formatter "^1.5.5" + moment "^2.24.0" + prop-types "^15.7.2" + react-resize-detector "^4.2.1" + velocity-react "^1.4.3" + +"@opentripplanner/location-field@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.19.tgz#70db6c081139320cd29b58b2580a6e3178f5c844" + integrity sha512-yCq+VnwaJLPy9CC623I6sq08dEUxJHb/x0wWPXN6A7ZmiltAZdDIPmYnLJAkvRzEfLi1jv8pt1PO4nSYxctI0A== + dependencies: + "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/geocoder" "^0.0.19" + "@opentripplanner/humanize-distance" "^0.0.19" + "@opentripplanner/location-icon" "^0.0.19" prop-types "^15.7.2" styled-icons "^9.1.0" throttle-debounce "^2.1.0" -"@opentripplanner/location-icon@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.18.tgz#8f207e1d7032ae04081cffa981ee3117c3647478" - integrity sha512-4Pv0RZZeHvDpc50XMOMUOS4E7dlYBNne/OvnOxHcbEmHSOUHGKNSiIq2EPO7Eyrae+SsKKhksv++okIiw6KOmw== +"@opentripplanner/location-icon@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.19.tgz#19d121cd7b0d0d1588321912fe0674ac6641046e" + integrity sha512-vtqTMORk0xLBVbBLFUzXqPf4acQSDIe0kxbA+VbpYc2NQD8vZDcnIVFL9e73zXAaKNj/uATAolubZjX6Jvyh3Q== dependencies: styled-icons "^9.1.0" -"@opentripplanner/park-and-ride-overlay@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/park-and-ride-overlay/-/park-and-ride-overlay-0.0.18.tgz#2e466a4e0ab47531d595c58119371a5a2a11ec7a" - integrity sha512-/eJizVEd5FSB7QW8CiEIHnUi3kQ7ouL3uEdpIdwHtgUVP4sWYOPSoy/jKiY6W404U5Y/K/9B9ZgAAtMMpCuSEg== +"@opentripplanner/park-and-ride-overlay@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/park-and-ride-overlay/-/park-and-ride-overlay-0.0.19.tgz#6f448eccb8ffb86bf9844ec778a6d9111f7575d7" + integrity sha512-9+ia0f2rl2Rkln46tmIGuyb19lYwUPTLGPSOSRRXr1/Qe9OiZD7dNrf4Zif/HnW6l+1Z4fexYA5nN6TN/clOaA== dependencies: - "@opentripplanner/core-utils" "^0.0.18" - "@opentripplanner/from-to-location-picker" "^0.0.18" + "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/from-to-location-picker" "^0.0.19" prop-types "^15.7.2" -"@opentripplanner/route-viewer-overlay@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/route-viewer-overlay/-/route-viewer-overlay-0.0.18.tgz#1736e99d509579bacb67a15f07a517f1e37985ad" - integrity sha512-4cQlIqEeUfmVEJNcb/8ReQraTfb3t1+hl5hqOlpNmKUguHgHuKeeEuxBkPn2larMz0xGanNybRv+VnOuiG7DXw== +"@opentripplanner/route-viewer-overlay@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/route-viewer-overlay/-/route-viewer-overlay-0.0.19.tgz#d6f8080ec4106ae8d90cfebcd02edd39a7ae2d27" + integrity sha512-6DUumUOC33X4FauUVJNucaHoZBvCDVLizZLbU2hjDuS+ZrdCfckEy6wJz8j5x4lfi0pr8jUZEWK+pl3P+sFjaw== dependencies: "@mapbox/polyline" "^1.1.0" - "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/core-utils" "^0.0.19" prop-types "^15.7.2" -"@opentripplanner/stop-viewer-overlay@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/stop-viewer-overlay/-/stop-viewer-overlay-0.0.18.tgz#2e81df67e49503749a955206c6200e816faff104" - integrity sha512-D9EHe37eP84h3bPJ0NR6KMNlS07vf2BJmMTtrKwYMPsRHj/+tmRneBzHGQ7Bk3tYE+sSzKekkGKjLLjs9z4XPQ== +"@opentripplanner/stop-viewer-overlay@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/stop-viewer-overlay/-/stop-viewer-overlay-0.0.19.tgz#1484864fcad81b9fa3ea9726845b3a7383e78db5" + integrity sha512-fdfBiUOrcKiDFDVo5upj7tl2jN6CPxIF7OoYtR/EoSf4A8pCSkCY4pxRL3VE0z7O103fJFP67BCu8axKptaEsA== dependencies: - "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/core-utils" "^0.0.19" prop-types "^15.7.2" -"@opentripplanner/stops-overlay@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/stops-overlay/-/stops-overlay-0.0.18.tgz#32f8d621b26cb59c0314bfab80b865bce0b64ab2" - integrity sha512-zRVWgn6qg0mqX6xlfLXRaiUkLixfkDCV7VUKpbHpbHKXbfaT2J5pOn81pDCNrtSF4zPkSIKX+24yMcq8i65yOQ== +"@opentripplanner/stops-overlay@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/stops-overlay/-/stops-overlay-0.0.19.tgz#b3cc17bbbb7d64fd44da17c01955b4069f0868a6" + integrity sha512-tlr/2S2E7zYjEHla3hIMQc0tpdgJMolY4jUqBPEFOohP1NCf4VQWyO8cY0D2CyjPI9eQkW96eU2be8WuUtwyXQ== dependencies: - "@opentripplanner/core-utils" "^0.0.18" - "@opentripplanner/from-to-location-picker" "^0.0.18" + "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/from-to-location-picker" "^0.0.19" -"@opentripplanner/transitive-overlay@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/transitive-overlay/-/transitive-overlay-0.0.18.tgz#d9835e2ac8f2754c79700e2042c1e9f112860f16" - integrity sha512-+Xc73WkMTTSjXGIorkskpSZXhfIkeqUuVofr8//rjdIG1EfhRDlJf0aOYEZpHnrB4AFDzHOIUzXAROnJqMy5EQ== +"@opentripplanner/transitive-overlay@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/transitive-overlay/-/transitive-overlay-0.0.19.tgz#096c30b08e94161cc8522f3a01ff147f473a40d7" + integrity sha512-+UYbDcGlODHxAZQuoX6WeiDVTZsCcrzCfphQmkoQERdd3xukJpPwzjSSjeIEbP+8gTGPtlM+i7qu00mu3C0ynw== dependencies: - "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/core-utils" "^0.0.19" lodash.isequal "^4.5.0" transitive-js "^0.13.0" -"@opentripplanner/trip-viewer-overlay@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/trip-viewer-overlay/-/trip-viewer-overlay-0.0.18.tgz#7e774378cc274caf7603aa14a08d4b57cd220b14" - integrity sha512-iz+KQBFRZORz36w10kXEUHhxS4CwTCXWb8xcLYAwh9LmWkHhbGXPnClwn6PJ+BPj0PcdvLukcQaCUpoxZggfqg== +"@opentripplanner/trip-viewer-overlay@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-viewer-overlay/-/trip-viewer-overlay-0.0.19.tgz#ab608699720f3ab090f64aadae01a12434188f18" + integrity sha512-Nyta8qagZib/tQE/h57HB+O1nUzHi2ougDCEn6I4upqM6OUn6bYSC+V048VGXUHwa8rnnFT9jf8ryKUd6tVEfQ== dependencies: "@mapbox/polyline" "^1.1.0" - "@opentripplanner/core-utils" "^0.0.18" + "@opentripplanner/core-utils" "^0.0.19" prop-types "^15.7.2" -"@opentripplanner/vehicle-rental-overlay@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@opentripplanner/vehicle-rental-overlay/-/vehicle-rental-overlay-0.0.18.tgz#67da2f4ffa1fa89ccd4b336ba18cb4664e5a7419" - integrity sha512-maC+XNYEcs3w7Jv2zmuQlJRVL+QVF86yBK6bKG48FqgsPvhYz748qSyIao/tAeCWpUiomMKbSPPMbdbcdyVLDg== +"@opentripplanner/vehicle-rental-overlay@^0.0.19": + version "0.0.19" + resolved "https://registry.yarnpkg.com/@opentripplanner/vehicle-rental-overlay/-/vehicle-rental-overlay-0.0.19.tgz#d0efc0d653c45da8e2fd8f835eb059f7173aa3fe" + integrity sha512-gZnqoZlZznGeCykfynVkC9pMq4AAotV0DJaNkX4z9sHVGUFgk+mcaiAkrIhPLWLyOiOTnLQnnuPw8T26yOqzng== dependencies: - "@opentripplanner/core-utils" "^0.0.18" - "@opentripplanner/from-to-location-picker" "^0.0.18" + "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/from-to-location-picker" "^0.0.19" lodash.memoize "^4.1.2" prop-types "^15.7.2" styled-icons "^9.1.0" @@ -5113,6 +5136,15 @@ currency-formatter@^1.4.2: locale-currency "0.0.2" object-assign "^4.1.1" +currency-formatter@^1.5.5: + version "1.5.5" + resolved "https://registry.yarnpkg.com/currency-formatter/-/currency-formatter-1.5.5.tgz#907790bb0b7f129c4a64d2924e0d7fa36db0cf52" + integrity sha512-PEsZ9fK2AwPBYgzWTtqpSckam7hFDkT8ZKFAOrsooR0XbydZEKuFioUzcc3DoT2mCDkscjf1XdT6Qq53ababZQ== + dependencies: + accounting "^0.4.1" + locale-currency "0.0.2" + object-assign "^4.1.1" + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -9358,6 +9390,11 @@ lockfile@^1.0.4: dependencies: signal-exit "^3.0.2" +lodash-es@^4.17.15: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" + integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ== + lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -9570,7 +9607,7 @@ lodash@4.17.14: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.14.tgz#9ce487ae66c96254fe20b599f21b6816028078ba" integrity sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw== -lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1: +lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -12909,6 +12946,11 @@ qw@~1.0.1: resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" integrity sha1-77/cdA+a0FQwRCassYNBLMi5ltQ= +raf-schd@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.2.tgz#bd44c708188f2e84c810bf55fcea9231bcaed8a0" + integrity sha512-VhlMZmGy6A6hrkJWHLNTGl5gtgMUm+xfGza6wbwnE914yeQ5Ybm18vgM734RZhMgfw4tacUrWseGZlpUrrakEQ== + raf@^3.4.0: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" @@ -13119,6 +13161,17 @@ react-resize-detector@^2.1.0: prop-types "^15.6.0" resize-observer-polyfill "^1.5.0" +react-resize-detector@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/react-resize-detector/-/react-resize-detector-4.2.1.tgz#8982b74c3e1cf949afaa3c41050458c87b033982" + integrity sha512-ZfPMBPxXi0o3xox42MIEtz84tPSVMW9GgwLHYvjVXlFM+OkNzbeEtpVSV+mSTJmk4Znwomolzt35zHN9LNBQMQ== + dependencies: + lodash "^4.17.15" + lodash-es "^4.17.15" + prop-types "^15.7.2" + raf-schd "^4.0.2" + resize-observer-polyfill "^1.5.1" + react-router@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.0.1.tgz#04ee77df1d1ab6cb8939f9f01ad5702dbadb8b0f" @@ -13890,7 +13943,7 @@ require-relative@^0.8.7: resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" integrity sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4= -resize-observer-polyfill@^1.5.0: +resize-observer-polyfill@^1.5.0, resize-observer-polyfill@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== @@ -16042,7 +16095,7 @@ velocity-animate@^1.4.0: resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-1.5.2.tgz#5a351d75fca2a92756f5c3867548b873f6c32105" integrity sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg== -velocity-react@^1.3.3: +velocity-react@^1.3.3, velocity-react@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/velocity-react/-/velocity-react-1.4.3.tgz#63e41d92e334d5a3bea8b2fa02ee170f62ef4d36" integrity sha512-zvefGm85A88S3KdF9/dz5vqyFLAiwKYlXGYkHH2EbXl+CZUD1OT0a0aS1tkX/WXWTa/FUYqjBaAzAEFYuSobBQ== From 1d4f941cb981d76d95882064187cd17e10d25d5d Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Fri, 27 Mar 2020 08:32:40 -0700 Subject: [PATCH 046/115] refactor(itinerary): restore inadvertently deleted file --- .../narrative/line-itin/itin-summary.js | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 lib/components/narrative/line-itin/itin-summary.js diff --git a/lib/components/narrative/line-itin/itin-summary.js b/lib/components/narrative/line-itin/itin-summary.js new file mode 100644 index 000000000..e8965fe35 --- /dev/null +++ b/lib/components/narrative/line-itin/itin-summary.js @@ -0,0 +1,109 @@ +import React, { Component } from 'react' +import PropTypes from 'prop-types' + +import { calculateFares, calculatePhysicalActivity, getLegIcon, isTransit } from '../../../util/itinerary' +import { formatDuration, formatTime } from '../../../util/time' + +// TODO: make this a prop +const defaultRouteColor = '#008' + +export default class ItinerarySummary extends Component { + static propTypes = { + itinerary: PropTypes.object + } + + _onSummaryClicked = () => { + if (typeof this.props.onClick === 'function') this.props.onClick() + } + + render () { + const { customIcons, itinerary, timeOptions } = this.props + const { + centsToString, + maxTNCFare, + minTNCFare, + transitFare + } = calculateFares(itinerary) + // TODO: support non-USD + const minTotalFare = minTNCFare * 100 + transitFare + const maxTotalFare = maxTNCFare * 100 + transitFare + + const { caloriesBurned } = calculatePhysicalActivity(itinerary) + + return ( +
+
+ {/* Travel time in hrs/mins */} +
{formatDuration(itinerary.duration)}
+ + {/* Duration as time range */} +
+ {formatTime(itinerary.startTime, timeOptions)} - {formatTime(itinerary.endTime, timeOptions)} +
+ + {/* Fare / Calories */} +
+ {minTotalFare > 0 && + {centsToString(minTotalFare)} + {minTotalFare !== maxTotalFare && - {centsToString(maxTotalFare)}} + + } + {Math.round(caloriesBurned)} Cals +
+ + {/* Number of transfers, if applicable */} + {itinerary.transfers > 0 && ( +
+ {itinerary.transfers} transfer{itinerary.transfers > 1 ? 's' : ''} +
+ )} + +
+
+ {itinerary.legs.filter(leg => { + return !(leg.mode === 'WALK' && itinerary.transitTime > 0) + }).map((leg, k) => { + return
+
{getLegIcon(leg, customIcons)}
+ {isTransit(leg.mode) + ? ( +
+ {getRouteNameForBadge(leg)} +
+ ) + : (
) + } +
+ })} +
+
+ ) + } +} + +// Helper functions + +function getRouteLongName (leg) { + return leg.routes && leg.routes.length > 0 + ? leg.routes[0].longName + : leg.routeLongName +} + +function getRouteNameForBadge (leg) { + const shortName = leg.routes && leg.routes.length > 0 + ? leg.routes[0].shortName : leg.routeShortName + + const longName = getRouteLongName(leg) + + // check for max + if (longName && longName.toLowerCase().startsWith('max')) return null + + // check for streetcar + if (longName && longName.startsWith('Portland Streetcar')) return longName.split('-')[1].trim().split(' ')[0] + + return shortName || longName +} + +function getRouteColorForBadge (leg) { + return leg.routeColor ? '#' + leg.routeColor : defaultRouteColor +} From a6943415fa941f062953a4fc55ef540eceda1df5 Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Fri, 27 Mar 2020 12:29:46 -0700 Subject: [PATCH 047/115] refactor(map): some changes to address PR comments --- lib/components/map/bounds-updating-overlay.js | 30 ++++++++++++------- lib/components/mobile/results-screen.js | 15 +++++++--- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/lib/components/map/bounds-updating-overlay.js b/lib/components/map/bounds-updating-overlay.js index a2f319b67..c492dc31b 100644 --- a/lib/components/map/bounds-updating-overlay.js +++ b/lib/components/map/bounds-updating-overlay.js @@ -40,24 +40,32 @@ class BoundsUpdatingOverlay extends MapLayer { const padding = [30, 30] // Fit map to to entire itinerary if active itinerary bounds changed - const oldItinBounds = oldProps.itinerary && getItineraryBounds(oldProps.itinerary) - const fromChanged = !isEqual(oldProps.query && oldProps.query.from, newProps.query && newProps.query.from) - const toChanged = !isEqual(oldProps.query && oldProps.query.to, newProps.query && newProps.query.to) + const newFrom = newProps.query && newProps.query.from const newItinBounds = newProps.itinerary && getItineraryBounds(newProps.itinerary) + const newTo = newProps.query && newProps.query.to + const oldFrom = oldProps.query && oldProps.query.from + const oldItinBounds = oldProps.itinerary && getItineraryBounds(oldProps.itinerary) + const oldTo = oldProps.query && oldProps.query.to + const fromChanged = !isEqual(oldFrom, newFrom) + const toChanged = !isEqual(oldTo, newTo) if ( (!oldItinBounds && newItinBounds) || (oldItinBounds && newItinBounds && !oldItinBounds.equals(newItinBounds)) ) { map.fitBounds(newItinBounds, { padding }) // Pan to to itinerary leg if made active (clicked); newly active leg must be non-null - } else if (newProps.itinerary && newProps.activeLeg !== oldProps.activeLeg && newProps.activeLeg !== null) { + } else if ( + newProps.itinerary && + newProps.activeLeg !== oldProps.activeLeg && + newProps.activeLeg !== null + ) { map.fitBounds( getLegBounds(newProps.itinerary.legs[newProps.activeLeg]), { padding } ) // If no itinerary update but from/to locations are present, fit to those - } else if (newProps.query.from && newProps.query.to && (fromChanged || toChanged)) { + } else if (newFrom && newTo && (fromChanged || toChanged)) { // On certain mobile devices (e.g., Android + Chrome), setting from and to // locations via the location search component causes issues for this // fitBounds invocation. The map does not appear to be visible when these @@ -69,16 +77,16 @@ class BoundsUpdatingOverlay extends MapLayer { // from/to locations. if (!isMobile()) { map.fitBounds([ - [newProps.query.from.lat, newProps.query.from.lon], - [newProps.query.to.lat, newProps.query.to.lon] + [newFrom.lat, newFrom.lon], + [newTo.lat, newTo.lon] ], { padding }) } // If only from or to is set, pan to that - } else if (newProps.query.from && fromChanged) { - map.panTo([newProps.query.from.lat, newProps.query.from.lon]) - } else if (newProps.query.to && toChanged) { - map.panTo([newProps.query.to.lat, newProps.query.to.lon]) + } else if (newFrom && fromChanged) { + map.panTo([newFrom.lat, newFrom.lon]) + } else if (newTo && toChanged) { + map.panTo([newTo.lat, newTo.lon]) // Pan to to itinerary step if made active (clicked) } else if ( diff --git a/lib/components/mobile/results-screen.js b/lib/components/mobile/results-screen.js index 4ee97cc00..b8c73cc47 100644 --- a/lib/components/mobile/results-screen.js +++ b/lib/components/mobile/results-screen.js @@ -18,6 +18,13 @@ import { clearActiveSearch } from '../../actions/form' import { getActiveSearch, getRealtimeEffects } from '../../util/state' import { enableScrollForSelector } from '../../util/ui' +const LocationContainer = styled.div` + font-weight: 300; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +` + const LocationSummaryContainer = styled.div` height: 50px; left: 0; @@ -121,12 +128,12 @@ class MobileResultsScreen extends Component { -
+ { query.from ? query.from.name : '' } -
-
+ + { query.to ? query.to.name : '' } -
+
{active &&
@@ -62,7 +61,7 @@ export default class AccessLeg extends Component { key={stepIndex} className={`step ${stepIsActive ? 'active' : ''}`} onClick={(e) => this._onStepClick(e, step, stepIndex)}> - {distanceString(step.distance)} + {humanizeDistanceString(step.distance)} {getStepInstructions(step)} ) diff --git a/lib/util/distance.js b/lib/util/distance.js deleted file mode 100644 index e63c8a0fe..000000000 --- a/lib/util/distance.js +++ /dev/null @@ -1,26 +0,0 @@ -export function distanceStringImperial (meters, abbreviate) { - const feet = meters * 3.28084 - if (feet < 528) return Math.round(feet) + (abbreviate === true ? ' ft' : ' feet') - return (Math.round(feet / 528) / 10) + (abbreviate === true ? ' mi' : ' miles') -} - -export function distanceStringMetric (meters) { - let km = meters / 1000 - if (km > 100) { - // 100 km => 999999999 km - km = km.toFixed(0) - return km + ' km' - } else if (km > 1) { - // 1.1 km => 99.9 km - km = km.toFixed(1) - return km + ' km' - } else { - // 1m => 999m - meters = meters.toFixed(0) - return meters + ' m' - } -} - -export function distanceString (meters, outputMetricUntis = false) { - return (outputMetricUntis === true) ? distanceStringMetric(meters) : distanceStringImperial(meters) -} diff --git a/lib/util/index.js b/lib/util/index.js index 8d225a961..da1a44a7c 100644 --- a/lib/util/index.js +++ b/lib/util/index.js @@ -1,4 +1,3 @@ -import * as distance from './distance' import * as itinerary from './itinerary' import * as map from './map' import * as profile from './profile' @@ -9,7 +8,6 @@ import * as time from './time' import * as ui from './ui' const OtpUtils = { - distance, itinerary, map, profile, diff --git a/package.json b/package.json index a6a9ae125..1bca03802 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "@opentripplanner/endpoints-overlay": "^0.0.19", "@opentripplanner/from-to-location-picker": "^0.0.19", "@opentripplanner/geocoder": "^0.0.19", + "@opentripplanner/humanize-distance": "^0.0.19", "@opentripplanner/icons": "^0.0.19", "@opentripplanner/itinerary-body": "^0.0.19", "@opentripplanner/location-field": "^0.0.19", From 1f4a5f986d850404d944b5d0cea2a7faac911be2 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Tue, 7 Apr 2020 17:08:25 -0400 Subject: [PATCH 069/115] refactor(core-utils/map): Replace util/map with @opentripplanner/core-utils/map. --- lib/actions/map.js | 2 +- lib/components/form/user-settings.js | 6 +- lib/components/map/stylized-map.js | 9 +- lib/reducers/create-otp-reducer.js | 2 +- lib/util/index.js | 4 - lib/util/map.js | 223 --------------------------- lib/util/reverse.js | 12 -- 7 files changed, 9 insertions(+), 249 deletions(-) delete mode 100644 lib/util/map.js delete mode 100644 lib/util/reverse.js diff --git a/lib/actions/map.js b/lib/actions/map.js index fce9deb91..6e0e2bdc1 100644 --- a/lib/actions/map.js +++ b/lib/actions/map.js @@ -1,9 +1,9 @@ +import { constructLocation } from '@opentripplanner/core-utils/lib/map' import getGeocoder from '@opentripplanner/geocoder' import { createAction } from 'redux-actions' import { routingQuery } from './api' import { clearActiveSearch } from './form' -import { constructLocation } from '../util/map' /* SET_LOCATION action creator. Updates a from or to location in the store * diff --git a/lib/components/form/user-settings.js b/lib/components/form/user-settings.js index fe9e88cb4..159668ce5 100644 --- a/lib/components/form/user-settings.js +++ b/lib/components/form/user-settings.js @@ -1,14 +1,14 @@ -import React, { Component } from 'react' -import { connect } from 'react-redux' import moment from 'moment' +import { getDetailText, formatStoredPlaceName, matchLatLon } from '@opentripplanner/core-utils/lib/map' +import React, { Component } from 'react' import { Button } from 'react-bootstrap' +import { connect } from 'react-redux' import Icon from '../narrative/icon' import { forgetSearch, toggleTracking } from '../../actions/api' import { setQueryParam } from '../../actions/form' import { forgetPlace, forgetStop, setLocation } from '../../actions/map' import { setViewedStop } from '../../actions/ui' -import { getDetailText, formatStoredPlaceName, matchLatLon } from '../../util/map' import { summarizeQuery } from '../../util/query' const BUTTON_WIDTH = 40 diff --git a/lib/components/map/stylized-map.js b/lib/components/map/stylized-map.js index cf4a124fa..f3635a5e8 100644 --- a/lib/components/map/stylized-map.js +++ b/lib/components/map/stylized-map.js @@ -1,13 +1,12 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import { connect } from 'react-redux' import { select, event } from 'd3-selection' import { zoom } from 'd3-zoom' - +import { isBikeshareStation, itineraryToTransitive } from '@opentripplanner/core-utils/lib/map' +import PropTypes from 'prop-types' +import React, { Component } from 'react' +import { connect } from 'react-redux' import Transitive from 'transitive-js' import { getActiveSearch, getActiveItineraries } from '../../util/state' -import { isBikeshareStation, itineraryToTransitive } from '../../util/map' var STYLES = {} diff --git a/lib/reducers/create-otp-reducer.js b/lib/reducers/create-otp-reducer.js index 2ea229618..4293dfc62 100644 --- a/lib/reducers/create-otp-reducer.js +++ b/lib/reducers/create-otp-reducer.js @@ -2,8 +2,8 @@ import clone from 'clone' import update from 'immutability-helper' import isEqual from 'lodash.isequal' import objectPath from 'object-path' +import { matchLatLon } from '@opentripplanner/core-utils/lib/map' -import { matchLatLon } from '../util/map' import { ensureSingleAccessMode, getDefaultQuery, diff --git a/lib/util/index.js b/lib/util/index.js index 8d225a961..e95db1bec 100644 --- a/lib/util/index.js +++ b/lib/util/index.js @@ -1,9 +1,7 @@ import * as distance from './distance' import * as itinerary from './itinerary' -import * as map from './map' import * as profile from './profile' import * as query from './query' -import * as reverse from './reverse' import * as state from './state' import * as time from './time' import * as ui from './ui' @@ -11,10 +9,8 @@ import * as ui from './ui' const OtpUtils = { distance, itinerary, - map, profile, query, - reverse, state, time, ui diff --git a/lib/util/map.js b/lib/util/map.js deleted file mode 100644 index 8c5d44db7..000000000 --- a/lib/util/map.js +++ /dev/null @@ -1,223 +0,0 @@ -import moment from 'moment' - -import { isTransit, toSentenceCase } from './itinerary' - -export function latlngToString (latlng) { - return latlng && `${latlng.lat.toFixed(5)}, ${(latlng.lng || latlng.lon).toFixed(5)}` -} - -export function coordsToString (coords) { - return coords.length && coords.map(c => (+c).toFixed(5)).join(', ') -} - -export function stringToCoords (str) { - return (str && str.split(',').map(c => +c)) || [] -} - -export function constructLocation (latlng) { - return { - name: latlngToString(latlng), - lat: latlng.lat, - lon: latlng.lng - } -} - -export function formatStoredPlaceName (location, withDetails = true) { - let displayName = location.type === 'home' || location.type === 'work' - ? toSentenceCase(location.type) - : location.name - if (withDetails) { - let detailText = getDetailText(location) - if (detailText) displayName += ` (${detailText})` - } - return displayName -} - -export function getDetailText (location) { - let detailText - if (location.type === 'home' || location.type === 'work') { - detailText = location.name - } - if (location.type === 'stop') { - detailText = location.id - } else if (location.type === 'recent' && location.timestamp) { - detailText = moment(location.timestamp).fromNow() - } - return detailText -} - -export function matchLatLon (location1, location2) { - if (!location1 || !location2) return location1 === location2 - return location1.lat === location2.lat && location1.lon === location2.lon -} - -export function itineraryToTransitive (itin, includeGeometry) { - // console.log('itineraryToTransitive', itin); - const tdata = { - journeys: [], - streetEdges: [], - places: [], - patterns: [], - routes: [], - stops: [] - } - const routes = {} - const stops = {} - let streetEdgeId = 0 - let patternId = 0 - - const journey = { - journey_id: 'itin', - journey_name: 'Iterarary-derived Journey', - segments: [] - } - - // add 'from' and 'to' places to the tdata places array - tdata.places.push({ - place_id: 'from', - place_lat: itin.legs[0].from.lat, - place_lon: itin.legs[0].from.lon - }) - tdata.places.push({ - place_id: 'to', - place_lat: itin.legs[itin.legs.length - 1].to.lat, - place_lon: itin.legs[itin.legs.length - 1].to.lon - }) - - itin.legs.forEach(leg => { - if ( - leg.mode === 'WALK' || - leg.mode === 'BICYCLE' || - leg.mode === 'CAR' || - leg.mode === 'MICROMOBILITY' - ) { - const fromPlaceId = leg.from.bikeShareId - ? `bicycle_rent_station_${leg.from.bikeShareId}` - : `itin_street_${streetEdgeId}_from` - const toPlaceId = leg.to.bikeShareId - ? `bicycle_rent_station_${leg.to.bikeShareId}` - : `itin_street_${streetEdgeId}_to` - - const segment = { - type: leg.mode, - streetEdges: [streetEdgeId], - from: { type: 'PLACE', place_id: fromPlaceId }, - to: { type: 'PLACE', place_id: toPlaceId } - } - // For TNC segments, draw using an arc - if (leg.mode === 'CAR' && leg.hailedCar) segment.arc = true - journey.segments.push(segment) - - tdata.streetEdges.push({ - edge_id: streetEdgeId, - geometry: leg.legGeometry - }) - tdata.places.push({ - place_id: fromPlaceId, - // Do not label the from place in addition to the to place. Otherwise, - // in some cases (bike rental station) the label for a single place will - // appear twice on the rendered transitive view. - // See https://github.com/conveyal/trimet-mod-otp/issues/152 - // place_name: leg.from.name, - place_lat: leg.from.lat, - place_lon: leg.from.lon - }) - tdata.places.push({ - place_id: toPlaceId, - place_name: leg.to.name, - place_lat: leg.to.lat, - place_lon: leg.to.lon - }) - streetEdgeId++ - } - if (isTransit(leg.mode)) { - // determine if we have valid inter-stop geometry - const hasInterStopGeometry = - leg.interStopGeometry && - leg.interStopGeometry.length === leg.intermediateStops.length + 1 - - // create leg-specific pattern - const ptnId = 'ptn_' + patternId - const pattern = { - pattern_id: ptnId, - pattern_name: 'Pattern ' + patternId, - route_id: leg.routeId, - stops: [] - } - - // add 'from' stop to stops dictionary and pattern object - stops[leg.from.stopId] = { - stop_id: leg.from.stopId, - stop_name: leg.from.name, - stop_lat: leg.from.lat, - stop_lon: leg.from.lon - } - pattern.stops.push({ stop_id: leg.from.stopId }) - - // add intermediate stops to stops dictionary and pattern object - for (const [i, stop] of leg.intermediateStops.entries()) { - stops[stop.stopId] = { - stop_id: stop.stopId, - stop_name: stop.name, - stop_lat: stop.lat, - stop_lon: stop.lon - } - pattern.stops.push({ - stop_id: stop.stopId, - geometry: hasInterStopGeometry && leg.interStopGeometry[i].points - }) - } - - // add 'to' stop to stops dictionary and pattern object - stops[leg.to.stopId] = { - stop_id: leg.to.stopId, - stop_name: leg.to.name, - stop_lat: leg.to.lat, - stop_lon: leg.to.lon - } - pattern.stops.push({ - stop_id: leg.to.stopId, - geometry: hasInterStopGeometry && leg.interStopGeometry[leg.interStopGeometry.length - 1].points - }) - - // add route to the route dictionary - routes[leg.routeId] = { - agency_id: leg.agencyId, - route_id: leg.routeId, - route_short_name: leg.routeShortName || '', - route_long_name: leg.routeLongName || '', - route_type: leg.routeType, - route_color: leg.routeColor - } - - // add the pattern to the tdata patterns array - tdata.patterns.push(pattern) - - // add the pattern refrerence to the journey object - journey.segments.push({ - type: 'TRANSIT', - patterns: [{ - pattern_id: ptnId, - from_stop_index: 0, - to_stop_index: (leg.intermediateStops.length + 2) - 1 - }] - }) - - patternId++ - } - }) - - // add the routes and stops to the tdata arrays - for (const k in routes) tdata.routes.push(routes[k]) - for (const k in stops) tdata.stops.push(stops[k]) - - // add the journey to the tdata journeys array - tdata.journeys.push(journey) - - // console.log('derived tdata', tdata); - return tdata -} - -export function isBikeshareStation (place) { - return place.place_id.lastIndexOf('bicycle_rent_station') !== -1 -} diff --git a/lib/util/reverse.js b/lib/util/reverse.js deleted file mode 100644 index 8f8f93409..000000000 --- a/lib/util/reverse.js +++ /dev/null @@ -1,12 +0,0 @@ -// TODO: add reverse geocode for map click -// export async function reversePelias (point) { -// const location = {lon: point.lng, lat: point.lat} -// const apiKey = getConfigProperty('MAPZEN_TURN_BY_TURN_KEY') -// const params = { -// api_key: apiKey, -// ...location -// } -// const url = `https://search.mapzen.com/v1/reverse?${qs.stringify(params)}` -// const response = await fetch(url) -// return await response.json() -// } From 59c4c004c36790137d109e23b152fa7b5159aede Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Tue, 7 Apr 2020 17:26:50 -0400 Subject: [PATCH 070/115] refactor(util/profile,storage): Replace util/profile, storage with @opentripplanner/core-utils count --- lib/actions/api.js | 6 +- lib/actions/form.js | 4 +- .../narrative/itinerary-carousel.js | 4 +- .../narrative/narrative-profile-options.js | 4 +- lib/reducers/create-otp-reducer.js | 4 +- lib/util/index.js | 2 - lib/util/profile.js | 180 ------------------ lib/util/storage.js | 42 ---- 8 files changed, 11 insertions(+), 235 deletions(-) delete mode 100644 lib/util/profile.js delete mode 100644 lib/util/storage.js diff --git a/lib/actions/api.js b/lib/actions/api.js index 705822ecb..17bee06dc 100644 --- a/lib/actions/api.js +++ b/lib/actions/api.js @@ -1,17 +1,17 @@ /* globals fetch */ import { push, replace } from 'connected-react-router' +import haversine from 'haversine' +import moment from 'moment' import hash from 'object-hash' +import { randId } from '@opentripplanner/core-utils/lib/storage' import { createAction } from 'redux-actions' import qs from 'qs' -import moment from 'moment' -import haversine from 'haversine' import { rememberPlace } from './map' import { hasCar } from '../util/itinerary' import { getTripOptionsFromQuery, getUrlParams } from '../util/query' import queryParams from '../util/query-params' import { getStopViewerConfig, queryIsValid } from '../util/state' -import { randId } from '../util/storage' import { OTP_API_DATE_FORMAT, OTP_API_TIME_FORMAT } from '../util/time' if (typeof (fetch) === 'undefined') require('isomorphic-fetch') diff --git a/lib/actions/form.js b/lib/actions/form.js index 66860f1a4..a6678f386 100644 --- a/lib/actions/form.js +++ b/lib/actions/form.js @@ -1,7 +1,8 @@ import debounce from 'lodash.debounce' +import isEqual from 'lodash.isequal' import moment from 'moment' +import { getItem, randId } from '@opentripplanner/core-utils/lib/storage' import { createAction } from 'redux-actions' -import isEqual from 'lodash.isequal' import { getDefaultQuery, @@ -9,7 +10,6 @@ import { getUrlParams, planParamsToQuery } from '../util/query' -import { getItem, randId } from '../util/storage' import { queryIsValid } from '../util/state' import { OTP_API_TIME_FORMAT } from '../util/time' import { isMobile } from '../util/ui' diff --git a/lib/components/narrative/itinerary-carousel.js b/lib/components/narrative/itinerary-carousel.js index ce7a373fa..46bd4cf05 100644 --- a/lib/components/narrative/itinerary-carousel.js +++ b/lib/components/narrative/itinerary-carousel.js @@ -1,5 +1,6 @@ -import React, { Component } from 'react' +import { profileOptionsToItineraries } from '@opentripplanner/core-utils/lib/profile' import PropTypes from 'prop-types' +import React, { Component } from 'react' import { Button } from 'react-bootstrap' import { connect } from 'react-redux' import SwipeableViews from 'react-swipeable-views' @@ -10,7 +11,6 @@ import DefaultItinerary from './default/default-itinerary' import Loading from './loading' import NarrativeProfileSummary from './narrative-profile-summary' import { getActiveItineraries, getActiveSearch } from '../../util/state' -import { profileOptionsToItineraries } from '../../util/profile' import { getTimeFormat } from '../../util/time' class ItineraryCarousel extends Component { diff --git a/lib/components/narrative/narrative-profile-options.js b/lib/components/narrative/narrative-profile-options.js index 405d6609a..4b7f1efc5 100644 --- a/lib/components/narrative/narrative-profile-options.js +++ b/lib/components/narrative/narrative-profile-options.js @@ -1,5 +1,6 @@ -import React, { Component } from 'react' +import { profileOptionsToItineraries } from '@opentripplanner/core-utils/lib/profile' import PropTypes from 'prop-types' +import React, { Component } from 'react' import { connect } from 'react-redux' import { setActiveItinerary, setActiveLeg, setActiveStep } from '../../actions/narrative' @@ -7,7 +8,6 @@ import DefaultItinerary from './default/default-itinerary' import NarrativeProfileSummary from './narrative-profile-summary' import Loading from './loading' import { getActiveSearch } from '../../util/state' -import { profileOptionsToItineraries } from '../../util/profile' class NarrativeProfileOptions extends Component { static propTypes = { diff --git a/lib/reducers/create-otp-reducer.js b/lib/reducers/create-otp-reducer.js index 4293dfc62..8268aa535 100644 --- a/lib/reducers/create-otp-reducer.js +++ b/lib/reducers/create-otp-reducer.js @@ -3,6 +3,8 @@ import update from 'immutability-helper' import isEqual from 'lodash.isequal' import objectPath from 'object-path' import { matchLatLon } from '@opentripplanner/core-utils/lib/map' +import { filterProfileOptions } from '@opentripplanner/core-utils/lib/profile' +import { getItem, removeItem, storeItem } from '@opentripplanner/core-utils/lib/storage' import { ensureSingleAccessMode, @@ -10,8 +12,6 @@ import { getTripOptionsFromQuery } from '../util/query' import { isTransit, getTransitModes } from '../util/itinerary' -import { filterProfileOptions } from '../util/profile' -import { getItem, removeItem, storeItem } from '../util/storage' import { getUserTimezone } from '../util/time' import { MainPanelContent, MobileScreens } from '../actions/ui' diff --git a/lib/util/index.js b/lib/util/index.js index e95db1bec..291111a9a 100644 --- a/lib/util/index.js +++ b/lib/util/index.js @@ -1,6 +1,5 @@ import * as distance from './distance' import * as itinerary from './itinerary' -import * as profile from './profile' import * as query from './query' import * as state from './state' import * as time from './time' @@ -9,7 +8,6 @@ import * as ui from './ui' const OtpUtils = { distance, itinerary, - profile, query, state, time, diff --git a/lib/util/profile.js b/lib/util/profile.js deleted file mode 100644 index ed79ed806..000000000 --- a/lib/util/profile.js +++ /dev/null @@ -1,180 +0,0 @@ -export function filterProfileOptions (response) { - // Filter out similar options. TODO: handle on server? - const optStrs = [] - const filteredIndices = [] - - const filteredProfile = response.otp.profile.filter((option, i) => { - let optStr = option.access.map(a => a.mode).join('/') - if (option.transit) { - optStr += ' to ' + option.transit.map(transit => { - return transit.routes.map(route => route.id).join('/') - }).join(',') - } - if (optStrs.indexOf(optStr) !== -1) return false - optStrs.push(optStr) - filteredIndices.push(i) - return true - }) - - const filteredJourneys = response.otp.journeys.filter((journey, i) => filteredIndices.indexOf(i) !== -1) - - response.otp.profile = filteredProfile - response.otp.journeys = filteredJourneys - return response -} - -/** profileOptionsToItineraries **/ - -export function profileOptionsToItineraries (options, query) { - return options.map(option => optionToItinerary(option, query)) -} - -// helper functions for profileOptionsToItineraries: - -function optionToItinerary (option, query) { - const itin = { - duration: option.time, - legs: [], - walkTime: 0, - waitingTime: 0 - } - - // access leg - if (option.access && option.access.length > 0) { - if (option.access[0].mode === 'BICYCLE_RENT') { - let status = 'WALK_ON' - const walkOnEdges = [] - const bikeEdges = [] - const walkOffEdges = [] - let onStationName - let walkOnTime = 0 - let offStationName - let walkOffTime = 0 - option.access[0].streetEdges.forEach(edge => { - // check if we're returning the bike - if (edge.bikeRentalOffStation) { - status = 'WALK_OFF' - offStationName = edge.bikeRentalOffStation.name - } - - if (status === 'WALK_ON') { - walkOnEdges.push(edge) - walkOnTime += edge.distance - } else if (status === 'BIKE') { - bikeEdges.push(edge) - } else if (status === 'WALK_OFF') { - walkOffEdges.push(edge) - walkOffTime += edge.distance - } - - // check if we're picking up the bike - if (edge.bikeRentalOnStation) { - status = 'BIKE' - onStationName = edge.bikeRentalOnStation.name - } - }) - - itin.walkTime += (walkOnTime + walkOffTime) - - // create the 'on' walk leg - itin.legs.push({ - mode: 'WALK', - duration: walkOnTime, - transitLeg: false, - from: { - name: locationString(query && query.from.name, 'Destination') - }, - to: { - name: onStationName - } - }) - - // create the bike leg - itin.legs.push({ - mode: 'BICYCLE_RENT', - duration: option.time - walkOnTime - walkOffTime, - transitLeg: false, - from: { - name: onStationName - }, - to: { - name: offStationName - } - }) - - // create the 'off' walk leg - itin.legs.push({ - mode: 'WALK', - duration: walkOffTime, - transitLeg: false, - from: { - name: offStationName - }, - to: { - name: locationString(query && query.to.name, 'Destination') - } - }) - } else { - itin.legs.push(accessToLeg(option.access[0], query && query.from.name, option.transit ? null : query && query.to.name)) - if (option.access[0].mode === 'WALK') itin.walkTime += option.access[0].time - } - } - - // transit legs - if (option.transit) { - option.transit.forEach(transit => { - itin.legs.push({ - transitLeg: true, - mode: transit.mode, - from: { - name: transit.fromName - }, - to: { - name: transit.toName - }, - routes: transit.routes, - duration: transit.rideStats.avg, - averageWait: transit.waitStats.avg - }) - itin.waitingTime += transit.waitStats.avg - }) - } - - // egress leg - if (option.egress && option.egress.length > 0) { - // find the origin name, for transit trips - const origin = option.transit ? option.transit[option.transit.length - 1].toName : null - - itin.legs.push(accessToLeg(option.egress[0], origin, query && query.to.name)) - if (option.egress[0].mode === 'WALK') itin.walkTime += option.egress[0].time - } - - // construct summary - if (option.transit) { - itin.summary = 'Transit' - } else { - if (option.modes.length === 1 && option.modes[0] === 'bicycle') itin.summary = 'Bicycle' - else if (option.modes.length === 1 && option.modes[0] === 'walk') itin.summary = 'Walk' - else if (option.modes.indexOf('bicycle_rent') !== -1) itin.summary = 'Bikeshare' - } - - return itin -} - -function accessToLeg (access, origin, destination) { - return { - mode: access.mode, - duration: access.time, - transitLeg: false, - from: { - name: locationString(origin, 'Origin') - }, - to: { - name: locationString(destination, 'Destination') - } - } -} - -function locationString (str, defaultStr) { - return str ? str.split(',')[0] : defaultStr -} diff --git a/lib/util/storage.js b/lib/util/storage.js deleted file mode 100644 index 4d9b7d88c..000000000 --- a/lib/util/storage.js +++ /dev/null @@ -1,42 +0,0 @@ -// Prefix to use with local storage keys. -const STORAGE_PREFIX = 'otp' - -/** - * Store a javascript object at the specified key. - */ -export function storeItem (key, object) { - window.localStorage.setItem(`${STORAGE_PREFIX}.${key}`, JSON.stringify(object)) -} - -/** - * Retrieve a javascript object at the specified key. If not found, defaults to - * null or, the optionally provided notFoundValue. - */ -export function getItem (key, notFoundValue = null) { - let itemAsString - try { - itemAsString = window.localStorage.getItem(`${STORAGE_PREFIX}.${key}`) - const json = JSON.parse(itemAsString) - if (json) return json - else return notFoundValue - } catch (e) { - // Catch any errors associated with parsing bad JSON. - console.warn(e, itemAsString) - return notFoundValue - } -} - -/** - * Remove item at specified key. - */ -export function removeItem (key) { - window.localStorage.removeItem(`${STORAGE_PREFIX}.${key}`) -} - -/** - * Generate a random ID. This might not quite be a UUID, but it serves our - * purposes for now. - */ -export function randId () { - return Math.random().toString(36).substr(2, 9) -} From 15eb9ede3f5d4d9f6d5cbe8df80239efbfc73b2f Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Tue, 7 Apr 2020 18:33:38 -0400 Subject: [PATCH 071/115] refactor(util/time): Replace util/time with @opentripplanner/core-utils/time --- lib/actions/api.js | 2 +- lib/actions/form.js | 2 +- lib/components/form/date-time-preview.js | 11 ++- .../narrative/connected-trip-details.js | 5 +- .../narrative/default/access-leg.js | 5 +- .../narrative/default/default-itinerary.js | 2 +- lib/components/narrative/default/tnc-leg.js | 4 +- .../narrative/default/transit-leg.js | 7 +- .../narrative/itinerary-carousel.js | 2 +- .../narrative/line-itin/itin-summary.js | 4 +- .../narrative/realtime-annotation.js | 5 +- .../narrative/tabbed-itineraries.js | 6 +- lib/components/viewers/stop-viewer.js | 11 ++- lib/components/viewers/trip-viewer.js | 4 +- lib/reducers/create-otp-reducer.js | 2 +- lib/util/index.js | 2 - lib/util/time.js | 89 ------------------- 17 files changed, 33 insertions(+), 130 deletions(-) delete mode 100644 lib/util/time.js diff --git a/lib/actions/api.js b/lib/actions/api.js index 17bee06dc..f717450fd 100644 --- a/lib/actions/api.js +++ b/lib/actions/api.js @@ -4,6 +4,7 @@ import haversine from 'haversine' import moment from 'moment' import hash from 'object-hash' import { randId } from '@opentripplanner/core-utils/lib/storage' +import { OTP_API_DATE_FORMAT, OTP_API_TIME_FORMAT } from '@opentripplanner/core-utils/lib/time' import { createAction } from 'redux-actions' import qs from 'qs' @@ -12,7 +13,6 @@ import { hasCar } from '../util/itinerary' import { getTripOptionsFromQuery, getUrlParams } from '../util/query' import queryParams from '../util/query-params' import { getStopViewerConfig, queryIsValid } from '../util/state' -import { OTP_API_DATE_FORMAT, OTP_API_TIME_FORMAT } from '../util/time' if (typeof (fetch) === 'undefined') require('isomorphic-fetch') // Generic API actions diff --git a/lib/actions/form.js b/lib/actions/form.js index a6678f386..5d73405f1 100644 --- a/lib/actions/form.js +++ b/lib/actions/form.js @@ -2,6 +2,7 @@ import debounce from 'lodash.debounce' import isEqual from 'lodash.isequal' import moment from 'moment' import { getItem, randId } from '@opentripplanner/core-utils/lib/storage' +import { OTP_API_TIME_FORMAT } from '@opentripplanner/core-utils/lib/time' import { createAction } from 'redux-actions' import { @@ -11,7 +12,6 @@ import { planParamsToQuery } from '../util/query' import { queryIsValid } from '../util/state' -import { OTP_API_TIME_FORMAT } from '../util/time' import { isMobile } from '../util/ui' import { MobileScreens, diff --git a/lib/components/form/date-time-preview.js b/lib/components/form/date-time-preview.js index 08ce1d25b..44754d044 100644 --- a/lib/components/form/date-time-preview.js +++ b/lib/components/form/date-time-preview.js @@ -1,15 +1,14 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' import moment from 'moment' -import { connect } from 'react-redux' -import { Button } from 'react-bootstrap' - import { OTP_API_DATE_FORMAT, OTP_API_TIME_FORMAT, getTimeFormat, getDateFormat -} from '../../util/time' +} from '@opentripplanner/core-utils/lib/time' +import PropTypes from 'prop-types' +import React, { Component } from 'react' +import { Button } from 'react-bootstrap' +import { connect } from 'react-redux' class DateTimePreview extends Component { static propTypes = { diff --git a/lib/components/narrative/connected-trip-details.js b/lib/components/narrative/connected-trip-details.js index 16183ea1e..daf54e076 100644 --- a/lib/components/narrative/connected-trip-details.js +++ b/lib/components/narrative/connected-trip-details.js @@ -1,8 +1,7 @@ +import { getTimeFormat, getLongDateFormat } from '@opentripplanner/core-utils/lib/time' +import TripDetailsBase from '@opentripplanner/trip-details' import { connect } from 'react-redux' import styled from 'styled-components' -import TripDetailsBase from '@opentripplanner/trip-details' - -import { getTimeFormat, getLongDateFormat } from '../../util/time' const TripDetails = styled(TripDetailsBase)` border: 2px solid gray; diff --git a/lib/components/narrative/default/access-leg.js b/lib/components/narrative/default/access-leg.js index 274282544..1101d3a38 100644 --- a/lib/components/narrative/default/access-leg.js +++ b/lib/components/narrative/default/access-leg.js @@ -1,12 +1,11 @@ -import React, {Component} from 'react' +import { formatDuration } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' +import React, {Component} from 'react' import Icon from '../icon' - import LegDiagramPreview from '../leg-diagram-preview' import { distanceString } from '../../../util/distance' import { getStepInstructions } from '../../../util/itinerary' -import { formatDuration } from '../../../util/time' /** * Default access leg component for narrative itinerary. diff --git a/lib/components/narrative/default/default-itinerary.js b/lib/components/narrative/default/default-itinerary.js index 57f2717de..3eae4c049 100644 --- a/lib/components/narrative/default/default-itinerary.js +++ b/lib/components/narrative/default/default-itinerary.js @@ -1,3 +1,4 @@ +import { formatDuration, formatTime } from '@opentripplanner/core-utils/lib/time' import React from 'react' import NarrativeItinerary from '../narrative-itinerary' @@ -5,7 +6,6 @@ import ItinerarySummary from './itinerary-summary' import ItineraryDetails from './itinerary-details' import TripDetails from '../connected-trip-details' import TripTools from '../trip-tools' -import { formatDuration, formatTime } from '../../../util/time' export default class DefaultItinerary extends NarrativeItinerary { render () { diff --git a/lib/components/narrative/default/tnc-leg.js b/lib/components/narrative/default/tnc-leg.js index 0c8505ff5..afd1ddb22 100644 --- a/lib/components/narrative/default/tnc-leg.js +++ b/lib/components/narrative/default/tnc-leg.js @@ -1,6 +1,7 @@ import currencyFormatter from 'currency-formatter' -import React, { Component } from 'react' +import { formatDuration } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' +import React, { Component } from 'react' import { connect } from 'react-redux' import { @@ -8,7 +9,6 @@ import { getTransportationNetworkCompanyRideEstimate } from '../../../actions/api' import { toSentenceCase } from '../../../util/itinerary' -import { formatDuration } from '../../../util/time' import { isMobile } from '../../../util/ui' class TransportationNetworkCompanyLeg extends Component { diff --git a/lib/components/narrative/default/transit-leg.js b/lib/components/narrative/default/transit-leg.js index 5809f3f1b..aef7c13eb 100644 --- a/lib/components/narrative/default/transit-leg.js +++ b/lib/components/narrative/default/transit-leg.js @@ -1,13 +1,12 @@ -import Icon from '../icon' -import React, { Component } from 'react' +import { formatDuration, formatTime } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' +import React, { Component } from 'react' +import Icon from '../icon' import ModeIcon from '../../icons/mode-icon' import ViewTripButton from '../../viewers/view-trip-button' import ViewStopButton from '../../viewers/view-stop-button' - import { getMapColor } from '../../../util/itinerary' -import { formatDuration, formatTime } from '../../../util/time' export default class TransitLeg extends Component { static propTypes = { diff --git a/lib/components/narrative/itinerary-carousel.js b/lib/components/narrative/itinerary-carousel.js index 46bd4cf05..10505ddf6 100644 --- a/lib/components/narrative/itinerary-carousel.js +++ b/lib/components/narrative/itinerary-carousel.js @@ -1,4 +1,5 @@ import { profileOptionsToItineraries } from '@opentripplanner/core-utils/lib/profile' +import { getTimeFormat } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' import React, { Component } from 'react' import { Button } from 'react-bootstrap' @@ -11,7 +12,6 @@ import DefaultItinerary from './default/default-itinerary' import Loading from './loading' import NarrativeProfileSummary from './narrative-profile-summary' import { getActiveItineraries, getActiveSearch } from '../../util/state' -import { getTimeFormat } from '../../util/time' class ItineraryCarousel extends Component { state = {} diff --git a/lib/components/narrative/line-itin/itin-summary.js b/lib/components/narrative/line-itin/itin-summary.js index e8965fe35..8766cedeb 100644 --- a/lib/components/narrative/line-itin/itin-summary.js +++ b/lib/components/narrative/line-itin/itin-summary.js @@ -1,8 +1,8 @@ -import React, { Component } from 'react' +import { formatDuration, formatTime } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' +import React, { Component } from 'react' import { calculateFares, calculatePhysicalActivity, getLegIcon, isTransit } from '../../../util/itinerary' -import { formatDuration, formatTime } from '../../../util/time' // TODO: make this a prop const defaultRouteColor = '#008' diff --git a/lib/components/narrative/realtime-annotation.js b/lib/components/narrative/realtime-annotation.js index 834046d50..d0ecd93d5 100644 --- a/lib/components/narrative/realtime-annotation.js +++ b/lib/components/narrative/realtime-annotation.js @@ -1,9 +1,8 @@ -import React, { Component } from 'react' +import { formatDuration } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' +import React, { Component } from 'react' import { Button, OverlayTrigger, Popover } from 'react-bootstrap' -import { formatDuration } from '../../util/time' - export default class RealtimeAnnotation extends Component { static propTypes = { realtimeEffects: PropTypes.object, diff --git a/lib/components/narrative/tabbed-itineraries.js b/lib/components/narrative/tabbed-itineraries.js index f3c4e2d76..b707b822a 100644 --- a/lib/components/narrative/tabbed-itineraries.js +++ b/lib/components/narrative/tabbed-itineraries.js @@ -1,13 +1,13 @@ -import React, { Component } from 'react' +import { formatDuration, formatTime, getTimeFormat } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' -import { connect } from 'react-redux' +import React, { Component } from 'react' import { Button } from 'react-bootstrap' +import { connect } from 'react-redux' import { setActiveItinerary, setActiveLeg, setActiveStep, setUseRealtimeResponse } from '../../actions/narrative' import DefaultItinerary from './default/default-itinerary' import { getActiveSearch, getRealtimeEffects } from '../../util/state' import { calculateFares, calculatePhysicalActivity, getTimeZoneOffset } from '../../util/itinerary' -import { formatDuration, formatTime, getTimeFormat } from '../../util/time' class TabbedItineraries extends Component { static propTypes = { diff --git a/lib/components/viewers/stop-viewer.js b/lib/components/viewers/stop-viewer.js index 424d7278b..1c04a1d80 100644 --- a/lib/components/viewers/stop-viewer.js +++ b/lib/components/viewers/stop-viewer.js @@ -1,20 +1,19 @@ -import React, { Component } from 'react' +import moment from 'moment' +import 'moment-timezone' +import { formatDuration, formatSecondsAfterMidnight, getTimeFormat, getUserTimezone } from '@opentripplanner/core-utils/lib/time' +import FromToLocationPicker from '@opentripplanner/from-to-location-picker' import PropTypes from 'prop-types' +import React, { Component } from 'react' import { Button } from 'react-bootstrap' import { connect } from 'react-redux' -import moment from 'moment' -import 'moment-timezone' import { VelocityTransitionGroup } from 'velocity-react' -import FromToLocationPicker from '@opentripplanner/from-to-location-picker' - import Icon from '../narrative/icon' import { setMainPanelContent, toggleAutoRefresh } from '../../actions/ui' import { findStop, findStopTimesForStop } from '../../actions/api' import { forgetStop, rememberStop, setLocation } from '../../actions/map' import { routeComparator } from '../../util/itinerary' import { getShowUserSettings, getStopViewerConfig } from '../../util/state' -import { formatDuration, formatSecondsAfterMidnight, getTimeFormat, getUserTimezone } from '../../util/time' class StopViewer extends Component { state = {} diff --git a/lib/components/viewers/trip-viewer.js b/lib/components/viewers/trip-viewer.js index f1d3fe928..821f5d091 100644 --- a/lib/components/viewers/trip-viewer.js +++ b/lib/components/viewers/trip-viewer.js @@ -1,5 +1,6 @@ -import React, { Component } from 'react' +import { formatSecondsAfterMidnight, getTimeFormat } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' +import React, { Component } from 'react' import { Button, Label } from 'react-bootstrap' import { connect } from 'react-redux' @@ -10,7 +11,6 @@ import { setViewedTrip } from '../../actions/ui' import { findTrip } from '../../actions/api' import { setLocation } from '../../actions/map' -import { formatSecondsAfterMidnight, getTimeFormat } from '../../util/time' class TripViewer extends Component { static propTypes = { diff --git a/lib/reducers/create-otp-reducer.js b/lib/reducers/create-otp-reducer.js index 8268aa535..84d7358f0 100644 --- a/lib/reducers/create-otp-reducer.js +++ b/lib/reducers/create-otp-reducer.js @@ -5,6 +5,7 @@ import objectPath from 'object-path' import { matchLatLon } from '@opentripplanner/core-utils/lib/map' import { filterProfileOptions } from '@opentripplanner/core-utils/lib/profile' import { getItem, removeItem, storeItem } from '@opentripplanner/core-utils/lib/storage' +import { getUserTimezone } from '@opentripplanner/core-utils/lib/time' import { ensureSingleAccessMode, @@ -12,7 +13,6 @@ import { getTripOptionsFromQuery } from '../util/query' import { isTransit, getTransitModes } from '../util/itinerary' -import { getUserTimezone } from '../util/time' import { MainPanelContent, MobileScreens } from '../actions/ui' const MAX_RECENT_STORAGE = 5 diff --git a/lib/util/index.js b/lib/util/index.js index 291111a9a..3cb72d8d0 100644 --- a/lib/util/index.js +++ b/lib/util/index.js @@ -2,7 +2,6 @@ import * as distance from './distance' import * as itinerary from './itinerary' import * as query from './query' import * as state from './state' -import * as time from './time' import * as ui from './ui' const OtpUtils = { @@ -10,7 +9,6 @@ const OtpUtils = { itinerary, query, state, - time, ui } diff --git a/lib/util/time.js b/lib/util/time.js deleted file mode 100644 index be7e5964c..000000000 --- a/lib/util/time.js +++ /dev/null @@ -1,89 +0,0 @@ -import moment from 'moment' -import 'moment-timezone' - -// special constants for making sure the following date format is always sent to -// OTP regardless of whatever the user has configured as the display format -export const OTP_API_DATE_FORMAT = 'YYYY-MM-DD' -export const OTP_API_TIME_FORMAT = 'HH:mm' - -/** - * @param {[type]} config the OTP config object found in store - * @return {string} the config-defined time formatter or HH:mm (24-hr time) - */ -export function getTimeFormat (config) { - return (config.dateTime && config.dateTime.timeFormat) - ? config.dateTime.timeFormat - : OTP_API_TIME_FORMAT -} - -export function getDateFormat (config) { - return (config.dateTime && config.dateTime.dateFormat) - ? config.dateTime.dateFormat - : OTP_API_DATE_FORMAT -} - -export function getLongDateFormat (config) { - return (config.dateTime && config.dateTime.longDateFormat) - ? config.dateTime.longDateFormat - : 'D MMMM YYYY' -} - -/** - * Formats an elapsed time duration for display in narrative - * TODO: internationalization - * @param {number} seconds duration in seconds - * @returns {string} formatted text representation - */ -export function formatDuration (seconds) { - const dur = moment.duration(seconds, 'seconds') - let text = '' - if (dur.hours() > 0) text += dur.hours() + ' hr, ' - text += dur.minutes() + ' min' - return text -} - -/** - * Formats a time value for display in narrative - * TODO: internationalization/timezone - * @param {number} ms epoch time value in milliseconds - * @returns {string} formatted text representation - */ -export function formatTime (ms, options) { - return moment(ms + (options && options.offset ? options.offset : 0)) - .format(options && options.format ? options.format : OTP_API_TIME_FORMAT) -} - -/** - * Formats a seconds after midnight value for display in narrative - * @param {number} seconds time since midnight in seconds - * @param {string} timeFormat A valid moment.js time format - * @return {string} formatted text representation - */ -export function formatSecondsAfterMidnight (seconds, timeFormat) { - return moment().startOf('day').seconds(seconds).format(timeFormat) -} - -/** - * Formats current time for use in OTP query - * The conversion to the user's timezone is needed for testing purposes. - */ -export function getCurrentTime () { - return moment().tz(getUserTimezone()).format(OTP_API_TIME_FORMAT) -} - -/** - * Formats current date for use in OTP query - * The conversion to the user's timezone is needed for testing purposes. - */ -export function getCurrentDate (config) { - return moment().tz(getUserTimezone()).format(OTP_API_DATE_FORMAT) -} - -/** - * Get the timezone name that is set for the user that is currently looking at - * this website. Use a bit of hackery to force a specific timezone if in a - * test environment. - */ -export function getUserTimezone () { - return process.env.NODE_ENV === 'test' ? process.env.TZ : moment.tz.guess() -} From bc4487f3f6f55638b4f0012c7957007a4621e149 Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Tue, 7 Apr 2020 16:40:02 -0700 Subject: [PATCH 072/115] refactor(itinerary): replace some css with styled-components --- .../line-itin/connected-itinerary-body.js | 9 +- .../narrative/line-itin/itin-summary.js | 126 ++++++++++++++---- .../narrative/line-itin/line-itinerary.js | 12 +- lib/index.css | 1 - 4 files changed, 114 insertions(+), 34 deletions(-) diff --git a/lib/components/narrative/line-itin/connected-itinerary-body.js b/lib/components/narrative/line-itin/connected-itinerary-body.js index 89750100f..0c8774da3 100644 --- a/lib/components/narrative/line-itin/connected-itinerary-body.js +++ b/lib/components/narrative/line-itin/connected-itinerary-body.js @@ -7,6 +7,7 @@ import PlaceName from '@opentripplanner/itinerary-body/lib/otp-react-redux/place import RouteDescription from '@opentripplanner/itinerary-body/lib/otp-react-redux/route-description' import React, { Component } from 'react' import { connect } from 'react-redux' +import styled from 'styled-components' import { showLegDiagram } from '../../../actions/map' import { setActiveLeg } from '../../../actions/narrative' @@ -17,6 +18,10 @@ import TripTools from '../trip-tools' const noop = () => {} +const ItineraryBodyContainer = styled.div` + padding: 20px 0px; +` + class ConnectedItineraryBody extends Component { /** avoid rerendering if the itinerary to display hasn't changed */ shouldComponentUpdate (nextProps, nextState) { @@ -34,7 +39,7 @@ class ConnectedItineraryBody extends Component { } = this.props return ( -
+ -
+ ) } } diff --git a/lib/components/narrative/line-itin/itin-summary.js b/lib/components/narrative/line-itin/itin-summary.js index e8965fe35..2e74575a7 100644 --- a/lib/components/narrative/line-itin/itin-summary.js +++ b/lib/components/narrative/line-itin/itin-summary.js @@ -1,12 +1,82 @@ -import React, { Component } from 'react' +import coreUtils from '@opentripplanner/core-utils' import PropTypes from 'prop-types' - -import { calculateFares, calculatePhysicalActivity, getLegIcon, isTransit } from '../../../util/itinerary' +import React, { Component } from 'react' +import styled from 'styled-components' + +import { + calculateFares, + calculatePhysicalActivity, + getLegIcon, + isTransit +} from '../../../util/itinerary' import { formatDuration, formatTime } from '../../../util/time' // TODO: make this a prop const defaultRouteColor = '#008' +const Container = styled.div` + display: ${() => coreUtils.ui.isMobile() ? 'table' : 'none'}; + height: 60px; + margin-bottom: 15px; + padding-right: 5px; + width: 100%; +` + +const Detail = styled.div` + color: #999999; + font-size: 13px; +` + +const Details = styled.div` + display: table-cell; + vertical-align: top; +` + +const Header = styled.div` + font-size: 18px; + font-weight: bold; + margin-top: -3px; +` + +const ModeIcon = styled.div` + height: 30px; + width: 30px; +` + +const NonTransitSpacer = styled.div` + height: 30px; + overflow: hidden +` + +const RoutePreivew = styled.div` + display: inline-block; + margin-left: 8px; + vertical-align: top; +` + +const Routes = styled.div` + display: table-cell; + text-align: right; +` + +const ShortName = styled.div` + background-color: ${props => getRouteColorForBadge(props.leg)}; + border-radius: 15px; + border: 2px solid white; + box-shadow: 0 0 0.5em #000; + color: white; + font-size: 15px; + font-weight: 500; + height: 30px; + margin-top: 6px; + overflow: hidden; + padding-top: 4px; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; + width: 30px; +` + export default class ItinerarySummary extends Component { static propTypes = { itinerary: PropTypes.object @@ -31,52 +101,54 @@ export default class ItinerarySummary extends Component { const { caloriesBurned } = calculatePhysicalActivity(itinerary) return ( -
-
+ +
{/* Travel time in hrs/mins */} -
{formatDuration(itinerary.duration)}
+
{formatDuration(itinerary.duration)}
{/* Duration as time range */} -
+ {formatTime(itinerary.startTime, timeOptions)} - {formatTime(itinerary.endTime, timeOptions)} -
+ {/* Fare / Calories */} -
+ {minTotalFare > 0 && {centsToString(minTotalFare)} {minTotalFare !== maxTotalFare && - {centsToString(maxTotalFare)}} } {Math.round(caloriesBurned)} Cals -
+ {/* Number of transfers, if applicable */} {itinerary.transfers > 0 && ( -
+ {itinerary.transfers} transfer{itinerary.transfers > 1 ? 's' : ''} -
+ )} -
-
+ + {itinerary.legs.filter(leg => { return !(leg.mode === 'WALK' && itinerary.transitTime > 0) }).map((leg, k) => { - return
-
{getLegIcon(leg, customIcons)}
- {isTransit(leg.mode) - ? ( -
- {getRouteNameForBadge(leg)} -
- ) - : (
) - } -
+ return ( + + {getLegIcon(leg, customIcons)} + {isTransit(leg.mode) + ? ( + + {getRouteNameForBadge(leg)} + + ) + : () + } + + ) })} -
-
+ + ) } } diff --git a/lib/components/narrative/line-itin/line-itinerary.js b/lib/components/narrative/line-itin/line-itinerary.js index 2ca69e267..989d726c5 100644 --- a/lib/components/narrative/line-itin/line-itinerary.js +++ b/lib/components/narrative/line-itin/line-itinerary.js @@ -1,11 +1,15 @@ import React from 'react' +import styled from 'styled-components' +import ItineraryBody from './connected-itinerary-body' +import ItinerarySummary from './itin-summary' import NarrativeItinerary from '../narrative-itinerary' import SimpleRealtimeAnnotation from '../simple-realtime-annotation' import { getLegModeLabel, getTimeZoneOffset, isTransit } from '../../../util/itinerary' -import ItinerarySummary from './itin-summary' -import ItineraryBody from './connected-itinerary-body' +export const LineItineraryContainer = styled.div` + margin-bottom: 20px; +` export default class LineItinerary extends NarrativeItinerary { _headerText () { @@ -59,7 +63,7 @@ export default class LineItinerary extends NarrativeItinerary { } return ( -
+ : null} {itineraryFooter} -
+ ) } } diff --git a/lib/index.css b/lib/index.css index 0fe0005bc..d768385b0 100644 --- a/lib/index.css +++ b/lib/index.css @@ -11,7 +11,6 @@ @import url(lib/components/form/form.css); @import url(lib/components/narrative/narrative.css); @import url(lib/components/narrative/default/itinerary.css); -@import url(lib/components/narrative/line-itin/itinerary.css); @import url(lib/components/mobile/mobile.css); @import url(lib/components/viewers/viewers.css); From 06a6406b8bd8638c4515f6746cbcf45e5d9835ab Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Tue, 7 Apr 2020 23:09:21 -0700 Subject: [PATCH 073/115] refactor(map): add a component for the elevation point marker --- lib/components/map/default-map.js | 2 + lib/components/map/elevation-point-marker.js | 50 ++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 lib/components/map/elevation-point-marker.js diff --git a/lib/components/map/default-map.js b/lib/components/map/default-map.js index df7b2d28a..aba0860d7 100644 --- a/lib/components/map/default-map.js +++ b/lib/components/map/default-map.js @@ -22,6 +22,7 @@ import StopsOverlay from './connected-stops-overlay' import TransitiveOverlay from './connected-transitive-overlay' import TripViewerOverlay from './connected-trip-viewer-overlay' import VehicleRentalOverlay from './connected-vehicle-rental-overlay' +import ElevationPointMarker from './elevation-point-marker' import PointPopup from './point-popup' import TileOverlay from './tile-overlay' import ZipcarOverlay from './zipcar-overlay' @@ -98,6 +99,7 @@ class DefaultMap extends Component { + {/* The configurable overlays */} {mapConfig.overlays && mapConfig.overlays.map((overlayConfig, k) => { diff --git a/lib/components/map/elevation-point-marker.js b/lib/components/map/elevation-point-marker.js new file mode 100644 index 000000000..59adeae9f --- /dev/null +++ b/lib/components/map/elevation-point-marker.js @@ -0,0 +1,50 @@ +import coreUtils from '@opentripplanner/core-utils' +import React, { Component } from 'react' +import { connect } from 'react-redux' + +import { CircleMarker } from 'react-leaflet' + +class ElevationPointMarker extends Component { + createLeafletElement () {} + + updateLeafletElement () {} + + render () { + const { diagramLeg, elevationPoint, showElevationProfile } = this.props + + let elevationPointMarker = null + if (showElevationProfile && diagramLeg && elevationPoint) { + const pos = coreUtils.itinerary.legLocationAtDistance( + diagramLeg, + elevationPoint + ) + if (pos) { + elevationPointMarker = ( + + ) + } + } + return elevationPointMarker + } +} + +const mapStateToProps = (state, ownProps) => { + return { + diagramLeg: state.otp.ui.diagramLeg, + elevationPoint: state.otp.ui.elevationPoint, + showElevationProfile: !!state.otp.config.elevationProfile + } +} + +const mapDispatchToProps = {} + +export default connect(mapStateToProps, mapDispatchToProps)(ElevationPointMarker) From ce6d984aca1fa29f3be5fc169c7dba9182ba3202 Mon Sep 17 00:00:00 2001 From: Evan Siroky Date: Tue, 7 Apr 2020 23:13:21 -0700 Subject: [PATCH 074/115] refactor(map): remove unneeded methods and import spacing --- lib/components/map/elevation-point-marker.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lib/components/map/elevation-point-marker.js b/lib/components/map/elevation-point-marker.js index 59adeae9f..904b71f59 100644 --- a/lib/components/map/elevation-point-marker.js +++ b/lib/components/map/elevation-point-marker.js @@ -1,14 +1,9 @@ import coreUtils from '@opentripplanner/core-utils' import React, { Component } from 'react' import { connect } from 'react-redux' - import { CircleMarker } from 'react-leaflet' class ElevationPointMarker extends Component { - createLeafletElement () {} - - updateLeafletElement () {} - render () { const { diagramLeg, elevationPoint, showElevationProfile } = this.props From 9d5c408ba92fb00ab20aa508a8a9a7fbe12897ce Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 8 Apr 2020 11:05:56 -0400 Subject: [PATCH 075/115] refactor(util/query-params): Replace query-params with @opentripplanner/core-utils/query-params. --- lib/actions/api.js | 2 +- lib/components/viewers/trip-viewer.js | 1 - lib/util/query-params.js | 546 -------------------------- lib/util/query.js | 21 +- 4 files changed, 18 insertions(+), 552 deletions(-) delete mode 100644 lib/util/query-params.js diff --git a/lib/actions/api.js b/lib/actions/api.js index f717450fd..b15855e40 100644 --- a/lib/actions/api.js +++ b/lib/actions/api.js @@ -3,6 +3,7 @@ import { push, replace } from 'connected-react-router' import haversine from 'haversine' import moment from 'moment' import hash from 'object-hash' +import queryParams from '@opentripplanner/core-utils/lib/query-params' import { randId } from '@opentripplanner/core-utils/lib/storage' import { OTP_API_DATE_FORMAT, OTP_API_TIME_FORMAT } from '@opentripplanner/core-utils/lib/time' import { createAction } from 'redux-actions' @@ -11,7 +12,6 @@ import qs from 'qs' import { rememberPlace } from './map' import { hasCar } from '../util/itinerary' import { getTripOptionsFromQuery, getUrlParams } from '../util/query' -import queryParams from '../util/query-params' import { getStopViewerConfig, queryIsValid } from '../util/state' if (typeof (fetch) === 'undefined') require('isomorphic-fetch') diff --git a/lib/components/viewers/trip-viewer.js b/lib/components/viewers/trip-viewer.js index 821f5d091..d517938aa 100644 --- a/lib/components/viewers/trip-viewer.js +++ b/lib/components/viewers/trip-viewer.js @@ -11,7 +11,6 @@ import { setViewedTrip } from '../../actions/ui' import { findTrip } from '../../actions/api' import { setLocation } from '../../actions/map' - class TripViewer extends Component { static propTypes = { hideBackButton: PropTypes.bool, diff --git a/lib/util/query-params.js b/lib/util/query-params.js deleted file mode 100644 index 94ebf17e2..000000000 --- a/lib/util/query-params.js +++ /dev/null @@ -1,546 +0,0 @@ -import { - isTransit, - isAccessMode, - isCar, - hasTransit, - hasBike, - hasMicromobility -} from './itinerary' -import { getItem } from './storage' -import { getCurrentDate, getCurrentTime } from './time' - -/** - * name: the default name of the parameter used for internal reference and API calls - * - * routingTypes: array of routing type(s) (ITINERARY, PROFILE, or both) this param applies to - * - * applicable: an optional function (accepting the current full query as a - * parameter) indicating whether this query parameter is applicable to the query. - * (Applicability is assumed if this function is not provided.) - * - * default: the default value for this parameter. The default can be also be a - * function that gets executed when accessing the default value. When the value - * is a funciton, it will take an argument of the current config of the otp-rr - * store. This is needed when a brand new time-dependent value is desired to be - * calculated. It's also helpful for producing tests that have consistent data - * output. - * - * itineraryRewrite: an optional function for translating the key and/or value - * for ITINERARY mode only (e.g. 'to' is rewritten as 'toPlace'). Accepts the - * intial internal value as a function parameter. - * - * profileRewrite: an optional function for translating the value for PROFILE mode - * - * label: a text label for for onscreen display. May either be a text string or a - * function (accepting the current full query as a parameter) returning a string - * - * selector: the default type of UI selector to use in the form. Can be one of: - * - DROPDOWN: a standard drop-down menu selector - * - * options: an array of text/value pairs used with a dropdown selector - * - * TODO: validation system for rewrite functions and/or better user documentation - * TODO: alphabetize below list - */ - -// FIXME: Use for parsing URL values? -// const stringToLocation = string => { -// const split = string.split(',') -// return split.length === 2 -// ? {lat: split[0], lon: split[1]} -// : {lat: null, lon: null} -// } - -const formatPlace = (location, alternateName) => { - if (!location) return null - const name = location.name || `${alternateName || 'Place'} (${location.lat},${location.lon})` - return `${name}::${location.lat},${location.lon}` -} - -// Load stored default query settings from local storage -let storedSettings = getItem('defaultQuery', {}) - -const queryParams = [ - { /* from - the trip origin. stored internally as a location (lat/lon/name) object */ - name: 'from', - routingTypes: [ 'ITINERARY', 'PROFILE' ], - default: null, - itineraryRewrite: value => ({ fromPlace: formatPlace(value, 'Origin') }), - profileRewrite: value => ({ from: { lat: value.lat, lon: value.lon } }) - // FIXME: Use for parsing URL values? - // fromURL: stringToLocation - }, - - { /* to - the trip destination. stored internally as a location (lat/lon/name) object */ - name: 'to', - routingTypes: [ 'ITINERARY', 'PROFILE' ], - default: null, - itineraryRewrite: value => ({ toPlace: formatPlace(value, 'Destination') }), - profileRewrite: value => ({ to: { lat: value.lat, lon: value.lon } }) - // FIXME: Use for parsing URL values? - // fromURL: stringToLocation - }, - - { /* date - the date of travel, in MM-DD-YYYY format */ - name: 'date', - routingTypes: [ 'ITINERARY', 'PROFILE' ], - default: getCurrentDate - }, - - { /* time - the arrival/departure time for an itinerary trip, in HH:mm format */ - name: 'time', - routingTypes: [ 'ITINERARY' ], - default: getCurrentTime - }, - - { /* departArrive - whether this is a depart-at, arrive-by, or leave-now trip */ - name: 'departArrive', - routingTypes: [ 'ITINERARY' ], - default: 'NOW', - itineraryRewrite: value => ({ arriveBy: (value === 'ARRIVE') }) - }, - - { /* startTime - the start time for a profile trip, in HH:mm format */ - name: 'startTime', - routingTypes: [ 'PROFILE' ], - default: '07:00' - }, - - { /* endTime - the end time for a profile trip, in HH:mm format */ - name: 'endTime', - routingTypes: [ 'PROFILE' ], - default: '09:00' - }, - - { /* mode - the allowed modes for a trip, as a comma-separated list */ - name: 'mode', - routingTypes: [ 'ITINERARY', 'PROFILE' ], - default: 'WALK,TRANSIT', // TODO: make this dependent on routingType? - profileRewrite: value => { - const accessModes = [] - const directModes = [] - const transitModes = [] - - if (value && value.length > 0) { - value.split(',').forEach(m => { - if (isTransit(m)) transitModes.push(m) - if (isAccessMode(m)) { - accessModes.push(m) - // TODO: make configurable whether direct-driving is considered - if (!isCar(m)) directModes.push(m) - } - }) - } - - return { accessModes, directModes, transitModes } - } - }, - - { /* showIntermediateStops - whether response should include intermediate stops for transit legs */ - name: 'showIntermediateStops', - routingTypes: [ 'ITINERARY' ], - default: true - }, - - { /* maxWalkDistance - the maximum distance in meters the user will walk to transit. */ - name: 'maxWalkDistance', - routingTypes: [ 'ITINERARY' ], - applicable: query => query.mode && hasTransit(query.mode) && query.mode.indexOf('WALK') !== -1, - default: 1207, // 3/4 mi. - selector: 'DROPDOWN', - label: 'Maximum Walk', - options: [ - { - text: '1/10 mile', - value: 160.9 - }, { - text: '1/4 mile', - value: 402.3 - }, { - text: '1/2 mile', - value: 804.7 - }, { - text: '3/4 mile', - value: 1207 - }, { - text: '1 mile', - value: 1609 - }, { - text: '2 miles', - value: 3219 - }, { - text: '5 miles', - value: 8047 - } - ] - }, - - { /* maxBikeDistance - the maximum distance in meters the user will bike. Not - * actually an OTP parameter (maxWalkDistance doubles for biking) but we - * store it separately internally in order to allow different default values, - * options, etc. Translated to 'maxWalkDistance' via the rewrite function. - */ - name: 'maxBikeDistance', - routingTypes: [ 'ITINERARY' ], - applicable: query => query.mode && hasTransit(query.mode) && query.mode.indexOf('BICYCLE') !== -1, - default: 4828, // 3 mi. - selector: 'DROPDOWN', - label: 'Maximum Bike', - options: [ - { - text: '1/4 mile', - value: 402.3 - }, { - text: '1/2 mile', - value: 804.7 - }, { - text: '3/4 mile', - value: 1207 - }, { - text: '1 mile', - value: 1609 - }, { - text: '2 miles', - value: 3219 - }, { - text: '3 miles', - value: 4828 - }, { - text: '5 miles', - value: 8047 - }, { - text: '10 miles', - value: 16093 - }, { - text: '20 miles', - value: 32187 - }, { - text: '30 miles', - value: 48280 - } - ], - itineraryRewrite: value => ({ - maxWalkDistance: value, - // ensures that the value is repopulated when loaded from URL params - maxBikeDistance: value - }) - }, - - { /* optimize -- how to optimize a trip (non-bike, non-micromobility trips) */ - name: 'optimize', - applicable: query => hasTransit(query.mode) && !hasBike(query.mode), - routingTypes: [ 'ITINERARY' ], - default: 'QUICK', - selector: 'DROPDOWN', - label: 'Optimize for', - options: [ - { - text: 'Speed', - value: 'QUICK' - }, { - text: 'Fewest Transfers', - value: 'TRANSFERS' - } - ] - }, - - { /* optimizeBike -- how to optimize an bike-based trip */ - name: 'optimizeBike', - applicable: query => hasBike(query.mode), - routingTypes: [ 'ITINERARY' ], - default: 'SAFE', - selector: 'DROPDOWN', - label: 'Optimize for', - options: query => { - const opts = [{ - text: 'Speed', - value: 'QUICK' - }, { - text: 'Bike-Friendly Trip', - value: 'SAFE' - }, { - text: 'Flat Trip', - value: 'FLAT' - }] - - // Include transit-specific option, if applicable - if (hasTransit(query.mode)) { - opts.splice(1, 0, { - text: 'Fewest Transfers', - value: 'TRANSFERS' - }) - } - - return opts - }, - itineraryRewrite: value => ({ optimize: value }) - }, - - { /* maxWalkTime -- the maximum time the user will spend walking in minutes */ - name: 'maxWalkTime', - routingTypes: [ 'PROFILE' ], - default: 15, - selector: 'DROPDOWN', - label: 'Max Walk Time', - applicable: query => query.mode && hasTransit(query.mode) && query.mode.indexOf('WALK') !== -1, - options: [ - { - text: '5 minutes', - value: 5 - }, { - text: '10 minutes', - value: 10 - }, { - text: '15 minutes', - value: 15 - }, { - text: '20 minutes', - value: 20 - }, { - text: '30 minutes', - value: 30 - }, { - text: '45 minutes', - value: 45 - }, { - text: '1 hour', - value: 60 - } - ] - }, - - { /* walkSpeed -- the user's walking speed in m/s */ - name: 'walkSpeed', - routingTypes: [ 'ITINERARY', 'PROFILE' ], - default: 1.34, - selector: 'DROPDOWN', - label: 'Walk Speed', - applicable: query => query.mode && query.mode.indexOf('WALK') !== -1, - options: [ - { - text: '2 MPH', - value: 0.89 - }, { - text: '3 MPH', - value: 1.34 - }, { - text: '4 MPH', - value: 1.79 - } - ] - }, - - { /* maxBikeTime -- the maximum time the user will spend biking in minutes */ - name: 'maxBikeTime', - routingTypes: [ 'PROFILE' ], - default: 20, - selector: 'DROPDOWN', - label: 'Max Bike Time', - applicable: query => query.mode && hasTransit(query.mode) && query.mode.indexOf('BICYCLE') !== -1, - options: [ - { - text: '5 minutes', - value: 5 - }, { - text: '10 minutes', - value: 10 - }, { - text: '15 minutes', - value: 15 - }, { - text: '20 minutes', - value: 20 - }, { - text: '30 minutes', - value: 30 - }, { - text: '45 minutes', - value: 45 - }, { - text: '1 hour', - value: 60 - } - ] - }, - - { /* bikeSpeed -- the user's bikeSpeed speed in m/s */ - name: 'bikeSpeed', - routingTypes: [ 'ITINERARY', 'PROFILE' ], - default: 3.58, - selector: 'DROPDOWN', - label: 'Bicycle Speed', - applicable: query => query.mode && query.mode.indexOf('BICYCLE') !== -1, - options: [ - { - text: '6 MPH', - value: 2.68 - }, { - text: '8 MPH', - value: 3.58 - }, { - text: '10 MPH', - value: 4.47 - }, { - text: '12 MPH', - value: 5.36 - } - ] - }, - - { /* maxEScooterDistance - the maximum distance in meters the user will ride - * an E-scooter. Not actually an OTP parameter (maxWalkDistance doubles for - * any non-transit mode except for car) but we store it separately - * internally in order to allow different default values, options, etc. - * Translated to 'maxWalkDistance' via the rewrite function. - */ - name: 'maxEScooterDistance', - routingTypes: [ 'ITINERARY' ], - applicable: query => query.mode && hasTransit(query.mode) && hasMicromobility(query.mode), - default: 4828, // 3 mi. - selector: 'DROPDOWN', - label: 'Maximum E-scooter Distance', - options: [ - { - text: '1/4 mile', - value: 402.3 - }, { - text: '1/2 mile', - value: 804.7 - }, { - text: '3/4 mile', - value: 1207 - }, { - text: '1 mile', - value: 1609 - }, { - text: '2 miles', - value: 3219 - }, { - text: '3 miles', - value: 4828 - }, { - text: '5 miles', - value: 8047 - }, { - text: '10 miles', - value: 16093 - }, { - text: '20 miles', - value: 32187 - }, { - text: '30 miles', - value: 48280 - } - ], - itineraryRewrite: value => ({ - maxWalkDistance: value, - // ensures that the value is repopulated when loaded from URL params - maxEScooterDistance: value - }) - }, - - { /* bikeSpeed -- the user's bikeSpeed speed in m/s */ - name: 'watts', - routingTypes: [ 'ITINERARY', 'PROFILE' ], - default: 250, - selector: 'DROPDOWN', - label: 'E-scooter Power', - // this configuration should only be allowed for personal E-scooters as these - // settings will be defined by the vehicle type of an E-scooter being rented - applicable: query => ( - query.mode && - query.mode.indexOf('MICROMOBILITY') !== -1 && - query.mode.indexOf('MICROMOBILITY_RENT') === -1 - ), - options: [ - { - text: 'Kid\'s hoverboard (6mph)', - value: 125 - }, { - text: 'Entry-level scooter (11mph)', - value: 250 - }, { - text: 'Robust E-scooter (18mph)', - value: 500 - }, { - text: 'Powerful E-scooter (24mph)', - value: 1500 - } - ], - // rewrite a few other values to add some baseline assumptions about the - // vehicle - itineraryRewrite: value => { - const watts = value - // the maximum cruising and downhill speed. Units in m/s - let maximumMicromobilitySpeed - let weight - // see https://en.wikipedia.org/wiki/Human_body_weight#Average_weight_around_the_world - // estimate is for an average North American human with clothes and stuff - // units are in kg - const TYPICAL_RIDER_WEIGHT = 90 - switch (watts) { - case 125: - // exemplar: Swagtron Turbo 5 hoverboard (https://swagtron.com/product/recertified-swagtron-turbo-five-hoverboard-classic/) - maximumMicromobilitySpeed = 2.8 // ~= 6mph - weight = TYPICAL_RIDER_WEIGHT + 9 - break - case 250: - // exemplar: Xiaomi M365 (https://www.gearbest.com/skateboard/pp_596618.html) - maximumMicromobilitySpeed = 5 // ~= 11.5mph - weight = TYPICAL_RIDER_WEIGHT + 12.5 - break - case 500: - // exemplar: Razor EcoSmart Metro (https://www.amazon.com/Razor-EcoSmart-Metro-Electric-Scooter/dp/B002ZDAEIS?SubscriptionId=AKIAJMXJ2YFJTEDLQMUQ&tag=digitren08-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B002ZDAEIS&ascsubtag=15599460143449ocb) - maximumMicromobilitySpeed = 8 // ~= 18mph - weight = TYPICAL_RIDER_WEIGHT + 30 - break - case 1000: - // exemplar: Boosted Rev (https://boostedboards.com/vehicles/scooters/boosted-rev) - maximumMicromobilitySpeed = 11 // ~= 24mph - weight = TYPICAL_RIDER_WEIGHT + 21 - break - } - return {maximumMicromobilitySpeed, watts, weight} - } - }, - - { /* ignoreRealtimeUpdates -- if true, do not use realtime updates in routing */ - name: 'ignoreRealtimeUpdates', - routingTypes: [ 'ITINERARY' ], - default: false - }, - - { /* companies -- tnc companies to query */ - name: 'companies', - routingTypes: [ 'ITINERARY' ], - default: null - }, - - { /* wheelchair -- whether the user requires a wheelchair-accessible trip */ - name: 'wheelchair', - routingTypes: [ 'ITINERARY' ], - default: false, - selector: 'CHECKBOX', - label: 'Wheelchair Accessible', - applicable: (query, config) => { - if (!query.mode || !config.modes) return false - const configModes = (config.modes.accessModes || []).concat(config.modes.transitModes || []) - for (const mode of query.mode.split(',')) { - const configMode = configModes.find(m => m.mode === mode) - if (!configMode || !configMode.showWheelchairSetting) continue - if (configMode.company && (!query.companies || !query.companies.split(',').includes(configMode.company))) continue - return true - } - } - } -] -// Iterate over stored settings and update query param defaults. -// FIXME: this does not get updated if the user defaults are cleared -queryParams.forEach(param => { - if (param.name in storedSettings) { - param.default = storedSettings[param.name] - param.userDefaultOverride = true - } -}) - -export default queryParams diff --git a/lib/util/query.js b/lib/util/query.js index 5779108c7..a667e1172 100644 --- a/lib/util/query.js +++ b/lib/util/query.js @@ -1,13 +1,13 @@ +import { coordsToString, matchLatLon, stringToCoords } from '@opentripplanner/core-utils/lib/map' +import queryParams from '@opentripplanner/core-utils/lib/query-params' +import { getCurrentTime, getCurrentDate } from '@opentripplanner/core-utils/lib/time' import qs from 'qs' import { getTransitModes, hasTransit, isAccessMode, toSentenceCase } from './itinerary' -import { coordsToString, matchLatLon, stringToCoords } from './map' -import queryParams from './query-params' import { getActiveSearch } from './state' -import { getCurrentTime, getCurrentDate } from './time' /* The list of default parameters considered in the settings panel */ - +// Good to go. export const defaultParams = [ 'wheelchair', 'maxWalkDistance', @@ -22,6 +22,7 @@ export const defaultParams = [ 'watts' ] +// Good to go. /* A function to retrieve a property value from an entry in the query-params * table, checking for either a static value or a function */ @@ -31,6 +32,7 @@ export function getQueryParamProperty (paramInfo, property, query) { : paramInfo[property] } +// Good to go. export function ensureSingleAccessMode (queryModes) { // Count the number of access modes const accessCount = queryModes.filter(m => isAccessMode(m)).length @@ -48,19 +50,23 @@ export function ensureSingleAccessMode (queryModes) { return queryModes } +// Good to go. export function getUrlParams () { return qs.parse(window.location.href.split('?')[1]) } +// Good to go. export function getOtpUrlParams () { return Object.keys(getUrlParams()).filter(key => !key.startsWith('ui_')) } +// Good to go. function findLocationType (location, locations = [], types = ['home', 'work', 'suggested']) { const match = locations.find(l => matchLatLon(l, location)) return match && types.indexOf(match.type) !== -1 ? match.type : null } +// Good to go. export function summarizeQuery (query, locations = []) { const from = findLocationType(query.from, locations) || query.from.name.split(',')[0] const to = findLocationType(query.to, locations) || query.to.name.split(',')[0] @@ -70,6 +76,7 @@ export function summarizeQuery (query, locations = []) { return `${mode} from ${from} to ${to}` } +// CHECK THIS ONE => Used in handleBackButtonPRess /** * Assemble any UI-state properties to be tracked via URL into a single object * TODO: Expand to include additional UI properties @@ -84,6 +91,7 @@ export function getUiUrlParams (otpState) { return uiParams } +// Good to go. export function getTripOptionsFromQuery (query, keepPlace = false) { const options = Object.assign({}, query) // Delete time/date options and from/to @@ -97,6 +105,7 @@ export function getTripOptionsFromQuery (query, keepPlace = false) { return options } +// Good to go. /** * Gets the default query param by executing the default value function with the * provided otp config if the default value is a function. @@ -105,6 +114,7 @@ function getDefaultQueryParamValue (param, config) { return typeof param.default === 'function' ? param.default(config) : param.default } +// Good to go. /** * Determines whether the specified query differs from the default query, i.e., * whether the user has modified any trip options (including mode) from their @@ -135,6 +145,7 @@ export function isNotDefaultQuery (query, config) { return queryIsDifferent } +// Good to go. /** * Get the default query to OTP based on the given config. * @@ -148,6 +159,7 @@ export function getDefaultQuery (config) { return defaultQuery } +// Good to go. /** * Create a otp query based on a the url params. * @@ -186,6 +198,7 @@ export function planParamsToQuery (params, config) { return query } +// Good to go. /** * OTP allows passing a location in the form '123 Main St::lat,lon', so we check * for the double colon and parse the coordinates accordingly. From 66ad883afca29891dac97fa071709fc250643cf6 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 8 Apr 2020 11:30:58 -0400 Subject: [PATCH 076/115] refactor(util/ui): Replace util/ui with @opentripplanner/core-utils/ui (except getTitle(state)) --- lib/actions/form.js | 2 +- lib/components/app/responsive-webapp.js | 15 ++++--- lib/components/form/plan-trip-button.js | 4 +- lib/components/mobile/results-screen.js | 2 +- lib/components/narrative/default/tnc-leg.js | 2 +- lib/util/ui.js | 50 +-------------------- 6 files changed, 14 insertions(+), 61 deletions(-) diff --git a/lib/actions/form.js b/lib/actions/form.js index 5d73405f1..faf9750fb 100644 --- a/lib/actions/form.js +++ b/lib/actions/form.js @@ -3,6 +3,7 @@ import isEqual from 'lodash.isequal' import moment from 'moment' import { getItem, randId } from '@opentripplanner/core-utils/lib/storage' import { OTP_API_TIME_FORMAT } from '@opentripplanner/core-utils/lib/time' +import { isMobile } from '@opentripplanner/core-utils/lib/ui' import { createAction } from 'redux-actions' import { @@ -12,7 +13,6 @@ import { planParamsToQuery } from '../util/query' import { queryIsValid } from '../util/state' -import { isMobile } from '../util/ui' import { MobileScreens, setMainPanelContent, diff --git a/lib/components/app/responsive-webapp.js b/lib/components/app/responsive-webapp.js index 284200975..7c52b70a3 100644 --- a/lib/components/app/responsive-webapp.js +++ b/lib/components/app/responsive-webapp.js @@ -1,19 +1,20 @@ -import React, { Component } from 'react' +import { ConnectedRouter } from 'connected-react-router' +import { createHashHistory } from 'history' +import isEqual from 'lodash.isequal' +import { isMobile } from '@opentripplanner/core-utils/lib/ui' import PropTypes from 'prop-types' +import React, { Component } from 'react' import { connect } from 'react-redux' -import isEqual from 'lodash.isequal' import { Route, Switch, withRouter } from 'react-router' -import { createHashHistory } from 'history' -import { ConnectedRouter } from 'connected-react-router' import PrintLayout from './print-layout' import { setMapCenter, setMapZoom } from '../../actions/config' -import { setLocationToCurrent } from '../../actions/map' -import { getCurrentPosition, receivedPositionResponse } from '../../actions/location' import { formChanged, parseUrlQueryString } from '../../actions/form' +import { getCurrentPosition, receivedPositionResponse } from '../../actions/location' +import { setLocationToCurrent } from '../../actions/map' import { handleBackButtonPress, matchContentToUrl } from '../../actions/ui' import { getUrlParams } from '../../util/query' -import { getTitle, isMobile } from '../../util/ui' +import { getTitle } from '../../util/ui' import { getActiveItinerary } from '../../util/state' class ResponsiveWebapp extends Component { diff --git a/lib/components/form/plan-trip-button.js b/lib/components/form/plan-trip-button.js index b619e647b..73d2de18a 100644 --- a/lib/components/form/plan-trip-button.js +++ b/lib/components/form/plan-trip-button.js @@ -1,11 +1,11 @@ -import React, { Component } from 'react' +import { isMobile } from '@opentripplanner/core-utils/lib/ui' import PropTypes from 'prop-types' +import React, { Component } from 'react' import { Button } from 'react-bootstrap' import { connect } from 'react-redux' import { routingQuery } from '../../actions/api' import { setMainPanelContent } from '../../actions/ui' -import { isMobile } from '../../util/ui' class PlanTripButton extends Component { static propTypes = { diff --git a/lib/components/mobile/results-screen.js b/lib/components/mobile/results-screen.js index b8c73cc47..fce9656cc 100644 --- a/lib/components/mobile/results-screen.js +++ b/lib/components/mobile/results-screen.js @@ -1,3 +1,4 @@ +import { enableScrollForSelector } from '@opentripplanner/core-utils/lib/ui' import LocationIcon from '@opentripplanner/location-icon' import PropTypes from 'prop-types' import React, { Component } from 'react' @@ -16,7 +17,6 @@ import { MobileScreens, setMobileScreen } from '../../actions/ui' import { setUseRealtimeResponse } from '../../actions/narrative' import { clearActiveSearch } from '../../actions/form' import { getActiveSearch, getRealtimeEffects } from '../../util/state' -import { enableScrollForSelector } from '../../util/ui' const LocationContainer = styled.div` font-weight: 300; diff --git a/lib/components/narrative/default/tnc-leg.js b/lib/components/narrative/default/tnc-leg.js index afd1ddb22..905f0da4e 100644 --- a/lib/components/narrative/default/tnc-leg.js +++ b/lib/components/narrative/default/tnc-leg.js @@ -1,5 +1,6 @@ import currencyFormatter from 'currency-formatter' import { formatDuration } from '@opentripplanner/core-utils/lib/time' +import { isMobile } from '@opentripplanner/core-utils/lib/ui' import PropTypes from 'prop-types' import React, { Component } from 'react' import { connect } from 'react-redux' @@ -9,7 +10,6 @@ import { getTransportationNetworkCompanyRideEstimate } from '../../../actions/api' import { toSentenceCase } from '../../../util/itinerary' -import { isMobile } from '../../../util/ui' class TransportationNetworkCompanyLeg extends Component { static propTypes = { diff --git a/lib/util/ui.js b/lib/util/ui.js index bf5be4753..b577f84fc 100644 --- a/lib/util/ui.js +++ b/lib/util/ui.js @@ -5,55 +5,7 @@ import { getActiveSearch } from './state' // Set default title to the original document title (on load) set in index.html const DEFAULT_TITLE = document.title -export function isMobile () { - // TODO: consider using 3rd-party library? - return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) -} - -/** - * Enables scrolling for a specified selector, while disabling scrolling for all - * other targets. This is adapted from https://stackoverflow.com/a/41601290/915811 - * and intended to fix issues with iOS elastic scrolling, e.g., - * https://github.com/conveyal/trimet-mod-otp/issues/92. - */ -export function enableScrollForSelector (selector) { - const _overlay = document.querySelector(selector) - let _clientY = null // remember Y position on touch start - - _overlay.addEventListener('touchstart', function (event) { - if (event.targetTouches.length === 1) { - // detect single touch - _clientY = event.targetTouches[0].clientY - } - }, false) - - _overlay.addEventListener('touchmove', function (event) { - if (event.targetTouches.length === 1) { - // detect single touch - disableRubberBand(event) - } - }, false) - - function disableRubberBand (event) { - const clientY = event.targetTouches[0].clientY - _clientY - - if (_overlay.scrollTop === 0 && clientY > 0) { - // element is at the top of its scroll - event.preventDefault() - } - - if (isOverlayTotallyScrolled() && clientY < 0) { - // element is at the top of its scroll - event.preventDefault() - } - } - - function isOverlayTotallyScrolled () { - // https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions - return _overlay.scrollHeight - _overlay.scrollTop <= _overlay.clientHeight - } -} - +// This needs to stay. export function getTitle (state) { // Override title can optionally be provided in config.yml const { config, ui, user } = state.otp From b868238b68028dfc34c97f975debc32475df7140 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 8 Apr 2020 11:59:37 -0400 Subject: [PATCH 077/115] refactor(util/query): Replace util/query with @opentripplanner/core-utils/query (except getUiUrlPara --- lib/actions/api.js | 2 +- lib/actions/form.js | 12 +- lib/actions/narrative.js | 2 +- lib/actions/ui.js | 5 +- lib/components/app/responsive-webapp.js | 2 +- lib/components/form/settings-preview.js | 5 +- lib/components/form/user-settings.js | 2 +- lib/components/form/user-trip-settings.js | 2 +- lib/reducers/create-otp-reducer.js | 8 +- lib/util/query.js | 206 +--------------------- lib/util/ui.js | 4 +- 11 files changed, 23 insertions(+), 227 deletions(-) diff --git a/lib/actions/api.js b/lib/actions/api.js index b15855e40..4731a9353 100644 --- a/lib/actions/api.js +++ b/lib/actions/api.js @@ -3,6 +3,7 @@ import { push, replace } from 'connected-react-router' import haversine from 'haversine' import moment from 'moment' import hash from 'object-hash' +import { getTripOptionsFromQuery, getUrlParams } from '@opentripplanner/core-utils/lib/query' import queryParams from '@opentripplanner/core-utils/lib/query-params' import { randId } from '@opentripplanner/core-utils/lib/storage' import { OTP_API_DATE_FORMAT, OTP_API_TIME_FORMAT } from '@opentripplanner/core-utils/lib/time' @@ -11,7 +12,6 @@ import qs from 'qs' import { rememberPlace } from './map' import { hasCar } from '../util/itinerary' -import { getTripOptionsFromQuery, getUrlParams } from '../util/query' import { getStopViewerConfig, queryIsValid } from '../util/state' if (typeof (fetch) === 'undefined') require('isomorphic-fetch') diff --git a/lib/actions/form.js b/lib/actions/form.js index faf9750fb..b1a1011d8 100644 --- a/lib/actions/form.js +++ b/lib/actions/form.js @@ -1,17 +1,17 @@ import debounce from 'lodash.debounce' import isEqual from 'lodash.isequal' import moment from 'moment' -import { getItem, randId } from '@opentripplanner/core-utils/lib/storage' -import { OTP_API_TIME_FORMAT } from '@opentripplanner/core-utils/lib/time' -import { isMobile } from '@opentripplanner/core-utils/lib/ui' -import { createAction } from 'redux-actions' - import { getDefaultQuery, getTripOptionsFromQuery, getUrlParams, planParamsToQuery -} from '../util/query' +} from '@opentripplanner/core-utils/lib/query' +import { getItem, randId } from '@opentripplanner/core-utils/lib/storage' +import { OTP_API_TIME_FORMAT } from '@opentripplanner/core-utils/lib/time' +import { isMobile } from '@opentripplanner/core-utils/lib/ui' +import { createAction } from 'redux-actions' + import { queryIsValid } from '../util/state' import { MobileScreens, diff --git a/lib/actions/narrative.js b/lib/actions/narrative.js index 8f016a400..c69c78cc7 100644 --- a/lib/actions/narrative.js +++ b/lib/actions/narrative.js @@ -1,7 +1,7 @@ +import { getUrlParams } from '@opentripplanner/core-utils/lib/query' import { createAction } from 'redux-actions' import { setUrlSearch } from './api' -import { getUrlParams } from '../util/query' export function setActiveItinerary (payload) { return function (dispatch, getState) { diff --git a/lib/actions/ui.js b/lib/actions/ui.js index ad04d2805..02f7374a8 100644 --- a/lib/actions/ui.js +++ b/lib/actions/ui.js @@ -1,13 +1,14 @@ +import { push } from 'connected-react-router' +import { getUrlParams } from '@opentripplanner/core-utils/lib/query' import { createAction } from 'redux-actions' import { matchPath } from 'react-router' -import { push } from 'connected-react-router' import { findRoute } from './api' import { setMapCenter, setMapZoom, setRouterId } from './config' import { clearActiveSearch, parseUrlQueryString, setActiveSearch } from './form' import { clearLocation } from './map' import { setActiveItinerary } from './narrative' -import { getUiUrlParams, getUrlParams } from '../util/query' +import { getUiUrlParams } from '../util/query' /** * Wrapper function for history#push that preserves the current search or, if diff --git a/lib/components/app/responsive-webapp.js b/lib/components/app/responsive-webapp.js index 7c52b70a3..233596914 100644 --- a/lib/components/app/responsive-webapp.js +++ b/lib/components/app/responsive-webapp.js @@ -1,6 +1,7 @@ import { ConnectedRouter } from 'connected-react-router' import { createHashHistory } from 'history' import isEqual from 'lodash.isequal' +import { getUrlParams } from '@opentripplanner/core-utils/lib/query' import { isMobile } from '@opentripplanner/core-utils/lib/ui' import PropTypes from 'prop-types' import React, { Component } from 'react' @@ -13,7 +14,6 @@ import { formChanged, parseUrlQueryString } from '../../actions/form' import { getCurrentPosition, receivedPositionResponse } from '../../actions/location' import { setLocationToCurrent } from '../../actions/map' import { handleBackButtonPress, matchContentToUrl } from '../../actions/ui' -import { getUrlParams } from '../../util/query' import { getTitle } from '../../util/ui' import { getActiveItinerary } from '../../util/state' diff --git a/lib/components/form/settings-preview.js b/lib/components/form/settings-preview.js index 1cefa4d98..4a3c78575 100644 --- a/lib/components/form/settings-preview.js +++ b/lib/components/form/settings-preview.js @@ -1,10 +1,9 @@ -import React, { Component } from 'react' +import { isNotDefaultQuery } from '@opentripplanner/core-utils/lib/query' import PropTypes from 'prop-types' +import React, { Component } from 'react' import { Button } from 'react-bootstrap' import { connect } from 'react-redux' -import { isNotDefaultQuery } from '../../util/query' - class SettingsPreview extends Component { static propTypes = { // component props diff --git a/lib/components/form/user-settings.js b/lib/components/form/user-settings.js index 159668ce5..c7878839b 100644 --- a/lib/components/form/user-settings.js +++ b/lib/components/form/user-settings.js @@ -1,5 +1,6 @@ import moment from 'moment' import { getDetailText, formatStoredPlaceName, matchLatLon } from '@opentripplanner/core-utils/lib/map' +import { summarizeQuery } from '@opentripplanner/core-utils/lib/query' import React, { Component } from 'react' import { Button } from 'react-bootstrap' import { connect } from 'react-redux' @@ -9,7 +10,6 @@ import { forgetSearch, toggleTracking } from '../../actions/api' import { setQueryParam } from '../../actions/form' import { forgetPlace, forgetStop, setLocation } from '../../actions/map' import { setViewedStop } from '../../actions/ui' -import { summarizeQuery } from '../../util/query' const BUTTON_WIDTH = 40 diff --git a/lib/components/form/user-trip-settings.js b/lib/components/form/user-trip-settings.js index 6e5ea2383..5d00778f8 100644 --- a/lib/components/form/user-trip-settings.js +++ b/lib/components/form/user-trip-settings.js @@ -1,3 +1,4 @@ +import { getTripOptionsFromQuery, isNotDefaultQuery } from '@opentripplanner/core-utils/lib/query' import React, { Component } from 'react' import { Button } from 'react-bootstrap' import { connect } from 'react-redux' @@ -8,7 +9,6 @@ import { resetForm, storeDefaultSettings } from '../../actions/form' -import { getTripOptionsFromQuery, isNotDefaultQuery } from '../../util/query' /** * This component contains the `Remember/Forget my trip options` and `Restore defaults` commands diff --git a/lib/reducers/create-otp-reducer.js b/lib/reducers/create-otp-reducer.js index 84d7358f0..065f90270 100644 --- a/lib/reducers/create-otp-reducer.js +++ b/lib/reducers/create-otp-reducer.js @@ -4,14 +4,14 @@ import isEqual from 'lodash.isequal' import objectPath from 'object-path' import { matchLatLon } from '@opentripplanner/core-utils/lib/map' import { filterProfileOptions } from '@opentripplanner/core-utils/lib/profile' -import { getItem, removeItem, storeItem } from '@opentripplanner/core-utils/lib/storage' -import { getUserTimezone } from '@opentripplanner/core-utils/lib/time' - import { ensureSingleAccessMode, getDefaultQuery, getTripOptionsFromQuery -} from '../util/query' +} from '@opentripplanner/core-utils/lib/query' +import { getItem, removeItem, storeItem } from '@opentripplanner/core-utils/lib/storage' +import { getUserTimezone } from '@opentripplanner/core-utils/lib/time' + import { isTransit, getTransitModes } from '../util/itinerary' import { MainPanelContent, MobileScreens } from '../actions/ui' diff --git a/lib/util/query.js b/lib/util/query.js index a667e1172..c864e91c0 100644 --- a/lib/util/query.js +++ b/lib/util/query.js @@ -1,87 +1,10 @@ -import { coordsToString, matchLatLon, stringToCoords } from '@opentripplanner/core-utils/lib/map' -import queryParams from '@opentripplanner/core-utils/lib/query-params' -import { getCurrentTime, getCurrentDate } from '@opentripplanner/core-utils/lib/time' -import qs from 'qs' - -import { getTransitModes, hasTransit, isAccessMode, toSentenceCase } from './itinerary' import { getActiveSearch } from './state' -/* The list of default parameters considered in the settings panel */ -// Good to go. -export const defaultParams = [ - 'wheelchair', - 'maxWalkDistance', - 'maxWalkTime', - 'walkSpeed', - 'maxBikeDistance', - 'maxBikeTime', - 'bikeSpeed', - 'optimize', - 'optimizeBike', - 'maxEScooterDistance', - 'watts' -] - -// Good to go. -/* A function to retrieve a property value from an entry in the query-params - * table, checking for either a static value or a function */ - -export function getQueryParamProperty (paramInfo, property, query) { - return typeof paramInfo[property] === 'function' - ? paramInfo[property](query) - : paramInfo[property] -} - -// Good to go. -export function ensureSingleAccessMode (queryModes) { - // Count the number of access modes - const accessCount = queryModes.filter(m => isAccessMode(m)).length - - // If multiple access modes are specified, keep only the first one - if (accessCount > 1) { - const firstAccess = queryModes.find(m => isAccessMode(m)) - queryModes = queryModes.filter(m => !isAccessMode(m) || m === firstAccess) - - // If no access modes are specified, add 'WALK' as the default - } else if (accessCount === 0) { - queryModes.push('WALK') - } - - return queryModes -} - -// Good to go. -export function getUrlParams () { - return qs.parse(window.location.href.split('?')[1]) -} - -// Good to go. -export function getOtpUrlParams () { - return Object.keys(getUrlParams()).filter(key => !key.startsWith('ui_')) -} - -// Good to go. -function findLocationType (location, locations = [], types = ['home', 'work', 'suggested']) { - const match = locations.find(l => matchLatLon(l, location)) - return match && types.indexOf(match.type) !== -1 ? match.type : null -} - -// Good to go. -export function summarizeQuery (query, locations = []) { - const from = findLocationType(query.from, locations) || query.from.name.split(',')[0] - const to = findLocationType(query.to, locations) || query.to.name.split(',')[0] - const mode = hasTransit(query.mode) - ? 'Transit' - : toSentenceCase(query.mode) - return `${mode} from ${from} to ${to}` -} - -// CHECK THIS ONE => Used in handleBackButtonPRess +// => Used in actions/ui/handleBackButtonPress() /** * Assemble any UI-state properties to be tracked via URL into a single object * TODO: Expand to include additional UI properties */ - export function getUiUrlParams (otpState) { const activeSearch = getActiveSearch(otpState) const uiParams = { @@ -90,130 +13,3 @@ export function getUiUrlParams (otpState) { } return uiParams } - -// Good to go. -export function getTripOptionsFromQuery (query, keepPlace = false) { - const options = Object.assign({}, query) - // Delete time/date options and from/to - delete options.time - delete options.departArrive - delete options.date - if (!keepPlace) { - delete options.from - delete options.to - } - return options -} - -// Good to go. -/** - * Gets the default query param by executing the default value function with the - * provided otp config if the default value is a function. - */ -function getDefaultQueryParamValue (param, config) { - return typeof param.default === 'function' ? param.default(config) : param.default -} - -// Good to go. -/** - * Determines whether the specified query differs from the default query, i.e., - * whether the user has modified any trip options (including mode) from their - * default values. - */ -export function isNotDefaultQuery (query, config) { - const activeModes = query.mode.split(',') - const defaultModes = getTransitModes(config).concat(['WALK']) - let queryIsDifferent = false - const modesEqual = (activeModes.length === defaultModes.length) && - activeModes.sort().every((value, index) => { return value === defaultModes.sort()[index] }) - - if (!modesEqual) { - queryIsDifferent = true - } else { - defaultParams.forEach(param => { - const paramInfo = queryParams.find(qp => qp.name === param) - // Check that the parameter applies to the specified routingType - if (!paramInfo.routingTypes.includes(query.routingType)) return - // Check that the applicability test (if provided) is satisfied - if (typeof paramInfo.applicable === 'function' && - !paramInfo.applicable(query, config)) return - if (query[param] !== getDefaultQueryParamValue(paramInfo, config)) { - queryIsDifferent = true - } - }) - } - return queryIsDifferent -} - -// Good to go. -/** - * Get the default query to OTP based on the given config. - * - * @param config the config in the otp-rr store. - */ -export function getDefaultQuery (config) { - const defaultQuery = { routingType: 'ITINERARY' } - queryParams.filter(qp => 'default' in qp).forEach(qp => { - defaultQuery[qp.name] = getDefaultQueryParamValue(qp, config) - }) - return defaultQuery -} - -// Good to go. -/** - * Create a otp query based on a the url params. - * - * @param {Object} params An object representing the parsed querystring of url - * params. - * @param config the config in the otp-rr store. - */ -export function planParamsToQuery (params, config) { - const query = {} - for (var key in params) { - switch (key) { - case 'fromPlace': - query.from = parseLocationString(params.fromPlace) - break - case 'toPlace': - query.to = parseLocationString(params.toPlace) - break - case 'arriveBy': - query.departArrive = params.arriveBy === 'true' - ? 'ARRIVE' - : params.arriveBy === 'false' - ? 'DEPART' - : 'NOW' - break - case 'date': - query.date = params.date || getCurrentDate(config) - break - case 'time': - query.time = params.time || getCurrentTime(config) - break - default: - if (!isNaN(params[key])) query[key] = parseFloat(params[key]) - else query[key] = params[key] - } - } - return query -} - -// Good to go. -/** - * OTP allows passing a location in the form '123 Main St::lat,lon', so we check - * for the double colon and parse the coordinates accordingly. - */ -function parseLocationString (value) { - const parts = value.split('::') - const coordinates = parts[1] - ? stringToCoords(parts[1]) - : stringToCoords(parts[0]) - const name = parts[1] - ? parts[0] - : coordsToString(coordinates) - return coordinates.length === 2 ? { - name: name || null, - lat: coordinates[0] || null, - lon: coordinates[1] || null - } : null -} diff --git a/lib/util/ui.js b/lib/util/ui.js index b577f84fc..47e452528 100644 --- a/lib/util/ui.js +++ b/lib/util/ui.js @@ -1,11 +1,11 @@ +import { summarizeQuery } from '@opentripplanner/core-utils/lib/query' + import { MainPanelContent } from '../actions/ui' -import { summarizeQuery } from './query' import { getActiveSearch } from './state' // Set default title to the original document title (on load) set in index.html const DEFAULT_TITLE = document.title -// This needs to stay. export function getTitle (state) { // Override title can optionally be provided in config.yml const { config, ui, user } = state.otp From 26155143c2330ffcc885dc6f6494e87cab4276dd Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 8 Apr 2020 14:53:26 -0400 Subject: [PATCH 078/115] refactor(util/itinerary): 1/... Replace util/itinerary with @opentripplanner/core-utils/itinerary. --- lib/actions/api.js | 2 +- lib/components/map/leg-diagram.js | 4 +- .../narrative/default/access-leg.js | 2 +- .../narrative/default/itinerary-details.js | 4 +- lib/components/narrative/default/tnc-leg.js | 2 +- .../narrative/default/transit-leg.js | 2 +- .../narrative/leg-diagram-preview.js | 4 +- .../narrative/line-itin/itin-summary.js | 3 +- .../narrative/line-itin/line-itinerary.js | 2 +- .../narrative/tabbed-itineraries.js | 2 +- lib/reducers/create-otp-reducer.js | 2 +- lib/util/itinerary.js | 43 +++++++++++++++++-- 12 files changed, 54 insertions(+), 18 deletions(-) diff --git a/lib/actions/api.js b/lib/actions/api.js index 4731a9353..c13dec433 100644 --- a/lib/actions/api.js +++ b/lib/actions/api.js @@ -3,6 +3,7 @@ import { push, replace } from 'connected-react-router' import haversine from 'haversine' import moment from 'moment' import hash from 'object-hash' +import { hasCar } from '@opentripplanner/core-utils/lib/itinerary' import { getTripOptionsFromQuery, getUrlParams } from '@opentripplanner/core-utils/lib/query' import queryParams from '@opentripplanner/core-utils/lib/query-params' import { randId } from '@opentripplanner/core-utils/lib/storage' @@ -11,7 +12,6 @@ import { createAction } from 'redux-actions' import qs from 'qs' import { rememberPlace } from './map' -import { hasCar } from '../util/itinerary' import { getStopViewerConfig, queryIsValid } from '../util/state' if (typeof (fetch) === 'undefined') require('isomorphic-fetch') diff --git a/lib/components/map/leg-diagram.js b/lib/components/map/leg-diagram.js index 901c49608..0f4ae9fd4 100644 --- a/lib/components/map/leg-diagram.js +++ b/lib/components/map/leg-diagram.js @@ -1,12 +1,12 @@ import memoize from 'lodash.memoize' -import React, {Component} from 'react' +import { getElevationProfile, getTextWidth, legElevationAtDistance } from '@opentripplanner/core-utils/lib/itinerary' import PropTypes from 'prop-types' +import React, {Component} from 'react' import { Button } from 'react-bootstrap' import { connect } from 'react-redux' import ReactResizeDetector from 'react-resize-detector' import { setElevationPoint, showLegDiagram } from '../../actions/map' -import { getElevationProfile, getTextWidth, legElevationAtDistance } from '../../util/itinerary' // Fixed dimensions for chart const height = 160 diff --git a/lib/components/narrative/default/access-leg.js b/lib/components/narrative/default/access-leg.js index 1101d3a38..e40157677 100644 --- a/lib/components/narrative/default/access-leg.js +++ b/lib/components/narrative/default/access-leg.js @@ -1,3 +1,4 @@ +import { getStepInstructions } from '@opentripplanner/core-utils/lib/itinerary' import { formatDuration } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' import React, {Component} from 'react' @@ -5,7 +6,6 @@ import React, {Component} from 'react' import Icon from '../icon' import LegDiagramPreview from '../leg-diagram-preview' import { distanceString } from '../../../util/distance' -import { getStepInstructions } from '../../../util/itinerary' /** * Default access leg component for narrative itinerary. diff --git a/lib/components/narrative/default/itinerary-details.js b/lib/components/narrative/default/itinerary-details.js index 2eec48805..b12d214b3 100644 --- a/lib/components/narrative/default/itinerary-details.js +++ b/lib/components/narrative/default/itinerary-details.js @@ -1,9 +1,9 @@ -import React, { Component } from 'react' +import { isTransit } from '@opentripplanner/core-utils/lib/itinerary' import PropTypes from 'prop-types' +import React, { Component } from 'react' import AccessLeg from './access-leg' import TransitLeg from './transit-leg' -import { isTransit } from '../../../util/itinerary' export default class ItineraryDetails extends Component { static propTypes = { diff --git a/lib/components/narrative/default/tnc-leg.js b/lib/components/narrative/default/tnc-leg.js index 905f0da4e..d7d712f51 100644 --- a/lib/components/narrative/default/tnc-leg.js +++ b/lib/components/narrative/default/tnc-leg.js @@ -1,4 +1,5 @@ import currencyFormatter from 'currency-formatter' +import { toSentenceCase } from '@opentripplanner/core-utils/lib/itinerary' import { formatDuration } from '@opentripplanner/core-utils/lib/time' import { isMobile } from '@opentripplanner/core-utils/lib/ui' import PropTypes from 'prop-types' @@ -9,7 +10,6 @@ import { getTransportationNetworkCompanyEtaEstimate, getTransportationNetworkCompanyRideEstimate } from '../../../actions/api' -import { toSentenceCase } from '../../../util/itinerary' class TransportationNetworkCompanyLeg extends Component { static propTypes = { diff --git a/lib/components/narrative/default/transit-leg.js b/lib/components/narrative/default/transit-leg.js index aef7c13eb..b6a6eefe0 100644 --- a/lib/components/narrative/default/transit-leg.js +++ b/lib/components/narrative/default/transit-leg.js @@ -1,3 +1,4 @@ +import { getMapColor } from '@opentripplanner/core-utils/lib/itinerary' import { formatDuration, formatTime } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' import React, { Component } from 'react' @@ -6,7 +7,6 @@ import Icon from '../icon' import ModeIcon from '../../icons/mode-icon' import ViewTripButton from '../../viewers/view-trip-button' import ViewStopButton from '../../viewers/view-stop-button' -import { getMapColor } from '../../../util/itinerary' export default class TransitLeg extends Component { static propTypes = { diff --git a/lib/components/narrative/leg-diagram-preview.js b/lib/components/narrative/leg-diagram-preview.js index 5a736e5b9..6ce1ed09d 100644 --- a/lib/components/narrative/leg-diagram-preview.js +++ b/lib/components/narrative/leg-diagram-preview.js @@ -1,10 +1,10 @@ -import React, {Component} from 'react' +import { getElevationProfile } from '@opentripplanner/core-utils/lib/itinerary' import PropTypes from 'prop-types' +import React, {Component} from 'react' import { connect } from 'react-redux' import ReactResizeDetector from 'react-resize-detector' import { showLegDiagram } from '../../actions/map' -import { getElevationProfile } from '../../util/itinerary' const METERS_TO_FEET = 3.28084 diff --git a/lib/components/narrative/line-itin/itin-summary.js b/lib/components/narrative/line-itin/itin-summary.js index 8766cedeb..20c69ebb7 100644 --- a/lib/components/narrative/line-itin/itin-summary.js +++ b/lib/components/narrative/line-itin/itin-summary.js @@ -1,8 +1,9 @@ +import { calculateFares, calculatePhysicalActivity, isTransit } from '@opentripplanner/core-utils/lib/itinerary' import { formatDuration, formatTime } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' import React, { Component } from 'react' -import { calculateFares, calculatePhysicalActivity, getLegIcon, isTransit } from '../../../util/itinerary' +import { getLegIcon } from '../../../util/itinerary' // TODO: make this a prop const defaultRouteColor = '#008' diff --git a/lib/components/narrative/line-itin/line-itinerary.js b/lib/components/narrative/line-itin/line-itinerary.js index 2ca69e267..d1257dae9 100644 --- a/lib/components/narrative/line-itin/line-itinerary.js +++ b/lib/components/narrative/line-itin/line-itinerary.js @@ -1,8 +1,8 @@ +import { getLegModeLabel, getTimeZoneOffset, isTransit } from '@opentripplanner/core-utils/lib/itinerary' import React from 'react' import NarrativeItinerary from '../narrative-itinerary' import SimpleRealtimeAnnotation from '../simple-realtime-annotation' -import { getLegModeLabel, getTimeZoneOffset, isTransit } from '../../../util/itinerary' import ItinerarySummary from './itin-summary' import ItineraryBody from './connected-itinerary-body' diff --git a/lib/components/narrative/tabbed-itineraries.js b/lib/components/narrative/tabbed-itineraries.js index b707b822a..9b440aa3a 100644 --- a/lib/components/narrative/tabbed-itineraries.js +++ b/lib/components/narrative/tabbed-itineraries.js @@ -1,3 +1,4 @@ +import { calculateFares, calculatePhysicalActivity, getTimeZoneOffset } from '@opentripplanner/core-utils/lib/itinerary' import { formatDuration, formatTime, getTimeFormat } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' import React, { Component } from 'react' @@ -7,7 +8,6 @@ import { connect } from 'react-redux' import { setActiveItinerary, setActiveLeg, setActiveStep, setUseRealtimeResponse } from '../../actions/narrative' import DefaultItinerary from './default/default-itinerary' import { getActiveSearch, getRealtimeEffects } from '../../util/state' -import { calculateFares, calculatePhysicalActivity, getTimeZoneOffset } from '../../util/itinerary' class TabbedItineraries extends Component { static propTypes = { diff --git a/lib/reducers/create-otp-reducer.js b/lib/reducers/create-otp-reducer.js index 065f90270..4008e2f01 100644 --- a/lib/reducers/create-otp-reducer.js +++ b/lib/reducers/create-otp-reducer.js @@ -2,6 +2,7 @@ import clone from 'clone' import update from 'immutability-helper' import isEqual from 'lodash.isequal' import objectPath from 'object-path' +import { isTransit, getTransitModes } from '@opentripplanner/core-utils/lib/itinerary' import { matchLatLon } from '@opentripplanner/core-utils/lib/map' import { filterProfileOptions } from '@opentripplanner/core-utils/lib/profile' import { @@ -12,7 +13,6 @@ import { import { getItem, removeItem, storeItem } from '@opentripplanner/core-utils/lib/storage' import { getUserTimezone } from '@opentripplanner/core-utils/lib/time' -import { isTransit, getTransitModes } from '../util/itinerary' import { MainPanelContent, MobileScreens } from '../actions/ui' const MAX_RECENT_STORAGE = 5 diff --git a/lib/util/itinerary.js b/lib/util/itinerary.js index df4196484..e145dd9fa 100644 --- a/lib/util/itinerary.js +++ b/lib/util/itinerary.js @@ -8,16 +8,17 @@ import ModeIcon from '../components/icons/mode-icon' // All OTP transit modes export const transitModes = ['TRAM', 'BUS', 'SUBWAY', 'FERRY', 'RAIL', 'GONDOLA'] +// Good to go. /** * @param {config} config OTP-RR configuration object * @return {Array} List of all transit modes defined in config; otherwise default mode list */ - export function getTransitModes (config) { if (!config || !config.modes || !config.modes.transitModes) return transitModes return config.modes.transitModes.map(tm => tm.mode) } +// Good to go. export function isTransit (mode) { return transitModes.includes(mode) || mode === 'TRANSIT' } @@ -33,6 +34,7 @@ export function hasTransit (modesStr) { return false } +// CHECK arg /** * @param {string} modesStr a comma-separated list of OTP modes * @return {boolean} whether any of the modes are car-based modes @@ -46,6 +48,7 @@ export function hasCar (modesStr) { return false } +// CHECK arg /** * @param {string} modesStr a comma-separated list of OTP modes * @return {boolean} whether any of the modes are bicycle-based modes @@ -59,6 +62,7 @@ export function hasBike (modesStr) { return false } +// CHECK arg /** * @param {string} modesStr a comma-separated list of OTP modes * @return {boolean} whether any of the modes are micromobility-based modes @@ -72,6 +76,7 @@ export function hasMicromobility (modesStr) { return false } +// CHECK arg /** * @param {string} modesStr a comma-separated list of OTP modes * @return {boolean} whether any of the modes is a hailing mode @@ -85,6 +90,7 @@ export function hasHail (modesStr) { return false } +// CHECK arg /** * @param {string} modesStr a comma-separated list of OTP modes * @return {boolean} whether any of the modes is a rental mode @@ -98,34 +104,40 @@ export function hasRental (modesStr) { return false } +// Good to go. export function isWalk (mode) { if (!mode) return false return mode === 'WALK' } +// Good to go. export function isBicycle (mode) { if (!mode) return false return mode === 'BICYCLE' } +// Good to go. export function isBicycleRent (mode) { if (!mode) return false return mode === 'BICYCLE_RENT' } +// Good to go. export function isCar (mode) { if (!mode) return false return mode.startsWith('CAR') } +// Good to go. export function isMicromobility (mode) { if (!mode) return false return mode.startsWith('MICROMOBILITY') } +// Good to go. export function isAccessMode (mode) { return isWalk(mode) || isBicycle(mode) || @@ -134,6 +146,7 @@ export function isAccessMode (mode) { isMicromobility(mode) } +// Good to go. export function getMapColor (mode) { mode = mode || this.get('mode') if (mode === 'WALK') return '#444' @@ -148,6 +161,7 @@ export function getMapColor (mode) { return '#aaa' } +// Good to go. // TODO: temporary code; handle via migrated OTP i18n language table export function getStepDirection (step) { switch (step.relativeDirection) { @@ -168,17 +182,20 @@ export function getStepDirection (step) { return step.relativeDirection } +// Good to go. export function getStepInstructions (step) { const conjunction = step.relativeDirection === 'ELEVATOR' ? 'to' : 'on' return `${getStepDirection(step)} ${conjunction} ${step.streetName}` } +// Good to go. export function getStepStreetName (step) { if (step.streetName === 'road') return 'Unnamed Road' if (step.streetName === 'path') return 'Unnamed Path' return step.streetName } +// Good to go. export function getLegModeLabel (leg) { switch (leg.mode) { case 'BICYCLE_RENT': return 'Biketown' @@ -217,6 +234,7 @@ export function getIcon (iconId, customIcons) { return } +// DIFFERENT!! export function getItineraryBounds (itinerary) { let coords = [] itinerary.legs.forEach(leg => { @@ -228,6 +246,7 @@ export function getItineraryBounds (itinerary) { return latLngBounds(coords) } +// DIFFERENT! /** * Return a leaflet LatLngBounds object that encloses the given leg's geometry. */ @@ -245,6 +264,7 @@ export function getLegBounds (leg) { return latLngBounds(coords) } +// CHECK THIS ONE /** * Gets the desired sort values according to an optional getter function. If the * getter function is not defined, the original sort values are returned. @@ -294,6 +314,7 @@ const routeTypeComparatorValue = { 12: modeComparatorValue.RAIL // - Monorail. } +// CHECK THIS ONE // Gets a comparator value for a given route's type (OTP mode). // Note: JSDoc format not used to avoid bug in documentationjs. // ttps://github.com/documentationjs/documentation/issues/372 @@ -314,6 +335,7 @@ function getRouteTypeComparatorValue (route) { } } +// CHANGED /** * Calculates the sort comparator value given two routes based off of route type * (OTP mode). @@ -334,7 +356,7 @@ function startsWithAlphabeticCharacter (val) { } return false } - +// Check this one => Replace with routeComparator. /** * Sorts routes based off of whether the shortName begins with an alphabetic * character. Routes with shortn that do start with an alphabetic character will @@ -420,6 +442,7 @@ function makeStringValueComparator (objGetterFn) { } } +// CHECK THIS ONE /** * OpenTripPlanner sets the routeSortOrder to -999 by default. So, if that value * is encountered, assume that it actually means that the routeSortOrder is not @@ -453,6 +476,7 @@ function makeMultiCriteriaSort (...criteria) { } } +// Move this and dependent functions to OTP-UI. /** * Compares routes for the purposes of sorting and displaying in a user * interface. Due to GTFS feeds having varying levels of data quality, a multi- @@ -484,8 +508,8 @@ export const routeComparator = makeMultiCriteriaSort( makeStringValueComparator(obj => obj.longName) ) +// Good to go. /* Returns an interpolated lat-lon at a specified distance along a leg */ - export function legLocationAtDistance (leg, distance) { if (!leg.legGeometry) return null @@ -503,8 +527,8 @@ export function legLocationAtDistance (leg, distance) { return null } +// Good to go. /* Returns an interpolated elevation at a specified distance along a leg */ - export function legElevationAtDistance (points, distance) { // Iterate through the combined elevation profile let traversed = 0 @@ -533,6 +557,7 @@ export function legElevationAtDistance (points, distance) { return null } +// Good to go. // Iterate through the steps, building the array of elevation points and // keeping track of the minimum and maximum elevations reached export function getElevationProfile (steps, unitConversion = 1) { @@ -574,6 +599,7 @@ export function getElevationProfile (steps, unitConversion = 1) { return { maxElev, minElev, points, traversed, gain, loss } } +// Good to go. /** * Uses canvas.measureText to compute and return the width of the given text of given font in pixels. * @@ -591,6 +617,7 @@ export function getTextWidth (text, font = '22px Arial') { return metrics.width } +// Good to go. export function toSentenceCase (str) { if (str == null) { return '' @@ -634,6 +661,7 @@ export function getLegIcon (leg, customIcons) { return getIcon(iconStr, customIcons) } +// Good to go. /** * Get the configured company object for the given network string if the company * has been defined in the provided companies array config. @@ -646,6 +674,7 @@ function getCompanyForNetwork (networkString, companies = []) { return company } +// Good to go. /** * Get a string label to display from a list of vehicle rental networks. * @@ -660,6 +689,7 @@ export function getCompaniesLabelFromNetworks (networks, companies = []) { .join('/') } +// Good to go. /** * Returns mode name by checking the vertex type (VertexType class in OTP) for * the provided place. NOTE: this is currently only intended for vehicles at @@ -684,6 +714,7 @@ export function getModeForPlace (place) { } } +// Good to go. export function getPlaceName (place, companies) { // If address is provided (i.e. for carshare station, use it) if (place.address) return place.address.split(',')[0] @@ -701,11 +732,13 @@ export function getPlaceName (place, companies) { return place.name } +// Good to go. export function getTNCLocation (leg, type) { const location = leg[type] return `${location.lat.toFixed(5)},${location.lon.toFixed(5)}` } +// Good to go. export function calculatePhysicalActivity (itinerary) { let walkDuration = 0 let bikeDuration = 0 @@ -723,6 +756,7 @@ export function calculatePhysicalActivity (itinerary) { } } +// Good to go. export function calculateFares (itinerary) { let transitFare = 0 let symbol = '$' // default to USD @@ -756,6 +790,7 @@ export function calculateFares (itinerary) { } } +// Good to go. export function getTimeZoneOffset (itinerary) { if (!itinerary.legs || !itinerary.legs.length) return 0 From 53ca03ced0db7f96989b12db83ecfbb2d480a37d Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Wed, 8 Apr 2020 15:29:09 -0400 Subject: [PATCH 079/115] refactor(util/itinerary): Remove unused code so far. --- __tests__/util/itinerary.js | 4 +- lib/util/itinerary.js | 471 +----------------------------------- 2 files changed, 5 insertions(+), 470 deletions(-) diff --git a/__tests__/util/itinerary.js b/__tests__/util/itinerary.js index 74e5d5a56..83b06f3db 100644 --- a/__tests__/util/itinerary.js +++ b/__tests__/util/itinerary.js @@ -1,4 +1,6 @@ -import {isTransit, routeComparator} from '../../lib/util/itinerary' +import { isTransit } from '@opentripplanner/core-utils/lib/itinerary' + +import { routeComparator } from '../../lib/util/itinerary' const { route1, diff --git a/lib/util/itinerary.js b/lib/util/itinerary.js index 1e7461604..e58f1626a 100644 --- a/lib/util/itinerary.js +++ b/lib/util/itinerary.js @@ -1,210 +1,5 @@ import { latLngBounds } from 'leaflet' import polyline from '@mapbox/polyline' -import turfAlong from '@turf/along' - -// All OTP transit modes -export const transitModes = ['TRAM', 'BUS', 'SUBWAY', 'FERRY', 'RAIL', 'GONDOLA'] - -// Good to go. -/** - * @param {config} config OTP-RR configuration object - * @return {Array} List of all transit modes defined in config; otherwise default mode list - */ -export function getTransitModes (config) { - if (!config || !config.modes || !config.modes.transitModes) return transitModes - return config.modes.transitModes.map(tm => tm.mode) -} - -// Good to go. -export function isTransit (mode) { - return transitModes.includes(mode) || mode === 'TRANSIT' -} - -/** - * @param {string} modesStr a comma-separated list of OTP modes - * @return {boolean} whether any of the modes are transit modes - */ -export function hasTransit (modesStr) { - for (const mode of modesStr.split(',')) { - if (isTransit(mode)) return true - } - return false -} - -// CHECK arg -/** - * @param {string} modesStr a comma-separated list of OTP modes - * @return {boolean} whether any of the modes are car-based modes - */ -export function hasCar (modesStr) { - if (modesStr) { - for (const mode of modesStr.split(',')) { - if (isCar(mode)) return true - } - } - return false -} - -// CHECK arg -/** - * @param {string} modesStr a comma-separated list of OTP modes - * @return {boolean} whether any of the modes are bicycle-based modes - */ -export function hasBike (modesStr) { - if (modesStr) { - for (const mode of modesStr.split(',')) { - if (isBicycle(mode) || isBicycleRent(mode)) return true - } - } - return false -} - -// CHECK arg -/** - * @param {string} modesStr a comma-separated list of OTP modes - * @return {boolean} whether any of the modes are micromobility-based modes - */ -export function hasMicromobility (modesStr) { - if (modesStr) { - for (const mode of modesStr.split(',')) { - if (isMicromobility(mode)) return true - } - } - return false -} - -// CHECK arg -/** - * @param {string} modesStr a comma-separated list of OTP modes - * @return {boolean} whether any of the modes is a hailing mode - */ -export function hasHail (modesStr) { - if (modesStr) { - for (const mode of modesStr.split(',')) { - if (mode.indexOf('_HAIL') > -1) return true - } - } - return false -} - -// CHECK arg -/** - * @param {string} modesStr a comma-separated list of OTP modes - * @return {boolean} whether any of the modes is a rental mode - */ -export function hasRental (modesStr) { - if (modesStr) { - for (const mode of modesStr.split(',')) { - if (mode.indexOf('_RENT') > -1) return true - } - } - return false -} - -// Good to go. -export function isWalk (mode) { - if (!mode) return false - - return mode === 'WALK' -} - -// Good to go. -export function isBicycle (mode) { - if (!mode) return false - - return mode === 'BICYCLE' -} - -// Good to go. -export function isBicycleRent (mode) { - if (!mode) return false - - return mode === 'BICYCLE_RENT' -} - -// Good to go. -export function isCar (mode) { - if (!mode) return false - return mode.startsWith('CAR') -} - -// Good to go. -export function isMicromobility (mode) { - if (!mode) return false - return mode.startsWith('MICROMOBILITY') -} - -// Good to go. -export function isAccessMode (mode) { - return isWalk(mode) || - isBicycle(mode) || - isBicycleRent(mode) || - isCar(mode) || - isMicromobility(mode) -} - -// Good to go. -export function getMapColor (mode) { - mode = mode || this.get('mode') - if (mode === 'WALK') return '#444' - if (mode === 'BICYCLE') return '#0073e5' - if (mode === 'SUBWAY') return '#f00' - if (mode === 'RAIL') return '#b00' - if (mode === 'BUS') return '#080' - if (mode === 'TRAM') return '#800' - if (mode === 'FERRY') return '#008' - if (mode === 'CAR') return '#444' - if (mode === 'MICROMOBILITY') return '#f5a729' - return '#aaa' -} - -// Good to go. -// TODO: temporary code; handle via migrated OTP i18n language table -export function getStepDirection (step) { - switch (step.relativeDirection) { - case 'DEPART': return 'Head ' + step.absoluteDirection.toLowerCase() - case 'LEFT': return 'Left' - case 'HARD_LEFT': return 'Hard left' - case 'SLIGHTLY_LEFT': return 'Slight left' - case 'CONTINUE': return 'Continue' - case 'SLIGHTLY_RIGHT': return 'Slight right' - case 'RIGHT': return 'Right' - case 'HARD_RIGHT': return 'Hard right' - case 'CIRCLE_CLOCKWISE': return 'Follow circle clockwise' - case 'CIRCLE_COUNTERCLOCKWISE': return 'Follow circle counterclockwise' - case 'ELEVATOR': return 'Take elevator' - case 'UTURN_LEFT': return 'Left U-turn' - case 'UTURN_RIGHT': return 'Right U-turn' - } - return step.relativeDirection -} - -// Good to go. -export function getStepInstructions (step) { - const conjunction = step.relativeDirection === 'ELEVATOR' ? 'to' : 'on' - return `${getStepDirection(step)} ${conjunction} ${step.streetName}` -} - -// Good to go. -export function getStepStreetName (step) { - if (step.streetName === 'road') return 'Unnamed Road' - if (step.streetName === 'path') return 'Unnamed Path' - return step.streetName -} - -// Good to go. -export function getLegModeLabel (leg) { - switch (leg.mode) { - case 'BICYCLE_RENT': return 'Biketown' - case 'CAR': return leg.hailedCar ? 'Ride' : 'Drive' - case 'GONDOLA': return 'Aerial Tram' - case 'TRAM': - if (leg.routeLongName.toLowerCase().indexOf('streetcar') !== -1) return 'Streetcar' - return 'Light Rail' - case 'MICROMOBILITY': return 'Ride' - } - return toSentenceCase(leg.mode) -} // DIFFERENT export function getItineraryBounds (itinerary) { @@ -218,7 +13,7 @@ export function getItineraryBounds (itinerary) { return latLngBounds(coords) } -// DIFFERENT! +// DIFFERENT /** * Return a leaflet LatLngBounds object that encloses the given leg's geometry. */ @@ -236,7 +31,6 @@ export function getLegBounds (leg) { return latLngBounds(coords) } -// CHECK THIS ONE /** * Gets the desired sort values according to an optional getter function. If the * getter function is not defined, the original sort values are returned. @@ -286,7 +80,6 @@ const routeTypeComparatorValue = { 12: modeComparatorValue.RAIL // - Monorail. } -// CHECK THIS ONE // Gets a comparator value for a given route's type (OTP mode). // Note: JSDoc format not used to avoid bug in documentationjs. // ttps://github.com/documentationjs/documentation/issues/372 @@ -307,7 +100,6 @@ function getRouteTypeComparatorValue (route) { } } -// CHANGED /** * Calculates the sort comparator value given two routes based off of route type * (OTP mode). @@ -328,7 +120,7 @@ function startsWithAlphabeticCharacter (val) { } return false } -// Check this one => Replace with routeComparator. + /** * Sorts routes based off of whether the shortName begins with an alphabetic * character. Routes with shortn that do start with an alphabetic character will @@ -414,7 +206,6 @@ function makeStringValueComparator (objGetterFn) { } } -// CHECK THIS ONE /** * OpenTripPlanner sets the routeSortOrder to -999 by default. So, if that value * is encountered, assume that it actually means that the routeSortOrder is not @@ -448,7 +239,6 @@ function makeMultiCriteriaSort (...criteria) { } } -// Move this and dependent functions to OTP-UI. /** * Compares routes for the purposes of sorting and displaying in a user * interface. Due to GTFS feeds having varying levels of data quality, a multi- @@ -479,260 +269,3 @@ export const routeComparator = makeMultiCriteriaSort( makeStringValueComparator(obj => obj.shortName), makeStringValueComparator(obj => obj.longName) ) - -// Good to go. -/* Returns an interpolated lat-lon at a specified distance along a leg */ -export function legLocationAtDistance (leg, distance) { - if (!leg.legGeometry) return null - - try { - const line = polyline.toGeoJSON(leg.legGeometry.points) - const pt = turfAlong(line, distance, 'meters') - if (pt && pt.geometry && pt.geometry.coordinates) { - return [ - pt.geometry.coordinates[1], - pt.geometry.coordinates[0] - ] - } - } catch (e) { } - - return null -} - -// Good to go. -/* Returns an interpolated elevation at a specified distance along a leg */ -export function legElevationAtDistance (points, distance) { - // Iterate through the combined elevation profile - let traversed = 0 - // If first point distance is not zero, insert starting point at zero with - // null elevation. Encountering this value should trigger the warning below. - if (points[0][0] > 0) { - points.unshift([0, null]) - } - for (let i = 1; i < points.length; i++) { - const start = points[i - 1] - const elevDistanceSpan = points[i][0] - start[0] - if (distance >= traversed && distance <= traversed + elevDistanceSpan) { - // Distance falls within this point and the previous one; - // compute & return iterpolated elevation value - if (start[1] === null) { - console.warn('Elevation value does not exist for distance.', distance, traversed) - return null - } - const pct = (distance - traversed) / elevDistanceSpan - const elevSpan = points[i][1] - start[1] - return start[1] + elevSpan * pct - } - traversed += elevDistanceSpan - } - console.warn('Elevation value does not exist for distance.', distance, traversed) - return null -} - -// Good to go. -// Iterate through the steps, building the array of elevation points and -// keeping track of the minimum and maximum elevations reached -export function getElevationProfile (steps, unitConversion = 1) { - let minElev = 100000 - let maxElev = -100000 - let traversed = 0 - let gain = 0 - let loss = 0 - let previous = null - const points = [] - steps.forEach((step, stepIndex) => { - if (!step.elevation || step.elevation.length === 0) { - traversed += step.distance - return - } - for (let i = 0; i < step.elevation.length; i++) { - const elev = step.elevation[i] - if (previous) { - const diff = (elev.second - previous.second) * unitConversion - if (diff > 0) gain += diff - else loss += diff - } - if (i === 0 && elev.first !== 0) { - // console.warn(`No elevation data available for step ${stepIndex}-${i} at beginning of segment`, elev) - } - const convertedElevation = elev.second * unitConversion - if (convertedElevation < minElev) minElev = convertedElevation - if (convertedElevation > maxElev) maxElev = convertedElevation - points.push([traversed + elev.first, elev.second]) - // Insert "filler" point if the last point in elevation profile does not - // reach the full distance of the step. - if (i === step.elevation.length - 1 && elev.first !== step.distance) { - // points.push([traversed + step.distance, elev.second]) - } - previous = elev - } - traversed += step.distance - }) - return { maxElev, minElev, points, traversed, gain, loss } -} - -// Good to go. -/** - * Uses canvas.measureText to compute and return the width of the given text of given font in pixels. - * - * @param {string} text The text to be rendered. - * @param {string} font The css font descriptor that text is to be rendered with (e.g. "bold 14px verdana"). - * - * @see https://stackoverflow.com/questions/118241/calculate-text-width-with-javascript/21015393#21015393 - */ -export function getTextWidth (text, font = '22px Arial') { - // re-use canvas object for better performance - var canvas = getTextWidth.canvas || (getTextWidth.canvas = document.createElement('canvas')) - var context = canvas.getContext('2d') - context.font = font - var metrics = context.measureText(text) - return metrics.width -} - -// Good to go. -export function toSentenceCase (str) { - if (str == null) { - return '' - } - str = String(str) - return str.charAt(0).toUpperCase() + str.substr(1).toLowerCase() -} - -// Good to go. -/** - * Get the configured company object for the given network string if the company - * has been defined in the provided companies array config. - */ -function getCompanyForNetwork (networkString, companies = []) { - const company = companies.find(co => co.id === networkString) - if (!company) { - console.warn(`No company found in config.yml that matches rented vehicle network: ${networkString}`, companies) - } - return company -} - -// Good to go. -/** - * Get a string label to display from a list of vehicle rental networks. - * - * @param {Array} networks A list of network ids. - * @param {Array} [companies=[]] An optional list of the companies config. - * @return {string} A label for use in presentation on a website. - */ -export function getCompaniesLabelFromNetworks (networks, companies = []) { - return networks.map(network => getCompanyForNetwork(network, companies)) - .filter(co => !!co) - .map(co => co.label) - .join('/') -} - -// Good to go. -/** - * Returns mode name by checking the vertex type (VertexType class in OTP) for - * the provided place. NOTE: this is currently only intended for vehicles at - * the moment (not transit or walking). - * - * TODO: I18N - * @param {string} place place from itinerary leg - */ -export function getModeForPlace (place) { - switch (place.vertexType) { - case 'CARSHARE': - return 'car' - case 'VEHICLERENTAL': - return 'E-scooter' - // TODO: Should the type change depending on bike vertex type? - case 'BIKESHARE': - case 'BIKEPARK': - return 'bike' - // If company offers more than one mode, default to `vehicle` string. - default: - return 'vehicle' - } -} - -// Good to go. -export function getPlaceName (place, companies) { - // If address is provided (i.e. for carshare station, use it) - if (place.address) return place.address.split(',')[0] - if (place.networks && place.vertexType === 'VEHICLERENTAL') { - // For vehicle rental pick up, do not use the place name. Rather, use - // company name + vehicle type (e.g., SPIN E-scooter). Place name is often just - // a UUID that has no relevance to the actual vehicle. For bikeshare, however, - // there are often hubs or bikes that have relevant names to the user. - const company = getCompanyForNetwork(place.networks[0], companies) - if (company) { - return `${company.label} ${getModeForPlace(place)}` - } - } - // Default to place name - return place.name -} - -// Good to go. -export function getTNCLocation (leg, type) { - const location = leg[type] - return `${location.lat.toFixed(5)},${location.lon.toFixed(5)}` -} - -// Good to go. -export function calculatePhysicalActivity (itinerary) { - let walkDuration = 0 - let bikeDuration = 0 - for (const leg of itinerary.legs) { - if (leg.mode.startsWith('WALK')) walkDuration += leg.duration - if (leg.mode.startsWith('BICYCLE')) bikeDuration += leg.duration - } - const caloriesBurned = - walkDuration / 3600 * 280 + - bikeDuration / 3600 * 290 - return { - bikeDuration, - caloriesBurned, - walkDuration - } -} - -// Good to go. -export function calculateFares (itinerary) { - let transitFare = 0 - let symbol = '$' // default to USD - let dollarsToString = dollars => `${symbol}${dollars.toFixed(2)}` - let centsToString = cents => `${symbol}${(cents / Math.pow(10, 2)).toFixed(2)}` - if (itinerary.fare && itinerary.fare.fare && itinerary.fare.fare.regular) { - const reg = itinerary.fare.fare.regular - symbol = reg.currency.symbol - transitFare = reg.cents - centsToString = cents => `${symbol}${(cents / Math.pow(10, reg.currency.defaultFractionDigits)).toFixed(reg.currency.defaultFractionDigits)}` - dollarsToString = dollars => `${symbol}${dollars.toFixed(2)}` - } - - // Process any TNC fares - let minTNCFare = 0 - let maxTNCFare = 0 - for (const leg of itinerary.legs) { - if (leg.mode === 'CAR' && leg.hailedCar && leg.tncData) { - const { maxCost, minCost } = leg.tncData - // TODO: Support non-USD - minTNCFare += minCost - maxTNCFare += maxCost - } - } - return { - centsToString, - dollarsToString, - maxTNCFare, - minTNCFare, - transitFare - } -} - -// Good to go. -export function getTimeZoneOffset (itinerary) { - if (!itinerary.legs || !itinerary.legs.length) return 0 - - // Determine if there is a DST offset between now and the itinerary start date - const dstOffset = new Date(itinerary.startTime).getTimezoneOffset() - new Date().getTimezoneOffset() - - return itinerary.legs[0].agencyTimeZoneOffset + (new Date().getTimezoneOffset() + dstOffset) * 60000 -} From f9b67deccd64f5025f2da9af767c7b3969a91f3f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2020 19:58:47 +0000 Subject: [PATCH 080/115] build(deps): bump https-proxy-agent from 2.2.2 to 2.2.4 Bumps [https-proxy-agent](https://github.com/TooTallNate/node-https-proxy-agent) from 2.2.2 to 2.2.4. - [Release notes](https://github.com/TooTallNate/node-https-proxy-agent/releases) - [Commits](https://github.com/TooTallNate/node-https-proxy-agent/compare/2.2.2...2.2.4) Signed-off-by: dependabot[bot] --- yarn.lock | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index 53e41ada7..b81ef2f93 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7615,15 +7615,7 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -https-proxy-agent@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" - integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg== - dependencies: - agent-base "^4.3.0" - debug "^3.1.0" - -https-proxy-agent@^2.2.3: +https-proxy-agent@^2.2.1, https-proxy-agent@^2.2.3: version "2.2.4" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== From 2d81d303a44c2f8137fa4872f1865065c4595891 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 23 Apr 2020 16:39:27 -0400 Subject: [PATCH 081/115] refactor(line-itin/itinerary.css): Remove unused file from before merge. --- .../narrative/line-itin/itinerary.css | 375 ------------------ 1 file changed, 375 deletions(-) delete mode 100644 lib/components/narrative/line-itin/itinerary.css diff --git a/lib/components/narrative/line-itin/itinerary.css b/lib/components/narrative/line-itin/itinerary.css deleted file mode 100644 index 89df3acf0..000000000 --- a/lib/components/narrative/line-itin/itinerary.css +++ /dev/null @@ -1,375 +0,0 @@ -.otp .options.profile .itin-body .place-row { - margin-left: 55px; -} - -.otp .line-itin { - margin-bottom: 20px; -} - -/* Itinerary summary */ - -.otp .line-itin .itin-summary { - padding-right: 5px; - height: 60px; - display: table; - width: 100%; - margin-bottom: 15px; -} - -.otp .desktop-narrative-container .options.itinerary .line-itin .itin-summary { - display: none; -} - -.otp .line-itin .itin-summary .details { - display: table-cell; - vertical-align: top; -} - -.otp .line-itin .itin-summary .header { - font-weight: bold; - font-size: 18px; - margin-top: -3px; -} - -.otp .line-itin .itin-summary .detail { - font-size: 13px; - color: #999999; -} - -.otp .line-itin .itin-summary .routes { - display: table-cell; - text-align: right; -} - -.otp .line-itin .itin-summary .routes .route-preview { - display: inline-block; - margin-left: 8px; - vertical-align: top; -} - -.otp .line-itin .itin-summary .routes .route-preview .mode-icon { - height: 30px; - width: 30px; -} - -.otp .line-itin .itin-summary .routes .route-preview .short-name { - color: white; - font-weight: 500; - text-align: center; - margin-top: 6px; - font-size: 15px; - padding-top: 2px; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - width: 30px; - height: 30px; - border-radius: 15px; - border: 2px solid white; - box-shadow: 0 0 0.5em #000; -} - -/* Itinerary main body */ - -.otp .line-itin .itin-body { - padding: 20px 0px; -} - -.otp .line-itin .place-row { - display: table; - width: 100%; -} - - -/* Departure/arrival time (1st column in table) */ - -.otp .line-itin .time { - display: table-cell; - width: 60px; - font-size: 14px; - color: #999999; - text-align: right; - padding-right: 4px; - padding-top: 1px; - vertical-align: top; -} - -/* The place icon and line itself (2nd column in table) */ -.otp .line-itin .line-container { - position: relative; - display: table-cell; - width: 20px; - max-width: 20px; -} - -.otp .line-itin .place-icon-group { - position: absolute; - font-size: 18px; - left: -8px; - top: -7px; - z-index: 20; -} - -.otp .line-itin .leg-line { - position: absolute; - top: 11px; - bottom: -11px; - z-index: 10; -} - -// Internet explorer specific media query to apply the below styling to fix -// rendering issues with table cell display with undefined heights. -/*@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { - .otp .line-itin .line-container { - overflow: hidden; // hack for IE to render table cell correctly. - } - - .otp .line-itin .leg-line { - height: 1000px; // hack for IE to render table cell correctly. - } -}*/ - -.otp .line-itin .leg-line-walk { - left: 6px; - right: 6px; - background: radial-gradient(ellipse at center, #87cefa 40%, transparent 10%); - background-size: 12px 12px; - background-repeat: repeat-y; - background-position: center -5px; -} - -.otp .line-itin .leg-line-bicycle { - left: 7.5px; - right: 7.5px; - background: repeating-linear-gradient( - 0deg, - red, - red 8px, - white 8px, - white 12.5px - ); -} - -.otp .line-itin .leg-line-car { - left: 7.5px; - right: 7.5px; - background: repeating-linear-gradient( - 0deg, - grey, - grey 8px, - white 8px, - white 12.5px - ); -} - -.otp .line-itin .leg-line-micromobility { - left: 7.5px; - right: 7.5px; - background: repeating-linear-gradient( - 0deg, - #f5a729, - #f5a729 8px, - white 8px, - white 12.5px - ); -} - -.otp .line-itin .leg-line-transit { - left: 5px; - right: 5px; - background-color: gray; -} - -/* Place/Leg details (3rd column in table) */ - -.otp .line-itin .place-details { - font-size: 13px; - display: table-cell; - padding-top: 1px; -} - -.otp .line-itin .place-name { - font-size: 18px; - line-height: 20px; - padding-left: 4px; - font-weight: 500; - color: black; -} - -.otp .line-itin .place-subheader { - font-size: 12px; - padding-left: 4px; - padding-top: 1px; - font-weight: 300; - color: gray; -} - -.otp .line-itin .interline-dot { - position: relative; - float: left; - margin-left: -13.5px; - z-index: 25; - color: #fff; -} - -.otp .line-itin .interline-name { - font-size: 14px; - font-weight: 400; - line-height: 16px; -} - -/* Leg body general */ - -.otp .line-itin .leg-body { - padding: 12px 0px 18px 4px; - font-size: 13px; - color: #999999; -} - -.otp .line-itin .summary { - cursor: pointer; -} - -.otp .line-itin .leg-body .icon { - height: 24px; - width: 24px; - float: left; - margin-right: 6px; -} - -.otp .line-itin .leg-body .leg-description { - display: table; -} - -.otp .line-itin .leg-body .leg-description > div { - display: table-cell; - vertical-align: middle; -} - -/* Leg steps (for turn-by-turn) */ - -.otp .line-itin .leg-body .steps-header { - font-size: 13px; - margin-top: 10px; - color: #999999; - font-style: normal; - display: inline-block; -} - -.otp .line-itin .leg-body .step-row { - font-size: 13px; - margin-top: 8px; - color: #999999; - font-style: normal; -} - -/* Transit leg details */ - -.otp .line-itin .leg-body .route-name { - color: #999999; - margin-top: 5px; -} - -.otp .line-itin .leg-body .route-short-name { - display: inline-block; - background-color: #0f6aac; - padding-top: 1px; - color: white; - font-weight: 500; - font-size: 14px; - margin-right: 6px; - text-align: center; - width: 24px; - height: 24px; - border-radius: 12px; - border: 1px solid white; - box-shadow: 0 0 0.25em #000; - margin-right: 8px; -} - -.otp .line-itin .leg-body .route-long-name { - font-size: 13px; - line-height: 16px; - font-weight: 500; -} - -.otp .line-itin .leg-body .transit-leg-details { - margin-top: 5px; -} - -.otp .line-itin .leg-body .agency-info { - margin-top: 5px; - -} - -.otp .line-itin .leg-body .transit-leg-details .header { - cursor: pointer; - color: #999999; - font-size: 13px; -} - -/* Intermediate stops */ - -.otp .line-itin .leg-body .transit-leg-details .intermediate-stops .stop-row { - z-index: 30; - position: relative; -} - -.otp .line-itin .leg-body .transit-leg-details .intermediate-stops .stop-marker { - float: left; - margin-left: -17px; - color: white; -} - -.otp .line-itin .leg-body .transit-leg-details .intermediate-stops .stop-name { - color: #999999; - font-size: 14px; - margin-top: 3px; -} - -/* Transit alerts */ - -.otp .line-itin .leg-body .transit-alerts-toggle { - display: inline-block; - margin-top: 8px; - color: #D14727; - font-weight: 400; - cursor: pointer; -} - -.otp .line-itin .leg-body .transit-alerts { - margin-top: 3px; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert { - margin-top: 5px; - background-color: #eee; - padding: 8px; - color: black; - border-radius: 4px; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert .alert-icon { - float: left; - font-size: 18px; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert .alert-header { - font-size: 14px; - margin-left: 30px; - font-weight: 600; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert .alert-body { - font-size: 12px; - margin-left: 30px; - /* white space pre-wrap is required to render line breaks correctly. */ - white-space: pre-wrap; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert .effective-date { - margin-top: 5px; - margin-left: 30px; - font-size: 12px; - font-style: italic; -} From 119268136e13bbd0db7c528679044a7a3b3b86cf Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 24 Apr 2020 10:17:13 -0400 Subject: [PATCH 082/115] refactor(core-utils): Initial migration over to OTP-ui core-utils. --- lib/components/form/default-search-form.js | 12 +- .../narrative/default/transit-leg.js | 9 +- .../narrative/itinerary-carousel.js | 39 +- .../narrative/line-itin/itin-summary.js | 22 +- .../narrative/tabbed-itineraries.js | 8 +- lib/index.js | 2 + lib/util/itinerary.js | 437 +----------------- 7 files changed, 40 insertions(+), 489 deletions(-) diff --git a/lib/components/form/default-search-form.js b/lib/components/form/default-search-form.js index 1f2578231..7dfe3a266 100644 --- a/lib/components/form/default-search-form.js +++ b/lib/components/form/default-search-form.js @@ -1,11 +1,17 @@ -import React, { Component } from 'react' import PropTypes from 'prop-types' +import React, { Component } from 'react' import LocationField from './connected-location-field' -import SwitchButton from './switch-button' import TabbedFormPanel from './tabbed-form-panel' +import SwitchButton from './switch-button' import defaultIcons from '../icons' +// Use the icons props to override icons for certain modes in the mode selector panel. +// If no icon is provided for a specific mode, the default OTP-ui icon will be used. +// const customIcons = { +// TRANSIT: +// } + export default class DefaultSearchForm extends Component { static propTypes = { icons: PropTypes.object, @@ -13,7 +19,7 @@ export default class DefaultSearchForm extends Component { } static defaultProps = { - icons: defaultIcons, + icons: defaultIcons, // customIcons, showFrom: true, showTo: true } diff --git a/lib/components/narrative/default/transit-leg.js b/lib/components/narrative/default/transit-leg.js index 5809f3f1b..b6a6eefe0 100644 --- a/lib/components/narrative/default/transit-leg.js +++ b/lib/components/narrative/default/transit-leg.js @@ -1,14 +1,13 @@ -import Icon from '../icon' -import React, { Component } from 'react' +import { getMapColor } from '@opentripplanner/core-utils/lib/itinerary' +import { formatDuration, formatTime } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' +import React, { Component } from 'react' +import Icon from '../icon' import ModeIcon from '../../icons/mode-icon' import ViewTripButton from '../../viewers/view-trip-button' import ViewStopButton from '../../viewers/view-stop-button' -import { getMapColor } from '../../../util/itinerary' -import { formatDuration, formatTime } from '../../../util/time' - export default class TransitLeg extends Component { static propTypes = { itinerary: PropTypes.object diff --git a/lib/components/narrative/itinerary-carousel.js b/lib/components/narrative/itinerary-carousel.js index ce7a373fa..0b9c828d4 100644 --- a/lib/components/narrative/itinerary-carousel.js +++ b/lib/components/narrative/itinerary-carousel.js @@ -1,5 +1,6 @@ -import React, { Component } from 'react' +import { getTimeFormat } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' +import React, { Component } from 'react' import { Button } from 'react-bootstrap' import { connect } from 'react-redux' import SwipeableViews from 'react-swipeable-views' @@ -8,10 +9,7 @@ import { setActiveItinerary, setActiveLeg, setActiveStep } from '../../actions/n import Icon from './icon' import DefaultItinerary from './default/default-itinerary' import Loading from './loading' -import NarrativeProfileSummary from './narrative-profile-summary' import { getActiveItineraries, getActiveSearch } from '../../util/state' -import { profileOptionsToItineraries } from '../../util/profile' -import { getTimeFormat } from '../../util/time' class ItineraryCarousel extends Component { state = {} @@ -26,8 +24,6 @@ class ItineraryCarousel extends Component { setActiveLeg: PropTypes.func, setActiveStep: PropTypes.func, expanded: PropTypes.bool, - showProfileSummary: PropTypes.bool, - profileOptions: PropTypes.array, companies: PropTypes.string } @@ -54,18 +50,11 @@ class ItineraryCarousel extends Component { } render () { - const { activeItinerary, itineraries, itineraryClass, hideHeader, pending, showProfileSummary } = this.props + const { activeItinerary, itineraries, itineraryClass, hideHeader, pending } = this.props if (pending) return if (!itineraries) return null - let views = [] - if (showProfileSummary) { - views.push(
-
Your Best Options (Swipe to View All)
- -
) - } - views = views.concat(itineraries.map((itinerary, index) => { + const views = itineraries.map((itinerary, index) => { return React.createElement(itineraryClass, { itinerary, index, @@ -74,7 +63,7 @@ class ItineraryCarousel extends Component { onClick: this._onItineraryClick, ...this.props }) - })) + }) return (
@@ -112,23 +101,13 @@ class ItineraryCarousel extends Component { const mapStateToProps = (state, ownProps) => { const activeSearch = getActiveSearch(state.otp) - let itineraries = null - let profileOptions = null - let showProfileSummary = false - if (activeSearch && activeSearch.response && activeSearch.response.plan) { - itineraries = getActiveItineraries(state.otp) - } else if (activeSearch && activeSearch.response && activeSearch.response.otp) { - profileOptions = activeSearch.response.otp.profile - itineraries = profileOptionsToItineraries(profileOptions) - showProfileSummary = true - } + const itineraries = activeSearch && activeSearch.response && activeSearch.response.plan + ? getActiveItineraries(state.otp) + : null - const pending = activeSearch && activeSearch.pending return { itineraries, - profileOptions, - pending, - showProfileSummary, + pending: activeSearch && activeSearch.pending, activeItinerary: activeSearch && activeSearch.activeItinerary, activeLeg: activeSearch && activeSearch.activeLeg, activeStep: activeSearch && activeSearch.activeStep, diff --git a/lib/components/narrative/line-itin/itin-summary.js b/lib/components/narrative/line-itin/itin-summary.js index 2e74575a7..955491975 100644 --- a/lib/components/narrative/line-itin/itin-summary.js +++ b/lib/components/narrative/line-itin/itin-summary.js @@ -4,12 +4,8 @@ import React, { Component } from 'react' import styled from 'styled-components' import { - calculateFares, - calculatePhysicalActivity, - getLegIcon, - isTransit + getLegIcon } from '../../../util/itinerary' -import { formatDuration, formatTime } from '../../../util/time' // TODO: make this a prop const defaultRouteColor = '#008' @@ -48,7 +44,7 @@ const NonTransitSpacer = styled.div` overflow: hidden ` -const RoutePreivew = styled.div` +const RoutePreview = styled.div` display: inline-block; margin-left: 8px; vertical-align: top; @@ -93,22 +89,22 @@ export default class ItinerarySummary extends Component { maxTNCFare, minTNCFare, transitFare - } = calculateFares(itinerary) + } = coreUtils.itinerary.calculateFares(itinerary) // TODO: support non-USD const minTotalFare = minTNCFare * 100 + transitFare const maxTotalFare = maxTNCFare * 100 + transitFare - const { caloriesBurned } = calculatePhysicalActivity(itinerary) + const { caloriesBurned } = coreUtils.itinerary.calculatePhysicalActivity(itinerary) return (
{/* Travel time in hrs/mins */} -
{formatDuration(itinerary.duration)}
+
{coreUtils.time.formatDuration(itinerary.duration)}
{/* Duration as time range */} - {formatTime(itinerary.startTime, timeOptions)} - {formatTime(itinerary.endTime, timeOptions)} + {coreUtils.time.formatTime(itinerary.startTime, timeOptions)} - {coreUtils.time.formatTime(itinerary.endTime, timeOptions)} {/* Fare / Calories */} @@ -134,9 +130,9 @@ export default class ItinerarySummary extends Component { return !(leg.mode === 'WALK' && itinerary.transitTime > 0) }).map((leg, k) => { return ( - + {getLegIcon(leg, customIcons)} - {isTransit(leg.mode) + {coreUtils.itinerary.isTransit(leg.mode) ? ( {getRouteNameForBadge(leg)} @@ -144,7 +140,7 @@ export default class ItinerarySummary extends Component { ) : () } - + ) })} diff --git a/lib/components/narrative/tabbed-itineraries.js b/lib/components/narrative/tabbed-itineraries.js index f3c4e2d76..9b440aa3a 100644 --- a/lib/components/narrative/tabbed-itineraries.js +++ b/lib/components/narrative/tabbed-itineraries.js @@ -1,13 +1,13 @@ -import React, { Component } from 'react' +import { calculateFares, calculatePhysicalActivity, getTimeZoneOffset } from '@opentripplanner/core-utils/lib/itinerary' +import { formatDuration, formatTime, getTimeFormat } from '@opentripplanner/core-utils/lib/time' import PropTypes from 'prop-types' -import { connect } from 'react-redux' +import React, { Component } from 'react' import { Button } from 'react-bootstrap' +import { connect } from 'react-redux' import { setActiveItinerary, setActiveLeg, setActiveStep, setUseRealtimeResponse } from '../../actions/narrative' import DefaultItinerary from './default/default-itinerary' import { getActiveSearch, getRealtimeEffects } from '../../util/state' -import { calculateFares, calculatePhysicalActivity, getTimeZoneOffset } from '../../util/itinerary' -import { formatDuration, formatTime, getTimeFormat } from '../../util/time' class TabbedItineraries extends Component { static propTypes = { diff --git a/lib/index.js b/lib/index.js index 5fb277044..4ed9f8b55 100644 --- a/lib/index.js +++ b/lib/index.js @@ -23,6 +23,7 @@ import SimpleRealtimeAnnotation from './components/narrative/simple-realtime-ann import TransportationNetworkCompanyLeg from './components/narrative/default/tnc-leg' import TripDetails from './components/narrative/connected-trip-details' import TripTools from './components/narrative/trip-tools' +import LineItinerary from './components/narrative/line-itin/line-itinerary' import MobileMain from './components/mobile/main' @@ -66,6 +67,7 @@ export { // narrative components LegDiagramPreview, + LineItinerary, NarrativeItineraries, NarrativeItinerary, NarrativeRoutingResults, diff --git a/lib/util/itinerary.js b/lib/util/itinerary.js index df4196484..7134f7d55 100644 --- a/lib/util/itinerary.js +++ b/lib/util/itinerary.js @@ -1,196 +1,10 @@ -import React from 'react' import { latLngBounds } from 'leaflet' import polyline from '@mapbox/polyline' -import turfAlong from '@turf/along' +import React from 'react' import ModeIcon from '../components/icons/mode-icon' -// All OTP transit modes -export const transitModes = ['TRAM', 'BUS', 'SUBWAY', 'FERRY', 'RAIL', 'GONDOLA'] - -/** - * @param {config} config OTP-RR configuration object - * @return {Array} List of all transit modes defined in config; otherwise default mode list - */ - -export function getTransitModes (config) { - if (!config || !config.modes || !config.modes.transitModes) return transitModes - return config.modes.transitModes.map(tm => tm.mode) -} - -export function isTransit (mode) { - return transitModes.includes(mode) || mode === 'TRANSIT' -} - -/** - * @param {string} modesStr a comma-separated list of OTP modes - * @return {boolean} whether any of the modes are transit modes - */ -export function hasTransit (modesStr) { - for (const mode of modesStr.split(',')) { - if (isTransit(mode)) return true - } - return false -} - -/** - * @param {string} modesStr a comma-separated list of OTP modes - * @return {boolean} whether any of the modes are car-based modes - */ -export function hasCar (modesStr) { - if (modesStr) { - for (const mode of modesStr.split(',')) { - if (isCar(mode)) return true - } - } - return false -} - -/** - * @param {string} modesStr a comma-separated list of OTP modes - * @return {boolean} whether any of the modes are bicycle-based modes - */ -export function hasBike (modesStr) { - if (modesStr) { - for (const mode of modesStr.split(',')) { - if (isBicycle(mode) || isBicycleRent(mode)) return true - } - } - return false -} - -/** - * @param {string} modesStr a comma-separated list of OTP modes - * @return {boolean} whether any of the modes are micromobility-based modes - */ -export function hasMicromobility (modesStr) { - if (modesStr) { - for (const mode of modesStr.split(',')) { - if (isMicromobility(mode)) return true - } - } - return false -} - -/** - * @param {string} modesStr a comma-separated list of OTP modes - * @return {boolean} whether any of the modes is a hailing mode - */ -export function hasHail (modesStr) { - if (modesStr) { - for (const mode of modesStr.split(',')) { - if (mode.indexOf('_HAIL') > -1) return true - } - } - return false -} - -/** - * @param {string} modesStr a comma-separated list of OTP modes - * @return {boolean} whether any of the modes is a rental mode - */ -export function hasRental (modesStr) { - if (modesStr) { - for (const mode of modesStr.split(',')) { - if (mode.indexOf('_RENT') > -1) return true - } - } - return false -} - -export function isWalk (mode) { - if (!mode) return false - - return mode === 'WALK' -} - -export function isBicycle (mode) { - if (!mode) return false - - return mode === 'BICYCLE' -} - -export function isBicycleRent (mode) { - if (!mode) return false - - return mode === 'BICYCLE_RENT' -} - -export function isCar (mode) { - if (!mode) return false - return mode.startsWith('CAR') -} - -export function isMicromobility (mode) { - if (!mode) return false - return mode.startsWith('MICROMOBILITY') -} - -export function isAccessMode (mode) { - return isWalk(mode) || - isBicycle(mode) || - isBicycleRent(mode) || - isCar(mode) || - isMicromobility(mode) -} - -export function getMapColor (mode) { - mode = mode || this.get('mode') - if (mode === 'WALK') return '#444' - if (mode === 'BICYCLE') return '#0073e5' - if (mode === 'SUBWAY') return '#f00' - if (mode === 'RAIL') return '#b00' - if (mode === 'BUS') return '#080' - if (mode === 'TRAM') return '#800' - if (mode === 'FERRY') return '#008' - if (mode === 'CAR') return '#444' - if (mode === 'MICROMOBILITY') return '#f5a729' - return '#aaa' -} - -// TODO: temporary code; handle via migrated OTP i18n language table -export function getStepDirection (step) { - switch (step.relativeDirection) { - case 'DEPART': return 'Head ' + step.absoluteDirection.toLowerCase() - case 'LEFT': return 'Left' - case 'HARD_LEFT': return 'Hard left' - case 'SLIGHTLY_LEFT': return 'Slight left' - case 'CONTINUE': return 'Continue' - case 'SLIGHTLY_RIGHT': return 'Slight right' - case 'RIGHT': return 'Right' - case 'HARD_RIGHT': return 'Hard right' - case 'CIRCLE_CLOCKWISE': return 'Follow circle clockwise' - case 'CIRCLE_COUNTERCLOCKWISE': return 'Follow circle counterclockwise' - case 'ELEVATOR': return 'Take elevator' - case 'UTURN_LEFT': return 'Left U-turn' - case 'UTURN_RIGHT': return 'Right U-turn' - } - return step.relativeDirection -} - -export function getStepInstructions (step) { - const conjunction = step.relativeDirection === 'ELEVATOR' ? 'to' : 'on' - return `${getStepDirection(step)} ${conjunction} ${step.streetName}` -} - -export function getStepStreetName (step) { - if (step.streetName === 'road') return 'Unnamed Road' - if (step.streetName === 'path') return 'Unnamed Path' - return step.streetName -} - -export function getLegModeLabel (leg) { - switch (leg.mode) { - case 'BICYCLE_RENT': return 'Biketown' - case 'CAR': return leg.hailedCar ? 'Ride' : 'Drive' - case 'GONDOLA': return 'Aerial Tram' - case 'TRAM': - if (leg.routeLongName.toLowerCase().indexOf('streetcar') !== -1) return 'Streetcar' - return 'Light Rail' - case 'MICROMOBILITY': return 'Ride' - } - return toSentenceCase(leg.mode) -} +// DIFFERENT /** * Returns a react element of the desired icon. If customIcons are defined, then @@ -228,6 +42,7 @@ export function getItineraryBounds (itinerary) { return latLngBounds(coords) } +// DIFFERENT /** * Return a leaflet LatLngBounds object that encloses the given leg's geometry. */ @@ -484,121 +299,6 @@ export const routeComparator = makeMultiCriteriaSort( makeStringValueComparator(obj => obj.longName) ) -/* Returns an interpolated lat-lon at a specified distance along a leg */ - -export function legLocationAtDistance (leg, distance) { - if (!leg.legGeometry) return null - - try { - const line = polyline.toGeoJSON(leg.legGeometry.points) - const pt = turfAlong(line, distance, 'meters') - if (pt && pt.geometry && pt.geometry.coordinates) { - return [ - pt.geometry.coordinates[1], - pt.geometry.coordinates[0] - ] - } - } catch (e) { } - - return null -} - -/* Returns an interpolated elevation at a specified distance along a leg */ - -export function legElevationAtDistance (points, distance) { - // Iterate through the combined elevation profile - let traversed = 0 - // If first point distance is not zero, insert starting point at zero with - // null elevation. Encountering this value should trigger the warning below. - if (points[0][0] > 0) { - points.unshift([0, null]) - } - for (let i = 1; i < points.length; i++) { - const start = points[i - 1] - const elevDistanceSpan = points[i][0] - start[0] - if (distance >= traversed && distance <= traversed + elevDistanceSpan) { - // Distance falls within this point and the previous one; - // compute & return iterpolated elevation value - if (start[1] === null) { - console.warn('Elevation value does not exist for distance.', distance, traversed) - return null - } - const pct = (distance - traversed) / elevDistanceSpan - const elevSpan = points[i][1] - start[1] - return start[1] + elevSpan * pct - } - traversed += elevDistanceSpan - } - console.warn('Elevation value does not exist for distance.', distance, traversed) - return null -} - -// Iterate through the steps, building the array of elevation points and -// keeping track of the minimum and maximum elevations reached -export function getElevationProfile (steps, unitConversion = 1) { - let minElev = 100000 - let maxElev = -100000 - let traversed = 0 - let gain = 0 - let loss = 0 - let previous = null - const points = [] - steps.forEach((step, stepIndex) => { - if (!step.elevation || step.elevation.length === 0) { - traversed += step.distance - return - } - for (let i = 0; i < step.elevation.length; i++) { - const elev = step.elevation[i] - if (previous) { - const diff = (elev.second - previous.second) * unitConversion - if (diff > 0) gain += diff - else loss += diff - } - if (i === 0 && elev.first !== 0) { - // console.warn(`No elevation data available for step ${stepIndex}-${i} at beginning of segment`, elev) - } - const convertedElevation = elev.second * unitConversion - if (convertedElevation < minElev) minElev = convertedElevation - if (convertedElevation > maxElev) maxElev = convertedElevation - points.push([traversed + elev.first, elev.second]) - // Insert "filler" point if the last point in elevation profile does not - // reach the full distance of the step. - if (i === step.elevation.length - 1 && elev.first !== step.distance) { - // points.push([traversed + step.distance, elev.second]) - } - previous = elev - } - traversed += step.distance - }) - return { maxElev, minElev, points, traversed, gain, loss } -} - -/** - * Uses canvas.measureText to compute and return the width of the given text of given font in pixels. - * - * @param {string} text The text to be rendered. - * @param {string} font The css font descriptor that text is to be rendered with (e.g. "bold 14px verdana"). - * - * @see https://stackoverflow.com/questions/118241/calculate-text-width-with-javascript/21015393#21015393 - */ -export function getTextWidth (text, font = '22px Arial') { - // re-use canvas object for better performance - var canvas = getTextWidth.canvas || (getTextWidth.canvas = document.createElement('canvas')) - var context = canvas.getContext('2d') - context.font = font - var metrics = context.measureText(text) - return metrics.width -} - -export function toSentenceCase (str) { - if (str == null) { - return '' - } - str = String(str) - return str.charAt(0).toUpperCase() + str.substr(1).toLowerCase() -} - /** * Return an icon depending on the leg info * @@ -633,134 +333,3 @@ export function getLegIcon (leg, customIcons) { return getIcon(iconStr, customIcons) } - -/** - * Get the configured company object for the given network string if the company - * has been defined in the provided companies array config. - */ -function getCompanyForNetwork (networkString, companies = []) { - const company = companies.find(co => co.id === networkString) - if (!company) { - console.warn(`No company found in config.yml that matches rented vehicle network: ${networkString}`, companies) - } - return company -} - -/** - * Get a string label to display from a list of vehicle rental networks. - * - * @param {Array} networks A list of network ids. - * @param {Array} [companies=[]] An optional list of the companies config. - * @return {string} A label for use in presentation on a website. - */ -export function getCompaniesLabelFromNetworks (networks, companies = []) { - return networks.map(network => getCompanyForNetwork(network, companies)) - .filter(co => !!co) - .map(co => co.label) - .join('/') -} - -/** - * Returns mode name by checking the vertex type (VertexType class in OTP) for - * the provided place. NOTE: this is currently only intended for vehicles at - * the moment (not transit or walking). - * - * TODO: I18N - * @param {string} place place from itinerary leg - */ -export function getModeForPlace (place) { - switch (place.vertexType) { - case 'CARSHARE': - return 'car' - case 'VEHICLERENTAL': - return 'E-scooter' - // TODO: Should the type change depending on bike vertex type? - case 'BIKESHARE': - case 'BIKEPARK': - return 'bike' - // If company offers more than one mode, default to `vehicle` string. - default: - return 'vehicle' - } -} - -export function getPlaceName (place, companies) { - // If address is provided (i.e. for carshare station, use it) - if (place.address) return place.address.split(',')[0] - if (place.networks && place.vertexType === 'VEHICLERENTAL') { - // For vehicle rental pick up, do not use the place name. Rather, use - // company name + vehicle type (e.g., SPIN E-scooter). Place name is often just - // a UUID that has no relevance to the actual vehicle. For bikeshare, however, - // there are often hubs or bikes that have relevant names to the user. - const company = getCompanyForNetwork(place.networks[0], companies) - if (company) { - return `${company.label} ${getModeForPlace(place)}` - } - } - // Default to place name - return place.name -} - -export function getTNCLocation (leg, type) { - const location = leg[type] - return `${location.lat.toFixed(5)},${location.lon.toFixed(5)}` -} - -export function calculatePhysicalActivity (itinerary) { - let walkDuration = 0 - let bikeDuration = 0 - for (const leg of itinerary.legs) { - if (leg.mode.startsWith('WALK')) walkDuration += leg.duration - if (leg.mode.startsWith('BICYCLE')) bikeDuration += leg.duration - } - const caloriesBurned = - walkDuration / 3600 * 280 + - bikeDuration / 3600 * 290 - return { - bikeDuration, - caloriesBurned, - walkDuration - } -} - -export function calculateFares (itinerary) { - let transitFare = 0 - let symbol = '$' // default to USD - let dollarsToString = dollars => `${symbol}${dollars.toFixed(2)}` - let centsToString = cents => `${symbol}${(cents / Math.pow(10, 2)).toFixed(2)}` - if (itinerary.fare && itinerary.fare.fare && itinerary.fare.fare.regular) { - const reg = itinerary.fare.fare.regular - symbol = reg.currency.symbol - transitFare = reg.cents - centsToString = cents => `${symbol}${(cents / Math.pow(10, reg.currency.defaultFractionDigits)).toFixed(reg.currency.defaultFractionDigits)}` - dollarsToString = dollars => `${symbol}${dollars.toFixed(2)}` - } - - // Process any TNC fares - let minTNCFare = 0 - let maxTNCFare = 0 - for (const leg of itinerary.legs) { - if (leg.mode === 'CAR' && leg.hailedCar && leg.tncData) { - const { maxCost, minCost } = leg.tncData - // TODO: Support non-USD - minTNCFare += minCost - maxTNCFare += maxCost - } - } - return { - centsToString, - dollarsToString, - maxTNCFare, - minTNCFare, - transitFare - } -} - -export function getTimeZoneOffset (itinerary) { - if (!itinerary.legs || !itinerary.legs.length) return 0 - - // Determine if there is a DST offset between now and the itinerary start date - const dstOffset = new Date(itinerary.startTime).getTimezoneOffset() - new Date().getTimezoneOffset() - - return itinerary.legs[0].agencyTimeZoneOffset + (new Date().getTimezoneOffset() + dstOffset) * 60000 -} From 16dcedf417dc0e847078f85b27ec0bb480340930 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 24 Apr 2020 10:27:16 -0400 Subject: [PATCH 083/115] fix(lib/index): Should not have removed LineItinerary from lib/index. --- lib/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/index.js b/lib/index.js index 5fb277044..4ed9f8b55 100644 --- a/lib/index.js +++ b/lib/index.js @@ -23,6 +23,7 @@ import SimpleRealtimeAnnotation from './components/narrative/simple-realtime-ann import TransportationNetworkCompanyLeg from './components/narrative/default/tnc-leg' import TripDetails from './components/narrative/connected-trip-details' import TripTools from './components/narrative/trip-tools' +import LineItinerary from './components/narrative/line-itin/line-itinerary' import MobileMain from './components/mobile/main' @@ -66,6 +67,7 @@ export { // narrative components LegDiagramPreview, + LineItinerary, NarrativeItineraries, NarrativeItinerary, NarrativeRoutingResults, From d00e8c94cc475f373587106d25d464804f911060 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 24 Apr 2020 11:21:50 -0400 Subject: [PATCH 084/115] refactor(itinerary): Use OTP-ui itinerary getLegBounds and getItineraryBounds. --- lib/components/map/bounds-updating-overlay.js | 16 +++++----- lib/util/itinerary.js | 30 ++++--------------- 2 files changed, 13 insertions(+), 33 deletions(-) diff --git a/lib/components/map/bounds-updating-overlay.js b/lib/components/map/bounds-updating-overlay.js index 710b7e2d6..6472f62df 100644 --- a/lib/components/map/bounds-updating-overlay.js +++ b/lib/components/map/bounds-updating-overlay.js @@ -1,11 +1,11 @@ import isEqual from 'lodash.isequal' -import { isMobile } from '@opentripplanner/core-utils/lib/ui' -import { connect } from 'react-redux' +import coreUtils from '@opentripplanner/core-utils' import { MapLayer, withLeaflet } from 'react-leaflet' +import { connect } from 'react-redux' import { - getItineraryBounds, - getLegBounds + getLeafletItineraryBounds, + getLeafletLegBounds } from '../../util/itinerary' import { getActiveItinerary, getActiveSearch } from '../../util/state' @@ -46,10 +46,10 @@ class BoundsUpdatingOverlay extends MapLayer { // Fit map to to entire itinerary if active itinerary bounds changed const newFrom = newProps.query && newProps.query.from - const newItinBounds = newProps.itinerary && getItineraryBounds(newProps.itinerary) + const newItinBounds = newProps.itinerary && getLeafletItineraryBounds(newProps.itinerary) const newTo = newProps.query && newProps.query.to const oldFrom = oldProps.query && oldProps.query.from - const oldItinBounds = oldProps.itinerary && getItineraryBounds(oldProps.itinerary) + const oldItinBounds = oldProps.itinerary && getLeafletItineraryBounds(oldProps.itinerary) const oldTo = oldProps.query && oldProps.query.to const fromChanged = !isEqual(oldFrom, newFrom) const toChanged = !isEqual(oldTo, newTo) @@ -65,7 +65,7 @@ class BoundsUpdatingOverlay extends MapLayer { newProps.activeLeg !== null ) { map.fitBounds( - getLegBounds(newProps.itinerary.legs[newProps.activeLeg]), + getLeafletLegBounds(newProps.itinerary.legs[newProps.activeLeg]), { padding } ) @@ -80,7 +80,7 @@ class BoundsUpdatingOverlay extends MapLayer { // more info. // TODO: Fix this so mobile devices will also update the bounds to the // from/to locations. - if (!isMobile()) { + if (!coreUtils.ui.isMobile()) { map.fitBounds([ [newFrom.lat, newFrom.lon], [newTo.lat, newTo.lon] diff --git a/lib/util/itinerary.js b/lib/util/itinerary.js index 7134f7d55..e2abbd442 100644 --- a/lib/util/itinerary.js +++ b/lib/util/itinerary.js @@ -1,11 +1,9 @@ import { latLngBounds } from 'leaflet' -import polyline from '@mapbox/polyline' +import coreUtils from '@opentripplanner/core-utils' import React from 'react' import ModeIcon from '../components/icons/mode-icon' -// DIFFERENT - /** * Returns a react element of the desired icon. If customIcons are defined, then * the icon will be attempted to be used from that lookup of icons. Otherwise, @@ -31,33 +29,15 @@ export function getIcon (iconId, customIcons) { return } -export function getItineraryBounds (itinerary) { - let coords = [] - itinerary.legs.forEach(leg => { - const legCoords = polyline - .toGeoJSON(leg.legGeometry.points) - .coordinates.map(c => [c[1], c[0]]) - coords = [...coords, ...legCoords] - }) - return latLngBounds(coords) +export function getLeafletItineraryBounds (itinerary) { + return latLngBounds(coreUtils.itinerary.getItineraryBounds(itinerary)) } -// DIFFERENT /** * Return a leaflet LatLngBounds object that encloses the given leg's geometry. */ -export function getLegBounds (leg) { - const coords = polyline - .toGeoJSON(leg.legGeometry.points) - .coordinates.map(c => [c[1], c[0]]) - - // in certain cases, there might be zero-length coordinates in the leg - // geometry. In these cases, build us an array of coordinates using the from - // and to data of the leg. - if (coords.length === 0) { - coords.push([leg.from.lat, leg.from.lon], [leg.to.lat, leg.to.lon]) - } - return latLngBounds(coords) +export function getLeafletLegBounds (leg) { + return latLngBounds(coreUtils.itinerary.getLegBounds(leg)) } /** From 966178cf1f3c3ed27c37fc726ae5dad686b1d74a Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 24 Apr 2020 12:58:30 -0400 Subject: [PATCH 085/115] refactor: Use `import coreUtils from '@opentripplanner/core-utils' as much as possible. --- __tests__/util/itinerary.js | 4 ++-- lib/actions/api.js | 10 +++++---- lib/actions/form.js | 20 ++++++++++-------- lib/actions/map.js | 4 ++-- lib/actions/narrative.js | 4 ++-- lib/actions/ui.js | 6 +++--- lib/components/app/responsive-webapp.js | 7 ++++--- lib/components/form/date-time-modal.js | 12 +++++------ lib/components/form/date-time-preview.js | 21 +++++++++++-------- lib/components/form/plan-trip-button.js | 4 ++-- lib/components/form/settings-preview.js | 4 ++-- lib/components/form/user-settings.js | 6 ++++-- lib/components/form/user-trip-settings.js | 6 +++--- .../map/connected-transitive-overlay.js | 4 ++-- lib/components/map/leg-diagram.js | 4 +++- lib/components/map/stylized-map.js | 6 +++--- lib/components/mobile/results-screen.js | 4 ++-- .../narrative/connected-trip-details.js | 6 +++--- .../narrative/default/access-leg.js | 7 +++---- .../narrative/default/default-itinerary.js | 4 +++- .../narrative/default/itinerary-details.js | 4 ++-- lib/components/narrative/default/tnc-leg.js | 8 ++++--- .../narrative/default/transit-leg.js | 6 ++++-- .../narrative/itinerary-carousel.js | 4 ++-- .../narrative/leg-diagram-preview.js | 4 ++-- .../narrative/line-itin/line-itinerary.js | 4 +++- .../narrative/realtime-annotation.js | 4 ++-- .../narrative/tabbed-itineraries.js | 6 ++++-- lib/components/viewers/stop-viewer.js | 9 +++++++- lib/components/viewers/trip-viewer.js | 6 +++--- lib/reducers/create-otp-reducer.js | 20 ++++++++++-------- lib/util/index.js | 2 -- lib/util/query.js | 15 ------------- lib/util/state.js | 13 ++++++++++++ lib/util/ui.js | 4 ++-- 35 files changed, 139 insertions(+), 113 deletions(-) delete mode 100644 lib/util/query.js diff --git a/__tests__/util/itinerary.js b/__tests__/util/itinerary.js index 83b06f3db..fcc0e709c 100644 --- a/__tests__/util/itinerary.js +++ b/__tests__/util/itinerary.js @@ -1,4 +1,4 @@ -import { isTransit } from '@opentripplanner/core-utils/lib/itinerary' +import coreUtils from '@opentripplanner/core-utils' import { routeComparator } from '../../lib/util/itinerary' @@ -27,7 +27,7 @@ function sortRoutes (...routes) { describe('util > itinerary', () => { it('isTransit should work', () => { - expect(isTransit('CAR')).toBeFalsy() + expect(coreUtils.itinerary.isTransit('CAR')).toBeFalsy() }) describe('routeComparator', () => { diff --git a/lib/actions/api.js b/lib/actions/api.js index c13dec433..988e9900e 100644 --- a/lib/actions/api.js +++ b/lib/actions/api.js @@ -3,11 +3,8 @@ import { push, replace } from 'connected-react-router' import haversine from 'haversine' import moment from 'moment' import hash from 'object-hash' -import { hasCar } from '@opentripplanner/core-utils/lib/itinerary' -import { getTripOptionsFromQuery, getUrlParams } from '@opentripplanner/core-utils/lib/query' +import coreUtils from '@opentripplanner/core-utils' import queryParams from '@opentripplanner/core-utils/lib/query-params' -import { randId } from '@opentripplanner/core-utils/lib/storage' -import { OTP_API_DATE_FORMAT, OTP_API_TIME_FORMAT } from '@opentripplanner/core-utils/lib/time' import { createAction } from 'redux-actions' import qs from 'qs' @@ -15,6 +12,11 @@ import { rememberPlace } from './map' import { getStopViewerConfig, queryIsValid } from '../util/state' if (typeof (fetch) === 'undefined') require('isomorphic-fetch') +const { hasCar } = coreUtils.itinerary +const { getTripOptionsFromQuery, getUrlParams } = coreUtils.query +const { randId } = coreUtils.storage +const { OTP_API_DATE_FORMAT, OTP_API_TIME_FORMAT } = coreUtils.time + // Generic API actions export const nonRealtimeRoutingResponse = createAction('NON_REALTIME_ROUTING_RESPONSE') diff --git a/lib/actions/form.js b/lib/actions/form.js index b1a1011d8..1916a2e3b 100644 --- a/lib/actions/form.js +++ b/lib/actions/form.js @@ -1,15 +1,7 @@ import debounce from 'lodash.debounce' import isEqual from 'lodash.isequal' import moment from 'moment' -import { - getDefaultQuery, - getTripOptionsFromQuery, - getUrlParams, - planParamsToQuery -} from '@opentripplanner/core-utils/lib/query' -import { getItem, randId } from '@opentripplanner/core-utils/lib/storage' -import { OTP_API_TIME_FORMAT } from '@opentripplanner/core-utils/lib/time' -import { isMobile } from '@opentripplanner/core-utils/lib/ui' +import coreUtils from '@opentripplanner/core-utils' import { createAction } from 'redux-actions' import { queryIsValid } from '../util/state' @@ -21,6 +13,16 @@ import { import { routingQuery } from './api' +const { + getDefaultQuery, + getTripOptionsFromQuery, + getUrlParams, + planParamsToQuery +} = coreUtils.query +const { getItem, randId } = coreUtils.storage +const { OTP_API_TIME_FORMAT } = coreUtils.time +const { isMobile } = coreUtils.ui + export const settingQueryParam = createAction('SET_QUERY_PARAM') export const clearActiveSearch = createAction('CLEAR_ACTIVE_SEARCH') export const setActiveSearch = createAction('SET_ACTIVE_SEARCH') diff --git a/lib/actions/map.js b/lib/actions/map.js index 6e0e2bdc1..f3ec18447 100644 --- a/lib/actions/map.js +++ b/lib/actions/map.js @@ -1,4 +1,4 @@ -import { constructLocation } from '@opentripplanner/core-utils/lib/map' +import coreUtils from '@opentripplanner/core-utils' import getGeocoder from '@opentripplanner/geocoder' import { createAction } from 'redux-actions' @@ -116,7 +116,7 @@ export const setElevationPoint = createAction('SET_ELEVATION_POINT') export const setMapPopupLocation = createAction('SET_MAP_POPUP_LOCATION') export function setMapPopupLocationAndGeocode (mapEvent) { - const location = constructLocation(mapEvent.latlng) + const location = coreUtils.map.constructLocation(mapEvent.latlng) return function (dispatch, getState) { dispatch(setMapPopupLocation({ location })) getGeocoder(getState().otp.config.geocoder) diff --git a/lib/actions/narrative.js b/lib/actions/narrative.js index c69c78cc7..56cc5279c 100644 --- a/lib/actions/narrative.js +++ b/lib/actions/narrative.js @@ -1,4 +1,4 @@ -import { getUrlParams } from '@opentripplanner/core-utils/lib/query' +import coreUtils from '@opentripplanner/core-utils' import { createAction } from 'redux-actions' import { setUrlSearch } from './api' @@ -8,7 +8,7 @@ export function setActiveItinerary (payload) { // Trigger change in store. dispatch(settingActiveitinerary(payload)) // Update URL params. - const urlParams = getUrlParams() + const urlParams = coreUtils.query.getUrlParams() urlParams.ui_activeItinerary = payload.index dispatch(setUrlSearch(urlParams)) } diff --git a/lib/actions/ui.js b/lib/actions/ui.js index 02f7374a8..9dc8decfe 100644 --- a/lib/actions/ui.js +++ b/lib/actions/ui.js @@ -1,5 +1,5 @@ import { push } from 'connected-react-router' -import { getUrlParams } from '@opentripplanner/core-utils/lib/query' +import coreUtils from '@opentripplanner/core-utils' import { createAction } from 'redux-actions' import { matchPath } from 'react-router' @@ -8,7 +8,7 @@ import { setMapCenter, setMapZoom, setRouterId } from './config' import { clearActiveSearch, parseUrlQueryString, setActiveSearch } from './form' import { clearLocation } from './map' import { setActiveItinerary } from './narrative' -import { getUiUrlParams } from '../util/query' +import { getUiUrlParams } from '../util/state' /** * Wrapper function for history#push that preserves the current search or, if @@ -104,7 +104,7 @@ export function handleBackButtonPress (e) { const uiUrlParams = getUiUrlParams(otpState) // Get new search ID from URL after back button pressed. // console.log('back button pressed', e) - const urlParams = getUrlParams() + const urlParams = coreUtils.query.getUrlParams() const previousSearchId = urlParams.ui_activeSearch const previousItinIndex = +urlParams.ui_activeItinerary || 0 const previousSearch = otpState.searches[previousSearchId] diff --git a/lib/components/app/responsive-webapp.js b/lib/components/app/responsive-webapp.js index 233596914..464b10d18 100644 --- a/lib/components/app/responsive-webapp.js +++ b/lib/components/app/responsive-webapp.js @@ -1,8 +1,7 @@ import { ConnectedRouter } from 'connected-react-router' import { createHashHistory } from 'history' import isEqual from 'lodash.isequal' -import { getUrlParams } from '@opentripplanner/core-utils/lib/query' -import { isMobile } from '@opentripplanner/core-utils/lib/ui' +import coreUtils from '@opentripplanner/core-utils' import PropTypes from 'prop-types' import React, { Component } from 'react' import { connect } from 'react-redux' @@ -17,6 +16,8 @@ import { handleBackButtonPress, matchContentToUrl } from '../../actions/ui' import { getTitle } from '../../util/ui' import { getActiveItinerary } from '../../util/state' +const { isMobile } = coreUtils.ui + class ResponsiveWebapp extends Component { static propTypes = { desktopView: PropTypes.element, @@ -30,7 +31,7 @@ class ResponsiveWebapp extends Component { componentDidUpdate (prevProps) { const { currentPosition, location, query, title } = this.props document.title = title - const urlParams = getUrlParams() + const urlParams = coreUtils.query.getUrlParams() const newSearchId = urlParams.ui_activeSearch // Determine if trip is being replanned by checking the active search ID // against the ID found in the URL params. If they are different, a new one diff --git a/lib/components/form/date-time-modal.js b/lib/components/form/date-time-modal.js index 6b54176c4..0d934e8e5 100644 --- a/lib/components/form/date-time-modal.js +++ b/lib/components/form/date-time-modal.js @@ -1,8 +1,7 @@ -// import necessary React/Redux libraries -import React, { Component } from 'react' +import coreUtils from '@opentripplanner/core-utils' import PropTypes from 'prop-types' +import React, { Component } from 'react' import { connect } from 'react-redux' -import { getTimeFormat, getDateFormat } from '@opentripplanner/core-utils/lib/time' import { setQueryParam } from '../../actions/form' @@ -41,14 +40,15 @@ class DateTimeModal extends Component { const mapStateToProps = (state, ownProps) => { const { departArrive, date, time } = state.otp.currentQuery + const config = state.otp.config return { - config: state.otp.config, + config, departArrive, date, time, // These props below are for legacy browsers (see render method above). - timeFormatLegacy: getTimeFormat(state.otp.config), - dateFormatLegacy: getDateFormat(state.otp.config) + timeFormatLegacy: coreUtils.time.getTimeFormat(config), + dateFormatLegacy: coreUtils.time.getDateFormat(config) } } diff --git a/lib/components/form/date-time-preview.js b/lib/components/form/date-time-preview.js index 44754d044..846c8b974 100644 --- a/lib/components/form/date-time-preview.js +++ b/lib/components/form/date-time-preview.js @@ -1,15 +1,17 @@ import moment from 'moment' -import { - OTP_API_DATE_FORMAT, - OTP_API_TIME_FORMAT, - getTimeFormat, - getDateFormat -} from '@opentripplanner/core-utils/lib/time' +import coreUtils from '@opentripplanner/core-utils' import PropTypes from 'prop-types' import React, { Component } from 'react' import { Button } from 'react-bootstrap' import { connect } from 'react-redux' +const { + OTP_API_DATE_FORMAT, + OTP_API_TIME_FORMAT, + getTimeFormat, + getDateFormat +} = coreUtils.time + class DateTimePreview extends Component { static propTypes = { caret: PropTypes.string, @@ -81,16 +83,17 @@ class DateTimePreview extends Component { const mapStateToProps = (state, ownProps) => { const { departArrive, date, time, routingType, startTime, endTime } = state.otp.currentQuery + const config = state.otp.config return { - config: state.otp.config, + config, routingType, departArrive, date, time, startTime, endTime, - timeFormat: getTimeFormat(state.otp.config), - dateFormat: getDateFormat(state.otp.config) + timeFormat: getTimeFormat(config), + dateFormat: getDateFormat(config) } } diff --git a/lib/components/form/plan-trip-button.js b/lib/components/form/plan-trip-button.js index 73d2de18a..e2a091d0c 100644 --- a/lib/components/form/plan-trip-button.js +++ b/lib/components/form/plan-trip-button.js @@ -1,4 +1,4 @@ -import { isMobile } from '@opentripplanner/core-utils/lib/ui' +import coreUtils from '@opentripplanner/core-utils' import PropTypes from 'prop-types' import React, { Component } from 'react' import { Button } from 'react-bootstrap' @@ -23,7 +23,7 @@ class PlanTripButton extends Component { _onClick = () => { this.props.routingQuery() if (typeof this.props.onClick === 'function') this.props.onClick() - if (!isMobile()) this.props.setMainPanelContent(null) + if (!coreUtils.ui.isMobile()) this.props.setMainPanelContent(null) } render () { diff --git a/lib/components/form/settings-preview.js b/lib/components/form/settings-preview.js index 4a3c78575..337c5d2b6 100644 --- a/lib/components/form/settings-preview.js +++ b/lib/components/form/settings-preview.js @@ -1,4 +1,4 @@ -import { isNotDefaultQuery } from '@opentripplanner/core-utils/lib/query' +import coreUtils from '@opentripplanner/core-utils' import PropTypes from 'prop-types' import React, { Component } from 'react' import { Button } from 'react-bootstrap' @@ -27,7 +27,7 @@ class SettingsPreview extends Component { render () { const { config, query, caret, editButtonText } = this.props // Show dot indicator if the current query differs from the default query. - let showDot = isNotDefaultQuery(query, config) + let showDot = coreUtils.query.isNotDefaultQuery(query, config) const button = (
@@ -62,7 +61,7 @@ export default class AccessLeg extends Component { className={`step ${stepIsActive ? 'active' : ''}`} onClick={(e) => this._onStepClick(e, step, stepIndex)}> {distanceString(step.distance)} - {getStepInstructions(step)} + {coreUtils.itinerary.getStepInstructions(step)} ) })} diff --git a/lib/components/narrative/default/default-itinerary.js b/lib/components/narrative/default/default-itinerary.js index 3eae4c049..efc740c3a 100644 --- a/lib/components/narrative/default/default-itinerary.js +++ b/lib/components/narrative/default/default-itinerary.js @@ -1,4 +1,4 @@ -import { formatDuration, formatTime } from '@opentripplanner/core-utils/lib/time' +import coreUtils from '@opentripplanner/core-utils' import React from 'react' import NarrativeItinerary from '../narrative-itinerary' @@ -7,6 +7,8 @@ import ItineraryDetails from './itinerary-details' import TripDetails from '../connected-trip-details' import TripTools from '../trip-tools' +const { formatDuration, formatTime } = coreUtils.time + export default class DefaultItinerary extends NarrativeItinerary { render () { const { diff --git a/lib/components/narrative/default/itinerary-details.js b/lib/components/narrative/default/itinerary-details.js index b12d214b3..91537b8b6 100644 --- a/lib/components/narrative/default/itinerary-details.js +++ b/lib/components/narrative/default/itinerary-details.js @@ -1,4 +1,4 @@ -import { isTransit } from '@opentripplanner/core-utils/lib/itinerary' +import coreUtils from '@opentripplanner/core-utils' import PropTypes from 'prop-types' import React, { Component } from 'react' @@ -16,7 +16,7 @@ export default class ItineraryDetails extends Component {
{itinerary.legs.map((leg, index) => { const legIsActive = activeLeg === index - return isTransit(leg.mode) + return coreUtils.itinerary.isTransit(leg.mode) ? { activeLeg: activeSearch && activeSearch.activeLeg, activeStep: activeSearch && activeSearch.activeStep, companies: state.otp.currentQuery.companies, - timeFormat: getTimeFormat(state.otp.config) + timeFormat: coreUtils.time.getTimeFormat(state.otp.config) } } diff --git a/lib/components/narrative/leg-diagram-preview.js b/lib/components/narrative/leg-diagram-preview.js index 6ce1ed09d..fd624d807 100644 --- a/lib/components/narrative/leg-diagram-preview.js +++ b/lib/components/narrative/leg-diagram-preview.js @@ -1,4 +1,4 @@ -import { getElevationProfile } from '@opentripplanner/core-utils/lib/itinerary' +import coreUtils from '@opentripplanner/core-utils' import PropTypes from 'prop-types' import React, {Component} from 'react' import { connect } from 'react-redux' @@ -45,7 +45,7 @@ class LegDiagramPreview extends Component { render () { const { leg, showElevationProfile } = this.props if (!showElevationProfile) return null - const profile = getElevationProfile(leg.steps) + const profile = coreUtils.itinerary.getElevationProfile(leg.steps) // Don't show for very short legs if (leg.distance < 500 || leg.mode === 'CAR') return null diff --git a/lib/components/narrative/line-itin/line-itinerary.js b/lib/components/narrative/line-itin/line-itinerary.js index 8876d43ad..baf6034bd 100644 --- a/lib/components/narrative/line-itin/line-itinerary.js +++ b/lib/components/narrative/line-itin/line-itinerary.js @@ -1,4 +1,4 @@ -import { getLegModeLabel, getTimeZoneOffset, isTransit } from '@opentripplanner/core-utils/lib/itinerary' +import coreUtils from '@opentripplanner/core-utils' import React from 'react' import styled from 'styled-components' @@ -7,6 +7,8 @@ import ItinerarySummary from './itin-summary' import NarrativeItinerary from '../narrative-itinerary' import SimpleRealtimeAnnotation from '../simple-realtime-annotation' +const { getLegModeLabel, getTimeZoneOffset, isTransit } = coreUtils.itinerary + export const LineItineraryContainer = styled.div` margin-bottom: 20px; ` diff --git a/lib/components/narrative/realtime-annotation.js b/lib/components/narrative/realtime-annotation.js index d0ecd93d5..31ed7cd0e 100644 --- a/lib/components/narrative/realtime-annotation.js +++ b/lib/components/narrative/realtime-annotation.js @@ -1,4 +1,4 @@ -import { formatDuration } from '@opentripplanner/core-utils/lib/time' +import coreUtils from '@opentripplanner/core-utils' import PropTypes from 'prop-types' import React, { Component } from 'react' import { Button, OverlayTrigger, Popover } from 'react-bootstrap' @@ -32,7 +32,7 @@ export default class RealtimeAnnotation extends Component { ? Your trip results have been adjusted based on real-time information. Under normal conditions, this trip would take{' '} - {formatDuration(realtimeEffects.normalDuration)} + {coreUtils.time.formatDuration(realtimeEffects.normalDuration)} using the following routes:{' '} {filteredRoutes .map((route, idx) => ( diff --git a/lib/components/narrative/tabbed-itineraries.js b/lib/components/narrative/tabbed-itineraries.js index 9b440aa3a..94f38eeb8 100644 --- a/lib/components/narrative/tabbed-itineraries.js +++ b/lib/components/narrative/tabbed-itineraries.js @@ -1,5 +1,4 @@ -import { calculateFares, calculatePhysicalActivity, getTimeZoneOffset } from '@opentripplanner/core-utils/lib/itinerary' -import { formatDuration, formatTime, getTimeFormat } from '@opentripplanner/core-utils/lib/time' +import coreUtils from '@opentripplanner/core-utils' import PropTypes from 'prop-types' import React, { Component } from 'react' import { Button } from 'react-bootstrap' @@ -9,6 +8,9 @@ import { setActiveItinerary, setActiveLeg, setActiveStep, setUseRealtimeResponse import DefaultItinerary from './default/default-itinerary' import { getActiveSearch, getRealtimeEffects } from '../../util/state' +const { calculateFares, calculatePhysicalActivity, getTimeZoneOffset } = coreUtils.itinerary +const { formatDuration, formatTime, getTimeFormat } = coreUtils.time + class TabbedItineraries extends Component { static propTypes = { itineraries: PropTypes.array, diff --git a/lib/components/viewers/stop-viewer.js b/lib/components/viewers/stop-viewer.js index 1c04a1d80..07c9128ee 100644 --- a/lib/components/viewers/stop-viewer.js +++ b/lib/components/viewers/stop-viewer.js @@ -1,6 +1,6 @@ import moment from 'moment' import 'moment-timezone' -import { formatDuration, formatSecondsAfterMidnight, getTimeFormat, getUserTimezone } from '@opentripplanner/core-utils/lib/time' +import coreUtils from '@opentripplanner/core-utils' import FromToLocationPicker from '@opentripplanner/from-to-location-picker' import PropTypes from 'prop-types' import React, { Component } from 'react' @@ -15,6 +15,13 @@ import { forgetStop, rememberStop, setLocation } from '../../actions/map' import { routeComparator } from '../../util/itinerary' import { getShowUserSettings, getStopViewerConfig } from '../../util/state' +const { + formatDuration, + formatSecondsAfterMidnight, + getTimeFormat, + getUserTimezone +} = coreUtils.time + class StopViewer extends Component { state = {} diff --git a/lib/components/viewers/trip-viewer.js b/lib/components/viewers/trip-viewer.js index d517938aa..9ce414d29 100644 --- a/lib/components/viewers/trip-viewer.js +++ b/lib/components/viewers/trip-viewer.js @@ -1,4 +1,4 @@ -import { formatSecondsAfterMidnight, getTimeFormat } from '@opentripplanner/core-utils/lib/time' +import coreUtils from '@opentripplanner/core-utils' import PropTypes from 'prop-types' import React, { Component } from 'react' import { Button, Label } from 'react-bootstrap' @@ -100,7 +100,7 @@ class TripViewer extends Component {
{/* the departure time */}
- {formatSecondsAfterMidnight(tripData.stopTimes[i].scheduledDeparture, timeFormat)} + {coreUtils.time.formatSecondsAfterMidnight(tripData.stopTimes[i].scheduledDeparture, timeFormat)}
{/* the vertical strip map */} @@ -136,7 +136,7 @@ const mapStateToProps = (state, ownProps) => { const viewedTrip = state.otp.ui.viewedTrip return { languageConfig: state.otp.config.language, - timeFormat: getTimeFormat(state.otp.config), + timeFormat: coreUtils.time.getTimeFormat(state.otp.config), tripData: state.otp.transitIndex.trips[viewedTrip.tripId], viewedTrip } diff --git a/lib/reducers/create-otp-reducer.js b/lib/reducers/create-otp-reducer.js index 4008e2f01..d18fbdb20 100644 --- a/lib/reducers/create-otp-reducer.js +++ b/lib/reducers/create-otp-reducer.js @@ -2,18 +2,20 @@ import clone from 'clone' import update from 'immutability-helper' import isEqual from 'lodash.isequal' import objectPath from 'object-path' -import { isTransit, getTransitModes } from '@opentripplanner/core-utils/lib/itinerary' -import { matchLatLon } from '@opentripplanner/core-utils/lib/map' -import { filterProfileOptions } from '@opentripplanner/core-utils/lib/profile' -import { +import coreUtils from '@opentripplanner/core-utils' + +import { MainPanelContent, MobileScreens } from '../actions/ui' + +const { isTransit, getTransitModes } = coreUtils.itinerary +const { matchLatLon } = coreUtils.map +const { filterProfileOptions } = coreUtils.profile +const { ensureSingleAccessMode, getDefaultQuery, getTripOptionsFromQuery -} from '@opentripplanner/core-utils/lib/query' -import { getItem, removeItem, storeItem } from '@opentripplanner/core-utils/lib/storage' -import { getUserTimezone } from '@opentripplanner/core-utils/lib/time' - -import { MainPanelContent, MobileScreens } from '../actions/ui' +} = coreUtils.query +const { getItem, removeItem, storeItem } = coreUtils.storage +const { getUserTimezone } = coreUtils.time const MAX_RECENT_STORAGE = 5 diff --git a/lib/util/index.js b/lib/util/index.js index 3cb72d8d0..4803c5931 100644 --- a/lib/util/index.js +++ b/lib/util/index.js @@ -1,13 +1,11 @@ import * as distance from './distance' import * as itinerary from './itinerary' -import * as query from './query' import * as state from './state' import * as ui from './ui' const OtpUtils = { distance, itinerary, - query, state, ui } diff --git a/lib/util/query.js b/lib/util/query.js deleted file mode 100644 index c864e91c0..000000000 --- a/lib/util/query.js +++ /dev/null @@ -1,15 +0,0 @@ -import { getActiveSearch } from './state' - -// => Used in actions/ui/handleBackButtonPress() -/** - * Assemble any UI-state properties to be tracked via URL into a single object - * TODO: Expand to include additional UI properties - */ -export function getUiUrlParams (otpState) { - const activeSearch = getActiveSearch(otpState) - const uiParams = { - ui_activeItinerary: activeSearch ? activeSearch.activeItinerary : 0, - ui_activeSearch: otpState.activeSearchId - } - return uiParams -} diff --git a/lib/util/state.js b/lib/util/state.js index 8019564e8..704c2e75f 100644 --- a/lib/util/state.js +++ b/lib/util/state.js @@ -135,3 +135,16 @@ export function getShowUserSettings (otpState) { export function getStopViewerConfig (otpState) { return otpState.config.stopViewer } + +/** + * Assemble any UI-state properties to be tracked via URL into a single object + * TODO: Expand to include additional UI properties + */ +export function getUiUrlParams (otpState) { + const activeSearch = getActiveSearch(otpState) + const uiParams = { + ui_activeItinerary: activeSearch ? activeSearch.activeItinerary : 0, + ui_activeSearch: otpState.activeSearchId + } + return uiParams +} diff --git a/lib/util/ui.js b/lib/util/ui.js index 47e452528..da40aa33e 100644 --- a/lib/util/ui.js +++ b/lib/util/ui.js @@ -1,4 +1,4 @@ -import { summarizeQuery } from '@opentripplanner/core-utils/lib/query' +import coreUtils from '@opentripplanner/core-utils' import { MainPanelContent } from '../actions/ui' import { getActiveSearch } from './state' @@ -23,7 +23,7 @@ export function getTitle (state) { default: const activeSearch = getActiveSearch(state.otp) if (activeSearch) { - title += ` | ${summarizeQuery(activeSearch.query, user.locations)}` + title += ` | ${coreUtils.query.summarizeQuery(activeSearch.query, user.locations)}` } break } From f54896eb74351a1de03d0a04e3e87f74e1f1de97 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 24 Apr 2020 13:12:10 -0400 Subject: [PATCH 086/115] refactor(line-itinerary/itinerary.css): Should not have brought back this file. --- .../narrative/line-itin/itinerary.css | 375 ------------------ 1 file changed, 375 deletions(-) delete mode 100644 lib/components/narrative/line-itin/itinerary.css diff --git a/lib/components/narrative/line-itin/itinerary.css b/lib/components/narrative/line-itin/itinerary.css deleted file mode 100644 index 89df3acf0..000000000 --- a/lib/components/narrative/line-itin/itinerary.css +++ /dev/null @@ -1,375 +0,0 @@ -.otp .options.profile .itin-body .place-row { - margin-left: 55px; -} - -.otp .line-itin { - margin-bottom: 20px; -} - -/* Itinerary summary */ - -.otp .line-itin .itin-summary { - padding-right: 5px; - height: 60px; - display: table; - width: 100%; - margin-bottom: 15px; -} - -.otp .desktop-narrative-container .options.itinerary .line-itin .itin-summary { - display: none; -} - -.otp .line-itin .itin-summary .details { - display: table-cell; - vertical-align: top; -} - -.otp .line-itin .itin-summary .header { - font-weight: bold; - font-size: 18px; - margin-top: -3px; -} - -.otp .line-itin .itin-summary .detail { - font-size: 13px; - color: #999999; -} - -.otp .line-itin .itin-summary .routes { - display: table-cell; - text-align: right; -} - -.otp .line-itin .itin-summary .routes .route-preview { - display: inline-block; - margin-left: 8px; - vertical-align: top; -} - -.otp .line-itin .itin-summary .routes .route-preview .mode-icon { - height: 30px; - width: 30px; -} - -.otp .line-itin .itin-summary .routes .route-preview .short-name { - color: white; - font-weight: 500; - text-align: center; - margin-top: 6px; - font-size: 15px; - padding-top: 2px; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - width: 30px; - height: 30px; - border-radius: 15px; - border: 2px solid white; - box-shadow: 0 0 0.5em #000; -} - -/* Itinerary main body */ - -.otp .line-itin .itin-body { - padding: 20px 0px; -} - -.otp .line-itin .place-row { - display: table; - width: 100%; -} - - -/* Departure/arrival time (1st column in table) */ - -.otp .line-itin .time { - display: table-cell; - width: 60px; - font-size: 14px; - color: #999999; - text-align: right; - padding-right: 4px; - padding-top: 1px; - vertical-align: top; -} - -/* The place icon and line itself (2nd column in table) */ -.otp .line-itin .line-container { - position: relative; - display: table-cell; - width: 20px; - max-width: 20px; -} - -.otp .line-itin .place-icon-group { - position: absolute; - font-size: 18px; - left: -8px; - top: -7px; - z-index: 20; -} - -.otp .line-itin .leg-line { - position: absolute; - top: 11px; - bottom: -11px; - z-index: 10; -} - -// Internet explorer specific media query to apply the below styling to fix -// rendering issues with table cell display with undefined heights. -/*@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { - .otp .line-itin .line-container { - overflow: hidden; // hack for IE to render table cell correctly. - } - - .otp .line-itin .leg-line { - height: 1000px; // hack for IE to render table cell correctly. - } -}*/ - -.otp .line-itin .leg-line-walk { - left: 6px; - right: 6px; - background: radial-gradient(ellipse at center, #87cefa 40%, transparent 10%); - background-size: 12px 12px; - background-repeat: repeat-y; - background-position: center -5px; -} - -.otp .line-itin .leg-line-bicycle { - left: 7.5px; - right: 7.5px; - background: repeating-linear-gradient( - 0deg, - red, - red 8px, - white 8px, - white 12.5px - ); -} - -.otp .line-itin .leg-line-car { - left: 7.5px; - right: 7.5px; - background: repeating-linear-gradient( - 0deg, - grey, - grey 8px, - white 8px, - white 12.5px - ); -} - -.otp .line-itin .leg-line-micromobility { - left: 7.5px; - right: 7.5px; - background: repeating-linear-gradient( - 0deg, - #f5a729, - #f5a729 8px, - white 8px, - white 12.5px - ); -} - -.otp .line-itin .leg-line-transit { - left: 5px; - right: 5px; - background-color: gray; -} - -/* Place/Leg details (3rd column in table) */ - -.otp .line-itin .place-details { - font-size: 13px; - display: table-cell; - padding-top: 1px; -} - -.otp .line-itin .place-name { - font-size: 18px; - line-height: 20px; - padding-left: 4px; - font-weight: 500; - color: black; -} - -.otp .line-itin .place-subheader { - font-size: 12px; - padding-left: 4px; - padding-top: 1px; - font-weight: 300; - color: gray; -} - -.otp .line-itin .interline-dot { - position: relative; - float: left; - margin-left: -13.5px; - z-index: 25; - color: #fff; -} - -.otp .line-itin .interline-name { - font-size: 14px; - font-weight: 400; - line-height: 16px; -} - -/* Leg body general */ - -.otp .line-itin .leg-body { - padding: 12px 0px 18px 4px; - font-size: 13px; - color: #999999; -} - -.otp .line-itin .summary { - cursor: pointer; -} - -.otp .line-itin .leg-body .icon { - height: 24px; - width: 24px; - float: left; - margin-right: 6px; -} - -.otp .line-itin .leg-body .leg-description { - display: table; -} - -.otp .line-itin .leg-body .leg-description > div { - display: table-cell; - vertical-align: middle; -} - -/* Leg steps (for turn-by-turn) */ - -.otp .line-itin .leg-body .steps-header { - font-size: 13px; - margin-top: 10px; - color: #999999; - font-style: normal; - display: inline-block; -} - -.otp .line-itin .leg-body .step-row { - font-size: 13px; - margin-top: 8px; - color: #999999; - font-style: normal; -} - -/* Transit leg details */ - -.otp .line-itin .leg-body .route-name { - color: #999999; - margin-top: 5px; -} - -.otp .line-itin .leg-body .route-short-name { - display: inline-block; - background-color: #0f6aac; - padding-top: 1px; - color: white; - font-weight: 500; - font-size: 14px; - margin-right: 6px; - text-align: center; - width: 24px; - height: 24px; - border-radius: 12px; - border: 1px solid white; - box-shadow: 0 0 0.25em #000; - margin-right: 8px; -} - -.otp .line-itin .leg-body .route-long-name { - font-size: 13px; - line-height: 16px; - font-weight: 500; -} - -.otp .line-itin .leg-body .transit-leg-details { - margin-top: 5px; -} - -.otp .line-itin .leg-body .agency-info { - margin-top: 5px; - -} - -.otp .line-itin .leg-body .transit-leg-details .header { - cursor: pointer; - color: #999999; - font-size: 13px; -} - -/* Intermediate stops */ - -.otp .line-itin .leg-body .transit-leg-details .intermediate-stops .stop-row { - z-index: 30; - position: relative; -} - -.otp .line-itin .leg-body .transit-leg-details .intermediate-stops .stop-marker { - float: left; - margin-left: -17px; - color: white; -} - -.otp .line-itin .leg-body .transit-leg-details .intermediate-stops .stop-name { - color: #999999; - font-size: 14px; - margin-top: 3px; -} - -/* Transit alerts */ - -.otp .line-itin .leg-body .transit-alerts-toggle { - display: inline-block; - margin-top: 8px; - color: #D14727; - font-weight: 400; - cursor: pointer; -} - -.otp .line-itin .leg-body .transit-alerts { - margin-top: 3px; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert { - margin-top: 5px; - background-color: #eee; - padding: 8px; - color: black; - border-radius: 4px; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert .alert-icon { - float: left; - font-size: 18px; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert .alert-header { - font-size: 14px; - margin-left: 30px; - font-weight: 600; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert .alert-body { - font-size: 12px; - margin-left: 30px; - /* white space pre-wrap is required to render line breaks correctly. */ - white-space: pre-wrap; -} - -.otp .line-itin .leg-body .transit-alerts .transit-alert .effective-date { - margin-top: 5px; - margin-left: 30px; - font-size: 12px; - font-style: italic; -} From 0ccc86f6c65bc36e9e7850e9c8f2d06bb7366295 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 24 Apr 2020 14:37:43 -0400 Subject: [PATCH 087/115] refactor(TriMetLegIcon): Import TriMetLegIcon from the root of icons package. --- lib/components/app/print-layout.js | 2 +- lib/components/narrative/line-itin/connected-itinerary-body.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/components/app/print-layout.js b/lib/components/app/print-layout.js index 2fda1815f..724db3ee3 100644 --- a/lib/components/app/print-layout.js +++ b/lib/components/app/print-layout.js @@ -1,4 +1,4 @@ -import TriMetLegIcon from '@opentripplanner/icons/lib/trimet-leg-icon' +import { TriMetLegIcon } from '@opentripplanner/icons' import PrintableItinerary from '@opentripplanner/printable-itinerary' import PropTypes from 'prop-types' import React, { Component } from 'react' diff --git a/lib/components/narrative/line-itin/connected-itinerary-body.js b/lib/components/narrative/line-itin/connected-itinerary-body.js index 0c8774da3..e4c92a4b6 100644 --- a/lib/components/narrative/line-itin/connected-itinerary-body.js +++ b/lib/components/narrative/line-itin/connected-itinerary-body.js @@ -1,5 +1,5 @@ import isEqual from 'lodash.isequal' -import TriMetLegIcon from '@opentripplanner/icons/lib/trimet-leg-icon' +import { TriMetLegIcon } from '@opentripplanner/icons' import TransitLegSummary from '@opentripplanner/itinerary-body/lib/defaults/transit-leg-summary' import ItineraryBody from '@opentripplanner/itinerary-body/lib/otp-react-redux/itinerary-body' import LineColumnContent from '@opentripplanner/itinerary-body/lib/otp-react-redux/line-column-content' From ca56c603d130df1aa9804cc06f78445b3a91179a Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 24 Apr 2020 18:02:30 -0400 Subject: [PATCH 088/115] refactor: Address PR comments. --- lib/actions/form.js | 16 ++++------ lib/components/app/responsive-webapp.js | 3 +- lib/components/form/default-search-form.js | 8 +---- .../narrative/narrative-routing-results.js | 6 ++-- lib/util/index.js | 2 ++ lib/util/state.js | 31 ++++++++++++++++++ lib/util/ui.js | 32 ------------------- 7 files changed, 45 insertions(+), 53 deletions(-) delete mode 100644 lib/util/ui.js diff --git a/lib/actions/form.js b/lib/actions/form.js index 1916a2e3b..abaa4ff00 100644 --- a/lib/actions/form.js +++ b/lib/actions/form.js @@ -19,9 +19,6 @@ const { getUrlParams, planParamsToQuery } = coreUtils.query -const { getItem, randId } = coreUtils.storage -const { OTP_API_TIME_FORMAT } = coreUtils.time -const { isMobile } = coreUtils.ui export const settingQueryParam = createAction('SET_QUERY_PARAM') export const clearActiveSearch = createAction('CLEAR_ACTIVE_SEARCH') @@ -37,7 +34,7 @@ export function resetForm () { dispatch(settingQueryParam(otpState.user.defaults)) } else { // Get user overrides and apply to default query - const userOverrides = getItem('defaultQuery', {}) + const userOverrides = coreUtils.storage.getItem('defaultQuery', {}) const defaultQuery = Object.assign( getDefaultQuery(otpState.config), userOverrides @@ -71,7 +68,7 @@ export function parseUrlQueryString (params = getUrlParams()) { Object.keys(params).forEach(key => { if (!key.startsWith('ui_')) planParams[key] = params[key] }) - const searchId = params.ui_activeSearch || randId() + const searchId = params.ui_activeSearch || coreUtils.storage.randId() // Convert strings to numbers/objects and dispatch dispatch( setQueryParam( @@ -91,10 +88,11 @@ let lastDebouncePlanTimeMs export function formChanged (oldQuery, newQuery) { return function (dispatch, getState) { const otpState = getState().otp + const isMobile = coreUtils.ui.isMobile() // If departArrive is set to 'NOW', update the query time to current if (otpState.currentQuery && otpState.currentQuery.departArrive === 'NOW') { - dispatch(settingQueryParam({ time: moment().format(OTP_API_TIME_FORMAT) })) + dispatch(settingQueryParam({ time: moment().format(coreUtils.time.OTP_API_TIME_FORMAT) })) } // Determine if either from/to location has changed @@ -113,7 +111,7 @@ export function formChanged (oldQuery, newQuery) { // either location changes only if not currently on welcome screen (otherwise // when the current position is auto-set the screen will change unexpectedly). if ( - isMobile() && + isMobile && (fromChanged || toChanged) && otpState.ui.mobileScreen !== MobileScreens.WELCOME_SCREEN ) { @@ -125,8 +123,8 @@ export function formChanged (oldQuery, newQuery) { const { autoPlan, debouncePlanTimeMs } = otpState.config const updatePlan = autoPlan || - (!isMobile() && oneLocationChanged) || // TODO: make autoplan configurable at the parameter level? - (isMobile() && fromChanged && toChanged) + (!isMobile && oneLocationChanged) || // TODO: make autoplan configurable at the parameter level? + (isMobile && fromChanged && toChanged) if (updatePlan && queryIsValid(otpState)) { // trip plan should be made // check if debouncing function needs to be (re)created if (!debouncedPlanTrip || lastDebouncePlanTimeMs !== debouncePlanTimeMs) { diff --git a/lib/components/app/responsive-webapp.js b/lib/components/app/responsive-webapp.js index 464b10d18..eea5f49a7 100644 --- a/lib/components/app/responsive-webapp.js +++ b/lib/components/app/responsive-webapp.js @@ -13,8 +13,7 @@ import { formChanged, parseUrlQueryString } from '../../actions/form' import { getCurrentPosition, receivedPositionResponse } from '../../actions/location' import { setLocationToCurrent } from '../../actions/map' import { handleBackButtonPress, matchContentToUrl } from '../../actions/ui' -import { getTitle } from '../../util/ui' -import { getActiveItinerary } from '../../util/state' +import { getActiveItinerary, getTitle } from '../../util/state' const { isMobile } = coreUtils.ui diff --git a/lib/components/form/default-search-form.js b/lib/components/form/default-search-form.js index 7dfe3a266..98be08f8a 100644 --- a/lib/components/form/default-search-form.js +++ b/lib/components/form/default-search-form.js @@ -6,12 +6,6 @@ import TabbedFormPanel from './tabbed-form-panel' import SwitchButton from './switch-button' import defaultIcons from '../icons' -// Use the icons props to override icons for certain modes in the mode selector panel. -// If no icon is provided for a specific mode, the default OTP-ui icon will be used. -// const customIcons = { -// TRANSIT: -// } - export default class DefaultSearchForm extends Component { static propTypes = { icons: PropTypes.object, @@ -19,7 +13,7 @@ export default class DefaultSearchForm extends Component { } static defaultProps = { - icons: defaultIcons, // customIcons, + icons: defaultIcons, showFrom: true, showTo: true } diff --git a/lib/components/narrative/narrative-routing-results.js b/lib/components/narrative/narrative-routing-results.js index 2047d4cfb..204cc245b 100644 --- a/lib/components/narrative/narrative-routing-results.js +++ b/lib/components/narrative/narrative-routing-results.js @@ -25,14 +25,14 @@ class NarrativeRoutingResults extends Component { } render () { - const { customIcons, error, itineraryClass, itineraryFooter, pending, routingType, itineraries, mainPanelContent } = this.props + const { customIcons, error, itineraryClass, itineraryFooter, pending, itineraries, mainPanelContent } = this.props if (pending) return if (error) return if (mainPanelContent) return null return ( - routingType === 'ITINERARY' && - + // TODO: If multiple routing types exist, do the check here. + ) } } diff --git a/lib/util/index.js b/lib/util/index.js index 4803c5931..2e060cdd3 100644 --- a/lib/util/index.js +++ b/lib/util/index.js @@ -1,9 +1,11 @@ +import coreUtils from '@opentripplanner/core-utils' import * as distance from './distance' import * as itinerary from './itinerary' import * as state from './state' import * as ui from './ui' const OtpUtils = { + ...coreUtils, distance, itinerary, state, diff --git a/lib/util/state.js b/lib/util/state.js index 704c2e75f..cc22fc24c 100644 --- a/lib/util/state.js +++ b/lib/util/state.js @@ -1,5 +1,8 @@ +import coreUtils from '@opentripplanner/core-utils' import isEqual from 'lodash.isequal' +import { MainPanelContent } from '../actions/ui' + /** * Get the active search object * @param {Object} otpState the OTP state object @@ -148,3 +151,31 @@ export function getUiUrlParams (otpState) { } return uiParams } + +// Set default title to the original document title (on load) set in index.html +const DEFAULT_TITLE = document.title + +export function getTitle (state) { + // Override title can optionally be provided in config.yml + const { config, ui, user } = state.otp + let title = config.title || DEFAULT_TITLE + const { mainPanelContent, viewedRoute, viewedStop } = ui + switch (mainPanelContent) { + case MainPanelContent.ROUTE_VIEWER: + title += ' | Route' + if (viewedRoute && viewedRoute.routeId) title += ` ${viewedRoute.routeId}` + break + case MainPanelContent.STOP_VIEWER: + title += ' | Stop' + if (viewedStop && viewedStop.stopId) title += ` ${viewedStop.stopId}` + break + default: + const activeSearch = getActiveSearch(state.otp) + if (activeSearch) { + title += ` | ${coreUtils.query.summarizeQuery(activeSearch.query, user.locations)}` + } + break + } + // if (printView) title += ' | Print' + return title +} diff --git a/lib/util/ui.js b/lib/util/ui.js deleted file mode 100644 index da40aa33e..000000000 --- a/lib/util/ui.js +++ /dev/null @@ -1,32 +0,0 @@ -import coreUtils from '@opentripplanner/core-utils' - -import { MainPanelContent } from '../actions/ui' -import { getActiveSearch } from './state' - -// Set default title to the original document title (on load) set in index.html -const DEFAULT_TITLE = document.title - -export function getTitle (state) { - // Override title can optionally be provided in config.yml - const { config, ui, user } = state.otp - let title = config.title || DEFAULT_TITLE - const { mainPanelContent, viewedRoute, viewedStop } = ui - switch (mainPanelContent) { - case MainPanelContent.ROUTE_VIEWER: - title += ' | Route' - if (viewedRoute && viewedRoute.routeId) title += ` ${viewedRoute.routeId}` - break - case MainPanelContent.STOP_VIEWER: - title += ' | Stop' - if (viewedStop && viewedStop.stopId) title += ` ${viewedStop.stopId}` - break - default: - const activeSearch = getActiveSearch(state.otp) - if (activeSearch) { - title += ` | ${coreUtils.query.summarizeQuery(activeSearch.query, user.locations)}` - } - break - } - // if (printView) title += ' | Print' - return title -} From 2690d3da16bcfa3d4685e006c67cc7b65adc8a5b Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 24 Apr 2020 18:14:08 -0400 Subject: [PATCH 089/115] refactor(util/index): Remove unused vars. --- lib/util/index.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/util/index.js b/lib/util/index.js index 2e060cdd3..fdeac261c 100644 --- a/lib/util/index.js +++ b/lib/util/index.js @@ -2,14 +2,12 @@ import coreUtils from '@opentripplanner/core-utils' import * as distance from './distance' import * as itinerary from './itinerary' import * as state from './state' -import * as ui from './ui' const OtpUtils = { ...coreUtils, distance, itinerary, - state, - ui + state } export default OtpUtils From 1cf85d234e7a9bca7158d4a6bae3df74e50d2c01 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 27 Apr 2020 11:43:19 -0400 Subject: [PATCH 090/115] fix(itinerary): Revert legLocationAtDistance to existing itinerary function, with correct turfAlong --- lib/components/map/elevation-point-marker.js | 16 ++++++++++++++-- lib/util/itinerary.js | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/components/map/elevation-point-marker.js b/lib/components/map/elevation-point-marker.js index 904b71f59..079b24a9a 100644 --- a/lib/components/map/elevation-point-marker.js +++ b/lib/components/map/elevation-point-marker.js @@ -1,15 +1,27 @@ -import coreUtils from '@opentripplanner/core-utils' +// TODO: Switch to coreUtils after otp-ui release. +// import coreUtils from '@opentripplanner/core-utils' +import { legLocationAtDistance } from '../../util/itinerary' import React, { Component } from 'react' import { connect } from 'react-redux' import { CircleMarker } from 'react-leaflet' +/** + * As the OTP user moves the cursor over the elevation tracking chart + * of a walking or biking leg (to see which point of their itinerary is at which elevation), + * ElevationPointMarker displays and moves a marker on the map to highlight + * the location that corresponds to the cursor position on the elevation chart, + * so the user can see the streets and paths that correspond to a portion of an elevation profile. + */ class ElevationPointMarker extends Component { render () { const { diagramLeg, elevationPoint, showElevationProfile } = this.props + // Compute the elevation point marker, if activeLeg and elevation profile is enabled. let elevationPointMarker = null if (showElevationProfile && diagramLeg && elevationPoint) { - const pos = coreUtils.itinerary.legLocationAtDistance( + // TODO: Switch to coreUtils after otp-ui release. + // const pos = coreUtils.itinerary.legLocationAtDistance( + const pos = legLocationAtDistance( diagramLeg, elevationPoint ) diff --git a/lib/util/itinerary.js b/lib/util/itinerary.js index df4196484..748b88068 100644 --- a/lib/util/itinerary.js +++ b/lib/util/itinerary.js @@ -491,7 +491,7 @@ export function legLocationAtDistance (leg, distance) { try { const line = polyline.toGeoJSON(leg.legGeometry.points) - const pt = turfAlong(line, distance, 'meters') + const pt = turfAlong(line, distance, { units: 'meters' }) if (pt && pt.geometry && pt.geometry.coordinates) { return [ pt.geometry.coordinates[1], From 47d64a8bde65c15bf9e4a636a68bd65309fc4b8b Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Tue, 28 Apr 2020 09:42:14 -0400 Subject: [PATCH 091/115] fix: Upgrade to OTP-ui 0.0.20 to make elevation marker work. --- lib/components/map/elevation-point-marker.js | 8 +- package.json | 40 ++-- yarn.lock | 220 +++++++++---------- 3 files changed, 132 insertions(+), 136 deletions(-) diff --git a/lib/components/map/elevation-point-marker.js b/lib/components/map/elevation-point-marker.js index 079b24a9a..5013b1a8e 100644 --- a/lib/components/map/elevation-point-marker.js +++ b/lib/components/map/elevation-point-marker.js @@ -1,6 +1,4 @@ -// TODO: Switch to coreUtils after otp-ui release. -// import coreUtils from '@opentripplanner/core-utils' -import { legLocationAtDistance } from '../../util/itinerary' +import coreUtils from '@opentripplanner/core-utils' import React, { Component } from 'react' import { connect } from 'react-redux' import { CircleMarker } from 'react-leaflet' @@ -19,9 +17,7 @@ class ElevationPointMarker extends Component { // Compute the elevation point marker, if activeLeg and elevation profile is enabled. let elevationPointMarker = null if (showElevationProfile && diagramLeg && elevationPoint) { - // TODO: Switch to coreUtils after otp-ui release. - // const pos = coreUtils.itinerary.legLocationAtDistance( - const pos = legLocationAtDistance( + const pos = coreUtils.itinerary.legLocationAtDistance( diagramLeg, elevationPoint ) diff --git a/package.json b/package.json index 1bca03802..080c59b60 100644 --- a/package.json +++ b/package.json @@ -29,26 +29,26 @@ "dependencies": { "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", - "@opentripplanner/base-map": "^0.0.19", - "@opentripplanner/core-utils": "^0.0.19", - "@opentripplanner/endpoints-overlay": "^0.0.19", - "@opentripplanner/from-to-location-picker": "^0.0.19", - "@opentripplanner/geocoder": "^0.0.19", - "@opentripplanner/humanize-distance": "^0.0.19", - "@opentripplanner/icons": "^0.0.19", - "@opentripplanner/itinerary-body": "^0.0.19", - "@opentripplanner/location-field": "^0.0.19", - "@opentripplanner/location-icon": "^0.0.19", - "@opentripplanner/park-and-ride-overlay": "^0.0.19", - "@opentripplanner/printable-itinerary": "^0.0.19", - "@opentripplanner/route-viewer-overlay": "^0.0.19", - "@opentripplanner/stop-viewer-overlay": "^0.0.19", - "@opentripplanner/stops-overlay": "^0.0.19", - "@opentripplanner/transitive-overlay": "^0.0.19", - "@opentripplanner/trip-details": "^0.0.19", - "@opentripplanner/trip-form": "^0.0.19", - "@opentripplanner/trip-viewer-overlay": "^0.0.19", - "@opentripplanner/vehicle-rental-overlay": "^0.0.19", + "@opentripplanner/base-map": "^0.0.20", + "@opentripplanner/core-utils": "^0.0.20", + "@opentripplanner/endpoints-overlay": "^0.0.20", + "@opentripplanner/from-to-location-picker": "^0.0.20", + "@opentripplanner/geocoder": "^0.0.20", + "@opentripplanner/humanize-distance": "^0.0.20", + "@opentripplanner/icons": "^0.0.20", + "@opentripplanner/itinerary-body": "^0.0.20", + "@opentripplanner/location-field": "^0.0.20", + "@opentripplanner/location-icon": "^0.0.20", + "@opentripplanner/park-and-ride-overlay": "^0.0.20", + "@opentripplanner/printable-itinerary": "^0.0.20", + "@opentripplanner/route-viewer-overlay": "^0.0.20", + "@opentripplanner/stop-viewer-overlay": "^0.0.20", + "@opentripplanner/stops-overlay": "^0.0.20", + "@opentripplanner/transitive-overlay": "^0.0.20", + "@opentripplanner/trip-details": "^0.0.20", + "@opentripplanner/trip-form": "^0.0.20", + "@opentripplanner/trip-viewer-overlay": "^0.0.20", + "@opentripplanner/vehicle-rental-overlay": "^0.0.20", "@turf/along": "^6.0.1", "bootstrap": "^3.3.7", "clone": "^2.1.0", diff --git a/yarn.lock b/yarn.lock index 53e41ada7..2db3165eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1331,18 +1331,18 @@ universal-user-agent "^3.0.0" url-template "^2.0.8" -"@opentripplanner/base-map@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/base-map/-/base-map-0.0.19.tgz#71b0d77c7e8265f742f5383c943663436eb3369b" - integrity sha512-X/OtKsCoVOfJ4GrkDfvW5zufDE2dTzdGsagojrrTk0mzJTh1Kv+x+Oe3iXJfllg5U61yt06PDunFdsZE5kHr2w== +"@opentripplanner/base-map@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/base-map/-/base-map-0.0.20.tgz#35f1b81179080e5b2573a67b9ce9408dde390bd2" + integrity sha512-FR9C93sou4d+3b7wytDsMRZQ/Zeu7ZJGAoQ8WiHlPnCIS/grRTWeihQysK1zga9JAerpBocvIvLc2pF3DyJAIw== dependencies: - "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/core-utils@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.19.tgz#152991efb07d578abf40649ce0dde1c62a8ec4e3" - integrity sha512-9j0j8pGba+af5kz0K8+6bNLy/34BL7CEIHkLQyyLv3H30GpzJWQ+r9z6zIcwndVcoBqEcrn6gLBr1S2KrBscZA== +"@opentripplanner/core-utils@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.20.tgz#057914abe4f395cc9bb5468a97b620ad6e46efe4" + integrity sha512-nwUk/FCJ2X68SM8zN53SFGD2x3ooMirJ2JRcA22U2v8hsEU6NywaSiDDvG1/kjC+WWHbHSNLP5VACSnFc7UAWA== dependencies: "@mapbox/polyline" "^1.1.0" "@turf/along" "^6.0.1" @@ -1353,172 +1353,172 @@ prop-types "^15.7.2" qs "^6.9.1" -"@opentripplanner/endpoints-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/endpoints-overlay/-/endpoints-overlay-0.0.19.tgz#667a70b8b0526cc3fd01e4f69e4839cf04a85ca5" - integrity sha512-0Cd4dd5yYXP42udDAKGNHj00WuCXwoWThj03IWagKOpbr7T5g7ag7B1RkbMJQICYsFvqg9stQJ3AnOmNrwBBPw== +"@opentripplanner/endpoints-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/endpoints-overlay/-/endpoints-overlay-0.0.20.tgz#386835b7ab0fb18d68eb5035ab4984f55717363d" + integrity sha512-1miuJBESWRBXR5TH2EUrUyn/zKeTngcoitWfWUbX322rRv3D6soNd7BdOSqQ1waxKHobqWKC1Tq/Az2RbfZhIg== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/location-icon" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/location-icon" "^0.0.20" prop-types "^15.7.2" styled-icons "^9.1.0" -"@opentripplanner/from-to-location-picker@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.19.tgz#5dd78fff068c84c256fa504dd163ca70e51b2cd9" - integrity sha512-ZNPJVRO2OIOKjdRLOX4fnOvWTX07ccTXEuUfXPpITOf8QBHnJZPTFBgBSMmfqxMfcuLf6NRD4+YzFcllIO4opQ== +"@opentripplanner/from-to-location-picker@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.20.tgz#e945a286ae39077b3fbd3ddf1f31cbb38ea4a067" + integrity sha512-b+bLWcDu9y5jYUz078isXGnyhTlO0gSXBTtYoEOsm0Y7RNDIfvrytKDxSKAyPnaRnaftkbsUcXTmUfUTXCw2PQ== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/location-icon" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/location-icon" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/geocoder@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.19.tgz#4ff8b1baf3c322491f472db31c3fbd7ed576b2a1" - integrity sha512-BOkOY85fj6E2CAFemlMH3qu/e4t9xG3llKrvasm8Vh23PI3FwQRtDQoN8qz3vK4s/pjZsd0D/TpS8+bQGI9HQQ== +"@opentripplanner/geocoder@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.20.tgz#479eed134f4bb68cde9442c049b2630e5eaa499c" + integrity sha512-EkTLmdrBzw0ABFiOrJCEM6ajK5D2T+KFD3FcTowTi7e1esGWpXzEDb7VvbobMaMhwDCztenv1s0APd9J9o0B0g== dependencies: "@conveyal/geocoder-arcgis-geojson" "^0.0.2" "@conveyal/lonlat" "^1.4.0" isomorphic-mapzen-search "^1.4.1" lodash.memoize "^4.1.2" -"@opentripplanner/humanize-distance@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.19.tgz#30d445e9f586afcf0488a8fe27157d62b29fd563" - integrity sha512-gEDH3oB8XZoraPWfsmVfEZYqPN/aqh+Z3Pjc35asJmdOCVKuWWnSem/W4qyK6hBnpMV3RUl9TBKl3B5ubnqBLA== +"@opentripplanner/humanize-distance@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.20.tgz#06eab437c92b8eea5d9596957d7fbcc8c2bd4500" + integrity sha512-m+3gpoSDGY13f8WRIx8fSkVi6Qhv23fG3zbY6oymFQ+j5bMPow4f6XJO2nIY+pI0EbipPEKWbpeRwmXZWlWspg== -"@opentripplanner/icons@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.19.tgz#7681ad2b202e18f361cc4ae32b9c14e162500e50" - integrity sha512-yGNBamoCzvdzcc86RFfZGW5SsktOsXV2G+USPr9goWoP1Hw1IukSn2gEWP8s8qvBCulAMr7HZdLHSXAT9TXk9w== +"@opentripplanner/icons@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.20.tgz#951c75ed093fb9d74e4b4fc7d2af45ced446b856" + integrity sha512-vV81bsB7b3XN8lED3A55Qrjx84lUJyiVY99f13W1oqRlaP1xFIk4MSspg6hHoyanLiZBGp+vdcwWYnKJk4LLtw== dependencies: - "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/itinerary-body@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/itinerary-body/-/itinerary-body-0.0.19.tgz#44c7858f848a625c7327de38850adc2f0a086667" - integrity sha512-f7H8eXWUAArlqBUkvg9IqN+hbQgtVSqcLtwu+EMjNmO9/grU6qR1z9guyXudNi5BS+jsngIla8mNNC60+8l7tA== +"@opentripplanner/itinerary-body@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/itinerary-body/-/itinerary-body-0.0.20.tgz#0f24a4ac0ccd4de21451c5255ec673450bc8198c" + integrity sha512-u3MQUg3SAYs5hMHf2sIPZDF8VLHmeWpXaDW33Pi7WJyn5fJ5AYXsdisEwc87+inOoG0zB6d5usTUkB8Ldlx/rA== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/humanize-distance" "^0.0.19" - "@opentripplanner/icons" "^0.0.19" - "@opentripplanner/location-icon" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/humanize-distance" "^0.0.20" + "@opentripplanner/icons" "^0.0.20" + "@opentripplanner/location-icon" "^0.0.20" currency-formatter "^1.5.5" moment "^2.24.0" prop-types "^15.7.2" react-resize-detector "^4.2.1" velocity-react "^1.4.3" -"@opentripplanner/location-field@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.19.tgz#70db6c081139320cd29b58b2580a6e3178f5c844" - integrity sha512-yCq+VnwaJLPy9CC623I6sq08dEUxJHb/x0wWPXN6A7ZmiltAZdDIPmYnLJAkvRzEfLi1jv8pt1PO4nSYxctI0A== +"@opentripplanner/location-field@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.20.tgz#f2b019bde39dfdb570789afc078e1bb1808941d0" + integrity sha512-+SC9IHpJ49KzvAw03IIH8HlvRcGx9kNGdIdJ6PtGSNCsOd/91/LkfKTdLeI/Z24axWQpdSPM6BhGCyilIoVqfg== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/geocoder" "^0.0.19" - "@opentripplanner/humanize-distance" "^0.0.19" - "@opentripplanner/location-icon" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/geocoder" "^0.0.20" + "@opentripplanner/humanize-distance" "^0.0.20" + "@opentripplanner/location-icon" "^0.0.20" prop-types "^15.7.2" styled-icons "^9.1.0" throttle-debounce "^2.1.0" -"@opentripplanner/location-icon@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.19.tgz#19d121cd7b0d0d1588321912fe0674ac6641046e" - integrity sha512-vtqTMORk0xLBVbBLFUzXqPf4acQSDIe0kxbA+VbpYc2NQD8vZDcnIVFL9e73zXAaKNj/uATAolubZjX6Jvyh3Q== +"@opentripplanner/location-icon@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.20.tgz#8f88522cec37e0c37b051421ba315e2065d464d7" + integrity sha512-TTtoV7s4moNQ++h1TRQhFFTRueRfoNgVnV8fnLhE77T0rf6UXHDhbZNlt1nm/wyHcYF1MbTynQmZmID85V9UMg== dependencies: styled-icons "^9.1.0" -"@opentripplanner/park-and-ride-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/park-and-ride-overlay/-/park-and-ride-overlay-0.0.19.tgz#6f448eccb8ffb86bf9844ec778a6d9111f7575d7" - integrity sha512-9+ia0f2rl2Rkln46tmIGuyb19lYwUPTLGPSOSRRXr1/Qe9OiZD7dNrf4Zif/HnW6l+1Z4fexYA5nN6TN/clOaA== +"@opentripplanner/park-and-ride-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/park-and-ride-overlay/-/park-and-ride-overlay-0.0.20.tgz#0342a798f9a147143f8821062d477751d6145999" + integrity sha512-SiJMZnhD8mG8771pbryfYa+a8T+UnBoFMocu6SB4S911CnRwoFDnaMNosIH6hVrzZquisBWnrsTdJHRMnCkI3w== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/from-to-location-picker" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/from-to-location-picker" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/printable-itinerary@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/printable-itinerary/-/printable-itinerary-0.0.19.tgz#a224cae07e1459c455f7684eaebbac2eca66ea48" - integrity sha512-9Ow6YXKuxDJ5dnwlDBXXMEmyLriEtZtetk7IkRiAOXUNgo00un9uGbb0Zu6gYBbTVuLpjLMsZNpzUsnO27DbYw== +"@opentripplanner/printable-itinerary@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/printable-itinerary/-/printable-itinerary-0.0.20.tgz#d48b9f78ba41827d820bc496c0300a7cd2839c64" + integrity sha512-KuZA0Z6S3Nn35uPoZGChlEOjRSmgBmIcG+bdSBscHo5TbdoX3D1WLfGtIYeph7adLnFljSMHIyATvS1d6Hn7Mw== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/humanize-distance" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/humanize-distance" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/route-viewer-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/route-viewer-overlay/-/route-viewer-overlay-0.0.19.tgz#d6f8080ec4106ae8d90cfebcd02edd39a7ae2d27" - integrity sha512-6DUumUOC33X4FauUVJNucaHoZBvCDVLizZLbU2hjDuS+ZrdCfckEy6wJz8j5x4lfi0pr8jUZEWK+pl3P+sFjaw== +"@opentripplanner/route-viewer-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/route-viewer-overlay/-/route-viewer-overlay-0.0.20.tgz#61e9fdbfc248d84b77733a31fbb7c5d5a0c27f1e" + integrity sha512-Vrejj8DFUfLWt/AN8ogepEH+wRlEyfLQosBA5ynEg/xaExSSDaiRA7Ite2CHvpuJfbDKZfTtWLrP6k4Gf0bL/A== dependencies: "@mapbox/polyline" "^1.1.0" - "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/stop-viewer-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/stop-viewer-overlay/-/stop-viewer-overlay-0.0.19.tgz#1484864fcad81b9fa3ea9726845b3a7383e78db5" - integrity sha512-fdfBiUOrcKiDFDVo5upj7tl2jN6CPxIF7OoYtR/EoSf4A8pCSkCY4pxRL3VE0z7O103fJFP67BCu8axKptaEsA== +"@opentripplanner/stop-viewer-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/stop-viewer-overlay/-/stop-viewer-overlay-0.0.20.tgz#8448757238081feace0c0d4852fd39247cd795e2" + integrity sha512-UmBs0xLW4/rTOCrasg53vqIZZM/EVNrCDJJmbhGN/y8ZWZpzpWowlpzo2S/qZiSrLhc00+KdluBwRVcnA+Lx4A== dependencies: - "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/stops-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/stops-overlay/-/stops-overlay-0.0.19.tgz#b3cc17bbbb7d64fd44da17c01955b4069f0868a6" - integrity sha512-tlr/2S2E7zYjEHla3hIMQc0tpdgJMolY4jUqBPEFOohP1NCf4VQWyO8cY0D2CyjPI9eQkW96eU2be8WuUtwyXQ== +"@opentripplanner/stops-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/stops-overlay/-/stops-overlay-0.0.20.tgz#1fcbce27a0d9438616cb861169d4a6ec3d5ea0e9" + integrity sha512-3m7p7eSWYu8mil7qy/DqqK7eOK26ccQEuvbIhur/btyYaKpKYLodIXoO3mH3UarJfTpQzRMdeQ+W3YTobMYgZg== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/from-to-location-picker" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/from-to-location-picker" "^0.0.20" -"@opentripplanner/transitive-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/transitive-overlay/-/transitive-overlay-0.0.19.tgz#096c30b08e94161cc8522f3a01ff147f473a40d7" - integrity sha512-+UYbDcGlODHxAZQuoX6WeiDVTZsCcrzCfphQmkoQERdd3xukJpPwzjSSjeIEbP+8gTGPtlM+i7qu00mu3C0ynw== +"@opentripplanner/transitive-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/transitive-overlay/-/transitive-overlay-0.0.20.tgz#93f30afcd248e1705feac08e0a385683dcdc84fd" + integrity sha512-lOuWjwb6LlhjMRKjSVeNmBjrsdNewwNe3pnLJjpAnWhSTeunLATiv8aYQk8TYGJz2AclSgYYzySgBWHXnF6Pzw== dependencies: - "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" lodash.isequal "^4.5.0" transitive-js "^0.13.0" -"@opentripplanner/trip-details@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/trip-details/-/trip-details-0.0.19.tgz#3379a13188b7fb12387be5abd0b0d071231b366a" - integrity sha512-ItRywhXMikvOv+13/qWwYueX1eC57IZnzukDy4Gukd/MtJheQOzwDU2W5pWwK1MmMEikxjdsSCw4vt2m6biTyw== +"@opentripplanner/trip-details@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-details/-/trip-details-0.0.20.tgz#ef80eee732e24d6c17d771f6f7d9f9d83deb27cd" + integrity sha512-nZDXHyBgghQZAdu2mLg51Lc5M6OraK6Vp5aYesXVa1ARBwug2hr0W2R/N6F4nQmU5SI0RQAN/b5irGplsKnnXw== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/humanize-distance" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/humanize-distance" "^0.0.20" moment "^2.24.0" prop-types "^15.7.2" styled-icons "^9.1.0" velocity-react "^1.4.3" -"@opentripplanner/trip-form@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/trip-form/-/trip-form-0.0.19.tgz#f34995eee51401012d9fa81a1138de9627d2bc78" - integrity sha512-x2zRAUDYPZlZF1hsVH4wVEdjRspBNU+P1d5a5m0J4OYfS7prnWlVKQl5+b5ktcLiY3mbdGtDHtYv+2knQt0gnQ== +"@opentripplanner/trip-form@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-form/-/trip-form-0.0.20.tgz#823e23ef8e332f5aa3fe85306ee65a0bee17f914" + integrity sha512-GZOZj4mCyPWx64OO1klZpsJ0JEggxmG5Qx264fwue9l8pun4D9DuCJFbclw51Tu/vLJ0VUuFZJBlECRCKeussg== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/icons" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/icons" "^0.0.20" moment "^2.17.1" -"@opentripplanner/trip-viewer-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/trip-viewer-overlay/-/trip-viewer-overlay-0.0.19.tgz#ab608699720f3ab090f64aadae01a12434188f18" - integrity sha512-Nyta8qagZib/tQE/h57HB+O1nUzHi2ougDCEn6I4upqM6OUn6bYSC+V048VGXUHwa8rnnFT9jf8ryKUd6tVEfQ== +"@opentripplanner/trip-viewer-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-viewer-overlay/-/trip-viewer-overlay-0.0.20.tgz#f65ed3527edea2e2304b5e02394b62ac69de7c0e" + integrity sha512-neLU+iO1dTYSXefW00IltdO0vdxtkEJpMG9GiFOUCgVAvLhyHuJca1aofgKZmcsArLhRo7eV2T8YzEHf3EiOCQ== dependencies: "@mapbox/polyline" "^1.1.0" - "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/vehicle-rental-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/vehicle-rental-overlay/-/vehicle-rental-overlay-0.0.19.tgz#d0efc0d653c45da8e2fd8f835eb059f7173aa3fe" - integrity sha512-gZnqoZlZznGeCykfynVkC9pMq4AAotV0DJaNkX4z9sHVGUFgk+mcaiAkrIhPLWLyOiOTnLQnnuPw8T26yOqzng== +"@opentripplanner/vehicle-rental-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/vehicle-rental-overlay/-/vehicle-rental-overlay-0.0.20.tgz#ef30b97f8c1080497056246a59f371f96efabc11" + integrity sha512-7ujSgc2mG/hZpZEL3DW+v3fIWSBUY3BOxoyqPlE0KhoE805KQi99LMxUYre+ovcEyIhcr0OKGSig0Br0X6banw== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/from-to-location-picker" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/from-to-location-picker" "^0.0.20" lodash.memoize "^4.1.2" prop-types "^15.7.2" styled-icons "^9.1.0" From f9910e5297e2aec10be775b8fedb6e623bae5d02 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Tue, 28 Apr 2020 10:01:10 -0400 Subject: [PATCH 092/115] fix(otp-ui version): Upgrade to OTP-ui 0.0.20. --- lib/util/index.js | 2 - package.json | 38 ++++---- yarn.lock | 221 +++++++++++++++++++++++----------------------- 3 files changed, 129 insertions(+), 132 deletions(-) diff --git a/lib/util/index.js b/lib/util/index.js index fdeac261c..70f3f81e0 100644 --- a/lib/util/index.js +++ b/lib/util/index.js @@ -1,10 +1,8 @@ -import coreUtils from '@opentripplanner/core-utils' import * as distance from './distance' import * as itinerary from './itinerary' import * as state from './state' const OtpUtils = { - ...coreUtils, distance, itinerary, state diff --git a/package.json b/package.json index b40050d7f..5a949fbd1 100644 --- a/package.json +++ b/package.json @@ -29,25 +29,25 @@ "dependencies": { "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", - "@opentripplanner/base-map": "^0.0.19", - "@opentripplanner/core-utils": "^0.0.19", - "@opentripplanner/endpoints-overlay": "^0.0.19", - "@opentripplanner/from-to-location-picker": "^0.0.19", - "@opentripplanner/geocoder": "^0.0.19", - "@opentripplanner/icons": "^0.0.19", - "@opentripplanner/itinerary-body": "^0.0.19", - "@opentripplanner/location-field": "^0.0.19", - "@opentripplanner/location-icon": "^0.0.19", - "@opentripplanner/park-and-ride-overlay": "^0.0.19", - "@opentripplanner/printable-itinerary": "^0.0.19", - "@opentripplanner/route-viewer-overlay": "^0.0.19", - "@opentripplanner/stop-viewer-overlay": "^0.0.19", - "@opentripplanner/stops-overlay": "^0.0.19", - "@opentripplanner/transitive-overlay": "^0.0.19", - "@opentripplanner/trip-details": "^0.0.19", - "@opentripplanner/trip-form": "^0.0.19", - "@opentripplanner/trip-viewer-overlay": "^0.0.19", - "@opentripplanner/vehicle-rental-overlay": "^0.0.19", + "@opentripplanner/base-map": "^0.0.20", + "@opentripplanner/core-utils": "^0.0.20", + "@opentripplanner/endpoints-overlay": "^0.0.20", + "@opentripplanner/from-to-location-picker": "^0.0.20", + "@opentripplanner/geocoder": "^0.0.20", + "@opentripplanner/icons": "^0.0.20", + "@opentripplanner/itinerary-body": "^0.0.20", + "@opentripplanner/location-field": "^0.0.20", + "@opentripplanner/location-icon": "^0.0.20", + "@opentripplanner/park-and-ride-overlay": "^0.0.20", + "@opentripplanner/printable-itinerary": "^0.0.20", + "@opentripplanner/route-viewer-overlay": "^0.0.20", + "@opentripplanner/stop-viewer-overlay": "^0.0.20", + "@opentripplanner/stops-overlay": "^0.0.20", + "@opentripplanner/transitive-overlay": "^0.0.20", + "@opentripplanner/trip-details": "^0.0.20", + "@opentripplanner/trip-form": "^0.0.20", + "@opentripplanner/trip-viewer-overlay": "^0.0.20", + "@opentripplanner/vehicle-rental-overlay": "^0.0.20", "@turf/along": "^6.0.1", "bootstrap": "^3.3.7", "bowser": "^1.9.3", diff --git a/yarn.lock b/yarn.lock index b477c125d..e2ad479a9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1331,18 +1331,18 @@ universal-user-agent "^3.0.0" url-template "^2.0.8" -"@opentripplanner/base-map@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/base-map/-/base-map-0.0.19.tgz#71b0d77c7e8265f742f5383c943663436eb3369b" - integrity sha512-X/OtKsCoVOfJ4GrkDfvW5zufDE2dTzdGsagojrrTk0mzJTh1Kv+x+Oe3iXJfllg5U61yt06PDunFdsZE5kHr2w== +"@opentripplanner/base-map@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/base-map/-/base-map-0.0.20.tgz#35f1b81179080e5b2573a67b9ce9408dde390bd2" + integrity sha512-FR9C93sou4d+3b7wytDsMRZQ/Zeu7ZJGAoQ8WiHlPnCIS/grRTWeihQysK1zga9JAerpBocvIvLc2pF3DyJAIw== dependencies: - "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/core-utils@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.19.tgz#152991efb07d578abf40649ce0dde1c62a8ec4e3" - integrity sha512-9j0j8pGba+af5kz0K8+6bNLy/34BL7CEIHkLQyyLv3H30GpzJWQ+r9z6zIcwndVcoBqEcrn6gLBr1S2KrBscZA== +"@opentripplanner/core-utils@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.20.tgz#057914abe4f395cc9bb5468a97b620ad6e46efe4" + integrity sha512-nwUk/FCJ2X68SM8zN53SFGD2x3ooMirJ2JRcA22U2v8hsEU6NywaSiDDvG1/kjC+WWHbHSNLP5VACSnFc7UAWA== dependencies: "@mapbox/polyline" "^1.1.0" "@turf/along" "^6.0.1" @@ -1353,173 +1353,172 @@ prop-types "^15.7.2" qs "^6.9.1" -"@opentripplanner/endpoints-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/endpoints-overlay/-/endpoints-overlay-0.0.19.tgz#667a70b8b0526cc3fd01e4f69e4839cf04a85ca5" - integrity sha512-0Cd4dd5yYXP42udDAKGNHj00WuCXwoWThj03IWagKOpbr7T5g7ag7B1RkbMJQICYsFvqg9stQJ3AnOmNrwBBPw== +"@opentripplanner/endpoints-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/endpoints-overlay/-/endpoints-overlay-0.0.20.tgz#386835b7ab0fb18d68eb5035ab4984f55717363d" + integrity sha512-1miuJBESWRBXR5TH2EUrUyn/zKeTngcoitWfWUbX322rRv3D6soNd7BdOSqQ1waxKHobqWKC1Tq/Az2RbfZhIg== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/location-icon" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/location-icon" "^0.0.20" prop-types "^15.7.2" styled-icons "^9.1.0" -"@opentripplanner/from-to-location-picker@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.19.tgz#5dd78fff068c84c256fa504dd163ca70e51b2cd9" - integrity sha512-ZNPJVRO2OIOKjdRLOX4fnOvWTX07ccTXEuUfXPpITOf8QBHnJZPTFBgBSMmfqxMfcuLf6NRD4+YzFcllIO4opQ== +"@opentripplanner/from-to-location-picker@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.20.tgz#e945a286ae39077b3fbd3ddf1f31cbb38ea4a067" + integrity sha512-b+bLWcDu9y5jYUz078isXGnyhTlO0gSXBTtYoEOsm0Y7RNDIfvrytKDxSKAyPnaRnaftkbsUcXTmUfUTXCw2PQ== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/location-icon" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/location-icon" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/geocoder@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.19.tgz#4ff8b1baf3c322491f472db31c3fbd7ed576b2a1" - integrity sha512-BOkOY85fj6E2CAFemlMH3qu/e4t9xG3llKrvasm8Vh23PI3FwQRtDQoN8qz3vK4s/pjZsd0D/TpS8+bQGI9HQQ== +"@opentripplanner/geocoder@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.20.tgz#479eed134f4bb68cde9442c049b2630e5eaa499c" + integrity sha512-EkTLmdrBzw0ABFiOrJCEM6ajK5D2T+KFD3FcTowTi7e1esGWpXzEDb7VvbobMaMhwDCztenv1s0APd9J9o0B0g== dependencies: "@conveyal/geocoder-arcgis-geojson" "^0.0.2" "@conveyal/lonlat" "^1.4.0" isomorphic-mapzen-search "^1.4.1" lodash.memoize "^4.1.2" -"@opentripplanner/humanize-distance@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.19.tgz#30d445e9f586afcf0488a8fe27157d62b29fd563" - integrity sha512-gEDH3oB8XZoraPWfsmVfEZYqPN/aqh+Z3Pjc35asJmdOCVKuWWnSem/W4qyK6hBnpMV3RUl9TBKl3B5ubnqBLA== +"@opentripplanner/humanize-distance@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.20.tgz#06eab437c92b8eea5d9596957d7fbcc8c2bd4500" + integrity sha512-m+3gpoSDGY13f8WRIx8fSkVi6Qhv23fG3zbY6oymFQ+j5bMPow4f6XJO2nIY+pI0EbipPEKWbpeRwmXZWlWspg== -"@opentripplanner/icons@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.19.tgz#7681ad2b202e18f361cc4ae32b9c14e162500e50" - integrity sha512-yGNBamoCzvdzcc86RFfZGW5SsktOsXV2G+USPr9goWoP1Hw1IukSn2gEWP8s8qvBCulAMr7HZdLHSXAT9TXk9w== +"@opentripplanner/icons@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.20.tgz#951c75ed093fb9d74e4b4fc7d2af45ced446b856" + integrity sha512-vV81bsB7b3XN8lED3A55Qrjx84lUJyiVY99f13W1oqRlaP1xFIk4MSspg6hHoyanLiZBGp+vdcwWYnKJk4LLtw== dependencies: - "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/itinerary-body@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/itinerary-body/-/itinerary-body-0.0.19.tgz#44c7858f848a625c7327de38850adc2f0a086667" - integrity sha512-f7H8eXWUAArlqBUkvg9IqN+hbQgtVSqcLtwu+EMjNmO9/grU6qR1z9guyXudNi5BS+jsngIla8mNNC60+8l7tA== +"@opentripplanner/itinerary-body@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/itinerary-body/-/itinerary-body-0.0.20.tgz#0f24a4ac0ccd4de21451c5255ec673450bc8198c" + integrity sha512-u3MQUg3SAYs5hMHf2sIPZDF8VLHmeWpXaDW33Pi7WJyn5fJ5AYXsdisEwc87+inOoG0zB6d5usTUkB8Ldlx/rA== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/humanize-distance" "^0.0.19" - "@opentripplanner/icons" "^0.0.19" - "@opentripplanner/location-icon" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/humanize-distance" "^0.0.20" + "@opentripplanner/icons" "^0.0.20" + "@opentripplanner/location-icon" "^0.0.20" currency-formatter "^1.5.5" moment "^2.24.0" prop-types "^15.7.2" react-resize-detector "^4.2.1" velocity-react "^1.4.3" -"@opentripplanner/location-field@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.19.tgz#70db6c081139320cd29b58b2580a6e3178f5c844" - integrity sha512-yCq+VnwaJLPy9CC623I6sq08dEUxJHb/x0wWPXN6A7ZmiltAZdDIPmYnLJAkvRzEfLi1jv8pt1PO4nSYxctI0A== +"@opentripplanner/location-field@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.20.tgz#f2b019bde39dfdb570789afc078e1bb1808941d0" + integrity sha512-+SC9IHpJ49KzvAw03IIH8HlvRcGx9kNGdIdJ6PtGSNCsOd/91/LkfKTdLeI/Z24axWQpdSPM6BhGCyilIoVqfg== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/geocoder" "^0.0.19" - "@opentripplanner/humanize-distance" "^0.0.19" - "@opentripplanner/location-icon" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/geocoder" "^0.0.20" + "@opentripplanner/humanize-distance" "^0.0.20" + "@opentripplanner/location-icon" "^0.0.20" prop-types "^15.7.2" styled-icons "^9.1.0" throttle-debounce "^2.1.0" -"@opentripplanner/location-icon@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.19.tgz#19d121cd7b0d0d1588321912fe0674ac6641046e" - integrity sha512-vtqTMORk0xLBVbBLFUzXqPf4acQSDIe0kxbA+VbpYc2NQD8vZDcnIVFL9e73zXAaKNj/uATAolubZjX6Jvyh3Q== +"@opentripplanner/location-icon@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.20.tgz#8f88522cec37e0c37b051421ba315e2065d464d7" + integrity sha512-TTtoV7s4moNQ++h1TRQhFFTRueRfoNgVnV8fnLhE77T0rf6UXHDhbZNlt1nm/wyHcYF1MbTynQmZmID85V9UMg== dependencies: styled-icons "^9.1.0" -"@opentripplanner/park-and-ride-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/park-and-ride-overlay/-/park-and-ride-overlay-0.0.19.tgz#6f448eccb8ffb86bf9844ec778a6d9111f7575d7" - integrity sha512-9+ia0f2rl2Rkln46tmIGuyb19lYwUPTLGPSOSRRXr1/Qe9OiZD7dNrf4Zif/HnW6l+1Z4fexYA5nN6TN/clOaA== +"@opentripplanner/park-and-ride-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/park-and-ride-overlay/-/park-and-ride-overlay-0.0.20.tgz#0342a798f9a147143f8821062d477751d6145999" + integrity sha512-SiJMZnhD8mG8771pbryfYa+a8T+UnBoFMocu6SB4S911CnRwoFDnaMNosIH6hVrzZquisBWnrsTdJHRMnCkI3w== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/from-to-location-picker" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/from-to-location-picker" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/printable-itinerary@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/printable-itinerary/-/printable-itinerary-0.0.19.tgz#a224cae07e1459c455f7684eaebbac2eca66ea48" - integrity sha512-9Ow6YXKuxDJ5dnwlDBXXMEmyLriEtZtetk7IkRiAOXUNgo00un9uGbb0Zu6gYBbTVuLpjLMsZNpzUsnO27DbYw== +"@opentripplanner/printable-itinerary@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/printable-itinerary/-/printable-itinerary-0.0.20.tgz#d48b9f78ba41827d820bc496c0300a7cd2839c64" + integrity sha512-KuZA0Z6S3Nn35uPoZGChlEOjRSmgBmIcG+bdSBscHo5TbdoX3D1WLfGtIYeph7adLnFljSMHIyATvS1d6Hn7Mw== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/humanize-distance" "^0.0.19" - moment "^2.24.0" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/humanize-distance" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/route-viewer-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/route-viewer-overlay/-/route-viewer-overlay-0.0.19.tgz#d6f8080ec4106ae8d90cfebcd02edd39a7ae2d27" - integrity sha512-6DUumUOC33X4FauUVJNucaHoZBvCDVLizZLbU2hjDuS+ZrdCfckEy6wJz8j5x4lfi0pr8jUZEWK+pl3P+sFjaw== +"@opentripplanner/route-viewer-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/route-viewer-overlay/-/route-viewer-overlay-0.0.20.tgz#61e9fdbfc248d84b77733a31fbb7c5d5a0c27f1e" + integrity sha512-Vrejj8DFUfLWt/AN8ogepEH+wRlEyfLQosBA5ynEg/xaExSSDaiRA7Ite2CHvpuJfbDKZfTtWLrP6k4Gf0bL/A== dependencies: "@mapbox/polyline" "^1.1.0" - "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/stop-viewer-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/stop-viewer-overlay/-/stop-viewer-overlay-0.0.19.tgz#1484864fcad81b9fa3ea9726845b3a7383e78db5" - integrity sha512-fdfBiUOrcKiDFDVo5upj7tl2jN6CPxIF7OoYtR/EoSf4A8pCSkCY4pxRL3VE0z7O103fJFP67BCu8axKptaEsA== +"@opentripplanner/stop-viewer-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/stop-viewer-overlay/-/stop-viewer-overlay-0.0.20.tgz#8448757238081feace0c0d4852fd39247cd795e2" + integrity sha512-UmBs0xLW4/rTOCrasg53vqIZZM/EVNrCDJJmbhGN/y8ZWZpzpWowlpzo2S/qZiSrLhc00+KdluBwRVcnA+Lx4A== dependencies: - "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/stops-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/stops-overlay/-/stops-overlay-0.0.19.tgz#b3cc17bbbb7d64fd44da17c01955b4069f0868a6" - integrity sha512-tlr/2S2E7zYjEHla3hIMQc0tpdgJMolY4jUqBPEFOohP1NCf4VQWyO8cY0D2CyjPI9eQkW96eU2be8WuUtwyXQ== +"@opentripplanner/stops-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/stops-overlay/-/stops-overlay-0.0.20.tgz#1fcbce27a0d9438616cb861169d4a6ec3d5ea0e9" + integrity sha512-3m7p7eSWYu8mil7qy/DqqK7eOK26ccQEuvbIhur/btyYaKpKYLodIXoO3mH3UarJfTpQzRMdeQ+W3YTobMYgZg== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/from-to-location-picker" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/from-to-location-picker" "^0.0.20" -"@opentripplanner/transitive-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/transitive-overlay/-/transitive-overlay-0.0.19.tgz#096c30b08e94161cc8522f3a01ff147f473a40d7" - integrity sha512-+UYbDcGlODHxAZQuoX6WeiDVTZsCcrzCfphQmkoQERdd3xukJpPwzjSSjeIEbP+8gTGPtlM+i7qu00mu3C0ynw== +"@opentripplanner/transitive-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/transitive-overlay/-/transitive-overlay-0.0.20.tgz#93f30afcd248e1705feac08e0a385683dcdc84fd" + integrity sha512-lOuWjwb6LlhjMRKjSVeNmBjrsdNewwNe3pnLJjpAnWhSTeunLATiv8aYQk8TYGJz2AclSgYYzySgBWHXnF6Pzw== dependencies: - "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" lodash.isequal "^4.5.0" transitive-js "^0.13.0" -"@opentripplanner/trip-details@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/trip-details/-/trip-details-0.0.19.tgz#3379a13188b7fb12387be5abd0b0d071231b366a" - integrity sha512-ItRywhXMikvOv+13/qWwYueX1eC57IZnzukDy4Gukd/MtJheQOzwDU2W5pWwK1MmMEikxjdsSCw4vt2m6biTyw== +"@opentripplanner/trip-details@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-details/-/trip-details-0.0.20.tgz#ef80eee732e24d6c17d771f6f7d9f9d83deb27cd" + integrity sha512-nZDXHyBgghQZAdu2mLg51Lc5M6OraK6Vp5aYesXVa1ARBwug2hr0W2R/N6F4nQmU5SI0RQAN/b5irGplsKnnXw== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/humanize-distance" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/humanize-distance" "^0.0.20" moment "^2.24.0" prop-types "^15.7.2" styled-icons "^9.1.0" velocity-react "^1.4.3" -"@opentripplanner/trip-form@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/trip-form/-/trip-form-0.0.19.tgz#f34995eee51401012d9fa81a1138de9627d2bc78" - integrity sha512-x2zRAUDYPZlZF1hsVH4wVEdjRspBNU+P1d5a5m0J4OYfS7prnWlVKQl5+b5ktcLiY3mbdGtDHtYv+2knQt0gnQ== +"@opentripplanner/trip-form@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-form/-/trip-form-0.0.20.tgz#823e23ef8e332f5aa3fe85306ee65a0bee17f914" + integrity sha512-GZOZj4mCyPWx64OO1klZpsJ0JEggxmG5Qx264fwue9l8pun4D9DuCJFbclw51Tu/vLJ0VUuFZJBlECRCKeussg== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/icons" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/icons" "^0.0.20" moment "^2.17.1" -"@opentripplanner/trip-viewer-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/trip-viewer-overlay/-/trip-viewer-overlay-0.0.19.tgz#ab608699720f3ab090f64aadae01a12434188f18" - integrity sha512-Nyta8qagZib/tQE/h57HB+O1nUzHi2ougDCEn6I4upqM6OUn6bYSC+V048VGXUHwa8rnnFT9jf8ryKUd6tVEfQ== +"@opentripplanner/trip-viewer-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-viewer-overlay/-/trip-viewer-overlay-0.0.20.tgz#f65ed3527edea2e2304b5e02394b62ac69de7c0e" + integrity sha512-neLU+iO1dTYSXefW00IltdO0vdxtkEJpMG9GiFOUCgVAvLhyHuJca1aofgKZmcsArLhRo7eV2T8YzEHf3EiOCQ== dependencies: "@mapbox/polyline" "^1.1.0" - "@opentripplanner/core-utils" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" prop-types "^15.7.2" -"@opentripplanner/vehicle-rental-overlay@^0.0.19": - version "0.0.19" - resolved "https://registry.yarnpkg.com/@opentripplanner/vehicle-rental-overlay/-/vehicle-rental-overlay-0.0.19.tgz#d0efc0d653c45da8e2fd8f835eb059f7173aa3fe" - integrity sha512-gZnqoZlZznGeCykfynVkC9pMq4AAotV0DJaNkX4z9sHVGUFgk+mcaiAkrIhPLWLyOiOTnLQnnuPw8T26yOqzng== +"@opentripplanner/vehicle-rental-overlay@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@opentripplanner/vehicle-rental-overlay/-/vehicle-rental-overlay-0.0.20.tgz#ef30b97f8c1080497056246a59f371f96efabc11" + integrity sha512-7ujSgc2mG/hZpZEL3DW+v3fIWSBUY3BOxoyqPlE0KhoE805KQi99LMxUYre+ovcEyIhcr0OKGSig0Br0X6banw== dependencies: - "@opentripplanner/core-utils" "^0.0.19" - "@opentripplanner/from-to-location-picker" "^0.0.19" + "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/from-to-location-picker" "^0.0.20" lodash.memoize "^4.1.2" prop-types "^15.7.2" styled-icons "^9.1.0" From 5404f9822a109a04ed69c1d716c8353a37404583 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Tue, 28 Apr 2020 10:49:33 -0400 Subject: [PATCH 093/115] refactor(routeComparator): Use routeComparator from OTP-UI. --- __tests__/util/__mocks__/itinerary.json | 91 ------- .../util/__snapshots__/itinerary.js.snap | 247 ------------------ __tests__/util/itinerary.js | 90 ------- lib/components/viewers/route-viewer.js | 4 +- lib/components/viewers/stop-viewer.js | 3 +- lib/util/itinerary.js | 239 ----------------- 6 files changed, 3 insertions(+), 671 deletions(-) delete mode 100644 __tests__/util/__mocks__/itinerary.json delete mode 100644 __tests__/util/__snapshots__/itinerary.js.snap delete mode 100644 __tests__/util/itinerary.js diff --git a/__tests__/util/__mocks__/itinerary.json b/__tests__/util/__mocks__/itinerary.json deleted file mode 100644 index c00a605a4..000000000 --- a/__tests__/util/__mocks__/itinerary.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "route1": { - "longName": "Across town", - "mode": "BUS", - "shortName": "10", - "sortOrder": 10 - }, - "route2": { - "longName": "Around town", - "mode": "BUS", - "shortName": "20", - "sortOrder": 2 - }, - "route3": { - "longName": "Around another town", - "shortName": "3", - "sortOrder": -999, - "type": 3 - }, - "route4": { - "longName": "Loop route", - "mode": "BUS", - "shortName": "2", - "sortOrder": -999 - }, - "route5": { - "longName": "A-line", - "mode": "BUS", - "shortName": "A", - "sortOrder": -999 - }, - "route6": { - "longName": "B-line", - "mode": "BUS", - "shortName": "B", - "sortOrder": -999 - }, - "route7": { - "longName": "A meandering route", - "mode": "BUS", - "sortOrder": -999 - }, - "route8": { - "longName": "Zig-zagging route", - "mode": "BUS", - "shortName": "30", - "sortOrder": 2 - }, - "route9": { - "longName": "Express route", - "mode": "BUS", - "shortName": "30", - "sortOrder": 2 - }, - "route10": { - "longName": "Variation of express route", - "mode": "BUS", - "shortName": "30", - "sortOrder": 2 - }, - "route11": { - "longName": "Local route", - "mode": "BUS", - "shortName": "6", - "sortOrder": 2 - }, - "route12": { - "longName": "Intercity Train", - "mode": "RAIL", - "shortName": "IC", - "sortOrder": 2 - }, - "route13": { - "longName": "Yellow line Subway", - "mode": "SUBWAY", - "shortName": "Yellow", - "sortOrder": 2 - }, - "route14": { - "longName": "Xpress route C", - "mode": "BUS", - "shortName": "30C", - "sortOrder": 2 - }, - "route15": { - "longName": "Express route X", - "mode": "BUS", - "shortName": "30X", - "sortOrder": 2 - } -} diff --git a/__tests__/util/__snapshots__/itinerary.js.snap b/__tests__/util/__snapshots__/itinerary.js.snap deleted file mode 100644 index 6887d0868..000000000 --- a/__tests__/util/__snapshots__/itinerary.js.snap +++ /dev/null @@ -1,247 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`util > itinerary routeComparator should prioritize routes with integer shortNames over alphabetic shortNames 1`] = ` -Array [ - Object { - "longName": "A-line", - "mode": "BUS", - "shortName": "A", - "sortOrder": -999, - }, - Object { - "longName": "Loop route", - "mode": "BUS", - "shortName": "2", - "sortOrder": -999, - }, -] -`; - -exports[`util > itinerary routeComparator should prioritize routes with shortNames over those with just longNames 1`] = ` -Array [ - Object { - "longName": "B-line", - "mode": "BUS", - "shortName": "B", - "sortOrder": -999, - }, - Object { - "longName": "A meandering route", - "mode": "BUS", - "sortOrder": -999, - }, -] -`; - -exports[`util > itinerary routeComparator should prioritize routes with valid sortOrder 1`] = ` -Array [ - Object { - "longName": "Around town", - "mode": "BUS", - "shortName": "20", - "sortOrder": 2, - }, - Object { - "longName": "Around another town", - "shortName": "3", - "sortOrder": -999, - "type": 3, - }, -] -`; - -exports[`util > itinerary routeComparator should sort based off of route type 1`] = ` -Array [ - Object { - "longName": "Yellow line Subway", - "mode": "SUBWAY", - "shortName": "Yellow", - "sortOrder": 2, - }, - Object { - "longName": "Intercity Train", - "mode": "RAIL", - "shortName": "IC", - "sortOrder": 2, - }, -] -`; - -exports[`util > itinerary routeComparator should sort routes based off of integer shortName 1`] = ` -Array [ - Object { - "longName": "Loop route", - "mode": "BUS", - "shortName": "2", - "sortOrder": -999, - }, - Object { - "longName": "Around another town", - "shortName": "3", - "sortOrder": -999, - "type": 3, - }, -] -`; - -exports[`util > itinerary routeComparator should sort routes based off of longNames 1`] = ` -Array [ - Object { - "longName": "Express route", - "mode": "BUS", - "shortName": "30", - "sortOrder": 2, - }, - Object { - "longName": "Variation of express route", - "mode": "BUS", - "shortName": "30", - "sortOrder": 2, - }, -] -`; - -exports[`util > itinerary routeComparator should sort routes based off of shortNames 1`] = ` -Array [ - Object { - "longName": "A-line", - "mode": "BUS", - "shortName": "A", - "sortOrder": -999, - }, - Object { - "longName": "B-line", - "mode": "BUS", - "shortName": "B", - "sortOrder": -999, - }, -] -`; - -exports[`util > itinerary routeComparator should sort routes based off of sortOrder 1`] = ` -Array [ - Object { - "longName": "Around town", - "mode": "BUS", - "shortName": "20", - "sortOrder": 2, - }, - Object { - "longName": "Across town", - "mode": "BUS", - "shortName": "10", - "sortOrder": 10, - }, -] -`; - -exports[`util > itinerary routeComparator should sort routes on all of the criteria at once 1`] = ` -Array [ - Object { - "longName": "Yellow line Subway", - "mode": "SUBWAY", - "shortName": "Yellow", - "sortOrder": 2, - }, - Object { - "longName": "Intercity Train", - "mode": "RAIL", - "shortName": "IC", - "sortOrder": 2, - }, - Object { - "longName": "Local route", - "mode": "BUS", - "shortName": "6", - "sortOrder": 2, - }, - Object { - "longName": "Around town", - "mode": "BUS", - "shortName": "20", - "sortOrder": 2, - }, - Object { - "longName": "Express route", - "mode": "BUS", - "shortName": "30", - "sortOrder": 2, - }, - Object { - "longName": "Variation of express route", - "mode": "BUS", - "shortName": "30", - "sortOrder": 2, - }, - Object { - "longName": "Zig-zagging route", - "mode": "BUS", - "shortName": "30", - "sortOrder": 2, - }, - Object { - "longName": "Xpress route C", - "mode": "BUS", - "shortName": "30C", - "sortOrder": 2, - }, - Object { - "longName": "Express route X", - "mode": "BUS", - "shortName": "30X", - "sortOrder": 2, - }, - Object { - "longName": "Across town", - "mode": "BUS", - "shortName": "10", - "sortOrder": 10, - }, - Object { - "longName": "A-line", - "mode": "BUS", - "shortName": "A", - "sortOrder": -999, - }, - Object { - "longName": "B-line", - "mode": "BUS", - "shortName": "B", - "sortOrder": -999, - }, - Object { - "longName": "Loop route", - "mode": "BUS", - "shortName": "2", - "sortOrder": -999, - }, - Object { - "longName": "Around another town", - "shortName": "3", - "sortOrder": -999, - "type": 3, - }, - Object { - "longName": "A meandering route", - "mode": "BUS", - "sortOrder": -999, - }, -] -`; - -exports[`util > itinerary routeComparator should sort routes with alphanumeric shortNames 1`] = ` -Array [ - Object { - "longName": "Xpress route C", - "mode": "BUS", - "shortName": "30C", - "sortOrder": 2, - }, - Object { - "longName": "Express route X", - "mode": "BUS", - "shortName": "30X", - "sortOrder": 2, - }, -] -`; diff --git a/__tests__/util/itinerary.js b/__tests__/util/itinerary.js deleted file mode 100644 index fcc0e709c..000000000 --- a/__tests__/util/itinerary.js +++ /dev/null @@ -1,90 +0,0 @@ -import coreUtils from '@opentripplanner/core-utils' - -import { routeComparator } from '../../lib/util/itinerary' - -const { - route1, - route2, - route3, - route4, - route5, - route6, - route7, - route8, - route9, - route10, - route11, - route12, - route13, - route14, - route15 -} = require('./__mocks__/itinerary.json') - -function sortRoutes (...routes) { - routes.sort(routeComparator) - return routes -} - -describe('util > itinerary', () => { - it('isTransit should work', () => { - expect(coreUtils.itinerary.isTransit('CAR')).toBeFalsy() - }) - - describe('routeComparator', () => { - it('should sort routes based off of sortOrder', () => { - expect(sortRoutes(route1, route2)).toMatchSnapshot() - }) - - it('should prioritize routes with valid sortOrder', () => { - expect(sortRoutes(route2, route3)).toMatchSnapshot() - }) - - it('should sort routes based off of integer shortName', () => { - expect(sortRoutes(route3, route4)).toMatchSnapshot() - }) - - it('should prioritize routes with integer shortNames over alphabetic shortNames', () => { - expect(sortRoutes(route4, route5)).toMatchSnapshot() - }) - - it('should sort routes based off of shortNames', () => { - expect(sortRoutes(route5, route6)).toMatchSnapshot() - }) - - it('should sort routes with alphanumeric shortNames', () => { - expect(sortRoutes(route14, route15)).toMatchSnapshot() - }) - - it('should prioritize routes with shortNames over those with just longNames', () => { - expect(sortRoutes(route6, route7)).toMatchSnapshot() - }) - - it('should sort routes based off of longNames', () => { - expect(sortRoutes(route9, route10)).toMatchSnapshot() - }) - - it('should sort routes on all of the criteria at once', () => { - expect(sortRoutes( - route1, - route2, - route3, - route4, - route5, - route6, - route7, - route8, - route9, - route10, - route11, - route12, - route13, - route14, - route15 - )).toMatchSnapshot() - }) - - it('should sort based off of route type', () => { - expect(sortRoutes(route12, route13)).toMatchSnapshot() - }) - }) -}) diff --git a/lib/components/viewers/route-viewer.js b/lib/components/viewers/route-viewer.js index c298d5a50..3cb3e6df5 100644 --- a/lib/components/viewers/route-viewer.js +++ b/lib/components/viewers/route-viewer.js @@ -1,3 +1,4 @@ +import coreUtils from '@opentripplanner/core-utils' import React, { Component, PureComponent } from 'react' import PropTypes from 'prop-types' import { Label, Button } from 'react-bootstrap' @@ -8,7 +9,6 @@ import Icon from '../narrative/icon' import { setMainPanelContent, setViewedRoute } from '../../actions/ui' import { findRoutes, findRoute } from '../../actions/api' -import { routeComparator } from '../../util/itinerary' function operatorIndexForRoute (transitOperators, route) { if (!route.agency) return 0 @@ -58,7 +58,7 @@ class RouteViewer extends Component { viewedRoute } = this.props const sortedRoutes = routes - ? Object.values(routes).sort(routeComparator) + ? Object.values(routes).sort(coreUtils.itinerary.routeComparator) : [] const agencySortedRoutes = transitOperators.length > 0 ? sortedRoutes.sort((a, b) => { diff --git a/lib/components/viewers/stop-viewer.js b/lib/components/viewers/stop-viewer.js index 07c9128ee..ac668f353 100644 --- a/lib/components/viewers/stop-viewer.js +++ b/lib/components/viewers/stop-viewer.js @@ -12,7 +12,6 @@ import Icon from '../narrative/icon' import { setMainPanelContent, toggleAutoRefresh } from '../../actions/ui' import { findStop, findStopTimesForStop } from '../../actions/api' import { forgetStop, rememberStop, setLocation } from '../../actions/map' -import { routeComparator } from '../../util/itinerary' import { getShowUserSettings, getStopViewerConfig } from '../../util/state' const { @@ -231,7 +230,7 @@ class StopViewer extends Component { {stopData.stopTimes && stopData.routes && (
{Object.values(stopTimesByPattern) - .sort((a, b) => routeComparator(a.route, b.route)) + .sort((a, b) => coreUtils.itinerary.routeComparator(a.route, b.route)) .map(patternTimes => { // Only add pattern row if route is found. // FIXME: there is currently a bug with the alernative transit index diff --git a/lib/util/itinerary.js b/lib/util/itinerary.js index e2abbd442..6a65f5f13 100644 --- a/lib/util/itinerary.js +++ b/lib/util/itinerary.js @@ -40,245 +40,6 @@ export function getLeafletLegBounds (leg) { return latLngBounds(coreUtils.itinerary.getLegBounds(leg)) } -/** - * Gets the desired sort values according to an optional getter function. If the - * getter function is not defined, the original sort values are returned. - */ -function getSortValues (getterFn, a, b) { - let aVal - let bVal - if (typeof getterFn === 'function') { - aVal = getterFn(a) - bVal = getterFn(b) - } else { - aVal = a - bVal = b - } - return { aVal, bVal } -} - -// Lookup for the sort values associated with various OTP modes. -// Note: JSDoc format not used to avoid bug in documentationjs. -// https://github.com/documentationjs/documentation/issues/372 -const modeComparatorValue = { - SUBWAY: 1, - TRAM: 2, - RAIL: 3, - GONDOLA: 4, - FERRY: 5, - CABLE_CAR: 6, - FUNICULAR: 7, - BUS: 8 -} - -// Lookup that maps route types to the OTP mode sort values. -// Note: JSDoc format not used to avoid bug in documentationjs. -// https://github.com/documentationjs/documentation/issues/372 -const routeTypeComparatorValue = { - 0: modeComparatorValue.TRAM, // - Tram, Streetcar, Light rail. - 1: modeComparatorValue.SUBWAY, // - Subway, Metro. - 2: modeComparatorValue.RAIL, // - Rail. Used for intercity or long-distance travel. - 3: modeComparatorValue.BUS, // - Bus. - 4: modeComparatorValue.FERRY, // - Ferry. - 5: modeComparatorValue.CABLE_CAR, // - Cable tram. - 6: modeComparatorValue.GONDOLA, // - Gondola, etc. - 7: modeComparatorValue.FUNICULAR, // - Funicular. - // TODO: 11 and 12 are not a part of OTP as of 2019-02-14, but for now just - // associate them with bus/rail. - 11: modeComparatorValue.BUS, // - Trolleybus. - 12: modeComparatorValue.RAIL // - Monorail. -} - -// Gets a comparator value for a given route's type (OTP mode). -// Note: JSDoc format not used to avoid bug in documentationjs. -// ttps://github.com/documentationjs/documentation/issues/372 -function getRouteTypeComparatorValue (route) { - // For some strange reason, the short route response in OTP returns the - // string-based modes, but the long route response returns the - // integer route type. This attempts to account for both of those cases. - if (!route) throw new Error('Route is undefined.', route) - if (typeof modeComparatorValue[route.mode] !== 'undefined') { - return modeComparatorValue[route.mode] - } else if (typeof routeTypeComparatorValue[route.type] !== 'undefined') { - return routeTypeComparatorValue[route.type] - } else { - // Default the comparator value to a large number (placing the route at the - // end of the list). - console.warn('no mode/route type found for route', route) - return 9999 - } -} - -/** - * Calculates the sort comparator value given two routes based off of route type - * (OTP mode). - */ -function routeTypeComparator (a, b) { - return getRouteTypeComparatorValue(a) - getRouteTypeComparatorValue(b) -} - -/** - * Determines whether a value is a string that starts with an alphabetic - * ascii character. - */ -function startsWithAlphabeticCharacter (val) { - if (typeof val === 'string' && val.length > 0) { - const firstCharCode = val.charCodeAt(0) - return (firstCharCode >= 65 && firstCharCode <= 90) || - (firstCharCode >= 97 && firstCharCode <= 122) - } - return false -} - -/** - * Sorts routes based off of whether the shortName begins with an alphabetic - * character. Routes with shortn that do start with an alphabetic character will - * be prioritized over those that don't. - */ -function alphabeticShortNameComparator (a, b) { - const aStartsWithAlphabeticCharacter = startsWithAlphabeticCharacter( - a.shortName - ) - const bStartsWithAlphabeticCharacter = startsWithAlphabeticCharacter( - b.shortName - ) - - if (aStartsWithAlphabeticCharacter && bStartsWithAlphabeticCharacter) { - // both start with an alphabetic character, return equivalence - return 0 - } - // a does start with an alphabetic character, but b does not. Prioritize a - if (aStartsWithAlphabeticCharacter) return -1 - // b does start with an alphabetic character, but a does not. Prioritize b - if (bStartsWithAlphabeticCharacter) return 1 - // neither route has a shortName that starts with an alphabetic character. - // Return equivalence - return 0 -} - -/** - * Checks whether an appropriate comparison of numeric values can be made for - * sorting purposes. If both values are not valid numbers according to the - * isNaN check, then this function returns undefined which indicates that a - * secondary sorting criteria should be used instead. If one value is valid and - * the other is not, then the valid value will be given sorting priority. If - * both values are valid numbers, the difference is obtained as the sort value. - * - * An optional argument can be provided which will be used to obtain the - * comparison value from the comparison function arguments. - * - * IMPORTANT: the comparison values must be numeric values or at least be - * attempted to be converted to numeric values! If one of the arguments is - * something crazy like an empty string, unexpected behavior will occur because - * JavaScript. - * - * @param {function} [objGetterFn] An optional function to obtain the - * comparison value from the comparator function arguments - */ -function makeNumericValueComparator (objGetterFn) { - return (a, b) => { - const { aVal, bVal } = getSortValues(objGetterFn, a, b) - // if both values aren't valid numbers, use the next sort criteria - if (isNaN(aVal) && isNaN(bVal)) return 0 - // b is a valid number, b gets priority - if (isNaN(aVal)) return 1 - // a is a valid number, a gets priority - if (isNaN(bVal)) return -1 - // a and b are valid numbers, return the sort value - return aVal - bVal - } -} - -/** - * Create a comparator function that compares string values. The comparison - * values feed to the sort comparator function are assumed to be objects that - * will have either undefined, null or string values at the given key. If one - * object has undefined, null or an empty string, but the other does have a - * string with length > 0, then that string will get priority. - * - * @param {function} [objGetterFn] An optional function to obtain the - * comparison value from the comparator function arguments - */ -function makeStringValueComparator (objGetterFn) { - return (a, b) => { - const { aVal, bVal } = getSortValues(objGetterFn, a, b) - // both a and b are uncomparable strings, return equivalent value - if (!aVal && !bVal) return 0 - // a is not a comparable string, b gets priority - if (!aVal) return 1 - // b is not a comparable string, a gets priority - if (!bVal) return -1 - // a and b are comparable strings, return the sort value - if (aVal < bVal) return -1 - if (aVal > bVal) return 1 - return 0 - } -} - -/** - * OpenTripPlanner sets the routeSortOrder to -999 by default. So, if that value - * is encountered, assume that it actually means that the routeSortOrder is not - * set in the GTFS. - * - * See https://github.com/opentripplanner/OpenTripPlanner/issues/2938 - * Also see https://github.com/opentripplanner/otp-react-redux/issues/122 - */ -function getRouteSortOrderValue (val) { - return val === -999 ? undefined : val -} - -/** - * Create a multi-criteria sort comparator function composed of other sort - * comparator functions. Each comparator function will be ran in the order given - * until a non-zero comparison value is obtained which is then immediately - * returned. If all comparison functions return equivalance, then the values - * are assumed to be equivalent. - */ -function makeMultiCriteriaSort (...criteria) { - return (a, b) => { - for (let i = 0; i < criteria.length; i++) { - const curCriteriaComparatorValue = criteria[i](a, b) - // if the comparison objects are not equivalent, return the value obtained - // in this current criteria comparison - if (curCriteriaComparatorValue !== 0) { - return curCriteriaComparatorValue - } - } - return 0 - } -} - -/** - * Compares routes for the purposes of sorting and displaying in a user - * interface. Due to GTFS feeds having varying levels of data quality, a multi- - * criteria sort is needed to account for various differences. The criteria - * included here are each applied to the routes in the order listed. If a given - * sort criterion yields equivalence (e.g., two routes have the short name - * "20"), the comparator falls back onto the next sort criterion (e.g., long - * name). If desired, the criteria of sorting based off of integer shortName can - * be disabled. The sort operates on the following values (in order): - * - * 1. sortOrder. Routes that do not have a valid sortOrder will be placed - * beneath those that do. - * 2. route type (OTP mode). See routeTypeComparator code for prioritization of - * route types. - * 3. shortNames that begin with alphabetic characters. shortNames that do not - * start with alphabetic characters will be place beneath those that do. - * 4. shortName as integer. shortNames that cannot be parsed as integers will - * be placed beneath those that are valid. - * 5. shortName as string. Routes without shortNames will be placed beneath - * those with shortNames. - * 6. longName as string. - */ -export const routeComparator = makeMultiCriteriaSort( - makeNumericValueComparator(obj => getRouteSortOrderValue(obj.sortOrder)), - routeTypeComparator, - alphabeticShortNameComparator, - makeNumericValueComparator(obj => parseInt(obj.shortName)), - makeStringValueComparator(obj => obj.shortName), - makeStringValueComparator(obj => obj.longName) -) - /** * Return an icon depending on the leg info * From 4aeb8230f50b873fd27bcfc092f0fd5c0f7403c4 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 30 Apr 2020 12:24:03 -0400 Subject: [PATCH 094/115] refactor(print-layout): Extract LegIcon (and ModeIcon) props to example.js. --- example.js | 3 +++ lib/components/app/print-layout.js | 22 +++------------------- 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/example.js b/example.js index 72f5ac230..d26a0d28f 100644 --- a/example.js +++ b/example.js @@ -1,5 +1,6 @@ // import this polyfill in order to make webapp compatible with IE 11 import 'es6-math' +import { TriMetModeIcon, TriMetLegIcon } from '@opentripplanner/icons' import { createHashHistory } from 'history' import { connectRouter, routerMiddleware } from 'connected-react-router' @@ -98,6 +99,8 @@ class OtpRRExample extends Component { ) } diff --git a/lib/components/app/print-layout.js b/lib/components/app/print-layout.js index 724db3ee3..c140345d8 100644 --- a/lib/components/app/print-layout.js +++ b/lib/components/app/print-layout.js @@ -1,4 +1,3 @@ -import { TriMetLegIcon } from '@opentripplanner/icons' import PrintableItinerary from '@opentripplanner/printable-itinerary' import PropTypes from 'prop-types' import React, { Component } from 'react' @@ -14,6 +13,7 @@ import { getActiveItinerary } from '../../util/state' class PrintLayout extends Component { static propTypes = { itinerary: PropTypes.object, + LegIcon: PropTypes.elementType.isRequired, parseQueryString: PropTypes.func } @@ -52,24 +52,8 @@ class PrintLayout extends Component { root.removeAttribute('class') } - /** - * Use one of the customIcons if provided, - * (similar to @opentriplanner/trip-form/ModeIcon) - * otherwise, fall back on TriMetLegIcon. - * TODO: Combine all custom icon rendering in one place. - */ - customLegIcon = icons => { - return function ({leg, props}) { - // Check if there is a custom icon (exact match required). - if (icons && leg.mode in icons) { - return icons[leg.mode] - } - return TriMetLegIcon({leg, props}) - } - } - render () { - const { config, customIcons, itinerary } = this.props + const { config, itinerary, LegIcon } = this.props return (
{/* The header bar, including the Toggle Map and Print buttons */} @@ -99,7 +83,7 @@ class PrintLayout extends Component { From e21ccfa6bac0b43cf1470c297f7dc268befa76a5 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 30 Apr 2020 15:43:54 -0400 Subject: [PATCH 095/115] refactor(LineItinerary): Extract and propagate LegIcon prop from LineItinerary. --- example.js | 6 ++++-- lib/components/app/default-main-panel.js | 6 +++++- .../narrative/line-itin/connected-itinerary-body.js | 4 ++-- lib/components/narrative/line-itin/itin-summary.js | 6 ++++-- lib/components/narrative/line-itin/line-itinerary.js | 3 ++- lib/components/narrative/narrative-routing-results.js | 11 +++++++++-- 6 files changed, 26 insertions(+), 10 deletions(-) diff --git a/example.js b/example.js index d26a0d28f..1b273acb9 100644 --- a/example.js +++ b/example.js @@ -1,6 +1,6 @@ // import this polyfill in order to make webapp compatible with IE 11 import 'es6-math' -import { TriMetModeIcon, TriMetLegIcon } from '@opentripplanner/icons' +import { Ferry, TriMetModeIcon, TriMetLegIcon } from '@opentripplanner/icons' import { createHashHistory } from 'history' import { connectRouter, routerMiddleware } from 'connected-react-router' @@ -27,6 +27,8 @@ import { // load the OTP configuration import otpConfig from './config.yml' +const MyIcon = () => + // create an initial query for demo/testing purposes const initialQuery = { from: { @@ -79,7 +81,7 @@ class OtpRRExample extends Component { - + diff --git a/lib/components/app/default-main-panel.js b/lib/components/app/default-main-panel.js index ed3de24b6..198c240a7 100644 --- a/lib/components/app/default-main-panel.js +++ b/lib/components/app/default-main-panel.js @@ -17,6 +17,7 @@ class DefaultMainPanel extends Component { customIcons, itineraryClass, itineraryFooter, + LegIcon, mainPanelContent, showUserSettings } = this.props @@ -43,7 +44,10 @@ class DefaultMainPanel extends Component { + customIcons={customIcons} + LegIcon={LegIcon} + // ModeIcon={ModeIcon} + />
{showPlanTripButton && diff --git a/lib/components/narrative/line-itin/connected-itinerary-body.js b/lib/components/narrative/line-itin/connected-itinerary-body.js index e4c92a4b6..a1e9cf8ca 100644 --- a/lib/components/narrative/line-itin/connected-itinerary-body.js +++ b/lib/components/narrative/line-itin/connected-itinerary-body.js @@ -1,5 +1,4 @@ import isEqual from 'lodash.isequal' -import { TriMetLegIcon } from '@opentripplanner/icons' import TransitLegSummary from '@opentripplanner/itinerary-body/lib/defaults/transit-leg-summary' import ItineraryBody from '@opentripplanner/itinerary-body/lib/otp-react-redux/itinerary-body' import LineColumnContent from '@opentripplanner/itinerary-body/lib/otp-react-redux/line-column-content' @@ -33,6 +32,7 @@ class ConnectedItineraryBody extends Component { config, diagramVisible, itinerary, + LegIcon, setActiveLeg, setViewedTrip, showLegDiagram @@ -44,7 +44,7 @@ class ConnectedItineraryBody extends Component { config={config} diagramVisible={diagramVisible} itinerary={itinerary} - LegIcon={TriMetLegIcon} + LegIcon={LegIcon} LineColumnContent={LineColumnContent} PlaceName={PlaceName} RouteDescription={RouteDescription} diff --git a/lib/components/narrative/line-itin/itin-summary.js b/lib/components/narrative/line-itin/itin-summary.js index ca6293c9e..955491975 100644 --- a/lib/components/narrative/line-itin/itin-summary.js +++ b/lib/components/narrative/line-itin/itin-summary.js @@ -1,9 +1,12 @@ import coreUtils from '@opentripplanner/core-utils' -import TriMetModeIcon from '@opentripplanner/icons/lib/trimet-mode-icon' import PropTypes from 'prop-types' import React, { Component } from 'react' import styled from 'styled-components' +import { + getLegIcon +} from '../../../util/itinerary' + // TODO: make this a prop const defaultRouteColor = '#008' @@ -128,7 +131,6 @@ export default class ItinerarySummary extends Component { }).map((leg, k) => { return ( - {this.getIcon(leg.mode, customIcons)} {getLegIcon(leg, customIcons)} {coreUtils.itinerary.isTransit(leg.mode) ? ( diff --git a/lib/components/narrative/line-itin/line-itinerary.js b/lib/components/narrative/line-itin/line-itinerary.js index baf6034bd..c1bd53071 100644 --- a/lib/components/narrative/line-itin/line-itinerary.js +++ b/lib/components/narrative/line-itin/line-itinerary.js @@ -50,6 +50,7 @@ export default class LineItinerary extends NarrativeItinerary { expanded, itinerary, itineraryFooter, + LegIcon, showRealtimeAnnotation, onClick, timeFormat @@ -74,7 +75,7 @@ export default class LineItinerary extends NarrativeItinerary { customIcons={customIcons} /> {showRealtimeAnnotation && } {active || expanded - ? + ? : null} {itineraryFooter} diff --git a/lib/components/narrative/narrative-routing-results.js b/lib/components/narrative/narrative-routing-results.js index 204cc245b..05b7442ec 100644 --- a/lib/components/narrative/narrative-routing-results.js +++ b/lib/components/narrative/narrative-routing-results.js @@ -13,6 +13,7 @@ class NarrativeRoutingResults extends Component { static propTypes = { customIcons: PropTypes.object, itineraryClass: PropTypes.func, + LegIcon: PropTypes.elementType.isRequired, routingType: PropTypes.string } @@ -25,14 +26,20 @@ class NarrativeRoutingResults extends Component { } render () { - const { customIcons, error, itineraryClass, itineraryFooter, pending, itineraries, mainPanelContent } = this.props + const { customIcons, error, itineraryClass, itineraryFooter, LegIcon, pending, itineraries, mainPanelContent } = this.props if (pending) return if (error) return if (mainPanelContent) return null return ( // TODO: If multiple routing types exist, do the check here. - + ) } } From f6f9d7c2fd3ea3f4e6c0745cd9faab03e0648281 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 30 Apr 2020 16:21:17 -0400 Subject: [PATCH 096/115] refactor(line-itin): Extract LegIcon prop from line-itin/ItinerarySummary. --- .../narrative/line-itin/itin-summary.js | 13 ++-- .../narrative/line-itin/line-itinerary.js | 1 + lib/util/itinerary.js | 63 ------------------- 3 files changed, 6 insertions(+), 71 deletions(-) diff --git a/lib/components/narrative/line-itin/itin-summary.js b/lib/components/narrative/line-itin/itin-summary.js index 955491975..b402e2cba 100644 --- a/lib/components/narrative/line-itin/itin-summary.js +++ b/lib/components/narrative/line-itin/itin-summary.js @@ -3,10 +3,6 @@ import PropTypes from 'prop-types' import React, { Component } from 'react' import styled from 'styled-components' -import { - getLegIcon -} from '../../../util/itinerary' - // TODO: make this a prop const defaultRouteColor = '#008' @@ -34,7 +30,7 @@ const Header = styled.div` margin-top: -3px; ` -const ModeIcon = styled.div` +const LegIconContainer = styled.div` height: 30px; width: 30px; ` @@ -75,7 +71,8 @@ const ShortName = styled.div` export default class ItinerarySummary extends Component { static propTypes = { - itinerary: PropTypes.object + itinerary: PropTypes.object, + LegIcon: PropTypes.elementType.isRequired } _onSummaryClicked = () => { @@ -83,7 +80,7 @@ export default class ItinerarySummary extends Component { } render () { - const { customIcons, itinerary, timeOptions } = this.props + const { itinerary, LegIcon, timeOptions } = this.props const { centsToString, maxTNCFare, @@ -131,7 +128,7 @@ export default class ItinerarySummary extends Component { }).map((leg, k) => { return ( - {getLegIcon(leg, customIcons)} + {coreUtils.itinerary.isTransit(leg.mode) ? ( diff --git a/lib/components/narrative/line-itin/line-itinerary.js b/lib/components/narrative/line-itin/line-itinerary.js index c1bd53071..de4483b25 100644 --- a/lib/components/narrative/line-itin/line-itinerary.js +++ b/lib/components/narrative/line-itin/line-itinerary.js @@ -70,6 +70,7 @@ export default class LineItinerary extends NarrativeItinerary { diff --git a/lib/util/itinerary.js b/lib/util/itinerary.js index 6a65f5f13..70468dbe5 100644 --- a/lib/util/itinerary.js +++ b/lib/util/itinerary.js @@ -1,33 +1,5 @@ import { latLngBounds } from 'leaflet' import coreUtils from '@opentripplanner/core-utils' -import React from 'react' - -import ModeIcon from '../components/icons/mode-icon' - -/** - * Returns a react element of the desired icon. If customIcons are defined, then - * the icon will be attempted to be used from that lookup of icons. Otherwise, - * a ModeIcon element will be returned. - * - * @param {string} iconId A string with the desired icon ID. This icon can - * include modes or companies or anything that is defined in the customIcons. - * @param {[Map]} customIcons A customized lookup of - * icons. These are defined as part of the implementing webapp. If this lookup - * is not defined, then the ModeIcon class will be used instead. - * @return {React.Element} - */ -export function getIcon (iconId, customIcons) { - // Check if there is a custom icon - if (customIcons && iconId in customIcons) { - return customIcons[iconId] - } - - // Custom icon not available for the given iconId. Use the ModeIcon component - // to show the icon based on the iconId, but always use the default car icon - // for any car-based modes that didn't have custom icon - if (iconId && iconId.startsWith('CAR')) iconId = 'CAR' - return -} export function getLeafletItineraryBounds (itinerary) { return latLngBounds(coreUtils.itinerary.getItineraryBounds(itinerary)) @@ -39,38 +11,3 @@ export function getLeafletItineraryBounds (itinerary) { export function getLeafletLegBounds (leg) { return latLngBounds(coreUtils.itinerary.getLegBounds(leg)) } - -/** - * Return an icon depending on the leg info - * - * @param {Object} leg The leg data of an itinerary in an OTP trip plan result - * @param {[Object]} customIcons If defined for this webapp, the custom icons - * consist of a lookup table of icons to return for a specific icon ID. These - * icons typically show either companies or transport modes, but they could show - * other icons too. See this file in trimet-mod-otp for an example setup: - * https://github.com/ibi-group/trimet-mod-otp/blob/6a32e2142655c4f4d09a3f349b971b7505e2866a/lib/icons/index.js#L24-L55 - */ -export function getLegIcon (leg, customIcons) { - // check if a custom function exists for determining the icon for a leg - if (customIcons && typeof customIcons.customIconForLeg === 'function') { - // function exits, get the icon string lookup. It's possible for there to be - // a custom function that only returns a string for when a leg meets the - // criteria of the custom function - const customIconStr = customIcons.customIconForLeg(leg) - // the customIconStr could be undefined for this leg, but if it is not, then - // immediately return this custom icon for the leg - if (customIconStr) return getIcon(customIconStr, customIcons) - } - let iconStr = leg.mode - if (iconStr === 'CAR' && leg.rentedCar) { - iconStr = leg.from.networks[0] - } else if (iconStr === 'CAR' && leg.tncData) { - iconStr = leg.tncData.company - } else if (iconStr === 'BICYCLE' && leg.rentedBike && leg.from.networks) { - iconStr = leg.from.networks[0] - } else if (iconStr === 'MICROMOBILITY' && leg.rentedVehicle && leg.from.networks) { - iconStr = leg.from.networks[0] - } - - return getIcon(iconStr, customIcons) -} From ac0d817a0d40ca9cf17f44a17a3ffbb8759a31ae Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 30 Apr 2020 16:52:41 -0400 Subject: [PATCH 097/115] refactor(mobile): Extract and propagate LegIcon prop to MobileMain screen. --- lib/components/mobile/main.js | 5 +++-- lib/components/mobile/results-screen.js | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/components/mobile/main.js b/lib/components/mobile/main.js index 0dcd5d08a..099e3e289 100644 --- a/lib/components/mobile/main.js +++ b/lib/components/mobile/main.js @@ -20,6 +20,7 @@ class MobileMain extends Component { currentQuery: PropTypes.object, icons: PropTypes.object, itineraryClass: PropTypes.func, + LegIcon: PropTypes.elementType.isRequired, map: PropTypes.element, setMobileScreen: PropTypes.func, title: PropTypes.element, @@ -45,7 +46,7 @@ class MobileMain extends Component { } render () { - const { icons, itineraryClass, itineraryFooter, map, title, uiState } = this.props + const { icons, itineraryClass, itineraryFooter, LegIcon, map, title, uiState } = this.props // check for route viewer if (uiState.mainPanelContent === MainPanelContent.ROUTE_VIEWER) { @@ -102,7 +103,7 @@ class MobileMain extends Component { return case MobileScreens.RESULTS_SUMMARY: - return + return default: return

Invalid mobile screen

diff --git a/lib/components/mobile/results-screen.js b/lib/components/mobile/results-screen.js index e62aa0a7c..aa938b3c1 100644 --- a/lib/components/mobile/results-screen.js +++ b/lib/components/mobile/results-screen.js @@ -95,7 +95,7 @@ class MobileResultsScreen extends Component { _toggleRealtime = () => this.props.setUseRealtimeResponse({useRealtime: !this.props.useRealtime}) render () { - const { error, icons, itineraryClass, itineraryFooter, query, realtimeEffects, resultCount, useRealtime, activeItineraryIndex } = this.props + const { error, icons, itineraryClass, itineraryFooter, LegIcon, query, realtimeEffects, resultCount, useRealtime, activeItineraryIndex } = this.props const { expanded } = this.state const narrativeContainerStyle = expanded @@ -205,6 +205,7 @@ class MobileResultsScreen extends Component { expanded={this.state.expanded} onClick={this._optionClicked} showRealtimeAnnotation={showRealtimeAnnotation} + LegIcon={LegIcon} customIcons={icons} />
From 8de95a181f68d1ea81914a1a8c0c8c37d3f54480 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 30 Apr 2020 17:14:18 -0400 Subject: [PATCH 098/115] refactor(default-itinerary): Extract LegIcon prop from DefaultItineary. --- lib/components/narrative/default/default-itinerary.js | 4 +++- lib/components/narrative/default/itinerary-details.js | 6 ++++-- lib/components/narrative/default/itinerary-summary.js | 9 ++++----- lib/components/narrative/default/transit-leg.js | 8 ++++---- lib/components/narrative/line-itin/line-itinerary.js | 3 +-- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/lib/components/narrative/default/default-itinerary.js b/lib/components/narrative/default/default-itinerary.js index efc740c3a..fcbeca04a 100644 --- a/lib/components/narrative/default/default-itinerary.js +++ b/lib/components/narrative/default/default-itinerary.js @@ -18,6 +18,7 @@ export default class DefaultItinerary extends NarrativeItinerary { expanded, index, itinerary, + LegIcon, setActiveLeg, setActiveStep } = this.props @@ -30,7 +31,7 @@ export default class DefaultItinerary extends NarrativeItinerary { Itinerary {index + 1}{' '} {formatDuration(itinerary.duration)}{' '} {formatTime(itinerary.startTime)}—{formatTime(itinerary.endTime)} - + {(active || expanded) &&
@@ -40,6 +41,7 @@ export default class DefaultItinerary extends NarrativeItinerary { activeStep={activeStep} setActiveLeg={setActiveLeg} setActiveStep={setActiveStep} + LegIcon={LegIcon} /> diff --git a/lib/components/narrative/default/itinerary-details.js b/lib/components/narrative/default/itinerary-details.js index 91537b8b6..337943dcc 100644 --- a/lib/components/narrative/default/itinerary-details.js +++ b/lib/components/narrative/default/itinerary-details.js @@ -7,11 +7,12 @@ import TransitLeg from './transit-leg' export default class ItineraryDetails extends Component { static propTypes = { - itinerary: PropTypes.object + itinerary: PropTypes.object, + LegIcon: PropTypes.elementType.isRequired } render () { - const { itinerary, activeLeg, activeStep, setActiveLeg, setActiveStep } = this.props + const { itinerary, activeLeg, activeStep, LegIcon, setActiveLeg, setActiveStep } = this.props return (
{itinerary.legs.map((leg, index) => { @@ -22,6 +23,7 @@ export default class ItineraryDetails extends Component { index={index} key={index} leg={leg} + LegIcon={LegIcon} setActiveLeg={setActiveLeg} /> : { @@ -26,7 +25,7 @@ export default class ItinerarySummary extends Component { // Add the mode icon blocks.push(
- +
) diff --git a/lib/components/narrative/default/transit-leg.js b/lib/components/narrative/default/transit-leg.js index 543072a97..44b826ecd 100644 --- a/lib/components/narrative/default/transit-leg.js +++ b/lib/components/narrative/default/transit-leg.js @@ -3,7 +3,6 @@ import PropTypes from 'prop-types' import React, { Component } from 'react' import Icon from '../icon' -import ModeIcon from '../../icons/mode-icon' import ViewTripButton from '../../viewers/view-trip-button' import ViewStopButton from '../../viewers/view-stop-button' @@ -12,7 +11,8 @@ const { formatDuration, formatTime } = coreUtils.time export default class TransitLeg extends Component { static propTypes = { - itinerary: PropTypes.object + itinerary: PropTypes.object, + LegIcon: PropTypes.elementType.isRequired } constructor (props) { @@ -35,7 +35,7 @@ export default class TransitLeg extends Component { } render () { - const { active, index, leg } = this.props + const { active, index, leg, LegIcon } = this.props const { expanded } = this.state const numStops = leg.to.stopIndex - leg.from.stopIndex - 1 @@ -47,7 +47,7 @@ export default class TransitLeg extends Component { onClick={(e) => this._onLegClick(e, leg, index)} >
- +
diff --git a/lib/components/narrative/line-itin/line-itinerary.js b/lib/components/narrative/line-itin/line-itinerary.js index de4483b25..2aa097024 100644 --- a/lib/components/narrative/line-itin/line-itinerary.js +++ b/lib/components/narrative/line-itin/line-itinerary.js @@ -46,7 +46,6 @@ export default class LineItinerary extends NarrativeItinerary { const { active, companies, - customIcons, expanded, itinerary, itineraryFooter, @@ -73,7 +72,7 @@ export default class LineItinerary extends NarrativeItinerary { LegIcon={LegIcon} timeOptions={timeOptions} onClick={onClick} - customIcons={customIcons} /> + /> {showRealtimeAnnotation && } {active || expanded ? From 7512b6e21b6f5aa5ba62b75baedcbc6e8ec2d0ee Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 30 Apr 2020 17:35:00 -0400 Subject: [PATCH 099/115] refactor(SettingsSelectorPanel): Extract and propagate ModeIcon prop from SettingsSelectorPanel. --- example.js | 5 +++-- lib/components/form/connected-settings-selector-panel.js | 6 +++--- lib/components/form/tabbed-form-panel.js | 6 +++--- lib/components/mobile/main.js | 3 ++- lib/components/mobile/options-screen.js | 6 +++--- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/example.js b/example.js index 1b273acb9..2a4ac85e0 100644 --- a/example.js +++ b/example.js @@ -1,6 +1,6 @@ // import this polyfill in order to make webapp compatible with IE 11 import 'es6-math' -import { Ferry, TriMetModeIcon, TriMetLegIcon } from '@opentripplanner/icons' +import { AerialTram, Ferry, TriMetModeIcon, TriMetLegIcon } from '@opentripplanner/icons' import { createHashHistory } from 'history' import { connectRouter, routerMiddleware } from 'connected-react-router' @@ -28,6 +28,7 @@ import { import otpConfig from './config.yml' const MyIcon = () => +const ModeIcon = () => // create an initial query for demo/testing purposes const initialQuery = { @@ -93,7 +94,7 @@ class OtpRRExample extends Component { /** mobile view **/ const mobileView = ( - )} title={(
OpenTripPlanner
)} /> + )} title={(
OpenTripPlanner
)} /> ) /** the main webapp **/ diff --git a/lib/components/form/connected-settings-selector-panel.js b/lib/components/form/connected-settings-selector-panel.js index ffa4122e1..46980caf2 100644 --- a/lib/components/form/connected-settings-selector-panel.js +++ b/lib/components/form/connected-settings-selector-panel.js @@ -12,13 +12,13 @@ import UserTripSettings from './user-trip-settings' class ConnectedSettingsSelectorPanel extends Component { static propTypes = { - icons: PropTypes.object + ModeIcon: PropTypes.elementType } render () { const { config, - icons, + ModeIcon, query, setQueryParam, showUserSettings @@ -31,7 +31,7 @@ class ConnectedSettingsSelectorPanel extends Component { { @@ -28,7 +28,7 @@ class TabbedFormPanel extends Component { _onHideClick = () => this.props.setMainPanelContent(null) render () { - const { icons, mainPanelContent } = this.props + const { ModeIcon, mainPanelContent } = this.props return (
@@ -49,7 +49,7 @@ class TabbedFormPanel extends Component { {(mainPanelContent === 'EDIT_DATETIME' || mainPanelContent === 'EDIT_SETTINGS') && (
{mainPanelContent === 'EDIT_DATETIME' && ()} - {mainPanelContent === 'EDIT_SETTINGS' && ()} + {mainPanelContent === 'EDIT_SETTINGS' && ()}
diff --git a/lib/components/form/default-search-form.js b/lib/components/form/default-search-form.js index 98be08f8a..64dde53d2 100644 --- a/lib/components/form/default-search-form.js +++ b/lib/components/form/default-search-form.js @@ -4,16 +4,14 @@ import React, { Component } from 'react' import LocationField from './connected-location-field' import TabbedFormPanel from './tabbed-form-panel' import SwitchButton from './switch-button' -import defaultIcons from '../icons' export default class DefaultSearchForm extends Component { static propTypes = { - icons: PropTypes.object, - mobile: PropTypes.bool + mobile: PropTypes.bool, + ModeIcon: PropTypes.elementType.isRequired } static defaultProps = { - icons: defaultIcons, showFrom: true, showTo: true } @@ -27,7 +25,7 @@ export default class DefaultSearchForm extends Component { } render () { - const { icons, mobile } = this.props + const { mobile, ModeIcon } = this.props const actionText = mobile ? 'tap' : 'click' return ( @@ -50,7 +48,7 @@ export default class DefaultSearchForm extends Component {
- +
) } diff --git a/lib/components/form/settings-preview.js b/lib/components/form/settings-preview.js index 337c5d2b6..b39baeda6 100644 --- a/lib/components/form/settings-preview.js +++ b/lib/components/form/settings-preview.js @@ -10,7 +10,6 @@ class SettingsPreview extends Component { caret: PropTypes.string, compressed: PropTypes.bool, editButtonText: PropTypes.element, - icons: PropTypes.object, showCaret: PropTypes.bool, onClick: PropTypes.func, diff --git a/lib/components/mobile/main.js b/lib/components/mobile/main.js index 07a0ab848..e9a0ac148 100644 --- a/lib/components/mobile/main.js +++ b/lib/components/mobile/main.js @@ -18,7 +18,6 @@ import { getActiveItinerary } from '../../util/state' class MobileMain extends Component { static propTypes = { currentQuery: PropTypes.object, - icons: PropTypes.object, itineraryClass: PropTypes.func, LegIcon: PropTypes.elementType.isRequired, ModeIcon: PropTypes.elementType.isRequired, @@ -47,7 +46,7 @@ class MobileMain extends Component { } render () { - const { icons, itineraryClass, itineraryFooter, LegIcon, map, title, uiState } = this.props + const { itineraryClass, itineraryFooter, LegIcon, map, ModeIcon, title, uiState } = this.props // check for route viewer if (uiState.mainPanelContent === MainPanelContent.ROUTE_VIEWER) { @@ -75,7 +74,6 @@ class MobileMain extends Component { case MobileScreens.SEARCH_FORM: return ( @@ -104,7 +102,7 @@ class MobileMain extends Component { return case MobileScreens.RESULTS_SUMMARY: - return + return default: return

Invalid mobile screen

diff --git a/lib/components/mobile/results-screen.js b/lib/components/mobile/results-screen.js index aa938b3c1..007983ebb 100644 --- a/lib/components/mobile/results-screen.js +++ b/lib/components/mobile/results-screen.js @@ -95,7 +95,7 @@ class MobileResultsScreen extends Component { _toggleRealtime = () => this.props.setUseRealtimeResponse({useRealtime: !this.props.useRealtime}) render () { - const { error, icons, itineraryClass, itineraryFooter, LegIcon, query, realtimeEffects, resultCount, useRealtime, activeItineraryIndex } = this.props + const { error, itineraryClass, itineraryFooter, LegIcon, query, realtimeEffects, resultCount, useRealtime, activeItineraryIndex } = this.props const { expanded } = this.state const narrativeContainerStyle = expanded @@ -206,7 +206,6 @@ class MobileResultsScreen extends Component { onClick={this._optionClicked} showRealtimeAnnotation={showRealtimeAnnotation} LegIcon={LegIcon} - customIcons={icons} />
diff --git a/lib/components/mobile/search-screen.js b/lib/components/mobile/search-screen.js index bfa2952cf..b21a56693 100644 --- a/lib/components/mobile/search-screen.js +++ b/lib/components/mobile/search-screen.js @@ -17,9 +17,7 @@ import { MobileScreens, setMobileScreen } from '../../actions/ui' class MobileSearchScreen extends Component { static propTypes = { - icons: PropTypes.object, map: PropTypes.element, - setMobileScreen: PropTypes.func } @@ -44,8 +42,6 @@ class MobileSearchScreen extends Component { } render () { - const { icons } = this.props - return ( @@ -75,7 +71,6 @@ class MobileSearchScreen extends Component { diff --git a/lib/components/narrative/narrative-routing-results.js b/lib/components/narrative/narrative-routing-results.js index 05b7442ec..f16634d26 100644 --- a/lib/components/narrative/narrative-routing-results.js +++ b/lib/components/narrative/narrative-routing-results.js @@ -11,7 +11,6 @@ import { setMainPanelContent } from '../../actions/ui' class NarrativeRoutingResults extends Component { static propTypes = { - customIcons: PropTypes.object, itineraryClass: PropTypes.func, LegIcon: PropTypes.elementType.isRequired, routingType: PropTypes.string @@ -26,7 +25,7 @@ class NarrativeRoutingResults extends Component { } render () { - const { customIcons, error, itineraryClass, itineraryFooter, LegIcon, pending, itineraries, mainPanelContent } = this.props + const { error, itineraryClass, itineraryFooter, LegIcon, pending, itineraries, mainPanelContent } = this.props if (pending) return if (error) return if (mainPanelContent) return null @@ -37,7 +36,6 @@ class NarrativeRoutingResults extends Component { itineraryClass={itineraryClass} itineraryFooter={itineraryFooter} itineraries={itineraries} - customIcons={customIcons} LegIcon={LegIcon} /> ) From 685a484cb8acfce476558ba7842fb635c16f1fbc Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 30 Apr 2020 18:31:40 -0400 Subject: [PATCH 101/115] docs(example.js): Add a note for testing. --- example.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/example.js b/example.js index 28b56ac7e..dcfcdb667 100644 --- a/example.js +++ b/example.js @@ -27,8 +27,8 @@ import { // load the OTP configuration import otpConfig from './config.yml' -const MyLegIcon = () => -const MyModeIcon = () => +const MyLegIcon = TriMetLegIcon // For testing, you can use () => +const MyModeIcon = () => TriMetModeIcon // For testing, you can use () => // create an initial query for demo/testing purposes const initialQuery = { @@ -103,7 +103,6 @@ class OtpRRExample extends Component { desktopView={desktopView} mobileView={mobileView} LegIcon={MyLegIcon} - ModeIcon={MyModeIcon} /> ) } From 02fef2765dd684acadfbdcf0d1676853a0cdd4db Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 30 Apr 2020 18:36:29 -0400 Subject: [PATCH 102/115] refactor(ModeIcon prop): Make ModeIcon prop required. --- lib/components/form/connected-settings-selector-panel.js | 2 +- lib/components/mobile/options-screen.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/components/form/connected-settings-selector-panel.js b/lib/components/form/connected-settings-selector-panel.js index 46980caf2..a64de2a8e 100644 --- a/lib/components/form/connected-settings-selector-panel.js +++ b/lib/components/form/connected-settings-selector-panel.js @@ -12,7 +12,7 @@ import UserTripSettings from './user-trip-settings' class ConnectedSettingsSelectorPanel extends Component { static propTypes = { - ModeIcon: PropTypes.elementType + ModeIcon: PropTypes.elementType.isRequired } render () { diff --git a/lib/components/mobile/options-screen.js b/lib/components/mobile/options-screen.js index cc2549b4b..3b3b3fbf1 100644 --- a/lib/components/mobile/options-screen.js +++ b/lib/components/mobile/options-screen.js @@ -11,7 +11,7 @@ import { MobileScreens, setMobileScreen } from '../../actions/ui' class MobileOptionsScreen extends Component { static propTypes = { - ModeIcon: PropTypes.elementType + ModeIcon: PropTypes.elementType.isRequired } _planTripClicked = () => { From 94982a1bab12fd813e06492e305df56b2898cb5a Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 1 May 2020 11:11:30 -0400 Subject: [PATCH 103/115] fix(example): Fix syntax error --- example.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example.js b/example.js index dcfcdb667..658604534 100644 --- a/example.js +++ b/example.js @@ -28,7 +28,7 @@ import { import otpConfig from './config.yml' const MyLegIcon = TriMetLegIcon // For testing, you can use () => -const MyModeIcon = () => TriMetModeIcon // For testing, you can use () => +const MyModeIcon = TriMetModeIcon // For testing, you can use () => // create an initial query for demo/testing purposes const initialQuery = { From 2842fdc4cbef4168838cab07fbb5c0e62b4ddad9 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 1 May 2020 14:28:44 -0400 Subject: [PATCH 104/115] style: Change style and add comment per PR feedback. --- example.js | 24 +++++++++++++++++++++--- lib/components/mobile/main.js | 10 ++++++++-- lib/components/mobile/results-screen.js | 12 +++++++++++- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/example.js b/example.js index 658604534..b70e95a32 100644 --- a/example.js +++ b/example.js @@ -27,8 +27,21 @@ import { // load the OTP configuration import otpConfig from './config.yml' -const MyLegIcon = TriMetLegIcon // For testing, you can use () => -const MyModeIcon = TriMetModeIcon // For testing, you can use () => +// Define icon sets for modes. +const MyLegIcon = TriMetLegIcon +const MyModeIcon = TriMetModeIcon +/** + * For testing, try uncommenting the following two statements (and comment the two above), + * and see how the icons get changed in: + * - the mode options panel (select transit, bike+transit, etc.) + * - the itinerary narrative (step-by-step directions). + * + * For more advanced testing, you can replicate and customize components and observe the change in icons. + * - For LegIcon: https://github.com/opentripplanner/otp-ui/blob/master/packages/icons/src/trimet-leg-icon.js + * - For ModeIcon: https://github.com/opentripplanner/otp-ui/blob/master/packages/icons/src/trimet-mode-icon.js + */ +// const MyLegIcon = () => +// const MyModeIcon = () => // create an initial query for demo/testing purposes const initialQuery = { @@ -94,7 +107,12 @@ class OtpRRExample extends Component { /** mobile view **/ const mobileView = ( - )} title={(
OpenTripPlanner
)} /> + } + title={
OpenTripPlanner
} + /> ) /** the main webapp **/ diff --git a/lib/components/mobile/main.js b/lib/components/mobile/main.js index e9a0ac148..abec5db02 100644 --- a/lib/components/mobile/main.js +++ b/lib/components/mobile/main.js @@ -102,8 +102,14 @@ class MobileMain extends Component { return case MobileScreens.RESULTS_SUMMARY: - return - + return ( + + ) default: return

Invalid mobile screen

} diff --git a/lib/components/mobile/results-screen.js b/lib/components/mobile/results-screen.js index 007983ebb..3c6b76917 100644 --- a/lib/components/mobile/results-screen.js +++ b/lib/components/mobile/results-screen.js @@ -95,7 +95,17 @@ class MobileResultsScreen extends Component { _toggleRealtime = () => this.props.setUseRealtimeResponse({useRealtime: !this.props.useRealtime}) render () { - const { error, itineraryClass, itineraryFooter, LegIcon, query, realtimeEffects, resultCount, useRealtime, activeItineraryIndex } = this.props + const { + error, + itineraryClass, + itineraryFooter, + LegIcon, + query, + realtimeEffects, + resultCount, + useRealtime, + activeItineraryIndex + } = this.props const { expanded } = this.state const narrativeContainerStyle = expanded From 9219719bac7f92f1d7ead440e50f9e218947b3d5 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Mon, 11 May 2020 15:45:50 -0400 Subject: [PATCH 105/115] refactor(package): Upgrade @opentripplanner packages. Update example.js examples. --- example.js | 59 ++++++++++++-- package.json | 40 +++++----- yarn.lock | 220 +++++++++++++++++++++++++-------------------------- 3 files changed, 182 insertions(+), 137 deletions(-) diff --git a/example.js b/example.js index b70e95a32..0dd37c00c 100644 --- a/example.js +++ b/example.js @@ -1,6 +1,16 @@ // import this polyfill in order to make webapp compatible with IE 11 import 'es6-math' -import { AerialTram, Ferry, TriMetModeIcon, TriMetLegIcon } from '@opentripplanner/icons' + +// The commented imports below are used in the custom icons example. +import { + // ClassicBus, + // ClassicGondola, + ClassicLegIcon, + ClassicModeIcon, + // Ferry, + // LegIcon, + // StandardGondola +} from '@opentripplanner/icons' import { createHashHistory } from 'history' import { connectRouter, routerMiddleware } from 'connected-react-router' @@ -28,21 +38,56 @@ import { import otpConfig from './config.yml' // Define icon sets for modes. -const MyLegIcon = TriMetLegIcon -const MyModeIcon = TriMetModeIcon +const MyLegIcon = ClassicLegIcon +const MyModeIcon = ClassicModeIcon + /** * For testing, try uncommenting the following two statements (and comment the two above), * and see how the icons get changed in: * - the mode options panel (select transit, bike+transit, etc.) * - the itinerary narrative (step-by-step directions). - * - * For more advanced testing, you can replicate and customize components and observe the change in icons. - * - For LegIcon: https://github.com/opentripplanner/otp-ui/blob/master/packages/icons/src/trimet-leg-icon.js - * - For ModeIcon: https://github.com/opentripplanner/otp-ui/blob/master/packages/icons/src/trimet-mode-icon.js */ // const MyLegIcon = () => // const MyModeIcon = () => +/** + * For more advanced users, you can replicate and customize components and observe the change in icons. + * - For LegIcon: https://github.com/opentripplanner/otp-ui/blob/master/packages/icons/src/trimet-leg-icon.js + * - For ModeIcon: https://github.com/opentripplanner/otp-ui/blob/master/packages/icons/src/trimet-mode-icon.js + * The example below shuffles some icons around for demonstration purposes. + */ +/* +const CustomTransitIcon = Ferry +const CustomRailIcon = ClassicGondola +const CustomStreetcarIcon = StandardGondola +const CustomBikeRentalIcon = ClassicBus + +const MyModeIcon = ({ mode, ...props }) => { + if (!mode) return null; + switch (mode.toLowerCase()) { + // Place custom icons for each mode here. + case "transit": + return + case "rail": + return + default: + return + } +} + +const MyLegIcon = ({ leg, ...props }) => { + if ( + leg.routeLongName && + leg.routeLongName.startsWith('MAX') + ) { + return + } else if (leg.rentedBike) { + return + } + return +} +*/ + // create an initial query for demo/testing purposes const initialQuery = { from: { diff --git a/package.json b/package.json index f2ac610dc..8a74f2799 100644 --- a/package.json +++ b/package.json @@ -29,26 +29,26 @@ "dependencies": { "@conveyal/lonlat": "^1.1.0", "@mapbox/polyline": "^0.2.0", - "@opentripplanner/base-map": "^0.0.20", - "@opentripplanner/core-utils": "^0.0.20", - "@opentripplanner/endpoints-overlay": "^0.0.20", - "@opentripplanner/from-to-location-picker": "^0.0.20", - "@opentripplanner/geocoder": "^0.0.20", - "@opentripplanner/humanize-distance": "^0.0.20", - "@opentripplanner/icons": "^0.0.20", - "@opentripplanner/itinerary-body": "^0.0.20", - "@opentripplanner/location-field": "^0.0.20", - "@opentripplanner/location-icon": "^0.0.20", - "@opentripplanner/park-and-ride-overlay": "^0.0.20", - "@opentripplanner/printable-itinerary": "^0.0.20", - "@opentripplanner/route-viewer-overlay": "^0.0.20", - "@opentripplanner/stop-viewer-overlay": "^0.0.20", - "@opentripplanner/stops-overlay": "^0.0.20", - "@opentripplanner/transitive-overlay": "^0.0.20", - "@opentripplanner/trip-details": "^0.0.20", - "@opentripplanner/trip-form": "^0.0.20", - "@opentripplanner/trip-viewer-overlay": "^0.0.20", - "@opentripplanner/vehicle-rental-overlay": "^0.0.20", + "@opentripplanner/base-map": "^0.0.21", + "@opentripplanner/core-utils": "^0.0.21", + "@opentripplanner/endpoints-overlay": "^0.0.21", + "@opentripplanner/from-to-location-picker": "^0.0.21", + "@opentripplanner/geocoder": "^0.0.21", + "@opentripplanner/humanize-distance": "^0.0.21", + "@opentripplanner/icons": "^0.0.21", + "@opentripplanner/itinerary-body": "^0.0.21", + "@opentripplanner/location-field": "^0.0.21", + "@opentripplanner/location-icon": "^0.0.21", + "@opentripplanner/park-and-ride-overlay": "^0.0.21", + "@opentripplanner/printable-itinerary": "^0.0.21", + "@opentripplanner/route-viewer-overlay": "^0.0.21", + "@opentripplanner/stop-viewer-overlay": "^0.0.21", + "@opentripplanner/stops-overlay": "^0.0.21", + "@opentripplanner/transitive-overlay": "^0.0.21", + "@opentripplanner/trip-details": "^0.0.21", + "@opentripplanner/trip-form": "^0.0.21", + "@opentripplanner/trip-viewer-overlay": "^0.0.21", + "@opentripplanner/vehicle-rental-overlay": "^0.0.21", "@turf/along": "^6.0.1", "bootstrap": "^3.3.7", "bowser": "^1.9.3", diff --git a/yarn.lock b/yarn.lock index e2ad479a9..97a5b88ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1331,18 +1331,18 @@ universal-user-agent "^3.0.0" url-template "^2.0.8" -"@opentripplanner/base-map@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/base-map/-/base-map-0.0.20.tgz#35f1b81179080e5b2573a67b9ce9408dde390bd2" - integrity sha512-FR9C93sou4d+3b7wytDsMRZQ/Zeu7ZJGAoQ8WiHlPnCIS/grRTWeihQysK1zga9JAerpBocvIvLc2pF3DyJAIw== +"@opentripplanner/base-map@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/base-map/-/base-map-0.0.21.tgz#5464e0442023c82a158add051389636e15208f27" + integrity sha512-/SHActy1z2GWfsXj6CPyJk33noU30KCALOnRxq69xYazVJw5k6Ih57ku7ZfSdxygmEEQXS/LTGsPvnqdLzkObQ== dependencies: - "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" prop-types "^15.7.2" -"@opentripplanner/core-utils@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.20.tgz#057914abe4f395cc9bb5468a97b620ad6e46efe4" - integrity sha512-nwUk/FCJ2X68SM8zN53SFGD2x3ooMirJ2JRcA22U2v8hsEU6NywaSiDDvG1/kjC+WWHbHSNLP5VACSnFc7UAWA== +"@opentripplanner/core-utils@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/core-utils/-/core-utils-0.0.21.tgz#89cc5d54a0898132bad463b43e4195028ffa0686" + integrity sha512-wsoRfOMUsLui+8i8savx/5+/m64gyoQF1izJMFtvytnXMVr6gQavjl36pW2xejUg9xkyIjrfEvkO7paCXqQ23w== dependencies: "@mapbox/polyline" "^1.1.0" "@turf/along" "^6.0.1" @@ -1353,172 +1353,172 @@ prop-types "^15.7.2" qs "^6.9.1" -"@opentripplanner/endpoints-overlay@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/endpoints-overlay/-/endpoints-overlay-0.0.20.tgz#386835b7ab0fb18d68eb5035ab4984f55717363d" - integrity sha512-1miuJBESWRBXR5TH2EUrUyn/zKeTngcoitWfWUbX322rRv3D6soNd7BdOSqQ1waxKHobqWKC1Tq/Az2RbfZhIg== +"@opentripplanner/endpoints-overlay@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/endpoints-overlay/-/endpoints-overlay-0.0.21.tgz#6b709aac4948ee153ef24438af60c75218a56ee7" + integrity sha512-dZtI8RbngE/wzgjvXy8cHolAt1yw0OvoVSjF5pxjoGuFu3j0Oyo23G2/Ls+FbHgr8StBaUovVoMcm7viq50RUA== dependencies: - "@opentripplanner/core-utils" "^0.0.20" - "@opentripplanner/location-icon" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" + "@opentripplanner/location-icon" "^0.0.21" prop-types "^15.7.2" styled-icons "^9.1.0" -"@opentripplanner/from-to-location-picker@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.20.tgz#e945a286ae39077b3fbd3ddf1f31cbb38ea4a067" - integrity sha512-b+bLWcDu9y5jYUz078isXGnyhTlO0gSXBTtYoEOsm0Y7RNDIfvrytKDxSKAyPnaRnaftkbsUcXTmUfUTXCw2PQ== +"@opentripplanner/from-to-location-picker@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/from-to-location-picker/-/from-to-location-picker-0.0.21.tgz#0166fc9afbff15e4fb2fa06b85249b2e22994596" + integrity sha512-aaTpm5ZZNetuRdWZCYEqR5ry8ToKAOHA1+PLequAEA8MzMqsz3mlmqroIEQGPW5Ij2ajvUxRqCGIi9j7boaViQ== dependencies: - "@opentripplanner/core-utils" "^0.0.20" - "@opentripplanner/location-icon" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" + "@opentripplanner/location-icon" "^0.0.21" prop-types "^15.7.2" -"@opentripplanner/geocoder@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.20.tgz#479eed134f4bb68cde9442c049b2630e5eaa499c" - integrity sha512-EkTLmdrBzw0ABFiOrJCEM6ajK5D2T+KFD3FcTowTi7e1esGWpXzEDb7VvbobMaMhwDCztenv1s0APd9J9o0B0g== +"@opentripplanner/geocoder@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/geocoder/-/geocoder-0.0.21.tgz#3d7532587c0a92a1852daf2b9320930dbe23fe87" + integrity sha512-+ukQNTTYR65b2d3me2LutjaVfiBYdU7Y3QhbE9fDqT429b4b9cCvrIKQjlq2y7TnAKnSoqgf9r9JR0hMi3Q+TA== dependencies: "@conveyal/geocoder-arcgis-geojson" "^0.0.2" "@conveyal/lonlat" "^1.4.0" isomorphic-mapzen-search "^1.4.1" lodash.memoize "^4.1.2" -"@opentripplanner/humanize-distance@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.20.tgz#06eab437c92b8eea5d9596957d7fbcc8c2bd4500" - integrity sha512-m+3gpoSDGY13f8WRIx8fSkVi6Qhv23fG3zbY6oymFQ+j5bMPow4f6XJO2nIY+pI0EbipPEKWbpeRwmXZWlWspg== +"@opentripplanner/humanize-distance@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/humanize-distance/-/humanize-distance-0.0.21.tgz#2f7fd209fcaec3d09a8943152c0f36d34982dec4" + integrity sha512-7EO1RcTJ3QXCZkSxaWiV7pglxV/Fb6liUblqEZqvPmHPJq3zZ7u5p5pHD/w1McQyFmCLhCulIPmpke1uZ/+25g== -"@opentripplanner/icons@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.20.tgz#951c75ed093fb9d74e4b4fc7d2af45ced446b856" - integrity sha512-vV81bsB7b3XN8lED3A55Qrjx84lUJyiVY99f13W1oqRlaP1xFIk4MSspg6hHoyanLiZBGp+vdcwWYnKJk4LLtw== +"@opentripplanner/icons@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/icons/-/icons-0.0.21.tgz#fc72c834c6002db81f62a5c5ada22882636b8bc6" + integrity sha512-o41BKUQSbs+H8AJ1FfrlBthxquVtnl8X2GHGVuPyfZCj21nxifD0l7aUrmzzxdCCSgJPvHLuxdq+Nw8QXF6u/g== dependencies: - "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" prop-types "^15.7.2" -"@opentripplanner/itinerary-body@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/itinerary-body/-/itinerary-body-0.0.20.tgz#0f24a4ac0ccd4de21451c5255ec673450bc8198c" - integrity sha512-u3MQUg3SAYs5hMHf2sIPZDF8VLHmeWpXaDW33Pi7WJyn5fJ5AYXsdisEwc87+inOoG0zB6d5usTUkB8Ldlx/rA== +"@opentripplanner/itinerary-body@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/itinerary-body/-/itinerary-body-0.0.21.tgz#8a2eeb3146b92803609d84395f137fb187646c78" + integrity sha512-4RcoZpYTDgCA5Kcm2LXQbnC8qkU9jqcEULD+g50fBmuLIqeMarJt7LqsqlvmwPaukv0SuYUBoCnRmFJ4N1n4VA== dependencies: - "@opentripplanner/core-utils" "^0.0.20" - "@opentripplanner/humanize-distance" "^0.0.20" - "@opentripplanner/icons" "^0.0.20" - "@opentripplanner/location-icon" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" + "@opentripplanner/humanize-distance" "^0.0.21" + "@opentripplanner/icons" "^0.0.21" + "@opentripplanner/location-icon" "^0.0.21" currency-formatter "^1.5.5" moment "^2.24.0" prop-types "^15.7.2" react-resize-detector "^4.2.1" velocity-react "^1.4.3" -"@opentripplanner/location-field@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.20.tgz#f2b019bde39dfdb570789afc078e1bb1808941d0" - integrity sha512-+SC9IHpJ49KzvAw03IIH8HlvRcGx9kNGdIdJ6PtGSNCsOd/91/LkfKTdLeI/Z24axWQpdSPM6BhGCyilIoVqfg== +"@opentripplanner/location-field@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-field/-/location-field-0.0.21.tgz#8fbe7c020fa151cbf4b05e658a03b9bb5f3f413d" + integrity sha512-DFhGkblCRJhFi3PRCpSAPBhpgh1Vs18JSrXZ4/PrpIOF81LupksmWx3vdlT7+2LZQk56diCKC/qNZKnp8qhgQA== dependencies: - "@opentripplanner/core-utils" "^0.0.20" - "@opentripplanner/geocoder" "^0.0.20" - "@opentripplanner/humanize-distance" "^0.0.20" - "@opentripplanner/location-icon" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" + "@opentripplanner/geocoder" "^0.0.21" + "@opentripplanner/humanize-distance" "^0.0.21" + "@opentripplanner/location-icon" "^0.0.21" prop-types "^15.7.2" styled-icons "^9.1.0" throttle-debounce "^2.1.0" -"@opentripplanner/location-icon@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.20.tgz#8f88522cec37e0c37b051421ba315e2065d464d7" - integrity sha512-TTtoV7s4moNQ++h1TRQhFFTRueRfoNgVnV8fnLhE77T0rf6UXHDhbZNlt1nm/wyHcYF1MbTynQmZmID85V9UMg== +"@opentripplanner/location-icon@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/location-icon/-/location-icon-0.0.21.tgz#296e0a8f1c06abbff03d04167468f04469060638" + integrity sha512-sliDW9jn0wL3oKViJ0GigdS9qfgm89qj5yGR8gd454bp7L1DH/xaZzjc8TxpbAGb4+Z9trhFwWyqkRd3yz5BMg== dependencies: styled-icons "^9.1.0" -"@opentripplanner/park-and-ride-overlay@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/park-and-ride-overlay/-/park-and-ride-overlay-0.0.20.tgz#0342a798f9a147143f8821062d477751d6145999" - integrity sha512-SiJMZnhD8mG8771pbryfYa+a8T+UnBoFMocu6SB4S911CnRwoFDnaMNosIH6hVrzZquisBWnrsTdJHRMnCkI3w== +"@opentripplanner/park-and-ride-overlay@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/park-and-ride-overlay/-/park-and-ride-overlay-0.0.21.tgz#af8e2d9be92610936ca59919c67a9ca1b1405fa7" + integrity sha512-r8bigQi7ZEmAT5e5KbY0JLyISUs055jlOEEKpjlpnP27EkDnE56pQSbRcCUVz4PGH0uFwEV5b5IJNzxP09UBuQ== dependencies: - "@opentripplanner/core-utils" "^0.0.20" - "@opentripplanner/from-to-location-picker" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" + "@opentripplanner/from-to-location-picker" "^0.0.21" prop-types "^15.7.2" -"@opentripplanner/printable-itinerary@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/printable-itinerary/-/printable-itinerary-0.0.20.tgz#d48b9f78ba41827d820bc496c0300a7cd2839c64" - integrity sha512-KuZA0Z6S3Nn35uPoZGChlEOjRSmgBmIcG+bdSBscHo5TbdoX3D1WLfGtIYeph7adLnFljSMHIyATvS1d6Hn7Mw== +"@opentripplanner/printable-itinerary@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/printable-itinerary/-/printable-itinerary-0.0.21.tgz#b0fc8bb37d0a209f7524cd7ef14d18539e2c1a71" + integrity sha512-dnPtxjtnP1IT0Ntho+r7Q33o+wEJi6PdagFkVsTaZdVBBzSt1maNTBzDWa7hD9GALV8WrtDZg+HRH5yBP8FDsw== dependencies: - "@opentripplanner/core-utils" "^0.0.20" - "@opentripplanner/humanize-distance" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" + "@opentripplanner/humanize-distance" "^0.0.21" prop-types "^15.7.2" -"@opentripplanner/route-viewer-overlay@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/route-viewer-overlay/-/route-viewer-overlay-0.0.20.tgz#61e9fdbfc248d84b77733a31fbb7c5d5a0c27f1e" - integrity sha512-Vrejj8DFUfLWt/AN8ogepEH+wRlEyfLQosBA5ynEg/xaExSSDaiRA7Ite2CHvpuJfbDKZfTtWLrP6k4Gf0bL/A== +"@opentripplanner/route-viewer-overlay@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/route-viewer-overlay/-/route-viewer-overlay-0.0.21.tgz#219689a28e34d715922a8c866bc8c71404be6f79" + integrity sha512-rxRj+dV44b52j9GbGSYbncz6ORtfZOXolJggteCkE5oDxcsr4Wmv6fYlTjyfqhPQlXFS/Rc6w61ztHKXcysE/Q== dependencies: "@mapbox/polyline" "^1.1.0" - "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" prop-types "^15.7.2" -"@opentripplanner/stop-viewer-overlay@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/stop-viewer-overlay/-/stop-viewer-overlay-0.0.20.tgz#8448757238081feace0c0d4852fd39247cd795e2" - integrity sha512-UmBs0xLW4/rTOCrasg53vqIZZM/EVNrCDJJmbhGN/y8ZWZpzpWowlpzo2S/qZiSrLhc00+KdluBwRVcnA+Lx4A== +"@opentripplanner/stop-viewer-overlay@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/stop-viewer-overlay/-/stop-viewer-overlay-0.0.21.tgz#4ae6a258ed831eb3944a9730f5af14fd0125c779" + integrity sha512-qcRfY6WVDi2hQVz8grXex7hzm86VPpoD1vzV19UCNSW4g0STK+0iRnrIj7wrzZdOIpMS7t92gvE1d7WxhXFTcQ== dependencies: - "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" prop-types "^15.7.2" -"@opentripplanner/stops-overlay@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/stops-overlay/-/stops-overlay-0.0.20.tgz#1fcbce27a0d9438616cb861169d4a6ec3d5ea0e9" - integrity sha512-3m7p7eSWYu8mil7qy/DqqK7eOK26ccQEuvbIhur/btyYaKpKYLodIXoO3mH3UarJfTpQzRMdeQ+W3YTobMYgZg== +"@opentripplanner/stops-overlay@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/stops-overlay/-/stops-overlay-0.0.21.tgz#ee79b26b1bb6751ec25a33544f85ba416ed21042" + integrity sha512-TPWiRZ7mV+MYu50l0WOkvZfRxjMjaXYL9mruNWG09cx0HuiGObD4o3xtxEmggMoMVjgktyb02G7KOE1OQrKTgA== dependencies: - "@opentripplanner/core-utils" "^0.0.20" - "@opentripplanner/from-to-location-picker" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" + "@opentripplanner/from-to-location-picker" "^0.0.21" -"@opentripplanner/transitive-overlay@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/transitive-overlay/-/transitive-overlay-0.0.20.tgz#93f30afcd248e1705feac08e0a385683dcdc84fd" - integrity sha512-lOuWjwb6LlhjMRKjSVeNmBjrsdNewwNe3pnLJjpAnWhSTeunLATiv8aYQk8TYGJz2AclSgYYzySgBWHXnF6Pzw== +"@opentripplanner/transitive-overlay@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/transitive-overlay/-/transitive-overlay-0.0.21.tgz#ac889766cf6dbb8a4f1ec61316d393088f1f4866" + integrity sha512-+v9qSWE71kL8iv9BL+RJ6GamVUVnotOBIxo4zmN9YuwJSpqsMZCjvUd03Ix5Q2TKGaAKIgCObezDPlu2IJHMfg== dependencies: - "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" lodash.isequal "^4.5.0" transitive-js "^0.13.0" -"@opentripplanner/trip-details@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/trip-details/-/trip-details-0.0.20.tgz#ef80eee732e24d6c17d771f6f7d9f9d83deb27cd" - integrity sha512-nZDXHyBgghQZAdu2mLg51Lc5M6OraK6Vp5aYesXVa1ARBwug2hr0W2R/N6F4nQmU5SI0RQAN/b5irGplsKnnXw== +"@opentripplanner/trip-details@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-details/-/trip-details-0.0.21.tgz#1eaf85dbaa1688c338e41330f4f30def7a7d1c36" + integrity sha512-vMy+1i/wOl0ZPQDqfWUyl5kjxI9Mv2+NJKl3xylwmUBFQynaGl61vmG4GKRBBNWucPWqQGVKXo8z72qRoLZNZg== dependencies: - "@opentripplanner/core-utils" "^0.0.20" - "@opentripplanner/humanize-distance" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" + "@opentripplanner/humanize-distance" "^0.0.21" moment "^2.24.0" prop-types "^15.7.2" styled-icons "^9.1.0" velocity-react "^1.4.3" -"@opentripplanner/trip-form@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/trip-form/-/trip-form-0.0.20.tgz#823e23ef8e332f5aa3fe85306ee65a0bee17f914" - integrity sha512-GZOZj4mCyPWx64OO1klZpsJ0JEggxmG5Qx264fwue9l8pun4D9DuCJFbclw51Tu/vLJ0VUuFZJBlECRCKeussg== +"@opentripplanner/trip-form@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-form/-/trip-form-0.0.21.tgz#5f9deb9ac2bf34d3ce26c19f14392cf3850a999a" + integrity sha512-3MqOAx8L+14vO3Tr+j6YbhctYGHXnxbYyGZONI6OpijlmRINmxCKG7oK/VX+8PjWftqZggEUGW09FUiEUhh/hg== dependencies: - "@opentripplanner/core-utils" "^0.0.20" - "@opentripplanner/icons" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" + "@opentripplanner/icons" "^0.0.21" moment "^2.17.1" -"@opentripplanner/trip-viewer-overlay@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/trip-viewer-overlay/-/trip-viewer-overlay-0.0.20.tgz#f65ed3527edea2e2304b5e02394b62ac69de7c0e" - integrity sha512-neLU+iO1dTYSXefW00IltdO0vdxtkEJpMG9GiFOUCgVAvLhyHuJca1aofgKZmcsArLhRo7eV2T8YzEHf3EiOCQ== +"@opentripplanner/trip-viewer-overlay@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/trip-viewer-overlay/-/trip-viewer-overlay-0.0.21.tgz#9b4515db20ea106c7160ac38773f5cb7f3d651b3" + integrity sha512-YI/tks6QAjA9dGOp6hd7yC/SxIXQ5DvI9T4UewEFIxembXD920wlcF4GF8DFlmB/GPF67m6Qz7rfvrq+qjjKcw== dependencies: "@mapbox/polyline" "^1.1.0" - "@opentripplanner/core-utils" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" prop-types "^15.7.2" -"@opentripplanner/vehicle-rental-overlay@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@opentripplanner/vehicle-rental-overlay/-/vehicle-rental-overlay-0.0.20.tgz#ef30b97f8c1080497056246a59f371f96efabc11" - integrity sha512-7ujSgc2mG/hZpZEL3DW+v3fIWSBUY3BOxoyqPlE0KhoE805KQi99LMxUYre+ovcEyIhcr0OKGSig0Br0X6banw== +"@opentripplanner/vehicle-rental-overlay@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@opentripplanner/vehicle-rental-overlay/-/vehicle-rental-overlay-0.0.21.tgz#5dc3396329d46d05c1da6db0dca3e4311b9bfcbb" + integrity sha512-8OY42IwWM+4sA2rmyJRZhE/CnOfmH6HHsqFoYrnhBp/U4U7BKsXpyuZwVr9yYhKZoY8zibj75MYso5R49UUarQ== dependencies: - "@opentripplanner/core-utils" "^0.0.20" - "@opentripplanner/from-to-location-picker" "^0.0.20" + "@opentripplanner/core-utils" "^0.0.21" + "@opentripplanner/from-to-location-picker" "^0.0.21" lodash.memoize "^4.1.2" prop-types "^15.7.2" styled-icons "^9.1.0" From ac4d6db0721f1ca2f7ba66c9ccf67773428b484c Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Tue, 12 May 2020 09:51:45 -0400 Subject: [PATCH 106/115] refactor(icons): move example custom icons into own file --- custom-icons.js | 47 +++++++++++++++++++++++++++++++++++ example.js | 66 ++++++++++--------------------------------------- 2 files changed, 60 insertions(+), 53 deletions(-) create mode 100644 custom-icons.js diff --git a/custom-icons.js b/custom-icons.js new file mode 100644 index 000000000..dbd806f10 --- /dev/null +++ b/custom-icons.js @@ -0,0 +1,47 @@ +import { + ClassicBus, + ClassicGondola, + ClassicModeIcon, + Ferry, + LegIcon, + StandardGondola +} from '@opentripplanner/icons' + +/** + * For more advanced users, you can replicate and customize components and + * observe the change in icons. + * - For LegIcon: https://github.com/opentripplanner/otp-ui/blob/master/packages/icons/src/trimet-leg-icon.js + * - For ModeIcon: https://github.com/opentripplanner/otp-ui/blob/master/packages/icons/src/trimet-mode-icon.js + * The example below shuffles some icons around from what you might normally + * expect for demonstration purposes. + */ + +const CustomTransitIcon = Ferry +const CustomRailIcon = ClassicGondola +const CustomStreetcarIcon = StandardGondola +const CustomBikeRentalIcon = ClassicBus + +export const CustomModeIcon = ({ mode, ...props }) => { + if (!mode) return null + switch (mode.toLowerCase()) { + // Place custom icons for each mode here. + case 'transit': + return + case 'rail': + return + default: + return + } +} + +export const CustomLegIcon = ({ leg, ...props }) => { + if ( + leg.routeLongName && + leg.routeLongName.startsWith('MAX') + ) { + return + } else if (leg.rentedBike) { + return + } + return +} diff --git a/example.js b/example.js index 0dd37c00c..ea04109d3 100644 --- a/example.js +++ b/example.js @@ -1,17 +1,7 @@ // import this polyfill in order to make webapp compatible with IE 11 import 'es6-math' -// The commented imports below are used in the custom icons example. -import { - // ClassicBus, - // ClassicGondola, - ClassicLegIcon, - ClassicModeIcon, - // Ferry, - // LegIcon, - // StandardGondola -} from '@opentripplanner/icons' - +import {ClassicLegIcon, ClassicModeIcon} from '@opentripplanner/icons' import { createHashHistory } from 'history' import { connectRouter, routerMiddleware } from 'connected-react-router' import React, { Component } from 'react' @@ -20,7 +10,6 @@ import { createStore, combineReducers, applyMiddleware, compose } from 'redux' import { Provider } from 'react-redux' import thunk from 'redux-thunk' import createLogger from 'redux-logger' - // import Bootstrap Grid components for layout import { Navbar, Grid, Row, Col } from 'react-bootstrap' @@ -33,13 +22,22 @@ import { AppMenu, createOtpReducer } from './lib' - // load the OTP configuration import otpConfig from './config.yml' +// Set useCustomIcons to true to override classic icons with the exports from +// custom-icons.js +const useCustomIcons = true + // Define icon sets for modes. -const MyLegIcon = ClassicLegIcon -const MyModeIcon = ClassicModeIcon +let MyLegIcon = ClassicLegIcon +let MyModeIcon = ClassicModeIcon + +if (useCustomIcons) { + const CustomIcons = require('./custom-icons') + MyLegIcon = CustomIcons.CustomLegIcon + MyModeIcon = CustomIcons.CustomModeIcon +} /** * For testing, try uncommenting the following two statements (and comment the two above), @@ -50,44 +48,6 @@ const MyModeIcon = ClassicModeIcon // const MyLegIcon = () => // const MyModeIcon = () => -/** - * For more advanced users, you can replicate and customize components and observe the change in icons. - * - For LegIcon: https://github.com/opentripplanner/otp-ui/blob/master/packages/icons/src/trimet-leg-icon.js - * - For ModeIcon: https://github.com/opentripplanner/otp-ui/blob/master/packages/icons/src/trimet-mode-icon.js - * The example below shuffles some icons around for demonstration purposes. - */ -/* -const CustomTransitIcon = Ferry -const CustomRailIcon = ClassicGondola -const CustomStreetcarIcon = StandardGondola -const CustomBikeRentalIcon = ClassicBus - -const MyModeIcon = ({ mode, ...props }) => { - if (!mode) return null; - switch (mode.toLowerCase()) { - // Place custom icons for each mode here. - case "transit": - return - case "rail": - return - default: - return - } -} - -const MyLegIcon = ({ leg, ...props }) => { - if ( - leg.routeLongName && - leg.routeLongName.startsWith('MAX') - ) { - return - } else if (leg.rentedBike) { - return - } - return -} -*/ - // create an initial query for demo/testing purposes const initialQuery = { from: { From 42064659795e432e4acd20db633258d5572516e6 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Tue, 12 May 2020 09:58:27 -0400 Subject: [PATCH 107/115] docs(example): Remove a dummy custom icon example in favor for the other one. --- example.js | 9 --------- 1 file changed, 9 deletions(-) diff --git a/example.js b/example.js index 0dd37c00c..fff36e084 100644 --- a/example.js +++ b/example.js @@ -41,15 +41,6 @@ import otpConfig from './config.yml' const MyLegIcon = ClassicLegIcon const MyModeIcon = ClassicModeIcon -/** - * For testing, try uncommenting the following two statements (and comment the two above), - * and see how the icons get changed in: - * - the mode options panel (select transit, bike+transit, etc.) - * - the itinerary narrative (step-by-step directions). - */ -// const MyLegIcon = () => -// const MyModeIcon = () => - /** * For more advanced users, you can replicate and customize components and observe the change in icons. * - For LegIcon: https://github.com/opentripplanner/otp-ui/blob/master/packages/icons/src/trimet-leg-icon.js From 266ecb46027d988a711ff4632db0966f7828ce1f Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Tue, 12 May 2020 10:36:05 -0400 Subject: [PATCH 108/115] refactor(example): set useCustomIcons to false --- example.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example.js b/example.js index ea04109d3..8d7caf306 100644 --- a/example.js +++ b/example.js @@ -27,7 +27,7 @@ import otpConfig from './config.yml' // Set useCustomIcons to true to override classic icons with the exports from // custom-icons.js -const useCustomIcons = true +const useCustomIcons = false // Define icon sets for modes. let MyLegIcon = ClassicLegIcon From 404f94128ccc503e8ba6dd4b8e2c4eee132af82d Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 14 May 2020 22:57:58 -0400 Subject: [PATCH 109/115] fix(css): Match date and mode selector styles to trimet-mod-otp --- .../form/connected-settings-selector-panel.js | 1 - lib/components/form/styled.js | 182 +++++++++--------- 2 files changed, 96 insertions(+), 87 deletions(-) diff --git a/lib/components/form/connected-settings-selector-panel.js b/lib/components/form/connected-settings-selector-panel.js index a64de2a8e..6d4f1d030 100644 --- a/lib/components/form/connected-settings-selector-panel.js +++ b/lib/components/form/connected-settings-selector-panel.js @@ -30,7 +30,6 @@ class ConnectedSettingsSelectorPanel extends Component { {showUserSettings && } div:last-child::after { + box-sizing: border-box; + color: #000; + content: "▼"; + font-size: 67%; + pointer-events: none; + position: absolute; + right: 8px; + top: 10px; } } ${TripFormClasses.ModeSelector} { + font-weight: 300; ${TripFormClasses.ModeButton.Button} { - ${commonButtonCss} - border: 1px solid rgb(187, 187, 187); - border-radius: 3px; box-shadow: none; - outline: 0; + outline: none; padding: 3px; - &.active { - background-color: rgb(173, 216, 230); - border: 2px solid rgb(0, 0, 0); - } - } + } ${TripFormClasses.ModeButton.Title} { font-size: 10px; - font-weight: 300; line-height: 12px; padding: 4px 0px 0px; + &.active { font-weight: 600; } - } + } } ${TripFormClasses.ModeSelector.MainRow} { - margin: 0 -10px 18px; - padding: 0 5px; - + box-sizing: border-box; + font-size: 170%; + margin: 0px -15px 18px; + padding: 0px 5px; ${TripFormClasses.ModeButton.Button} { - font-size: 200%; - font-weight: 300; height: 54px; + width: 100%; &.active { font-weight: 600; } } } ${TripFormClasses.ModeSelector.SecondaryRow} { - margin: 0 -10px 10px; + margin: 0px -15px 10px; ${TripFormClasses.ModeButton.Button} { - font-size: 150%; - font-weight: 600; + font-size: 130%; + font-weight: 800; height: 46px; + > svg { + margin: 0 0.20em; + } } } ${TripFormClasses.ModeSelector.TertiaryRow} { - margin: 0 -10px 10px; + font-size: 80%; + font-weight: 300; + margin: 0px -15px 10px; + text-align: center; ${TripFormClasses.ModeButton.Button} { - font-size: 90%; height: 36px; } } - ${TripFormClasses.SubmodeSelector.Row} { + font-size: 12px; > * { padding: 3px 5px 3px 0px; } @@ -147,38 +149,46 @@ export const StyledSettingsSelectorPanel = styled(SettingsSelectorPanel)` padding-right: 0px; } ${TripFormClasses.ModeButton.Button} { - padding: 6px 12px; + height: 35px; } svg, img { margin-left: 0px; } } + ${TripFormClasses.SubmodeSelector} { + ${TripFormClasses.SettingLabel} { + margin-bottom: 0; + } + } ${TripFormClasses.SubmodeSelector.InlineRow} { margin: -3px 0px; - } - - ${TripFormClasses.SubmodeSelector} { - ${modeButtonButtonCss} + svg, + img { + height: 18px; + max-width: 32px; + } } ` export const StyledDateTimeSelector = styled(DateTimeSelector)` - margin: 0 -15px 20px; + margin: 0 -15px 15px; + ${TripFormClasses.DateTimeSelector.DateTimeRow} { - margin-top: 20px; + margin: 20px 0px 15px; + input { + ${commonInputCss} + background-color: #fff; + border: 0; + border-bottom: 1px solid #000; + box-shadow: none; + outline: none; + text-align: center; + } } - - input { - ${commonInputCss} - -webkit-appearance: textfield; - -moz-appearance: textfield; - appearance: textfield; - box-shadow: none; - font-size: 16px; - height: 34px; - text-align: center; /* For legacy browsers. */ + ${TripFormClasses.ModeButton.Button} { + ${commonButtonCss} + font-size: 14px; + height: 35px; } - - ${modeButtonButtonCss} ` From bc67a452ca1b9f9b94fcbe66e3b7d47524b6edad Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 15 May 2020 09:41:10 -0400 Subject: [PATCH 110/115] fix(margins): Fix trip form margins --- lib/components/form/styled.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/components/form/styled.js b/lib/components/form/styled.js index 1776e86b9..3d0909694 100644 --- a/lib/components/form/styled.js +++ b/lib/components/form/styled.js @@ -110,7 +110,7 @@ export const StyledSettingsSelectorPanel = styled(SettingsSelectorPanel)` ${TripFormClasses.ModeSelector.MainRow} { box-sizing: border-box; font-size: 170%; - margin: 0px -15px 18px; + margin: 0px -10px 18px; padding: 0px 5px; ${TripFormClasses.ModeButton.Button} { height: 54px; @@ -121,7 +121,7 @@ export const StyledSettingsSelectorPanel = styled(SettingsSelectorPanel)` } } ${TripFormClasses.ModeSelector.SecondaryRow} { - margin: 0px -15px 10px; + margin: 0px -10px 10px; ${TripFormClasses.ModeButton.Button} { font-size: 130%; font-weight: 800; @@ -134,7 +134,7 @@ export const StyledSettingsSelectorPanel = styled(SettingsSelectorPanel)` ${TripFormClasses.ModeSelector.TertiaryRow} { font-size: 80%; font-weight: 300; - margin: 0px -15px 10px; + margin: 0px -10px 10px; text-align: center; ${TripFormClasses.ModeButton.Button} { height: 36px; From e0373e83d80eb03db32e41d9af7980098ed6dd16 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 15 May 2020 09:50:27 -0400 Subject: [PATCH 111/115] style(results-screen): Reorder vars in render() --- lib/components/mobile/results-screen.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/components/mobile/results-screen.js b/lib/components/mobile/results-screen.js index 3c6b76917..209bacca4 100644 --- a/lib/components/mobile/results-screen.js +++ b/lib/components/mobile/results-screen.js @@ -96,6 +96,7 @@ class MobileResultsScreen extends Component { render () { const { + activeItineraryIndex, error, itineraryClass, itineraryFooter, @@ -103,8 +104,7 @@ class MobileResultsScreen extends Component { query, realtimeEffects, resultCount, - useRealtime, - activeItineraryIndex + useRealtime } = this.props const { expanded } = this.state From 6c10ea651c951d0497289ac8111d7adf867dedc1 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Thu, 21 May 2020 10:54:57 -0400 Subject: [PATCH 112/115] fix(css): Match trimet style for TripDetails, itinerary footer, PlaceName. --- lib/components/narrative/connected-trip-details.js | 7 +++---- .../narrative/line-itin/connected-itinerary-body.js | 9 ++++++++- lib/components/narrative/line-itin/line-itinerary.js | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/components/narrative/connected-trip-details.js b/lib/components/narrative/connected-trip-details.js index f34205233..f094f559d 100644 --- a/lib/components/narrative/connected-trip-details.js +++ b/lib/components/narrative/connected-trip-details.js @@ -4,10 +4,9 @@ import { connect } from 'react-redux' import styled from 'styled-components' const TripDetails = styled(TripDetailsBase)` - border: 2px solid gray; - border-radius: 0; - padding: 6px 10px; - margin: 16px 0 10px; + b { + font-weight: 600; + } ` // Connect imported TripDetails class to redux store. diff --git a/lib/components/narrative/line-itin/connected-itinerary-body.js b/lib/components/narrative/line-itin/connected-itinerary-body.js index a1e9cf8ca..5d36ac58f 100644 --- a/lib/components/narrative/line-itin/connected-itinerary-body.js +++ b/lib/components/narrative/line-itin/connected-itinerary-body.js @@ -3,6 +3,7 @@ import TransitLegSummary from '@opentripplanner/itinerary-body/lib/defaults/tran import ItineraryBody from '@opentripplanner/itinerary-body/lib/otp-react-redux/itinerary-body' import LineColumnContent from '@opentripplanner/itinerary-body/lib/otp-react-redux/line-column-content' import PlaceName from '@opentripplanner/itinerary-body/lib/otp-react-redux/place-name' +import { PlaceName as PlaceNameWrapper } from '@opentripplanner/itinerary-body/lib/styled' import RouteDescription from '@opentripplanner/itinerary-body/lib/otp-react-redux/route-description' import React, { Component } from 'react' import { connect } from 'react-redux' @@ -21,6 +22,12 @@ const ItineraryBodyContainer = styled.div` padding: 20px 0px; ` +const StyledItineraryBody = styled(ItineraryBody)` + ${PlaceNameWrapper} { + font-weight: inherit; + } +` + class ConnectedItineraryBody extends Component { /** avoid rerendering if the itinerary to display hasn't changed */ shouldComponentUpdate (nextProps, nextState) { @@ -40,7 +47,7 @@ class ConnectedItineraryBody extends Component { return ( - + Date: Fri, 5 Jun 2020 21:44:25 -0700 Subject: [PATCH 113/115] refactor: remove imports that are no longer needed --- lib/index.css | 1 - yarn.lock | 23 +++-------------------- 2 files changed, 3 insertions(+), 21 deletions(-) diff --git a/lib/index.css b/lib/index.css index d768385b0..fa44435f1 100644 --- a/lib/index.css +++ b/lib/index.css @@ -4,7 +4,6 @@ @import url(node_modules/font-awesome/css/font-awesome.css); @import url(node_modules/react-dates/lib/css/_datepicker.css); @import url(node_modules/transitive-js/lib/transitive.css); -@import url(node_modules/leaflet.polylinemeasure/Leaflet.PolylineMeasure.css); @import url(lib/components/app/app.css); @import url(lib/components/map/map.css); diff --git a/yarn.lock b/yarn.lock index 791a418f2..4ee9212d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1070,7 +1070,7 @@ "@conveyal/lonlat" "^1.3.0" geocoder-arcgis "^2.0.4" -"@conveyal/lonlat@^1.1.0", "@conveyal/lonlat@^1.1.2", "@conveyal/lonlat@^1.3.0", "@conveyal/lonlat@^1.4.0": +"@conveyal/lonlat@^1.1.2", "@conveyal/lonlat@^1.3.0", "@conveyal/lonlat@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@conveyal/lonlat/-/lonlat-1.4.0.tgz#18a5c1349078a779e710d24af11bc02b24127ba0" integrity sha512-ag1FcRuwRGAZgeZ4e3sUq+gblf1Pgma2c9SaIVXluIrgsZ9Lrq7xhCbV0ErN8chyg/OCOoG8m/l3mgzbycQCnQ== @@ -1248,11 +1248,6 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^12.0.9" -"@mapbox/polyline@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@mapbox/polyline/-/polyline-0.2.0.tgz#6e25980744aa22331f94b645a542c02d3fcfee97" - integrity sha1-biWYB0SqIjMflLZFpULALT/P7pc= - "@mapbox/polyline@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@mapbox/polyline/-/polyline-1.1.0.tgz#7bdd1da3a25c1d059af3897e0ee581b7c7b80243" @@ -5385,7 +5380,7 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" -deep-equal@^1.0.0, deep-equal@^1.0.1: +deep-equal@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= @@ -9148,10 +9143,6 @@ lead@^1.0.0: dependencies: flush-write-stream "^1.0.2" -"leaflet.polylinemeasure@github:ppete2/Leaflet.PolylineMeasure": - version "1.0.0" - resolved "https://codeload.github.com/ppete2/Leaflet.PolylineMeasure/tar.gz/8fed0cbe7c17dae4e1ce0852fa243d8467325a77" - leaflet@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.6.0.tgz#aecbb044b949ec29469eeb31c77a88e2f448f308" @@ -13045,14 +13036,6 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-addons-shallow-compare@^15.4.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react-addons-shallow-compare/-/react-addons-shallow-compare-15.6.2.tgz#198a00b91fc37623db64a28fd17b596ba362702f" - integrity sha1-GYoAuR/DdiPbZKKP0XtZa6NicC8= - dependencies: - fbjs "^0.8.4" - object-assign "^4.1.0" - react-bootstrap@^0.32.1: version "0.32.4" resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-0.32.4.tgz#8efc4cbfc4807215d75b7639bee0d324c8d740d1" @@ -15481,7 +15464,7 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -transitive-js@^0.13.2: +transitive-js@^0.13.0, transitive-js@^0.13.2: version "0.13.2" resolved "https://registry.yarnpkg.com/transitive-js/-/transitive-js-0.13.2.tgz#ca8adde4ccf5c1fb02623df287ac3c91499c566a" integrity sha512-2r6uoA7pCOyMeecTOWgT+MJMa+gVmLlBR2+s1YKYxBYmusS5Lx24ICqc3RVA2+yE36k9fe+ReMBOcBCoK2mY6w== From c3fc89f9ef036292c5899e90ae70216b9fa40942 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com> Date: Fri, 5 Jun 2020 08:47:47 -0400 Subject: [PATCH 114/115] fix(BaseMap): Pass baseLayers from map config to BaseMap. --- lib/components/map/default-map.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/components/map/default-map.js b/lib/components/map/default-map.js index aba0860d7..32e63111b 100644 --- a/lib/components/map/default-map.js +++ b/lib/components/map/default-map.js @@ -85,6 +85,7 @@ class DefaultMap extends Component { return ( Date: Thu, 11 Jun 2020 17:21:55 -0700 Subject: [PATCH 115/115] refactor: update to latest otp-ui packages --- .../viewers/__snapshots__/stop-viewer.js.snap | 30 +-- package.json | 40 +-- yarn.lock | 228 +++++++++--------- 3 files changed, 149 insertions(+), 149 deletions(-) diff --git a/__tests__/components/viewers/__snapshots__/stop-viewer.js.snap b/__tests__/components/viewers/__snapshots__/stop-viewer.js.snap index 80aa7a67b..612b1c1b7 100644 --- a/__tests__/components/viewers/__snapshots__/stop-viewer.js.snap +++ b/__tests__/components/viewers/__snapshots__/stop-viewer.js.snap @@ -376,7 +376,7 @@ exports[`components > viewers > stop viewer should render countdown times after From Location Icon @@ -390,7 +390,7 @@ exports[`components > viewers > stop viewer should render countdown times after onClick={[Function]} >