implement "metric by interval" selector

fixes #356

implementation with @juditgreskovits
tests with @alex-windett
This commit is contained in:
Sérgio Ramos 2017-03-07 16:59:54 +00:00 committed by Judit Greskovits
parent b229c7b63e
commit 962bc85b28
6 changed files with 921 additions and 133 deletions

View File

@ -32,6 +32,7 @@
"lodash.isempty": "^4.4.0",
"lodash.template": "^4.4.0",
"lodash.uniq": "^4.5.0",
"moment": "^2.17.1",
"param-case": "^2.1.0",
"querystring": "^0.2.0",
"react": "^15.4.2",
@ -52,6 +53,7 @@
"redux-promise-middleware": "^4.2.0",
"redux-thunk": "^2.2.0",
"reselect": "^2.5.4",
"simple-statistics": "^2.5.0",
"styled-components": "^1.4.4",
"understood": "^1.0.1"
},

View File

@ -1,7 +1,11 @@
const IS_TEST = process.env.NODE_ENV === 'test';
import find from 'lodash.find';
import forceArray from 'force-array';
import get from 'lodash.get';
import { createSelector } from 'reselect';
import statistics from 'simple-statistics';
import moment from 'moment';
const account = (state) => get(state, 'account.data', {});
const accountUi = (state) => get(state, 'account.ui', {});
@ -225,6 +229,146 @@ const peopleByProjectId = (projectId) => createSelector(
}
);
const metricByInterval = (data = [], {
duration = '1 hour',
interval = '5 minutes'
}) => {
const getDurationArgs = (value) => {
const [durationNumber, durationType] = value.split(/\s/);
return [Number(durationNumber), durationType];
};
const _duration = moment.duration(...getDurationArgs(duration));
const _interval = moment.duration(...getDurationArgs(interval));
const roundUpDate = (date) => {
const mod = date.valueOf() % _interval.valueOf();
const diff = moment.duration(_interval.valueOf() - mod);
return moment(date).add(diff);
};
const roundDownDate = (date) => {
const mod = date.valueOf() % _interval.valueOf();
return moment(date).subtract(mod);
};
const lastDate = roundUpDate(moment(data[data.length - 1][0], 'X'));
const firstDate = moment(data[0][0], 'X');
const getStart = () => {
const hardStart = moment(lastDate).subtract(_duration);
return hardStart.isBefore(firstDate)
? roundDownDate(firstDate)
: roundUpDate(hardStart);
};
const _start = getStart();
const genSample = (start) => ({
start: start,
end: moment(start).add(_interval),
values: []
});
const genStats = (sample) => {
const data = sample.values.map((r) => r.v);
return {
firstQuartile: statistics.quantile(data, 0.25),
median: statistics.median(data),
thirdQuartile: statistics.quantile(data, 0.75),
max: statistics.max(data),
min: statistics.min(data),
stddev: statistics.sampleStandardDeviation(data)
}
};
const intervals = data.reduce((samples, value, i) => {
const sample = samples[samples.length - 1];
const previousSample = samples[samples.length - 2];
const record = {
v: Number(value[1]),
t: moment(value[0], 'X')
};
if (record.t.isBefore(_start)) {
return samples;
}
const split = () => {
const stats = genStats(sample);
const nextSample = {
...genSample(sample.end),
values: [record]
};
samples[samples.length - 1] = {
...sample,
stats
};
return [
...samples,
nextSample
];
};
const append = (sample) => {
samples[samples.length - 1] = {
...sample,
values: [...sample.values, record]
};
return samples;
};
const isWithin = (
record.t.isSameOrAfter(sample.start) &&
record.t.isSameOrBefore(sample.end)
);
const isBefore = record.t.isBefore(sample.start);
const isAfter = record.t.isAfter(sample.end);
let newSamples = samples;
if (isWithin) {
newSamples = append(sample);
}
if (isBefore) {
newSamples = append(previousSample);
}
if (isAfter) {
newSamples = split();
}
if ((i + 1) >= data.length) {
const thisSample = newSamples[newSamples.length - 1];
const lastStats = genStats(thisSample);
newSamples[newSamples.length - 1] = {
...thisSample,
stats: lastStats
}
}
return newSamples;
}, [
genSample(_start)
]);
return {
start: _start.valueOf(),
end: lastDate.valueOf(),
values: intervals.map((sample) => sample.stats),
__intervals: IS_TEST ? intervals : []
};
};
export {
account as accountSelector,
accountUi as accountUISelector,
@ -251,5 +395,6 @@ export {
peopleByProjectId as peopleByProjectIdSelector,
projectsUI as projectUISelector,
projectIndexById as projectIndexByIdSelect,
serviceUiTooltip as serviceUiTooltipSelector
serviceUiTooltip as serviceUiTooltipSelector,
metricByInterval as metricByIntervalSelector
};

View File

@ -1,10 +1,12 @@
const test = require('ava');
const selectors = require('@state/selectors');
const flatten = require('lodash.flatten');
const moment = require('moment');
const {
accountSelector,
orgByIdSelector
orgByIdSelector,
// orgsSelector,
// orgSectionsSelector,
// projectsByOrgIdSelector

View File

@ -0,0 +1,130 @@
const flatten = require('lodash.flatten');
const { metricByIntervalSelector } = require('@state/selectors');
const moment = require('moment');
const test = require('ava');
const data = require('./metric-by-Interval-selector.json');
test('should ouput the right properties', (t) => {
const stats = metricByIntervalSelector(data, {
duration: '10 minutes',
interval: '30 seconds'
});
t.truthy(stats.start);
t.truthy(stats.end);
t.deepEqual(typeof stats.start, 'number');
t.deepEqual(typeof stats.end, 'number');
t.truthy(stats.end > stats.start);
t.truthy(Array.isArray(stats.values));
t.truthy(stats.values.every((value) => [
'firstQuartile',
'median',
'thirdQuartile',
'max',
'min'
].every((key) => value[key])));
});
test('should respect order of records', (t) => {
const stats = metricByIntervalSelector(data, {
duration: '10 minutes',
interval: '30 seconds'
});
const valuesFromSource = data.map((record) => Number(record[1]));
const valuesFromStats = flatten(stats.__intervals.map((sample) => {
return sample.values.map(r => r.v)
}));
t.deepEqual(valuesFromStats, valuesFromSource);
});
test('should respect the intervals', (t) => {
const stats = metricByIntervalSelector(data, {
duration: '10 minutes',
interval: '30 seconds'
});
t.truthy(stats.__intervals.every((sample, i, intervals) => {
const previous = i > 0
? intervals[i - 1]
: null;
const isAfterPrevious = previous
? moment(previous.end).isSame(moment(sample.start))
: true;
const interval = moment(sample.end).diff(moment(sample.start), 'seconds');
return (
(interval === 30) &&
isAfterPrevious
);
}));
});
test('should respect the intervals', (t) => {
const stats = metricByIntervalSelector(data, {
duration: '10 minutes',
interval: '30 seconds'
});
t.truthy(stats.__intervals.every((sample, i, intervals) => {
const previous = i > 0
? intervals[i - 1]
: null;
const isAfterPrevious = previous
? moment(previous.end).isSame(moment(sample.start))
: true;
const interval = moment(sample.end).diff(moment(sample.start), 'seconds');
return (
(interval === 30) &&
isAfterPrevious
);
}));
});
test('records should be within intervals', (t) => {
const stats = metricByIntervalSelector(data, {
duration: '10 minutes',
interval: '30 seconds'
});
t.truthy(stats.__intervals.every((sample) => {
return sample.values.every((record) => (
record.t.isSameOrAfter(sample.start) &&
record.t.isSameOrBefore(sample.end)
))
}));
});
test('different data chunks should produce almost the same stats', (t) => {
const halfData = data.slice(Math.floor(data.length / 2), data.length);
const stats1 = metricByIntervalSelector(data, {
duration: '10 minutes',
interval: '30 seconds'
});
const stats2 = metricByIntervalSelector(halfData, {
duration: '10 minutes',
interval: '30 seconds'
});
const matches = stats2.values.reduceRight((matches, value, i) => {
const x = stats1.values.length - (stats2.values.length - i);
const otherValue = stats1.values[x];
const isEqual = Object.keys(value).every((k) => otherValue[k] === value[k]);
return isEqual ? matches + 1 : matches
}, 0);
t.truthy(matches >= (stats2.values.length - 2));
});

View File

@ -0,0 +1,506 @@
[
[
1488969918,
"39251968"
],
[
1488969918,
"40300544"
],
[
1488969933,
"27193344"
],
[
1488969933,
"41349120"
],
[
1488969933,
"39776256"
],
[
1488969933,
"40300544"
],
[
1488969948,
"60747776"
],
[
1488969948,
"25620480"
],
[
1488969948,
"27717632"
],
[
1488969948,
"40300544"
],
[
1488969963,
"26669056"
],
[
1488969963,
"27717632"
],
[
1488969963,
"40300544"
],
[
1488969963,
"62320640"
],
[
1488969978,
"26669056"
],
[
1488969978,
"27717632"
],
[
1488969978,
"63893504"
],
[
1488969978,
"29290496"
],
[
1488969993,
"65466368"
],
[
1488969993,
"28241920"
],
[
1488969993,
"26669056"
],
[
1488969993,
"29814784"
],
[
1488970008,
"28766208"
],
[
1488970008,
"30339072"
],
[
1488970008,
"26669056"
],
[
1488970008,
"68087808"
],
[
1488970023,
"70709248"
],
[
1488970023,
"27193344"
],
[
1488970023,
"30863360"
],
[
1488970023,
"29290496"
],
[
1488970038,
"31911936"
],
[
1488970038,
"27193344"
],
[
1488970038,
"29814784"
],
[
1488970038,
"31911936"
],
[
1488970053,
"31387648"
],
[
1488970053,
"40300544"
],
[
1488970053,
"26669056"
],
[
1488970053,
"32436224"
],
[
1488970068,
"34009088"
],
[
1488970068,
"49737728"
],
[
1488970068,
"31911936"
],
[
1488970068,
"26669056"
],
[
1488970083,
"26669056"
],
[
1488970083,
"34009088"
],
[
1488970083,
"34533376"
],
[
1488970083,
"32436224"
],
[
1488970098,
"26669056"
],
[
1488970098,
"23523328"
],
[
1488970098,
"40300544"
],
[
1488970098,
"32960512"
],
[
1488970113,
"23523328"
],
[
1488970113,
"50786304"
],
[
1488970113,
"26669056"
],
[
1488970113,
"24047616"
],
[
1488970128,
"24047616"
],
[
1488970128,
"27193344"
],
[
1488970128,
"39251968"
],
[
1488970128,
"25096192"
],
[
1488970143,
"25096192"
],
[
1488970143,
"54456320"
],
[
1488970143,
"27193344"
],
[
1488970143,
"24571904"
],
[
1488970158,
"43446272"
],
[
1488970158,
"25620480"
],
[
1488970158,
"25096192"
],
[
1488970158,
"27717632"
],
[
1488970173,
"25096192"
],
[
1488970173,
"25620480"
],
[
1488970173,
"26669056"
],
[
1488970173,
"49737728"
],
[
1488970188,
"26144768"
],
[
1488970188,
"27193344"
],
[
1488970188,
"25096192"
],
[
1488970188,
"45019136"
],
[
1488970203,
"54456320"
],
[
1488970203,
"27717632"
],
[
1488970203,
"25096192"
],
[
1488970203,
"26669056"
],
[
1488970218,
"29290496"
],
[
1488970218,
"66514944"
],
[
1488970218,
"25096192"
],
[
1488970218,
"27193344"
],
[
1488970233,
"25096192"
],
[
1488970233,
"28241920"
],
[
1488970233,
"66514944"
],
[
1488970233,
"29814784"
],
[
1488970248,
"66514944"
],
[
1488970248,
"25096192"
],
[
1488970248,
"30339072"
],
[
1488970248,
"28766208"
],
[
1488970263,
"25096192"
],
[
1488970263,
"30863360"
],
[
1488970263,
"66514944"
],
[
1488970263,
"29814784"
],
[
1488970278,
"30339072"
],
[
1488970278,
"24047616"
],
[
1488970278,
"66514944"
],
[
1488970278,
"25096192"
],
[
1488970293,
"30863360"
],
[
1488970293,
"25620480"
],
[
1488970293,
"66514944"
],
[
1488970293,
"24047616"
],
[
1488970308,
"23523328"
],
[
1488970308,
"25620480"
],
[
1488970308,
"66514944"
],
[
1488970308,
"25096192"
],
[
1488970323,
"24047616"
],
[
1488970323,
"25620480"
],
[
1488970323,
"25620480"
],
[
1488970323,
"66514944"
],
[
1488970338,
"24571904"
],
[
1488970338,
"25620480"
],
[
1488970338,
"26144768"
],
[
1488970338,
"66514944"
],
[
1488970353,
"66514944"
],
[
1488970353,
"25096192"
],
[
1488970353,
"26669056"
],
[
1488970353,
"25620480"
],
[
1488970368,
"66514944"
],
[
1488970368,
"27193344"
],
[
1488970368,
"25620480"
],
[
1488970368,
"25620480"
],
[
1488970383,
"28241920"
],
[
1488970383,
"66514944"
],
[
1488970383,
"26144768"
],
[
1488970383,
"25620480"
]
]

View File

@ -1,7 +1,5 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@ava/babel-preset-stage-4@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@ava/babel-preset-stage-4/-/babel-preset-stage-4-1.0.0.tgz#a613b5e152f529305422546b072d47facfb26291"
@ -67,13 +65,6 @@
transform-props-with "^2.1.0"
traverse "^0.6.6"
JSONStream@^0.8.4:
version "0.8.4"
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.8.4.tgz#91657dfe6ff857483066132b4618b62e8f4887bd"
dependencies:
jsonparse "0.0.5"
through ">=2.2.7 <3"
abab@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d"
@ -118,10 +109,6 @@ acorn-jsx@^3.0.0:
dependencies:
acorn "^3.0.4"
acorn@4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a"
acorn@^3.0.4:
version "3.3.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
@ -130,6 +117,10 @@ acorn@^4.0.3, acorn@^4.0.4:
version "4.0.11"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0"
acorn@4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a"
ajv-keywords@^1.0.0, ajv-keywords@^1.1.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
@ -1590,7 +1581,15 @@ center-align@^0.1.1:
align-text "^0.1.3"
lazy-cache "^1.0.3"
chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
chalk@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
dependencies:
ansi-styles "~1.0.0"
has-color "~0.1.0"
strip-ansi "~0.1.0"
chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3, chalk@1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies:
@ -1600,14 +1599,6 @@ chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
chalk@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
dependencies:
ansi-styles "~1.0.0"
has-color "~0.1.0"
strip-ansi "~0.1.0"
chart.js@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.5.0.tgz#fe6e751a893769f56e72bee5ad91207e1c592957"
@ -1857,21 +1848,21 @@ colormin@^1.0.5:
css-color-names "0.0.4"
has "^1.0.1"
colors@0.5.x:
version "0.5.1"
resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774"
colors@^1.1.2, colors@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
colors@0.5.x:
version "0.5.1"
resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774"
combined-stream@^1.0.5, combined-stream@~1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
dependencies:
delayed-stream "~1.0.0"
commander@2, commander@^2.8.1:
commander@^2.8.1, commander@2:
version "2.9.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
dependencies:
@ -2228,7 +2219,7 @@ csso@~2.3.1:
clap "^1.0.9"
source-map "^0.5.3"
cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
"cssom@>= 0.3.2 < 0.4.0", cssom@0.3.x:
version "0.3.2"
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b"
@ -2244,6 +2235,12 @@ currently-unhandled@^0.4.1:
dependencies:
array-find-index "^1.0.1"
d@^0.1.1, d@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309"
dependencies:
es5-ext "~0.10.2"
d3-array@1, d3-array@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.1.0.tgz#bfea66b89d46f9aedf77296d3aad6307b50771cc"
@ -2454,12 +2451,6 @@ d3@^4.7.0:
d3-voronoi "1.1.1"
d3-zoom "1.1.2"
d@^0.1.1, d@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309"
dependencies:
es5-ext "~0.10.2"
damerau-levenshtein@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.3.tgz#ae4f4ce0b62acae10ff63a01bb08f652f5213af2"
@ -2482,18 +2473,18 @@ debug-log@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f"
debug@2.2.0, debug@~2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
dependencies:
ms "0.7.1"
debug@2.6.1, debug@^2.1.0, debug@^2.1.1, debug@^2.2.0:
debug@^2.1.0, debug@^2.1.1, debug@^2.2.0, debug@2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351"
dependencies:
ms "0.7.2"
debug@~2.2.0, debug@2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
dependencies:
ms "0.7.1"
decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@ -2555,7 +2546,7 @@ delegates@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
depd@1.1.0, depd@~1.1.0:
depd@~1.1.0, depd@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3"
@ -2592,7 +2583,7 @@ discontinuous-range@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a"
doctrine@1.5.0, doctrine@^1.2.2:
doctrine@^1.2.2, doctrine@1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
dependencies:
@ -2616,7 +2607,7 @@ doiuse@^2.4.1:
through2 "^0.6.3"
yargs "^3.5.4"
dom-serializer@0, dom-serializer@~0.1.0:
dom-serializer@~0.1.0, dom-serializer@0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
dependencies:
@ -2627,7 +2618,7 @@ domain-browser@^1.1.1:
version "1.1.7"
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc"
domelementtype@1, domelementtype@^1.3.0:
domelementtype@^1.3.0, domelementtype@1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2"
@ -2641,7 +2632,7 @@ domhandler@^2.3.0:
dependencies:
domelementtype "1"
domutils@1.5.1, domutils@^1.5.1:
domutils@^1.5.1, domutils@1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
dependencies:
@ -2660,11 +2651,9 @@ dot-prop@^4.1.0:
dependencies:
is-obj "^1.0.0"
duplexer2@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db"
dependencies:
readable-stream "~1.1.9"
duplexer@^0.1.1, duplexer@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
duplexer2@^0.1.4:
version "0.1.4"
@ -2672,9 +2661,11 @@ duplexer2@^0.1.4:
dependencies:
readable-stream "^2.0.2"
duplexer@^0.1.1, duplexer@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
duplexer2@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db"
dependencies:
readable-stream "~1.1.9"
ecc-jsbn@~0.1.1:
version "0.1.1"
@ -2836,7 +2827,7 @@ es6-set@~0.1.3:
es6-symbol "3"
event-emitter "~0.3.4"
es6-symbol@3, es6-symbol@~3.1, es6-symbol@~3.1.0:
es6-symbol@~3.1, es6-symbol@~3.1.0, es6-symbol@3:
version "3.1.0"
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa"
dependencies:
@ -2856,7 +2847,7 @@ escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5:
escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5, escape-string-regexp@1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
@ -3066,7 +3057,7 @@ events@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
eventsource@0.1.6, eventsource@^0.1.3:
eventsource@^0.1.3, eventsource@0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232"
dependencies:
@ -3712,7 +3703,7 @@ html-encoding-sniffer@^1.0.1:
dependencies:
whatwg-encoding "^1.0.1"
html-entities@1.2.0, html-entities@^1.2.0:
html-entities@^1.2.0, html-entities@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.0.tgz#41948caf85ce82fed36e4e6a0ed371a6664379e2"
@ -3784,7 +3775,7 @@ hyphenate-style-name@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b"
iconv-lite@0.4, iconv-lite@0.4.13, iconv-lite@~0.4.13:
iconv-lite@~0.4.13, iconv-lite@0.4, iconv-lite@0.4.13:
version "0.4.13"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
@ -3848,7 +3839,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1:
inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@2, inherits@2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
@ -3897,7 +3888,7 @@ intl-messageformat-parser@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.2.0.tgz#5906b7f953ab7470e0dc8549097b648b991892ff"
intl-messageformat@1.3.0, intl-messageformat@^1.3.0:
intl-messageformat@^1.3.0, intl-messageformat@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-1.3.0.tgz#f7d926aded7a3ab19b2dc601efd54e99a4bd4eae"
dependencies:
@ -4180,14 +4171,14 @@ is-utf8@^0.2.0, is-utf8@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
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"
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
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"
isemail@2.x.x:
version "2.2.1"
resolved "https://registry.yarnpkg.com/isemail/-/isemail-2.2.1.tgz#0353d3d9a62951080c262c2aa0a42b8ea8e9e2a6"
@ -4441,6 +4432,13 @@ jsonpointer@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
JSONStream@^0.8.4:
version "0.8.4"
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.8.4.tgz#91657dfe6ff857483066132b4618b62e8f4887bd"
dependencies:
jsonparse "0.0.5"
through ">=2.2.7 <3"
jsprim@^1.2.2:
version "1.3.1"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252"
@ -4691,14 +4689,14 @@ lodash.uniq@^4.3.0, lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.1.0, lodash@^4.10.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
lodash@^3.5.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.10.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1, "lodash@>=3.5 <5":
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
log-symbols@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
@ -4730,7 +4728,7 @@ lowercase-keys@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
lru-cache@4.0.x, lru-cache@^4.0.1:
lru-cache@^4.0.1, lru-cache@4.0.x:
version "4.0.2"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e"
dependencies:
@ -4851,7 +4849,7 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
mime-db@1.x.x, "mime-db@>= 1.24.0 < 2", mime-db@~1.26.0:
"mime-db@>= 1.24.0 < 2", mime-db@~1.26.0, mime-db@1.x.x:
version "1.26.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff"
@ -4861,7 +4859,7 @@ mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7:
dependencies:
mime-db "~1.26.0"
mime@1.3.4, mime@1.3.x, mime@^1.3.4:
mime@^1.3.4, mime@1.3.4, mime@1.3.x:
version "1.3.4"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
@ -4884,38 +4882,38 @@ 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@3.0.3, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3:
minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
dependencies:
brace-expansion "^1.0.0"
minimist@0.0.8, minimist@~0.0.1:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
minimist@^1.1.0, 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"
mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
minimist@~0.0.1, minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1, mkdirp@0.5.x:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
minimist "0.0.8"
moment@^2.10.6, moment@^2.17.1:
moment, moment@^2.10.6, moment@^2.17.1:
version "2.17.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.1.tgz#fed9506063f36b10f066c8b59a144d7faebe1d82"
ms@^0.7.1, ms@0.7.2:
version "0.7.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
ms@0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
ms@0.7.2, ms@^0.7.1:
version "0.7.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
multimatch@^2.0.0, multimatch@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b"
@ -5411,16 +5409,16 @@ path-parse@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
path-to-regexp@0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
path-to-regexp@^1.5.3:
version "1.7.0"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
dependencies:
isarray "0.0.1"
path-to-regexp@0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
path-type@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
@ -5898,26 +5896,26 @@ public-encrypt@^4.0.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"
punycode@^1.2.4, punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
punycode@1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
q@^1.1.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e"
qs@6.4.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
qs@~6.3.0:
version "6.3.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
qs@6.4.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
query-string@^4.1.0:
version "4.3.2"
resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.2.tgz#ec0fd765f58a50031a3968c2431386f8947a5cdd"
@ -5929,7 +5927,7 @@ querystring-es3@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
querystring@0.2.0, querystring@^0.2.0:
querystring@^0.2.0, querystring@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
@ -6072,7 +6070,7 @@ react-router-dom@4.0.0-beta.6:
history "^4.5.1"
react-router "^4.0.0-beta.6"
react-router@4.0.0-beta.6, react-router@^4.0.0-beta.4, react-router@^4.0.0-beta.6:
react-router@^4.0.0-beta.4, react-router@^4.0.0-beta.6, react-router@4.0.0-beta.6:
version "4.0.0-beta.6"
resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.0.0-beta.6.tgz#561ac0bf1929960813bf201319ff85d821d5547b"
dependencies:
@ -6139,15 +6137,6 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.0.0"
"readable-stream@>=1.0.33-1 <1.1.0-0":
version "1.0.34"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
isarray "0.0.1"
string_decoder "~0.10.x"
readable-stream@^1.0.33, readable-stream@~1.1.9:
version "1.1.14"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
@ -6169,6 +6158,15 @@ readable-stream@^2, readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13",
string_decoder "~0.10.x"
util-deprecate "~1.0.1"
"readable-stream@>=1.0.33-1 <1.1.0-0":
version "1.0.34"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
isarray "0.0.1"
string_decoder "~0.10.x"
readable-stream@~2.1.4:
version "2.1.5"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0"
@ -6476,7 +6474,7 @@ right-align@^0.1.1:
dependencies:
align-text "^0.1.1"
rimraf@2, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.0, rimraf@^2.5.4:
rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.0, rimraf@^2.5.4, rimraf@2:
version "2.6.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
dependencies:
@ -6520,7 +6518,7 @@ semver-diff@^2.0.0:
dependencies:
semver "^5.0.3"
"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@~5.3.0:
semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@~5.3.0, "semver@2 || 3 || 4 || 5":
version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
@ -6626,6 +6624,10 @@ simple-mock@^0.7.3:
version "0.7.3"
resolved "https://registry.yarnpkg.com/simple-mock/-/simple-mock-0.7.3.tgz#461c9e6f1c339cc49a7871b390676cd064388036"
simple-statistics:
version "2.5.0"
resolved "https://registry.yarnpkg.com/simple-statistics/-/simple-statistics-2.5.0.tgz#7cd77b04288402f17fe21fd2b63c5e1a51ef3f51"
simple-swizzle@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
@ -6845,6 +6847,10 @@ strict-uri-encode@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
string_decoder@^0.10.25, string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
string-width@^1.0.1, string-width@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
@ -6860,15 +6866,11 @@ string-width@^2.0.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^3.0.0"
string_decoder@^0.10.25, string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
stringstream@~0.0.4:
version "0.0.5"
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
strip-ansi@3.0.1, strip-ansi@^3.0.0, strip-ansi@^3.0.1:
strip-ansi@^3.0.0, strip-ansi@^3.0.1, strip-ansi@3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
dependencies:
@ -7145,6 +7147,10 @@ thenify@^3.2.1:
dependencies:
any-promise "^1.0.0"
through@^2.3.6, "through@>=2.2.7 <3", through@~2.3.4:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
through2@^0.6.1, through2@^0.6.3, through2@~0.6.1:
version "0.6.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
@ -7159,10 +7165,6 @@ through2@^2.0.0, through2@~2.0.0:
readable-stream "^2.1.5"
xtend "~4.0.1"
"through@>=2.2.7 <3", through@^2.3.6, through@~2.3.4:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
time-require@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/time-require/-/time-require-0.1.2.tgz#f9e12cb370fc2605e11404582ba54ef5ca2b2d98"
@ -7364,16 +7366,16 @@ url-parse-lax@^1.0.0:
dependencies:
prepend-http "^1.0.1"
url-parse@1.0.x:
version "1.0.5"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b"
url-parse@^1.0.1, url-parse@^1.1.1:
version "1.1.8"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.8.tgz#7a65b3a8d57a1e86af6b4e2276e34774167c0156"
dependencies:
querystringify "0.0.x"
requires-port "1.0.x"
url-parse@^1.0.1, url-parse@^1.1.1:
version "1.1.8"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.8.tgz#7a65b3a8d57a1e86af6b4e2276e34774167c0156"
url-parse@1.0.x:
version "1.0.5"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b"
dependencies:
querystringify "0.0.x"
requires-port "1.0.x"
@ -7399,7 +7401,7 @@ util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
util@0.10.3, util@^0.10.3:
util@^0.10.3, util@0.10.3:
version "0.10.3"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
dependencies:
@ -7597,7 +7599,7 @@ which-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
which@1.2.x, which@^1.2.4, which@^1.2.9:
which@^1.2.4, which@^1.2.9, which@1.2.x:
version "1.2.12"
resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192"
dependencies:
@ -7615,15 +7617,15 @@ widest-line@^1.0.0:
dependencies:
string-width "^1.0.1"
window-size@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
window-size@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876"
wordwrap@0.0.2, wordwrap@~0.0.2:
window-size@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
wordwrap@~0.0.2, wordwrap@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
@ -7704,7 +7706,7 @@ xmlhttprequest@1:
version "1.8.0"
resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc"
"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1:
xtend@^4.0.0, "xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.0, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
@ -7764,3 +7766,4 @@ yargs@~3.10.0:
cliui "^2.1.0"
decamelize "^1.0.0"
window-size "0.1.0"