diff --git a/configurations/default/settings.yml b/configurations/default/settings.yml
index ce82a2e..149bcc3 100644
--- a/configurations/default/settings.yml
+++ b/configurations/default/settings.yml
@@ -1,7 +1,7 @@
cloudfront: EJKZ46R7IC1BB
entries:
- src/index.js:assets/index.js
- - src/containers/indianapolis/style.css:assets/index.css
+ - src/index.css:assets/index.css
env: development
flyle: true
s3bucket: taui
diff --git a/package.json b/package.json
index b566184..debe378 100644
--- a/package.json
+++ b/package.json
@@ -24,11 +24,11 @@
},
"homepage": "https://github.com/conveyal/taui",
"devDependencies": {
- "mastarm": "^2.0.0",
- "semantic-release": "^4.3.5"
+ "mastarm": "^3.0.0",
+ "semantic-release": "^6.3.2"
},
"dependencies": {
- "@conveyal/woonerf": "^0.2.1",
+ "@conveyal/woonerf": "^0.3.1",
"browsochrones": "^0.9.1",
"color": "^0.11.1",
"debug": "^2.2.0",
diff --git a/src/actions/index.js b/src/actions/index.js
index 7b13893..3a52a1f 100644
--- a/src/actions/index.js
+++ b/src/actions/index.js
@@ -5,7 +5,7 @@ import {createAction} from 'redux-actions'
import fetch, {
incrementFetches as incrementWork,
decrementFetches as decrementWork
-} from '@conveyal/woonerf/build/lib/fetch'
+} from '@conveyal/woonerf/fetch'
import featureToLabel from '../utils/feature-to-label'
import {setKeyTo} from '../utils/hash'
diff --git a/src/containers/indianapolis/index.js b/src/components/application.js
similarity index 82%
rename from src/containers/indianapolis/index.js
rename to src/components/application.js
index f84e302..ee0fcaf 100644
--- a/src/containers/indianapolis/index.js
+++ b/src/components/application.js
@@ -1,28 +1,17 @@
import lonlng from 'lonlng'
import React, {Component, PropTypes} from 'react'
-import {connect} from 'react-redux'
-import {
- clearEnd,
- clearIsochrone,
- clearStart,
- setBaseActive,
- setComparisonActive,
- updateDestination,
- updateOrigin,
- updateSelectedTimeCutoff
-} from '../../actions'
-import featureToLabel from '../../utils/feature-to-label'
+import featureToLabel from '../utils/feature-to-label'
import Form from './form'
-import Fullscreen from '../../components/fullscreen'
-import Icon from '../../components/icon'
-import Log from '../../components/log'
+import Fullscreen from './fullscreen'
+import Icon from './icon'
+import Log from './log'
import Map from './map'
-import messages from '../../utils/messages'
-import RouteCard from '../../components/route-card'
-import initializeBrowsochrones from '../../utils/initialize-browsochrones'
+import messages from '../utils/messages'
+import RouteCard from './route-card'
+import initializeBrowsochrones from '../utils/initialize-browsochrones'
-class Indianapolis extends Component {
+export default class Application extends Component {
static propTypes = {
actionLog: PropTypes.arrayOf(PropTypes.object),
browsochrones: PropTypes.object.isRequired,
@@ -245,23 +234,3 @@ class Indianapolis extends Component {
)
}
}
-
-function mapStateToProps (state, ownProps) {
- return state
-}
-
-function mapDispatchToProps (dispatch, ownProps) {
- return {
- clearEnd: () => dispatch(clearEnd()),
- clearIsochrone: () => dispatch(clearIsochrone()),
- clearStart: () => dispatch(clearStart()),
- initializeBrowsochrones: (actions) => dispatch(actions),
- moveOrigin: (options) => dispatch(updateOrigin(options)),
- moveDestination: (options) => dispatch(updateDestination(options)),
- onTimeCutoffChange: (options) => dispatch(updateSelectedTimeCutoff(options)),
- setBaseActive: () => dispatch(setBaseActive()),
- setComparisonActive: () => dispatch(setComparisonActive())
- }
-}
-
-export default connect(mapStateToProps, mapDispatchToProps)(Indianapolis)
diff --git a/src/components/deep-equal.js b/src/components/deep-equal.js
deleted file mode 100644
index 7636209..0000000
--- a/src/components/deep-equal.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import isEqual from 'lodash.isequal'
-import {Component} from 'react'
-
-function shouldComponentUpdate (newProps, newState) {
- return !isEqual(newProps, this.props) || !isEqual(newState, this.state)
-}
-
-export default class DeepEqual extends Component {}
-DeepEqual.prototype.shouldComponentUpdate = shouldComponentUpdate
-
-export function pure (Component) {
- Component.prototype.shouldComponentUpdate = shouldComponentUpdate
- return Component
-}
diff --git a/src/containers/indianapolis/form.js b/src/components/form.js
similarity index 89%
rename from src/containers/indianapolis/form.js
rename to src/components/form.js
index d716633..fa026be 100644
--- a/src/containers/indianapolis/form.js
+++ b/src/components/form.js
@@ -1,12 +1,12 @@
+import Pure from '@conveyal/woonerf/components/pure'
import React from 'react'
import Geocoder from 'react-select-geocoder'
-import DeepEqual from '../../components/deep-equal'
-import featureToLabel from '../../utils/feature-to-label'
-import {search} from '../../utils/mapbox-geocoder'
-import messages from '../../utils/messages'
+import featureToLabel from '../utils/feature-to-label'
+import {search} from '../utils/mapbox-geocoder'
+import messages from '../utils/messages'
-export default class Form extends DeepEqual {
+export default class Form extends Pure {
render () {
const {
geocoder,
diff --git a/src/components/fullscreen/index.js b/src/components/fullscreen/index.js
index 1d27268..54f31a0 100644
--- a/src/components/fullscreen/index.js
+++ b/src/components/fullscreen/index.js
@@ -1,7 +1,8 @@
+import Pure from '@conveyal/woonerf/components/pure'
import React from 'react'
-import {pure} from '../deep-equal'
-
-const Fullscreen = (props) =>
{props.children}
-
-export default pure(Fullscreen)
+export default class Fullscreen extends Pure {
+ render () {
+ return {this.props.children}
+ }
+}
diff --git a/src/components/icon.js b/src/components/icon.js
index 197a18d..317718f 100644
--- a/src/components/icon.js
+++ b/src/components/icon.js
@@ -1,15 +1,17 @@
+import Pure from '@conveyal/woonerf/components/pure'
import React from 'react'
-import {pure} from './deep-equal'
+export default class Icon extends Pure {
+ render () {
+ const {
+ className = '',
+ type,
+ ...props
+ } = this.props
-const Icon = ({
- className = '',
- type,
- ...props
-}) =>
-
-
-export default pure(Icon)
+ return
+ }
+}
diff --git a/src/components/log-item/index.js b/src/components/log-item/index.js
index 14ec012..388c5ec 100644
--- a/src/components/log-item/index.js
+++ b/src/components/log-item/index.js
@@ -1,11 +1,10 @@
+import Pure from '@conveyal/woonerf/components/pure'
import React, {PropTypes} from 'react'
import moment from 'moment'
-import DeepEqual from '../deep-equal'
-
const format = 'HH:mm:ss'
-export default class LogItem extends DeepEqual {
+export default class LogItem extends Pure {
static propTypes = {
createdAt: PropTypes.object,
level: PropTypes.string,
diff --git a/src/components/log/index.js b/src/components/log/index.js
index 4ad95cf..8442a84 100644
--- a/src/components/log/index.js
+++ b/src/components/log/index.js
@@ -1,9 +1,9 @@
+import Pure from '@conveyal/woonerf/components/pure'
import React, {PropTypes} from 'react'
-import DeepEqual from '../deep-equal'
import LogItem from '../log-item'
-export default class Log extends DeepEqual {
+export default class Log extends Pure {
static propTypes = {
items: PropTypes.arrayOf(PropTypes.object).isRequired
};
diff --git a/src/containers/indianapolis/map.js b/src/components/map.js
similarity index 88%
rename from src/containers/indianapolis/map.js
rename to src/components/map.js
index 2c34781..a6201a1 100644
--- a/src/containers/indianapolis/map.js
+++ b/src/components/map.js
@@ -1,24 +1,25 @@
+import Pure from '@conveyal/woonerf/components/pure'
import {Browser} from 'leaflet'
-import {mapbox} from 'mapbox.js'
import React, {PropTypes} from 'react'
import {GeoJson, Map as LeafletMap, Marker, Popup, TileLayer, ZoomControl} from 'react-leaflet'
-import DeepEqual from '../../components/deep-equal'
-import Icon from '../../components/icon'
-import messages from '../../utils/messages'
-import TransitiveLayer from '../../components/transitive-map-layer'
-import transitiveStyle from './transitive-style'
+import Icon from './icon'
+import leafletIcon from '../utils/leaflet-icons'
+import messages from '../utils/messages'
+import TransitiveLayer from './transitive-map-layer'
+import transitiveStyle from '../transitive-style'
-const startIcon = mapbox.marker.icon({
- 'marker-size': 'large',
- 'marker-symbol': 'star',
- 'marker-color': '#4269a4'
+const startIcon = leafletIcon({
+ icon: 'play',
+ markerColor: 'darkblue'
})
-const endIcon = mapbox.marker.icon({
- 'marker-color': '#ff8c00'
+
+const endIcon = leafletIcon({
+ icon: 'stop',
+ markerColor: 'orange'
})
-export default class Map extends DeepEqual {
+export default class Map extends Pure {
static propTypes = {
centerCoordinates: PropTypes.arrayOf(PropTypes.number),
clearStartAndEnd: PropTypes.func.isRequired,
diff --git a/src/components/route-card.js b/src/components/route-card.js
index 73f6844..c4f8aa1 100644
--- a/src/components/route-card.js
+++ b/src/components/route-card.js
@@ -1,14 +1,14 @@
+import Pure from '@conveyal/woonerf/components/pure'
import Color from 'color'
import React from 'react'
import toCapitalCase from 'lodash.capitalize'
import toSpaceCase from 'lodash.lowercase'
import unique from 'lodash.uniq'
-import DeepEqual from './deep-equal'
import Icon from './icon'
import messages from '../utils/messages'
-export default class RouteCard extends DeepEqual {
+export default class RouteCard extends Pure {
render () {
const {
active,
diff --git a/src/components/timecutoff-select.js b/src/components/timecutoff-select.js
deleted file mode 100644
index 3342837..0000000
--- a/src/components/timecutoff-select.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import React, {PropTypes} from 'react'
-import {connect} from 'react-redux'
-
-import DeepEqual from './deep-equal'
-
-class TimeCutoffSelect extends DeepEqual {
- static propTypes = {
- className: PropTypes.string,
- onChange: PropTypes.func.isRequired,
- times: PropTypes.arrayOf(PropTypes.object).isRequired,
- selected: PropTypes.number
- };
-
- render () {
- const {className, onChange, times, selected} = this.props
-
- return (
-
- )
- }
-}
-
-function mapStateToProps (state, currentProps) {
- return state.timeCutoff
-}
-
-export default connect(mapStateToProps)(TimeCutoffSelect)
diff --git a/src/containers/application.js b/src/containers/application.js
new file mode 100644
index 0000000..4512471
--- /dev/null
+++ b/src/containers/application.js
@@ -0,0 +1,33 @@
+import {connect} from 'react-redux'
+
+import {
+ clearEnd,
+ clearIsochrone,
+ clearStart,
+ setBaseActive,
+ setComparisonActive,
+ updateDestination,
+ updateOrigin,
+ updateSelectedTimeCutoff
+} from '../actions'
+import Application from '../components/application'
+
+function mapStateToProps (state, ownProps) {
+ return state
+}
+
+function mapDispatchToProps (dispatch, ownProps) {
+ return {
+ clearEnd: () => dispatch(clearEnd()),
+ clearIsochrone: () => dispatch(clearIsochrone()),
+ clearStart: () => dispatch(clearStart()),
+ initializeBrowsochrones: (actions) => dispatch(actions),
+ moveOrigin: (options) => dispatch(updateOrigin(options)),
+ moveDestination: (options) => dispatch(updateDestination(options)),
+ onTimeCutoffChange: (options) => dispatch(updateSelectedTimeCutoff(options)),
+ setBaseActive: () => dispatch(setBaseActive()),
+ setComparisonActive: () => dispatch(setComparisonActive())
+ }
+}
+
+export default connect(mapStateToProps, mapDispatchToProps)(Application)
diff --git a/src/containers/indianapolis/style.css b/src/index.css
similarity index 98%
rename from src/containers/indianapolis/style.css
rename to src/index.css
index b085900..98c2b63 100644
--- a/src/containers/indianapolis/style.css
+++ b/src/index.css
@@ -8,6 +8,7 @@
@import url(src/components/log/style.css);
@import url(src/components/log-item/style.css);
@import url(src/components/transitive-map-layer/style.css);
+@import url(src/utils/leaflet-icons/index.css);
body {
font-size: 16px;
diff --git a/src/index.js b/src/index.js
index 764c439..0ae2515 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,9 +1,9 @@
-import mount from '@conveyal/woonerf/build/lib/mount'
+import mount from '@conveyal/woonerf/mount'
-import Indianapolis from './containers/indianapolis'
+import Application from './containers/application'
import reducers from './reducers'
mount({
- app: Indianapolis,
+ app: Application,
reducers
})
diff --git a/src/reducers/ui.js b/src/reducers/ui.js
index 17ce603..38e5bb7 100644
--- a/src/reducers/ui.js
+++ b/src/reducers/ui.js
@@ -1,4 +1,4 @@
-import {DECREMENT_FETCH, INCREMENT_FETCH} from '@conveyal/woonerf/build/lib/fetch'
+import {DECREMENT_FETCH, INCREMENT_FETCH} from '@conveyal/woonerf/fetch'
import {handleActions} from 'redux-actions'
export default handleActions({
diff --git a/src/containers/indianapolis/transitive-style.js b/src/transitive-style.js
similarity index 100%
rename from src/containers/indianapolis/transitive-style.js
rename to src/transitive-style.js
diff --git a/src/utils/leaflet-icons/images/markers-matte.png b/src/utils/leaflet-icons/images/markers-matte.png
new file mode 100644
index 0000000..1782586
Binary files /dev/null and b/src/utils/leaflet-icons/images/markers-matte.png differ
diff --git a/src/utils/leaflet-icons/images/markers-matte@2x.png b/src/utils/leaflet-icons/images/markers-matte@2x.png
new file mode 100644
index 0000000..c981244
Binary files /dev/null and b/src/utils/leaflet-icons/images/markers-matte@2x.png differ
diff --git a/src/utils/leaflet-icons/images/markers-plain.png b/src/utils/leaflet-icons/images/markers-plain.png
new file mode 100644
index 0000000..763f358
Binary files /dev/null and b/src/utils/leaflet-icons/images/markers-plain.png differ
diff --git a/src/utils/leaflet-icons/images/markers-shadow.png b/src/utils/leaflet-icons/images/markers-shadow.png
new file mode 100644
index 0000000..33cf955
Binary files /dev/null and b/src/utils/leaflet-icons/images/markers-shadow.png differ
diff --git a/src/utils/leaflet-icons/images/markers-shadow@2x.png b/src/utils/leaflet-icons/images/markers-shadow@2x.png
new file mode 100644
index 0000000..1116503
Binary files /dev/null and b/src/utils/leaflet-icons/images/markers-shadow@2x.png differ
diff --git a/src/utils/leaflet-icons/images/markers-soft.png b/src/utils/leaflet-icons/images/markers-soft.png
new file mode 100644
index 0000000..9ee4c34
Binary files /dev/null and b/src/utils/leaflet-icons/images/markers-soft.png differ
diff --git a/src/utils/leaflet-icons/images/markers-soft@2x.png b/src/utils/leaflet-icons/images/markers-soft@2x.png
new file mode 100644
index 0000000..540ce63
Binary files /dev/null and b/src/utils/leaflet-icons/images/markers-soft@2x.png differ
diff --git a/src/utils/leaflet-icons/index.css b/src/utils/leaflet-icons/index.css
new file mode 100644
index 0000000..1d7d3e7
--- /dev/null
+++ b/src/utils/leaflet-icons/index.css
@@ -0,0 +1,119 @@
+
+/* Marker setup */
+.awesome-marker {
+ background: url('images/markers-soft.png') no-repeat 0 0;
+ width: 35px;
+ height: 46px;
+ position:absolute;
+ left:0;
+ top:0;
+ display: block;
+ text-align: center;
+}
+
+.awesome-marker-shadow {
+ background: url('images/markers-shadow.png') no-repeat 0 0;
+ width: 36px;
+ height: 16px;
+}
+
+/* Retina displays */
+@media (min--moz-device-pixel-ratio: 1.5),(-o-min-device-pixel-ratio: 3/2),
+(-webkit-min-device-pixel-ratio: 1.5),(min-device-pixel-ratio: 1.5),(min-resolution: 1.5dppx) {
+ .awesome-marker {
+ background-image: url('images/markers-soft@2x.png');
+ background-size: 720px 46px;
+ }
+ .awesome-marker-shadow {
+ background-image: url('images/markers-shadow@2x.png');
+ background-size: 35px 16px;
+ }
+}
+
+.awesome-marker i {
+ color: #333;
+ margin-top: 10px;
+ display: inline-block;
+ font-size: 14px;
+}
+
+.awesome-marker .icon-white {
+ color: #fff;
+}
+
+/* Colors */
+.awesome-marker-icon-red {
+ background-position: 0 0;
+}
+
+.awesome-marker-icon-darkred {
+ background-position: -180px 0;
+}
+
+.awesome-marker-icon-lightred {
+ background-position: -360px 0;
+}
+
+.awesome-marker-icon-orange {
+ background-position: -36px 0;
+}
+
+.awesome-marker-icon-beige {
+ background-position: -396px 0;
+}
+
+.awesome-marker-icon-green {
+ background-position: -72px 0;
+}
+
+.awesome-marker-icon-darkgreen {
+ background-position: -252px 0;
+}
+
+.awesome-marker-icon-lightgreen {
+ background-position: -432px 0;
+}
+
+.awesome-marker-icon-blue {
+ background-position: -108px 0;
+}
+
+.awesome-marker-icon-darkblue {
+ background-position: -216px 0;
+}
+
+.awesome-marker-icon-lightblue {
+ background-position: -468px 0;
+}
+
+.awesome-marker-icon-purple {
+ background-position: -144px 0;
+}
+
+.awesome-marker-icon-darkpurple {
+ background-position: -288px 0;
+}
+
+.awesome-marker-icon-pink {
+ background-position: -504px 0;
+}
+
+.awesome-marker-icon-cadetblue {
+ background-position: -324px 0;
+}
+
+.awesome-marker-icon-white {
+ background-position: -574px 0;
+}
+
+.awesome-marker-icon-gray {
+ background-position: -648px 0;
+}
+
+.awesome-marker-icon-lightgray {
+ background-position: -612px 0;
+}
+
+.awesome-marker-icon-black {
+ background-position: -682px 0;
+}
diff --git a/src/utils/leaflet-icons/index.js b/src/utils/leaflet-icons/index.js
new file mode 100644
index 0000000..f249152
--- /dev/null
+++ b/src/utils/leaflet-icons/index.js
@@ -0,0 +1,103 @@
+import L from 'leaflet'
+
+const Icon = L.Icon.extend({
+ options: {
+ iconSize: [35, 45],
+ iconAnchor: [17, 42],
+ popupAnchor: [1, -32],
+ shadowAnchor: [10, 12],
+ shadowSize: [36, 16],
+ className: 'awesome-marker',
+ prefix: 'fa',
+ spinClass: 'fa-spin',
+ extraClasses: '',
+ icon: 'home',
+ markerColor: 'blue',
+ iconColor: 'white'
+ },
+
+ initialize: function (options) {
+ options = L.Util.setOptions(this, options)
+ },
+
+ createIcon: function () {
+ const div = document.createElement('div')
+ const options = this.options
+
+ if (options.icon) {
+ div.innerHTML = this._createInner()
+ }
+
+ if (options.bgPos) {
+ div.style.backgroundPosition = (-options.bgPos.x) + 'px ' + (-options.bgPos.y) + 'px'
+ }
+
+ this._setIconStyles(div, 'icon-' + options.markerColor)
+ return div
+ },
+
+ _createInner: function () {
+ let iconClass
+ let iconSpinClass = ''
+ let iconColorClass = ''
+ let iconColorStyle = ''
+ const options = this.options
+
+ if (options.icon.slice(0, options.prefix.length + 1) === options.prefix + '-') {
+ iconClass = options.icon
+ } else {
+ iconClass = options.prefix + '-' + options.icon
+ }
+
+ if (options.spin && typeof options.spinClass === 'string') {
+ iconSpinClass = options.spinClass
+ }
+
+ if (options.iconColor) {
+ if (options.iconColor === 'white' || options.iconColor === 'black') {
+ iconColorClass = 'icon-' + options.iconColor
+ } else {
+ iconColorStyle = "style='color: " + options.iconColor + "' "
+ }
+ }
+
+ return ``
+ },
+
+ _setIconStyles: function (img, name) {
+ const options = this.options
+ const size = L.point(options[name === 'shadow' ? 'shadowSize' : 'iconSize'])
+ let anchor
+
+ if (name === 'shadow') {
+ anchor = L.point(options.shadowAnchor || options.iconAnchor)
+ } else {
+ anchor = L.point(options.iconAnchor)
+ }
+
+ if (!anchor && size) {
+ anchor = size.divideBy(2, true)
+ }
+
+ img.className = 'awesome-marker-' + name + ' ' + options.className
+
+ if (anchor) {
+ img.style.marginLeft = (-anchor.x) + 'px'
+ img.style.marginTop = (-anchor.y) + 'px'
+ }
+
+ if (size) {
+ img.style.width = size.x + 'px'
+ img.style.height = size.y + 'px'
+ }
+ },
+
+ createShadow: function () {
+ const div = document.createElement('div')
+
+ this._setIconStyles(div, 'shadow')
+ return div
+ }
+})
+
+export default function (options) { return new Icon(options) }
diff --git a/yarn.lock b/yarn.lock
index c4232c1..e835d33 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,9 +2,13 @@
# yarn lockfile v1
-"@conveyal/woonerf@^0.2.1":
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/@conveyal/woonerf/-/woonerf-0.2.1.tgz#6147da15aabf6f2747dea1dfb39d66c393be814a"
+"@bahmutov/parse-github-repo-url@^0.1.0":
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/@bahmutov/parse-github-repo-url/-/parse-github-repo-url-0.1.2.tgz#6311dfbe7fe00ac464b9069d0e2684a739aeb69b"
+
+"@conveyal/woonerf@^0.3.1":
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/@conveyal/woonerf/-/woonerf-0.3.1.tgz#a2d2e74783df51398918c5751e7918f43b1d8a68"
dependencies:
auth0-js "^7.3.0"
auth0-lock "^10.5.1"
@@ -15,6 +19,7 @@
react "^15.3.2"
react-addons-perf "^15.3.2"
react-dom "^15.3.2"
+ react-redux "^4.4.5"
react-router "^3.0.0"
react-router-redux "^4.0.6"
redux "^3.6.0"
@@ -27,12 +32,13 @@
dependencies:
conventional-changelog "0.0.17"
-"@semantic-release/condition-travis@^4.1.2":
- version "4.1.4"
- resolved "https://registry.yarnpkg.com/@semantic-release/condition-travis/-/condition-travis-4.1.4.tgz#d5de6aca17819420dfc32ed542295a97f977f963"
+"@semantic-release/condition-travis@^5.0.2":
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/@semantic-release/condition-travis/-/condition-travis-5.0.2.tgz#f4bb777a6c6db5565d70754a9b629233bd4a6597"
dependencies:
"@semantic-release/error" "^1.0.0"
semver "^5.0.3"
+ travis-deploy-once "1.0.0-node-0.10-support"
"@semantic-release/error@^1.0.0":
version "1.0.0"
@@ -301,6 +307,12 @@ async@1.x, async@^1.4.0, async@^1.4.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+async@^2.0.1:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4"
+ dependencies:
+ lodash "^4.14.0"
+
async@~0.2.6:
version "0.2.10"
resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
@@ -931,9 +943,17 @@ babel-plugin-transform-system-register@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-system-register/-/babel-plugin-transform-system-register-0.0.1.tgz#9dff40390c2763ac518f0b2ad7c5ea4f65a5be25"
-babel-preset-env@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-0.0.6.tgz#cda63a020069098fad12272a7a447a7c5bafb3c8"
+babel-polyfill@^6.16.0:
+ version "6.16.0"
+ resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.16.0.tgz#2d45021df87e26a374b6d4d1a9c65964d17f2422"
+ dependencies:
+ babel-runtime "^6.9.1"
+ core-js "^2.4.0"
+ regenerator-runtime "^0.9.5"
+
+babel-preset-env@^0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-0.0.7.tgz#c3026e3022f1014c400d6ae7fe002e0e1cdb8661"
dependencies:
babel-plugin-check-es2015-constants "^6.3.13"
babel-plugin-syntax-trailing-function-commas "^6.13.0"
@@ -1094,7 +1114,7 @@ binary-extensions@^1.0.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d"
-bl@^1.0.0:
+bl@^1.0.0, bl@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398"
dependencies:
@@ -1106,7 +1126,7 @@ block-stream@*:
dependencies:
inherits "~2.0.0"
-bluebird@^3.0.5, bluebird@^3.3.4:
+bluebird@^3.0.5, bluebird@^3.3.4, bluebird@^3.4.1, bluebird@^3.4.6:
version "3.4.6"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.6.tgz#01da8d821d87813d158967e743d5fe6c62cf8c0f"
@@ -2593,6 +2613,14 @@ forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+form-data@~1.0.0-rc4:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.1.tgz#ae315db9a4907fa065502304a66d7733475ee37c"
+ dependencies:
+ async "^2.0.1"
+ combined-stream "^1.0.5"
+ mime-types "^2.1.11"
+
form-data@~2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4"
@@ -2759,6 +2787,10 @@ github@^0.2.4:
dependencies:
mime "^1.2.11"
+github@~0.1.10:
+ version "0.1.16"
+ resolved "https://registry.yarnpkg.com/github/-/github-0.1.16.tgz#895d2a85b0feb7980d89ac0ce4f44dcaa03f17b5"
+
glob-base@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
@@ -4091,14 +4123,18 @@ lodash@4.15.0:
version "4.15.0"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.15.0.tgz#3162391d8f0140aa22cf8f6b3c34d6b7f63d3aa9"
-lodash@^3.6.0, lodash@^3.9.3:
+lodash@^3.6.0:
version "3.10.1"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
-lodash@^4.0.0, lodash@^4.1.0, lodash@^4.13.1, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0:
+lodash@^4.0.0, lodash@^4.1.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0:
version "4.17.2"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42"
+lodash@~1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.3.1.tgz#a4663b53686b895ff074e2ba504dfb76a8e2b770"
+
lodash@~3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.5.0.tgz#19bb3f4d51278f0b8c818ed145c74ecf9fe40e6d"
@@ -4182,9 +4218,9 @@ marked@^0.3.6:
version "0.3.6"
resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7"
-mastarm@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/mastarm/-/mastarm-2.0.0.tgz#4688e28616849c9b4438dd002e8b2c426bafed7f"
+mastarm@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/mastarm/-/mastarm-3.0.0.tgz#34cd141da7f08dd6c283e05a823001789ca17589"
dependencies:
aws-sdk "^2.4.2"
babel-core "^6.10.4"
@@ -4192,7 +4228,7 @@ mastarm@^2.0.0:
babel-jest "^16.0.0"
babel-plugin-add-module-exports "^0.2.1"
babel-plugin-transform-runtime "^6.9.0"
- babel-preset-env "^0.0.6"
+ babel-preset-env "^0.0.7"
babel-preset-react "^6.5.0"
babel-preset-stage-2 "^6.17.0"
babelify "^7.3.0"
@@ -4285,7 +4321,7 @@ mime-db@~1.24.0:
version "1.24.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.24.0.tgz#e2d13f939f0016c6e4e9ad25a8652f126c467f0c"
-mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7:
+mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7:
version "2.1.12"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.12.tgz#152ba256777020dd4663f54c2e7bc26381e71729"
dependencies:
@@ -4470,7 +4506,7 @@ nopt@3.x, nopt@^3.0.3, nopt@~3.0.1, nopt@~3.0.6:
dependencies:
abbrev "1"
-normalize-package-data@^1.0.3, "normalize-package-data@~1.0.1 || ^2.0.0":
+normalize-package-data@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-1.0.3.tgz#8be955b8907af975f1a4584ea8bb9b41492312f5"
dependencies:
@@ -4478,7 +4514,7 @@ normalize-package-data@^1.0.3, "normalize-package-data@~1.0.1 || ^2.0.0":
github-url-from-username-repo "^1.0.0"
semver "2 || 3 || 4"
-normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
+normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, "normalize-package-data@~1.0.1 || ^2.0.0":
version "2.3.5"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df"
dependencies:
@@ -4713,10 +4749,6 @@ parse-filepath@^1.0.1:
map-cache "^0.2.0"
path-root "^0.1.1"
-parse-github-repo-url@^1.0.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.3.0.tgz#d4de02d68e2e60f0d6a182e7a8cb21b6f38c730b"
-
parse-glob@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
@@ -5230,6 +5262,10 @@ qs@~5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-5.1.0.tgz#4d932e5c7ea411cca76a312d39a606200fd50cd9"
+qs@~6.2.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625"
+
query-string@^4.2.2:
version "4.2.3"
resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.2.3.tgz#9f27273d207a25a8ee4c7b8c74dcd45d556db822"
@@ -5572,7 +5608,21 @@ repeating@^2.0.0:
dependencies:
is-finite "^1.0.0"
-request@^2.55.0, request@^2.58.0, request@^2.67.0, request@^2.74.0, request@^2.75.0:
+request-promise-core@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6"
+ dependencies:
+ lodash "^4.13.1"
+
+request-promise@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-4.1.1.tgz#26021e4f6f56fd4c309f6bf1ebd8c97a95ac1fb5"
+ dependencies:
+ bluebird "^3.4.1"
+ request-promise-core "1.1.1"
+ stealthy-require "^1.0.0"
+
+request@^2.55.0, request@^2.58.0, request@^2.67.0, request@^2.74.0, request@^2.75.0, request@^2.78.0:
version "2.78.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.78.0.tgz#e1c8dec346e1c81923b24acdb337f11decabe9cc"
dependencies:
@@ -5597,6 +5647,32 @@ request@^2.55.0, request@^2.58.0, request@^2.67.0, request@^2.74.0, request@^2.7
tough-cookie "~2.3.0"
tunnel-agent "~0.4.1"
+request@~2.74.0:
+ version "2.74.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.74.0.tgz#7693ca768bbb0ea5c8ce08c084a45efa05b892ab"
+ dependencies:
+ aws-sign2 "~0.6.0"
+ aws4 "^1.2.1"
+ bl "~1.1.2"
+ caseless "~0.11.0"
+ combined-stream "~1.0.5"
+ extend "~3.0.0"
+ forever-agent "~0.6.1"
+ form-data "~1.0.0-rc4"
+ har-validator "~2.0.6"
+ hawk "~3.1.3"
+ http-signature "~1.1.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.7"
+ node-uuid "~1.4.7"
+ oauth-sign "~0.8.1"
+ qs "~6.2.0"
+ stringstream "~0.0.4"
+ tough-cookie "~2.3.0"
+ tunnel-agent "~0.4.1"
+
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@@ -5712,9 +5788,9 @@ run-async@^2.2.0:
is-promise "^2.1.0"
pinkie-promise "^2.0.0"
-run-auto@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/run-auto/-/run-auto-1.1.3.tgz#c2d5163fec1ab78b6345cdd3992fce032f671f88"
+run-auto@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/run-auto/-/run-auto-2.0.0.tgz#5f4353f58adbd6b74926489b4f259e1dad6a78d6"
dependencies:
dezalgo "^1.0.1"
@@ -5722,7 +5798,7 @@ run-parallel@^1.1.2:
version "1.1.6"
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.6.tgz#29003c9a2163e01e2d2dfc90575f2c6c1d61a039"
-run-series@^1.1.2:
+run-series@^1.1.3:
version "1.1.4"
resolved "https://registry.yarnpkg.com/run-series/-/run-series-1.1.4.tgz#89a73ddc5e75c9ef8ab6320c0a1600d6a41179b9"
@@ -5753,27 +5829,28 @@ sax@1.1.5, sax@>=0.6.0, sax@^1.1.4:
version "1.1.5"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.1.5.tgz#1da50a8d00cdecd59405659f5ff85349fe773743"
-semantic-release@^4.3.5:
- version "4.3.5"
- resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-4.3.5.tgz#df7319e7b18cb980829e9492e78d1962af6e3911"
+semantic-release@^6.3.2:
+ version "6.3.3"
+ resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-6.3.3.tgz#d94c62e7438fb9de59c76e23c3db60044da247b4"
dependencies:
+ "@bahmutov/parse-github-repo-url" "^0.1.0"
"@semantic-release/commit-analyzer" "^2.0.0"
- "@semantic-release/condition-travis" "^4.1.2"
+ "@semantic-release/condition-travis" "^5.0.2"
"@semantic-release/error" "^1.0.0"
"@semantic-release/last-release-npm" "^1.2.1"
"@semantic-release/release-notes-generator" "^2.0.0"
git-head "^1.2.1"
github "^0.2.4"
- lodash "^3.9.3"
+ lodash "^4.0.0"
nerf-dart "^1.0.0"
nopt "^3.0.3"
+ normalize-package-data "^2.3.4"
npmconf "^2.1.2"
- npmlog "^1.2.1"
- parse-github-repo-url "^1.0.0"
+ npmlog "^4.0.0"
require-relative "^0.8.7"
- run-auto "^1.1.2"
- run-series "^1.1.2"
- semver "^5.0.1"
+ run-auto "^2.0.0"
+ run-series "^1.1.3"
+ semver "^5.0.3"
"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@~5.3.0:
version "5.3.0"
@@ -6015,6 +6092,10 @@ stdout-stream@^1.4.0:
dependencies:
readable-stream "^2.0.1"
+stealthy-require@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.0.0.tgz#1a8ed8fc19a8b56268f76f5a1a3e3832b0c26200"
+
stream-browserify@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"
@@ -6363,6 +6444,25 @@ transitive-js@^0.9.2:
debug "^2.2.0"
priorityqueuejs "1.0.0"
+travis-ci@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/travis-ci/-/travis-ci-2.1.1.tgz#98696265af827ae3576f31aa06d876e74b4b082e"
+ dependencies:
+ github "~0.1.10"
+ lodash "~1.3.1"
+ request "~2.74.0"
+ underscore.string "~2.2.0rc"
+
+travis-deploy-once@1.0.0-node-0.10-support:
+ version "1.0.0-node-0.10-support"
+ resolved "https://registry.yarnpkg.com/travis-deploy-once/-/travis-deploy-once-1.0.0-node-0.10-support.tgz#98ecce7d95b2f4ba5dcdeeebf54b9df87713d5e6"
+ dependencies:
+ babel-polyfill "^6.16.0"
+ bluebird "^3.4.6"
+ request "^2.78.0"
+ request-promise "^4.1.1"
+ travis-ci "^2.1.1"
+
trim-newlines@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
@@ -6463,15 +6563,15 @@ unc-path-regex@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
+underscore.string@~2.2.0rc:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.2.1.tgz#d7c0fa2af5d5a1a67f4253daee98132e733f0f19"
+
underscore.string@~2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b"
-underscore@^1.6.0:
- version "1.8.3"
- resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
-
-underscore@~1.7.0:
+underscore@^1.6.0, underscore@~1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"