diff --git a/src/Calendar.js b/src/Calendar.js index 477aba658..71828ed00 100644 --- a/src/Calendar.js +++ b/src/Calendar.js @@ -80,6 +80,11 @@ let Calendar = React.createClass({ */ events: PropTypes.arrayOf(PropTypes.object), + /** + * An array of resource objects that map events to a specific resource + */ + resources: PropTypes.arrayOf(PropTypes.object), + /** * Callback fired when the `date` value changes. * @@ -439,7 +444,7 @@ let Calendar = React.createClass({ popup: false, toolbar: true, view: views.MONTH, - views: [views.MONTH, views.WEEK, views.DAY, views.AGENDA], + views: [views.MONTH, views.WEEK, views.DAY, views.AGENDA, views.RESOURCE], date: now, step: 30, diff --git a/src/DayColumn.js b/src/DayColumn.js index 94a6e45f0..ee17a865e 100644 --- a/src/DayColumn.js +++ b/src/DayColumn.js @@ -57,6 +57,7 @@ let DaySlot = React.createClass({ dayWrapperComponent: elementType, eventComponent: elementType, eventWrapperComponent: elementType.isRequired, + resource: React.PropTypes.string, }, getDefaultProps() { @@ -304,6 +305,7 @@ let DaySlot = React.createClass({ slots, start: startDate, end: endDate, + resourceId: this.props.resource, action }) }, diff --git a/src/Resource.js b/src/Resource.js new file mode 100644 index 000000000..e86a37dcd --- /dev/null +++ b/src/Resource.js @@ -0,0 +1,42 @@ +import React from 'react'; +import dates from './utils/dates'; +import ResourceGrid from './ResourceGrid'; +import { navigate } from './utils/constants'; + +const Resource = React.createClass({ + propTypes: { + date: React.PropTypes.instanceOf(Date).isRequired + }, + + render() { + let { date, ...props } = this.props; + let { start, end } = Resource.range(date); + + return ( + + ); + } +}); + +Resource.navigate = (date, action) => { + switch (action){ + case navigate.PREVIOUS: + return dates.add(date, -1, 'day'); + + case navigate.NEXT: + return dates.add(date, 1, 'day'); + + default: + return date; + } +}; + + +Resource.range = (date) => { + date = dates.startOf(date, 'day'); + return { start: date, end: date }; +}; + + +export default Resource; + diff --git a/src/ResourceGrid.js b/src/ResourceGrid.js new file mode 100644 index 000000000..5ea0a42b4 --- /dev/null +++ b/src/ResourceGrid.js @@ -0,0 +1,381 @@ +import React, { Component } from 'react'; +import cn from 'classnames'; +import { findDOMNode } from 'react-dom'; + +import dates from './utils/dates'; +import localizer from './localizer' +import DayColumn from './DayColumn'; +import TimeColumn from './TimeColumn'; +import Header from './Header'; + +import getWidth from 'dom-helpers/query/width'; +import scrollbarSize from 'dom-helpers/util/scrollbarSize'; + +import { accessor, dateFormat } from './utils/propTypes'; + +import { notify } from './utils/helpers'; + +import { accessor as get } from './utils/accessors'; + +import { inRange, sortEvents, segStyle } from './utils/eventLevels'; + +export default class ResourceGrid extends Component { + + static propTypes = { + events: React.PropTypes.array.isRequired, + resources: React.PropTypes.array.isRequired, + + step: React.PropTypes.number, + start: React.PropTypes.instanceOf(Date), + end: React.PropTypes.instanceOf(Date), + min: React.PropTypes.instanceOf(Date), + max: React.PropTypes.instanceOf(Date), + now: React.PropTypes.instanceOf(Date), + + scrollToTime: React.PropTypes.instanceOf(Date), + eventPropGetter: React.PropTypes.func, + dayFormat: dateFormat, + culture: React.PropTypes.string, + + rtl: React.PropTypes.bool, + width: React.PropTypes.number, + + titleAccessor: accessor.isRequired, + allDayAccessor: accessor.isRequired, + startAccessor: accessor.isRequired, + endAccessor: accessor.isRequired, + + selected: React.PropTypes.object, + selectable: React.PropTypes.oneOf([true, false, 'ignoreEvents']), + + onNavigate: React.PropTypes.func, + onSelectSlot: React.PropTypes.func, + onSelectEnd: React.PropTypes.func, + onSelectStart: React.PropTypes.func, + onSelectEvent: React.PropTypes.func, + onDrillDown: React.PropTypes.func, + + messages: React.PropTypes.object, + components: React.PropTypes.object.isRequired, + + businessHours: React.PropTypes.array, + } + + static defaultProps = { + step: 30, + min: dates.startOf(new Date(), 'day'), + businessHours: [], + max: dates.endOf(new Date(), 'day'), + scrollToTime: dates.startOf(new Date(), 'day'), + /* these 2 are needed to satisfy requirements from TimeColumn required props + * There is a strange bug in React, using ...TimeColumn.defaultProps causes weird crashes + */ + type: 'gutter', + now: new Date() + } + + constructor(props) { + super(props) + this.state = { gutterWidth: undefined, isOverflowing: null }; + this.handleSelectEvent = this.handleSelectEvent.bind(this) + } + + componentWillMount() { + this._gutters = []; + this.calculateScroll(); + } + + componentDidMount() { + this.checkOverflow(); + + if (this.props.width == null) { + this.measureGutter() + } + this.applyScroll(); + + this.positionTimeIndicator(); + this.triggerTimeIndicatorUpdate(); + } + + componentWillUnmount() { + window.clearTimeout(this._timeIndicatorTimeout); + } + + componentDidUpdate() { + if (this.props.width == null && !this.state.gutterWidth) { + this.measureGutter() + } + + this.applyScroll(); + this.positionTimeIndicator(); + } + + componentWillReceiveProps(nextProps) { + const { start, scrollToTime } = this.props; + // When paginating, reset scroll + if ( + !dates.eq(nextProps.start, start, 'minute') || + !dates.eq(nextProps.scrollToTime, scrollToTime, 'minute') + ) { + this.calculateScroll(); + } + } + + handleSelectAllDaySlot = (slots) => { + const { onSelectSlot } = this.props; + notify(onSelectSlot, { + slots, + start: slots[0], + end: slots[slots.length - 1] + }) + } + + render() { + let { + events + , start + , end + , width + , startAccessor + , endAccessor + , allDayAccessor } = this.props; + + width = width || this.state.gutterWidth; + + let range = dates.range(start, end, 'day') + + this.slots = range.length; + + let allDayEvents = [] + , rangeEvents = []; + + events.forEach(event => { + if (inRange(event, start, end, this.props)) { + let eStart = get(event, startAccessor) + , eEnd = get(event, endAccessor); + + if ( + get(event, allDayAccessor) + || !dates.eq(eStart, eEnd, 'day') + || (dates.isJustDate(eStart) && dates.isJustDate(eEnd))) + { + allDayEvents.push(event) + } + else + rangeEvents.push(event) + } + }) + + allDayEvents.sort((a, b) => sortEvents(a, b, this.props)) + + let gutterRef = ref => this._gutters[1] = ref && findDOMNode(ref); + + return ( +
+ + {this.renderResourceHeader(range, allDayEvents, width, this.props.resources)} + + +
+
+ + + + {this.props.resources.map(resource => { + return this.renderEvents(range, rangeEvents, this.props.now, resource.id) + })} + +
+
+ ); + } + + renderEvents(range, events, today, id){ + let { min, max, endAccessor, startAccessor, components } = this.props; + + return range.map((date, idx) => { + let daysEvents = events.filter( + event => dates.inRange(date, + get(event, startAccessor), + get(event, endAccessor), 'day') && event.resourceId === id + ) + + return ( + + ) + }) + } + + renderResourceHeader(range, events, width, resources) { + let { rtl } = this.props; + let { isOverflowing } = this.state || {}; + + let style = {}; + if (isOverflowing) + style[rtl ? 'marginLeft' : 'marginRight'] = scrollbarSize() + 'px'; + + return ( +
+
+
+ {resources.map(resource => { + return this.renderHeaderCells(range, resource.id, resource.title) + })} +
+
+ ) + } + + renderHeaderCells(range, id, title){ + let { dayFormat, culture, components } = this.props; + let HeaderComponent = components.header || Header + + return range.map((date, i) => { + let label = localizer.format(date, dayFormat, culture); + + let header = ( + + ) + + return ( +
+ + {title || header} + +
+ ) + }) + } + + handleSelectEvent(...args) { + notify(this.props.onSelectEvent, args) + } + + clearSelection(){ + clearTimeout(this._selectTimer) + this._pendingSelection = []; + } + + measureGutter() { + let width = this.state.gutterWidth; + let gutterCells = this._gutters.filter(g => !!g); + + if (!width) { + width = Math.max(...gutterCells.map(getWidth)); + + if (width) { + this.setState({ gutterWidth: width }) + } + } + } + + applyScroll() { + if (this._scrollRatio) { + const { content } = this.refs; + content.scrollTop = content.scrollHeight * this._scrollRatio; + // Only do this once + this._scrollRatio = null; + } + } + + calculateScroll() { + const { min, max, scrollToTime } = this.props; + + const diffMillis = scrollToTime - dates.startOf(scrollToTime, 'day'); + const totalMillis = dates.diff(max, min); + + this._scrollRatio = diffMillis / totalMillis; + } + + checkOverflow() { + if (this._updatingOverflow) return; + + let isOverflowing = this.refs.content.scrollHeight > this.refs.content.clientHeight; + + if (this.state.isOverflowing !== isOverflowing) { + this._updatingOverflow = true; + this.setState({ isOverflowing }, () => { + this._updatingOverflow = false; + }) + } + } + + positionTimeIndicator() { + const { rtl, min, max } = this.props + const now = new Date(); + + const secondsGrid = dates.diff(max, min, 'seconds'); + const secondsPassed = dates.diff(now, min, 'seconds'); + + const timeIndicator = this.refs.timeIndicator; + const factor = secondsPassed / secondsGrid; + const timeGutter = this._gutters[this._gutters.length - 1]; + + if (timeGutter && now >= min && now <= max) { + const pixelHeight = timeGutter.offsetHeight; + const offset = Math.floor(factor * pixelHeight); + + timeIndicator.style.display = 'block'; + timeIndicator.style[rtl ? 'left' : 'right'] = 0; + timeIndicator.style[rtl ? 'right' : 'left'] = timeGutter.offsetWidth + 'px'; + timeIndicator.style.top = offset + 'px'; + } else { + timeIndicator.style.display = 'none'; + } + } + + triggerTimeIndicatorUpdate() { + // Update the position of the time indicator every minute + this._timeIndicatorTimeout = window.setTimeout(() => { + this.positionTimeIndicator(); + + this.triggerTimeIndicatorUpdate(); + }, 60000) + } +} + + diff --git a/src/TimeColumn.js b/src/TimeColumn.js index c274daf03..7ea2d783a 100644 --- a/src/TimeColumn.js +++ b/src/TimeColumn.js @@ -18,6 +18,7 @@ export default class TimeColumn extends Component { timeGutterFormat: PropTypes.string, type: PropTypes.string.isRequired, className: PropTypes.string, + resource: PropTypes.string, dayWrapperComponent: elementType, } @@ -30,7 +31,7 @@ export default class TimeColumn extends Component { dayWrapperComponent: BackgroundWrapper, } - renderTimeSliceGroup(key, isNow, date) { + renderTimeSliceGroup(key, isNow, date, resource) { const { dayWrapperComponent, timeslots, showLabels, step, timeGutterFormat, culture } = this.props; return ( @@ -41,6 +42,7 @@ export default class TimeColumn extends Component { step={step} culture={culture} timeslots={timeslots} + resource={resource} showLabels={showLabels} timeGutterFormat={timeGutterFormat} dayWrapperComponent={dayWrapperComponent} @@ -49,7 +51,7 @@ export default class TimeColumn extends Component { } render() { - const { className, children, style, now, min, max, step, timeslots } = this.props; + const { className, children, style, now, min, max, step, timeslots, resource } = this.props; const totalMin = dates.diff(min, max, 'minutes') const numGroups = Math.ceil(totalMin / (step * timeslots)) const renderedSlots = [] @@ -68,7 +70,7 @@ export default class TimeColumn extends Component { ) next = dates.add(date, groupLengthInMinutes, 'minutes'); - renderedSlots.push(this.renderTimeSliceGroup(i, isNow, date)) + renderedSlots.push(this.renderTimeSliceGroup(i, isNow, date, resource)) date = next } diff --git a/src/TimeSlot.js b/src/TimeSlot.js index 41fef8248..a6d563ef8 100644 --- a/src/TimeSlot.js +++ b/src/TimeSlot.js @@ -10,7 +10,8 @@ export default class TimeSlot extends Component { isNow: PropTypes.bool, showLabel: PropTypes.bool, content: PropTypes.string, - culture: PropTypes.string + culture: PropTypes.string, + resource: PropTypes.string } static defaultProps = { @@ -20,11 +21,11 @@ export default class TimeSlot extends Component { } render() { - const { value } = this.props; + const { value, resource } = this.props; const Wrapper = this.props.dayWrapperComponent; return ( - +
) } diff --git a/src/Views.js b/src/Views.js index f3fb49e6a..2e076afd4 100644 --- a/src/Views.js +++ b/src/Views.js @@ -3,12 +3,14 @@ import Month from './Month'; import Day from './Day'; import Week from './Week'; import Agenda from './Agenda'; +import Resource from './Resource'; const VIEWS = { [views.MONTH]: Month, [views.WEEK]: Week, [views.DAY]: Day, - [views.AGENDA]: Agenda + [views.AGENDA]: Agenda, + [views.RESOURCE]: Resource }; export default VIEWS; diff --git a/src/addons/dragAndDrop/backgroundWrapper.js b/src/addons/dragAndDrop/backgroundWrapper.js index fc717410d..2b5c8e832 100644 --- a/src/addons/dragAndDrop/backgroundWrapper.js +++ b/src/addons/dragAndDrop/backgroundWrapper.js @@ -110,14 +110,15 @@ function createWrapper(type) { const dropTarget = { drop(_, monitor, { props, context }) { const event = monitor.getItem(); - const { value } = props + const { value, resource } = props const { onEventDrop, startAccessor, endAccessor } = context const start = get(event, startAccessor); const end = get(event, endAccessor); onEventDrop({ event, - ...getEventTimes(start, end, value, type) + ...getEventTimes(start, end, value, type), + ...resource && { resource } }) } }; diff --git a/src/utils/constants.js b/src/utils/constants.js index 4c33678a7..afd3a97ed 100644 --- a/src/utils/constants.js +++ b/src/utils/constants.js @@ -12,5 +12,6 @@ export let views = { WEEK: 'week', WORK: 'workweek', DAY: 'day', - AGENDA: 'agenda' + AGENDA: 'agenda', + RESOURCE: 'resource' } diff --git a/src/utils/messages.js b/src/utils/messages.js index 0a3a5ffbc..0f92285ee 100644 --- a/src/utils/messages.js +++ b/src/utils/messages.js @@ -14,6 +14,7 @@ import invariant from 'invariant'; tomorrow: 'tomorrow', today: 'today', agenda: 'agenda', + resource: 'resource', showMore: total => `+${total} more` } diff --git a/src/utils/propTypes.js b/src/utils/propTypes.js index d26f993b8..7e17b6770 100644 --- a/src/utils/propTypes.js +++ b/src/utils/propTypes.js @@ -25,7 +25,8 @@ export let eventComponent = PropTypes.oneOfType([ month: elementType, week: elementType, day: elementType, - agenda: elementType + agenda: elementType, + resource: elementType }) ]) diff --git a/src/utils/viewLabel.js b/src/utils/viewLabel.js index fb58760ae..0ab9b34a6 100644 --- a/src/utils/viewLabel.js +++ b/src/utils/viewLabel.js @@ -8,12 +8,13 @@ const Formats = { [views.MONTH]: 'monthHeaderFormat', [views.WEEK]: 'dayRangeHeaderFormat', [views.DAY]: 'dayHeaderFormat', - [views.AGENDA]: 'agendaHeaderFormat' + [views.AGENDA]: 'agendaHeaderFormat', + [views.RESOURCE]: 'dayHeaderFormat' } export default function viewLabel(date, view, formats, culture){ let View = VIEWS[view]; - let headerSingle = view === views.MONTH || view === views.DAY + let headerSingle = view === views.MONTH || view === views.DAY || view === views.RESOURCE formats = defaultFormats(formats || {}) diff --git a/stories/Calendar.jsx b/stories/Calendar.jsx index d57934b7f..6b5f42a52 100644 --- a/stories/Calendar.jsx +++ b/stories/Calendar.jsx @@ -1,12 +1,18 @@ import { storiesOf, action } from '@kadira/storybook'; import moment from 'moment'; import React from 'react'; +import HTML5Backend from 'react-dnd-html5-backend'; +import { DragDropContext } from 'react-dnd'; import Calendar from '../src'; import momentLocalizer from '../src/localizers/moment.js' import '../src/less/styles.less' +import '../src/addons/dragAndDrop/styles.less' + import demoEvents from '../examples/events'; import createEvents from './createEvents'; +import resources from './resourceEvents'; +import withDragAndDrop from '../src/addons/dragAndDrop'; // Setup the localizer by providing the moment (or globalize) Object // to the correct localizer. @@ -38,6 +44,25 @@ const events = [{ allDay: true }] +const DragAndDropCalendar = withDragAndDrop(Calendar) + +const DragCalendar = () => { + return ( + { action(event) }} + onSelectEvent={action('event selected')} + onSelectSlot={action('slot selected')} + defaultDate={new Date(2015, 3, 1)} + /> + ) +} + +const DragableCalendar = DragDropContext(HTML5Backend)(DragCalendar) + storiesOf('module.Calendar.week', module) .add('demo', () => { return ( @@ -79,6 +104,14 @@ storiesOf('module.Calendar.week', module) ) }) + .add('resource', () => { + return ( +
+ +
+ ) + }) + .add('selectable', () => { return (
diff --git a/stories/resourceEvents.js b/stories/resourceEvents.js new file mode 100644 index 000000000..18b6201c2 --- /dev/null +++ b/stories/resourceEvents.js @@ -0,0 +1,25 @@ +export default { + events: [ { + 'title': 'Meeting', + 'resourceId': 'a', + 'start': new Date(2015, 3, 1, 5, 30, 0, 0), + 'end': new Date(2015, 3, 1, 10, 30, 0, 0), + }, { + 'title': 'Another Meeting', + 'resourceId': 'b', + 'start': new Date(2015, 3, 1, 2, 30, 0, 0), + 'end': new Date(2015, 3, 1, 4, 30, 0, 0), + }], + + list: [{ + id: 'a', + title: 'Room A' + }, { + id: 'b', + title: 'Room B' + }, { + id: 'c', + title: 'Room C' + }] +} + diff --git a/yarn.lock b/yarn.lock index 95983f512..bda6af7f0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -189,6 +189,10 @@ 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" +array-find@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -214,6 +218,13 @@ array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" +array.prototype.find@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -222,6 +233,14 @@ asap@^2.0.3, asap@~2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" +asn1.js@^4.0.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + asn1@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" @@ -1076,6 +1095,10 @@ blueimp-tmpl@^2.5.5: version "2.5.7" resolved "https://registry.yarnpkg.com/blueimp-tmpl/-/blueimp-tmpl-2.5.7.tgz#33fb12c139d65512ae40afbd8e2def8d9db96490" +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + boom@2.x.x: version "2.10.1" resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" @@ -1097,12 +1120,61 @@ braces@^1.8.2: preserve "^0.2.0" repeat-element "^1.1.2" +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + browserify-aes@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-0.4.0.tgz#067149b668df31c4b58533e02d01e806d8608e2c" dependencies: inherits "^2.0.1" +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" + dependencies: + buffer-xor "^1.0.2" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + inherits "^2.0.1" + +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + browserify-zlib@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" @@ -1125,7 +1197,11 @@ buffer-shims@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" -buffer@^4.9.0: +buffer-xor@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^4.3.0, buffer@^4.9.0: version "4.9.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" dependencies: @@ -1248,6 +1324,12 @@ chokidar@^1.0.0: optionalDependencies: fsevents "^1.0.0" +cipher-base@^1.0.0, cipher-base@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" + dependencies: + inherits "^2.0.1" + circular-json@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" @@ -1517,6 +1599,29 @@ cpy@^3.4.1: nested-error-stacks "^1.0.0" object-assign "^2.0.0" +create-ecdh@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.2.tgz#51210062d7bb7479f6c65bb41a92208b1d61abad" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^1.0.0" + sha.js "^2.3.6" + +create-hmac@^1.1.0, create-hmac@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.4.tgz#d3fb4ba253eb8b3f56e39ea2fbcb8af747bd3170" + dependencies: + create-hash "^1.1.0" + inherits "^2.0.1" + cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" @@ -1532,6 +1637,21 @@ crypto-browserify@3.3.0: ripemd160 "0.2.0" sha.js "2.2.6" +crypto-browserify@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.0.tgz#3652a0906ab9b2a7e0c3ce66a408e957a2485522" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + 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" @@ -1702,6 +1822,13 @@ depd@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" @@ -1712,6 +1839,14 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + disposables@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/disposables/-/disposables-1.0.1.tgz#064727a25b54f502bd82b89aa2dfb8df9f1b39e3" @@ -1771,6 +1906,18 @@ element-class@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/element-class/-/element-class-0.2.2.tgz#9d3bbd0767f9013ef8e1c8ebe722c1402a60050e" +elliptic@^6.0.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -1820,6 +1967,15 @@ es-abstract@^1.4.3, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.6.1: is-callable "^1.1.3" is-regex "^1.0.3" +es-abstract@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.0" + is-callable "^1.1.3" + is-regex "^1.0.3" + es-to-primitive@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" @@ -1932,6 +2088,22 @@ eslint-import-resolver-node@^0.2.0: object-assign "^4.0.1" resolve "^1.1.6" +eslint-import-resolver-webpack@^0.8.0: + version "0.8.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.8.1.tgz#c7f8b4d5bd3c5b489457e5728c5db1c4ffbac9aa" + dependencies: + array-find "^1.0.0" + debug "^2.2.0" + enhanced-resolve "~0.9.0" + find-root "^0.1.1" + has "^1.0.1" + interpret "^1.0.0" + is-absolute "^0.2.3" + lodash.get "^3.7.0" + node-libs-browser "^1.0.0" + resolve "^1.2.0" + semver "^5.3.0" + eslint-module-utils@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz#a6f8c21d901358759cdc35dbac1982ae1ee58bce" @@ -1954,9 +2126,15 @@ eslint-plugin-import@^2.0.0: minimatch "^3.0.3" pkg-up "^1.0.0" -eslint-plugin-react@^3.1.0: - version "3.16.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-3.16.1.tgz#262d96b77d7c4a42af809a73c0e527a58612293c" +eslint-plugin-react@^6.8.0: + version "6.10.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78" + dependencies: + array.prototype.find "^2.0.1" + doctrine "^1.2.2" + has "^1.0.1" + jsx-ast-utils "^1.3.4" + object.assign "^4.0.4" eslint@^3.0.0: version "3.12.2" @@ -2056,6 +2234,12 @@ eventsource@~0.1.6: dependencies: original ">=0.0.5" +evp_bytestokey@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" + dependencies: + create-hash "^1.1.1" + exenv@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.0.tgz#3835f127abf075bfe082d0aed4484057c78e3c89" @@ -2205,6 +2389,10 @@ find-cache-dir@^0.1.1: mkdirp "^0.5.1" pkg-dir "^1.0.0" +find-root@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-0.1.2.tgz#98d2267cff1916ccaf2743b3a0eea81d79d7dcd1" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -2399,6 +2587,10 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: once "^1.3.0" path-is-absolute "^1.0.0" +globalize@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/globalize/-/globalize-0.1.1.tgz#4d04ba65a580a8b0bdcc9ed974aeb497b9c80a56" + globals@^9.0.0, globals@^9.14.0: version "9.14.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034" @@ -2466,6 +2658,12 @@ has@^1.0.1: dependencies: function-bind "^1.0.2" +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573" + dependencies: + inherits "^2.0.1" + hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" @@ -2479,6 +2677,14 @@ he@1.0.x: version "1.0.0" resolved "https://registry.yarnpkg.com/he/-/he-1.0.0.tgz#6da5b265d7f2c3b5e480749168e0e159d05728da" +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" @@ -2667,6 +2873,13 @@ is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" +is-absolute@^0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" + dependencies: + is-relative "^0.2.1" + is-windows "^0.2.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -2808,6 +3021,12 @@ is-regex@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.3.tgz#0d55182bddf9f2fde278220aec3a75642c908637" +is-relative@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5" + dependencies: + is-unc-path "^0.1.1" + is-resolvable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" @@ -2826,6 +3045,12 @@ is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" +is-unc-path@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9" + dependencies: + unc-path-regex "^0.1.0" + is-upper-case@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" @@ -2840,6 +3065,10 @@ is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" +is-windows@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -2977,6 +3206,10 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.3.6" +jsx-ast-utils@^1.3.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" + keycode@^2.1.0, keycode@^2.1.1: version "2.1.8" resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.1.8.tgz#94d2b7098215eff0e8f9a8931d5a59076c4532fb" @@ -3057,10 +3290,20 @@ lodash-es@^4.2.1: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7" +lodash._baseget@^3.0.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/lodash._baseget/-/lodash._baseget-3.7.2.tgz#1b6ae1d5facf3c25532350a13c1197cb8bb674f4" + lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" +lodash._topath@^3.0.0: + version "3.8.1" + resolved "https://registry.yarnpkg.com/lodash._topath/-/lodash._topath-3.8.1.tgz#3ec5e2606014f4cb97f755fe6914edd8bfc00eac" + dependencies: + lodash.isarray "^3.0.0" + lodash.assign@^4.0.0, lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" @@ -3069,6 +3312,13 @@ lodash.cond@^4.3.0: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" +lodash.get@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-3.7.0.tgz#3ce68ae2c91683b281cc5394128303cbf75e691f" + dependencies: + lodash._baseget "^3.0.0" + lodash._topath "^3.0.0" + lodash.indexof@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/lodash.indexof/-/lodash.indexof-4.0.5.tgz#53714adc2cddd6ed87638f893aa9b6c24e31ef3c" @@ -3229,6 +3479,13 @@ micromatch@^2.1.5, micromatch@^2.3.11: parse-glob "^3.0.4" regex-cache "^0.4.2" +miller-rabin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + "mime-db@>= 1.24.0 < 2", mime-db@~1.25.0: version "1.25.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" @@ -3247,6 +3504,14 @@ mime@1.3.4, mime@^1.2.11, mime@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + "minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" @@ -3271,6 +3536,10 @@ mobx@^2.3.4: version "2.7.0" resolved "https://registry.yarnpkg.com/mobx/-/mobx-2.7.0.tgz#cf3d82d18c0ca7f458d8f2a240817b3dc7e54a01" +moment@^2.17.1: + version "2.18.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" + ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" @@ -3361,6 +3630,34 @@ node-libs-browser@^0.7.0: util "^0.10.3" vm-browserify "0.0.4" +node-libs-browser@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-1.1.1.tgz#2a38243abedd7dffcd07a97c9aca5668975a6fea" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.1.4" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "0.0.1" + os-browserify "^0.2.0" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.0.5" + stream-browserify "^2.0.1" + stream-http "^2.3.1" + string_decoder "^0.10.25" + timers-browserify "^1.4.2" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + node-pre-gyp@^0.6.29: version "0.6.32" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz#fc452b376e7319b3d255f5f34853ef6fd8fe1fd5" @@ -3448,10 +3745,18 @@ object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" -object-keys@^1.0.8: +object-keys@^1.0.10, object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" +object.assign@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.0" + object-keys "^1.0.10" + object.entries@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f" @@ -3580,6 +3885,16 @@ param-case@^1.1.0: dependencies: sentence-case "^1.1.2" +parse-asn1@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" @@ -3650,6 +3965,12 @@ pbkdf2-compat@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" +pbkdf2@^3.0.3: + version "3.0.9" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693" + dependencies: + create-hmac "^1.1.2" + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -3916,7 +4237,7 @@ process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" -process@^0.11.0: +process@^0.11.0, process@~0.11.0: version "0.11.9" resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" @@ -3941,6 +4262,16 @@ prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" +public-encrypt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" @@ -3987,6 +4318,10 @@ randomatic@^1.1.3: is-number "^2.0.2" kind-of "^3.0.2" +randombytes@^2.0.0, randombytes@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec" + range-parser@^1.0.3, range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" @@ -4342,7 +4677,7 @@ resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" -resolve@^1.1.6: +resolve@^1.1.6, resolve@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c" @@ -4369,6 +4704,10 @@ ripemd160@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" +ripemd160@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" + run-async@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" @@ -4387,7 +4726,7 @@ select@^1.0.6: version "1.1.0" resolved "https://registry.yarnpkg.com/select/-/select-1.1.0.tgz#a6c520cd9ab919ad81c7d1a273e0452f504dd7a2" -"semver@2 || 3 || 4 || 5", semver@^5.0.0, semver@~5.3.0: +"semver@2 || 3 || 4 || 5", semver@^5.0.0, semver@^5.3.0, semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -4456,6 +4795,12 @@ sha.js@2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" +sha.js@^2.3.6: + version "2.4.8" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" + dependencies: + inherits "^2.0.1" + shallowequal@0.2.x: version "0.2.2" resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-0.2.2.tgz#1e32fd5bcab6ad688a4812cb0cc04efc75c7014e" @@ -4769,6 +5114,12 @@ through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" +timers-browserify@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + dependencies: + process "~0.11.0" + timers-browserify@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86" @@ -4871,6 +5222,10 @@ uid-number@~0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" +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" + uncontrollable@^3.1.3: version "3.3.1" resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-3.3.1.tgz#e23b402e7a4c69b1853fb4b43ce34b6480c65b6f"