mirror of
https://github.com/yldio/copilot.git
synced 2024-11-28 14:10:04 +02:00
implement "metric by interval" selector
fixes #356 implementation with @juditgreskovits tests with @alex-windett
This commit is contained in:
parent
b229c7b63e
commit
962bc85b28
@ -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"
|
||||
},
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -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
|
||||
|
130
frontend/test/selectors/metric-by-Interval-selector.js
Normal file
130
frontend/test/selectors/metric-by-Interval-selector.js
Normal 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));
|
||||
});
|
506
frontend/test/selectors/metric-by-Interval-selector.json
Normal file
506
frontend/test/selectors/metric-by-Interval-selector.json
Normal 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"
|
||||
]
|
||||
]
|
@ -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"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user