From 24a67ccf854ed001774935ff614ac353d2b8d3dc Mon Sep 17 00:00:00 2001 From: benib Date: Tue, 14 Aug 2018 13:29:54 +0200 Subject: [PATCH 01/18] (fix) show darker 0 grid line if positive and negative values, not if 0 and positive or 0 and negative only. --- chartTypes/commonPostprocessings.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/chartTypes/commonPostprocessings.js b/chartTypes/commonPostprocessings.js index 6285bca8..4cab554b 100644 --- a/chartTypes/commonPostprocessings.js +++ b/chartTypes/commonPostprocessings.js @@ -124,15 +124,15 @@ const highlightZeroGridLineIfPositiveAndNegative = { process: function(svg, spec, item, toolRuntimeConfig, id) { // return early if there are only positive values if ( - dataHelpers.getMinValue(item.data) > 0 && - dataHelpers.getMaxValue(item.data) > 0 + dataHelpers.getMinValue(item.data) >= 0 && + dataHelpers.getMaxValue(item.data) >= 0 ) { return svg; } // return early if there are only negative values if ( - dataHelpers.getMinValue(item.data) < 0 && - dataHelpers.getMaxValue(item.data) < 0 + dataHelpers.getMinValue(item.data) <= 0 && + dataHelpers.getMaxValue(item.data) <= 0 ) { return svg; } From 72872ee20771912b7149304f686bce72c5172e2f Mon Sep 17 00:00:00 2001 From: benib Date: Tue, 14 Aug 2018 13:30:09 +0200 Subject: [PATCH 02/18] (chore) update cli-config colors --- cli-config.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/cli-config.js b/cli-config.js index 49dce0e7..48dc0f06 100644 --- a/cli-config.js +++ b/cli-config.js @@ -89,14 +89,11 @@ async function getColorSchemes(target) { ] } }; - colorSchemes['diverging_one'] = []; - colorSchemes['diverging_one'][2] = [ - sophieVizColorVars["diverging-one-2"]["s-viz-color-diverging-one-2-1"], - sophieVizColorVars["diverging-one-2"]["s-viz-color-diverging-one-2-2"] - ]; - colorSchemes['diverging_one'][3] = [ + colorSchemes["diverging_one"] = []; + colorSchemes["diverging_one"][2] = []; + colorSchemes["diverging_one"][3] = [ sophieVizColorVars["diverging-one-3"]["s-viz-color-diverging-one-3-1"], - sophieVizColorVars["diverging-one-3"]["s-viz-color-diverging-one-3-2"], + sophieColorVars.general["s-color-gray-5"], sophieVizColorVars["diverging-one-3"]["s-viz-color-diverging-one-3-3"] ]; return colorSchemes; From 82a086e8b842238f116857c4b43e5dcbb724dcc3 Mon Sep 17 00:00:00 2001 From: Manuel Roth Date: Tue, 2 Oct 2018 12:07:19 +0200 Subject: [PATCH 03/18] Format values bigger than 0 as signed --- .vscode/launch.json | 2 +- chartTypes/arrow/mapping.js | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 101cdffa..136ce91f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -14,7 +14,7 @@ "DIVERGING_COLOR_SCHEMES": "[{ \"label\": \"one\", \"key\": 0, \"scheme_name\": \"diverging_one\" }, { \"label\": \"two\", \"key\": 1, \"scheme_name\": \"diverging_two\" }, { \"label\": \"three\", \"key\": 2, \"scheme_name\": \"diverging_three\" } ]", "FONTS": "[{\"url\": \"https://assets.static-nzz.ch/nzz-niobe/assets/fonts/GT-America-Standard-Regular.otf\",\"name\": \"nzz-sans-serif\",\"filename\": \"nzz-sans-serif.otf\"}]" }, - "runtimeVersion": "10.6.0", + "runtimeVersion": "10.11.0", "program": "${workspaceRoot}/index.js" } ] diff --git a/chartTypes/arrow/mapping.js b/chartTypes/arrow/mapping.js index 4bdb3238..c18f7212 100644 --- a/chartTypes/arrow/mapping.js +++ b/chartTypes/arrow/mapping.js @@ -303,11 +303,19 @@ module.exports = function getMapping(config = {}) { from: { data: "diffAnnotationSeries" }, encode: { enter: { - text: { - signal: `format(datum.diffToNext, "${ - d3config.formatLocale.decimal - }")` - }, + text: [ + { + test: "datum.diffToNext > 0", + signal: `format(datum.diffToNext, "+${ + d3config.formatLocale.decimal + }")` + }, + { + signal: `format(datum.diffToNext, "${ + d3config.formatLocale.decimal + }")` + } + ], y: { signal: "arrowGroupHeight / 2 - 4" }, From d197654e9a25a400c734424c1a21bd27f0b1745b Mon Sep 17 00:00:00 2001 From: Manuel Roth Date: Tue, 2 Oct 2018 16:52:15 +0200 Subject: [PATCH 04/18] Add displayOption schema and corresponding availability check --- resources/display-options-schema.json | 16 +++++++++++++ routes/option-availability.js | 33 +++++++++++++++++++++------ 2 files changed, 42 insertions(+), 7 deletions(-) diff --git a/resources/display-options-schema.json b/resources/display-options-schema.json index 356c381d..64980781 100644 --- a/resources/display-options-schema.json +++ b/resources/display-options-schema.json @@ -6,6 +6,22 @@ "hideTitle": { "type": "boolean", "title": "Titel ausblenden" + }, + "size": { + "titel": "Gewicht", + "type": "string", + "default": "basic", + "enum": ["basic", "prominent"], + "Q:options": { + "enum_titles": ["standard", "prominent"], + "availabilityChecks": [ + { + "type": "ToolEndpoint", + "withData": true, + "endpoint": "option-availability/displayWeight" + } + ] + } } } } diff --git a/routes/option-availability.js b/routes/option-availability.js index c56b76ac..98f11a2e 100644 --- a/routes/option-availability.js +++ b/routes/option-availability.js @@ -6,8 +6,7 @@ const getFirstColumnSerie = require("../helpers/dateSeries.js") const getChartTypeForItemAndWidth = require("../helpers/chartType.js") .getChartTypeForItemAndWidth; -const configuredDivergingColorSchemes = require('../helpers/colorSchemes.js').getConfiguredDivergingColorSchemes(); - +const configuredDivergingColorSchemes = require("../helpers/colorSchemes.js").getConfiguredDivergingColorSchemes(); function isBarChart(item) { return ( @@ -76,7 +75,7 @@ module.exports = { } catch (e) { return { available: false - } + }; } } @@ -97,7 +96,9 @@ module.exports = { if (request.params.optionName === "arrow.colorScheme") { return { available: - isArrowChart(request.payload) && hasNoCustomVegaSpec(request.payload) && configuredDivergingColorSchemes + isArrowChart(request.payload) && + hasNoCustomVegaSpec(request.payload) && + configuredDivergingColorSchemes }; } @@ -128,7 +129,10 @@ module.exports = { }; } - if (request.params.optionName === "chartType" || request.params.optionName === "hideAxisLabel") { + if ( + request.params.optionName === "chartType" || + request.params.optionName === "hideAxisLabel" + ) { return { available: hasNoCustomVegaSpec(request.payload) }; @@ -140,7 +144,8 @@ module.exports = { request.params.optionName === "colorOverwrite" ) { return { - available: hasNoCustomVegaSpec(request.payload) && !isArrowChart(request.payload) + available: + hasNoCustomVegaSpec(request.payload) && !isArrowChart(request.payload) }; } @@ -158,7 +163,10 @@ module.exports = { available = true; } - if (isArrowChart(request.payload) && hasNoCustomVegaSpec(request.payload)) { + if ( + isArrowChart(request.payload) && + hasNoCustomVegaSpec(request.payload) + ) { available = true; } @@ -197,6 +205,17 @@ module.exports = { }; } + if (request.params.optionName === "displayWeight") { + const options = request.payload.options; + return { + available: + isLineChart(request.payload) || + ((options.chartType === "Bar" || + options.chartType === "StackedBar") && + options.barOptions.isBarChart === false) + }; + } + return Boom.badRequest(); } }; From c8e53e806ca1724eaf0243bf6c02522023e71b7b Mon Sep 17 00:00:00 2001 From: Manuel Roth Date: Tue, 2 Oct 2018 17:04:10 +0200 Subject: [PATCH 05/18] Fix type in displayOptions schema --- resources/display-options-schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/display-options-schema.json b/resources/display-options-schema.json index 64980781..7fcc2cc8 100644 --- a/resources/display-options-schema.json +++ b/resources/display-options-schema.json @@ -8,7 +8,7 @@ "title": "Titel ausblenden" }, "size": { - "titel": "Gewicht", + "title": "Gewicht", "type": "string", "default": "basic", "enum": ["basic", "prominent"], From 2bcf24ce4c84b3bb9a799f0f9312e176e8ee376f Mon Sep 17 00:00:00 2001 From: Manuel Roth Date: Wed, 3 Oct 2018 12:11:32 +0200 Subject: [PATCH 06/18] Refactor mapping to use renderingInfoInput instead of item --- .vscode/launch.json | 2 +- chartTypes/arrow/mapping.js | 48 +++++++++++++------------ chartTypes/bar-stacked/mapping.js | 42 ++++++++++++---------- chartTypes/bar/mapping.js | 42 ++++++++++++---------- chartTypes/column-stacked/mapping.js | 28 ++++++++------- chartTypes/column/mapping.js | 24 +++++++------ chartTypes/commonMappings.js | 54 +++++++++++++++------------- chartTypes/dotplot/mapping.js | 48 +++++++++++++------------ chartTypes/line/mapping.js | 52 +++++++++++++++------------ helpers/data.js | 7 ++-- helpers/itemVegaMapping.js | 10 +++--- routes/rendering-info/web-svg.js | 46 +++++++++++------------- routes/rendering-info/web.js | 3 +- 13 files changed, 217 insertions(+), 189 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 101cdffa..136ce91f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -14,7 +14,7 @@ "DIVERGING_COLOR_SCHEMES": "[{ \"label\": \"one\", \"key\": 0, \"scheme_name\": \"diverging_one\" }, { \"label\": \"two\", \"key\": 1, \"scheme_name\": \"diverging_two\" }, { \"label\": \"three\", \"key\": 2, \"scheme_name\": \"diverging_three\" } ]", "FONTS": "[{\"url\": \"https://assets.static-nzz.ch/nzz-niobe/assets/fonts/GT-America-Standard-Regular.otf\",\"name\": \"nzz-sans-serif\",\"filename\": \"nzz-sans-serif.otf\"}]" }, - "runtimeVersion": "10.6.0", + "runtimeVersion": "10.11.0", "program": "${workspaceRoot}/index.js" } ] diff --git a/chartTypes/arrow/mapping.js b/chartTypes/arrow/mapping.js index 4bdb3238..9a838465 100644 --- a/chartTypes/arrow/mapping.js +++ b/chartTypes/arrow/mapping.js @@ -13,11 +13,11 @@ const textMetrics = require("vega").textMetrics; const configuredDivergingColorSchemes = require("../../helpers/colorSchemes.js").getConfiguredDivergingColorSchemes(); -module.exports = function getMapping(config = {}) { +module.exports = function getMapping() { return [ { - path: "data", - mapToSpec: function(itemData, spec, item) { + path: "item.data", + mapToSpec: function(itemData, spec) { // set the x axis title objectPath.set(spec, "axes.1.title", itemData[0][0]); @@ -126,8 +126,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.hideAxisLabel", - mapToSpec: function(hideAxisLabel, spec, item) { + path: "item.options.hideAxisLabel", + mapToSpec: function(hideAxisLabel, spec) { if (hideAxisLabel === true) { // unset the x axis label objectPath.set(spec, "axes.1.title", undefined); @@ -136,12 +136,14 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.arrowOptions.minValue", - mapToSpec: function(minValue, spec, item) { + path: "item.options.arrowOptions.minValue", + mapToSpec: function(minValue, spec, renderingInfoInput) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(item.data); + const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); - const dataMinValue = dataHelpers.getMinValue(item.data); + const dataMinValue = dataHelpers.getMinValue( + renderingInfoInput.item.data + ); if (dataMinValue < minValue) { minValue = dataMinValue; } @@ -151,12 +153,14 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.arrowOptions.maxValue", - mapToSpec: function(maxValue, spec, item) { + path: "item.options.arrowOptions.maxValue", + mapToSpec: function(maxValue, spec, renderingInfoInput) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(item.data); + const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); - const dataMaxValue = dataHelpers.getMaxValue(item.data); + const dataMaxValue = dataHelpers.getMaxValue( + renderingInfoInput.item.data + ); if (dataMaxValue > maxValue) { maxValue = dataMaxValue; } @@ -166,8 +170,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.arrowOptions.colorScheme", - mapToSpec: function(colorScheme, spec, item) { + path: "item.options.arrowOptions.colorScheme", + mapToSpec: function(colorScheme, spec) { if ( configuredDivergingColorSchemes && configuredDivergingColorSchemes[colorScheme] @@ -181,8 +185,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.annotations.first", - mapToSpec: function(showFirstAnimation, spec, item) { + path: "item.options.annotations.first", + mapToSpec: function(showFirstAnimation, spec) { if (!showFirstAnimation) { return; } @@ -229,8 +233,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.annotations.last", - mapToSpec: function(showLastAnnotation, spec, item) { + path: "item.options.annotations.last", + mapToSpec: function(showLastAnnotation, spec) { if (!showLastAnnotation) { return; } @@ -277,8 +281,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.annotations.diff", - mapToSpec: function(showDiffAnnotation, spec, item) { + path: "item.options.annotations.diff", + mapToSpec: function(showDiffAnnotation, spec) { if (!showDiffAnnotation) { return; } @@ -325,5 +329,5 @@ module.exports = function getMapping(config = {}) { spec.marks[0].marks[0].marks.push(diffTextMarksSpec); } } - ].concat(commonMappings.getBarLabelColorMappings(config)); + ].concat(commonMappings.getBarLabelColorMappings()); }; diff --git a/chartTypes/bar-stacked/mapping.js b/chartTypes/bar-stacked/mapping.js index 72e910b9..f6f533d9 100644 --- a/chartTypes/bar-stacked/mapping.js +++ b/chartTypes/bar-stacked/mapping.js @@ -11,7 +11,8 @@ const getLongestDataLabel = require("../../helpers/data.js") .getLongestDataLabel; const textMetrics = require("vega").textMetrics; -function shouldHaveLabelsOnTopOfBar(item, config) { +function shouldHaveLabelsOnTopOfBar(renderingInfoInput) { + const item = renderingInfoInput.item; // this does not work for positive and negative values. so if we have both, we do not show the labels on top const minValue = dataHelpers.getMinValue(item.data); const maxValue = dataHelpers.getMaxValue(item.data); @@ -19,23 +20,24 @@ function shouldHaveLabelsOnTopOfBar(item, config) { return false; } - const longestLabel = getLongestDataLabel(item, config, true); + const longestLabel = getLongestDataLabel(renderingInfoInput, true); const textItem = { text: longestLabel }; const longestLabelWidth = textMetrics.width(textItem); - if (config.width / 3 < longestLabelWidth) { + if (renderingInfoInput.width / 3 < longestLabelWidth) { return true; } return false; } -module.exports = function getMapping(config = {}) { +module.exports = function getMapping() { return [ { - path: "data", - mapToSpec: function(itemData, spec, item) { + path: "item.data", + mapToSpec: function(itemData, spec, renderingInfoInput) { + const item = renderingInfoInput.item; // set the x axis title objectPath.set(spec, "axes.1.title", itemData[0][0]); @@ -81,7 +83,7 @@ module.exports = function getMapping(config = {}) { ); numberOfDataSeriesSignal.value = itemData[0].length - 1; // the first column is not a data column, so we subtract it - if (shouldHaveLabelsOnTopOfBar(item, config)) { + if (shouldHaveLabelsOnTopOfBar(renderingInfoInput)) { spec.axes[1].labels = false; // flush the X axis labels if we have the labels on top of the bar @@ -98,7 +100,7 @@ module.exports = function getMapping(config = {}) { // if we have a date series, we need to format the label accordingly // otherwise we use the exact xValue as the label const labelText = {}; - if (config.dateFormat) { + if (renderingInfoInput.dateFormat) { const d3format = intervals[item.options.dateSeriesOptions.interval].d3format; labelText.signal = `timeFormat(datum.xValue, '${ @@ -130,8 +132,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "data", - mapToSpec: function(itemData, spec, item, id) { + path: "item.data", + mapToSpec: function(itemData, spec) { // check if all rows sum up to 100 const stackedSums = itemData .slice(1) @@ -158,8 +160,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.hideAxisLabel", - mapToSpec: function(hideAxisLabel, spec, item) { + path: "item.options.hideAxisLabel", + mapToSpec: function(hideAxisLabel, spec) { if (hideAxisLabel === true) { // unset the x axis label objectPath.set(spec, "axes.1.title", undefined); @@ -168,12 +170,14 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.barOptions.maxValue", - mapToSpec: function(maxValue, spec, item) { + path: "item.options.barOptions.maxValue", + mapToSpec: function(maxValue, spec, renderingInfoInput) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(item.data); + const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); - const dataMaxValue = dataHelpers.getMaxValue(item.data); + const dataMaxValue = dataHelpers.getMaxValue( + renderingInfoInput.item.data + ); if (dataMaxValue > maxValue) { maxValue = dataMaxValue; } @@ -183,7 +187,7 @@ module.exports = function getMapping(config = {}) { } } ] - .concat(commonMappings.getBarDateSeriesHandlingMappings(config)) - .concat(commonMappings.getBarPrognosisMappings(config)) - .concat(commonMappings.getBarLabelColorMappings(config)); + .concat(commonMappings.getBarDateSeriesHandlingMappings()) + .concat(commonMappings.getBarPrognosisMappings()) + .concat(commonMappings.getBarLabelColorMappings()); }; diff --git a/chartTypes/bar/mapping.js b/chartTypes/bar/mapping.js index e3f2fcbe..d02f79aa 100644 --- a/chartTypes/bar/mapping.js +++ b/chartTypes/bar/mapping.js @@ -10,7 +10,8 @@ const getLongestDataLabel = require("../../helpers/data.js") .getLongestDataLabel; const textMetrics = require("vega").textMetrics; -function shouldHaveLabelsOnTopOfBar(item, config) { +function shouldHaveLabelsOnTopOfBar(renderingInfoInput) { + const item = renderingInfoInput.item; // this does not work for positive and negative values. so if we have both, we do not show the labels on top const minValue = dataHelpers.getMinValue(item.data); const maxValue = dataHelpers.getMaxValue(item.data); @@ -18,35 +19,36 @@ function shouldHaveLabelsOnTopOfBar(item, config) { return false; } - const longestLabel = getLongestDataLabel(item, config, true); + const longestLabel = getLongestDataLabel(renderingInfoInput, true); const textItem = { text: longestLabel }; const longestLabelWidth = textMetrics.width(textItem); - if (config.width / 3 < longestLabelWidth) { + if (renderingInfoInput.width / 3 < longestLabelWidth) { return true; } return false; } -module.exports = function getMapping(config = {}) { +module.exports = function getMapping() { return [ { - path: "data", - mapToSpec: function(itemData, spec, item) { + path: "item.data", + mapToSpec: function(itemData, spec, renderingInfoInput) { + const item = renderingInfoInput.item; // set the x axis title objectPath.set(spec, "axes.1.title", itemData[0][0]); // set the barWidth depending on the number of bars we will get const numberOfBars = (itemData.length - 1) * itemData[0].length; const barWidthSignal = spec.signals.find(signal => { - return signal.name === 'barWidth' + return signal.name === "barWidth"; }); if (numberOfBars > 10) { - barWidthSignal.value = 16 + barWidthSignal.value = 16; } else { - barWidthSignal.value = 24 + barWidthSignal.value = 24; } // check if we need to shorten the number labels @@ -80,7 +82,7 @@ module.exports = function getMapping(config = {}) { ); numberOfDataSeriesSignal.value = itemData[0].length - 1; // the first column is not a data column, so we subtract it - if (shouldHaveLabelsOnTopOfBar(item, config)) { + if (shouldHaveLabelsOnTopOfBar(renderingInfoInput)) { spec.axes[1].labels = false; // flush the X axis labels if we have the labels on top of the bar @@ -97,7 +99,7 @@ module.exports = function getMapping(config = {}) { // if we have a date series, we need to format the label accordingly // otherwise we use the exact xValue as the label const labelText = {}; - if (config.dateFormat) { + if (renderingInfoInput.dateFormat) { const d3format = intervals[item.options.dateSeriesOptions.interval].d3format; labelText.signal = `timeFormat(datum.xValue, '${ @@ -129,8 +131,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.hideAxisLabel", - mapToSpec: function(hideAxisLabel, spec, item) { + path: "item.options.hideAxisLabel", + mapToSpec: function(hideAxisLabel, spec) { if (hideAxisLabel === true) { // unset the x axis label objectPath.set(spec, "axes.1.title", undefined); @@ -140,11 +142,13 @@ module.exports = function getMapping(config = {}) { }, { path: "options.barOptions.maxValue", - mapToSpec: function(maxValue, spec, item) { + mapToSpec: function(maxValue, spec, renderingInfoInput) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(item.data); + const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); - const dataMaxValue = dataHelpers.getMaxValue(item.data); + const dataMaxValue = dataHelpers.getMaxValue( + renderingInfoInput.item.data + ); if (dataMaxValue > maxValue) { maxValue = dataMaxValue; } @@ -154,7 +158,7 @@ module.exports = function getMapping(config = {}) { } } ] - .concat(commonMappings.getBarDateSeriesHandlingMappings(config)) - .concat(commonMappings.getBarPrognosisMappings(config)) - .concat(commonMappings.getBarLabelColorMappings(config)); + .concat(commonMappings.getBarDateSeriesHandlingMappings()) + .concat(commonMappings.getBarPrognosisMappings()) + .concat(commonMappings.getBarLabelColorMappings()); }; diff --git a/chartTypes/column-stacked/mapping.js b/chartTypes/column-stacked/mapping.js index 690e851f..e708a6a4 100644 --- a/chartTypes/column-stacked/mapping.js +++ b/chartTypes/column-stacked/mapping.js @@ -5,10 +5,10 @@ const dataHelpers = require("../../helpers/data.js"); const commonMappings = require("../commonMappings.js"); -module.exports = function getMapping(config = {}) { +module.exports = function getMapping() { return [ { - path: "data", + path: "item.data", mapToSpec: function(itemData, spec) { // set the x axis title objectPath.set(spec, "axes.0.title", itemData[0][0]); @@ -46,8 +46,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "data", - mapToSpec: function(itemData, spec, item, id) { + path: "item.data", + mapToSpec: function(itemData, spec) { // check if all rows sum up to 100 const stackedSums = itemData .slice(1) @@ -74,8 +74,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.hideAxisLabel", - mapToSpec: function(hideAxisLabel, spec, item) { + path: "item.options.hideAxisLabel", + mapToSpec: function(hideAxisLabel, spec) { if (hideAxisLabel === true) { // unset the x axis label objectPath.set(spec, "axes.0.title", undefined); @@ -84,12 +84,14 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.barOptions.maxValue", - mapToSpec: function(maxValue, spec, item) { + path: "item.options.barOptions.maxValue", + mapToSpec: function(maxValue, spec, renderingInfoInput) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(item.data); + const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); - const dataMaxValue = dataHelpers.getMaxValue(item.data); + const dataMaxValue = dataHelpers.getMaxValue( + renderingInfoInput.item.data + ); if (dataMaxValue > maxValue) { maxValue = dataMaxValue; } @@ -99,7 +101,7 @@ module.exports = function getMapping(config = {}) { } } ] - .concat(commonMappings.getColumnDateSeriesHandlingMappings(config)) - .concat(commonMappings.getColumnPrognosisMappings(config)) - .concat(commonMappings.getColumnLabelColorMappings(config)); + .concat(commonMappings.getColumnDateSeriesHandlingMappings()) + .concat(commonMappings.getColumnPrognosisMappings()) + .concat(commonMappings.getColumnLabelColorMappings()); }; diff --git a/chartTypes/column/mapping.js b/chartTypes/column/mapping.js index 3107add2..d68a796f 100644 --- a/chartTypes/column/mapping.js +++ b/chartTypes/column/mapping.js @@ -5,10 +5,10 @@ const dataHelpers = require("../../helpers/data.js"); const commonMappings = require("../commonMappings.js"); -module.exports = function getMapping(config = {}) { +module.exports = function getMapping() { return [ { - path: "data", + path: "item.data", mapToSpec: function(itemData, spec) { // set the x axis title objectPath.set(spec, "axes.0.title", itemData[0][0]); @@ -46,8 +46,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.hideAxisLabel", - mapToSpec: function(hideAxisLabel, spec, item) { + path: "item.options.hideAxisLabel", + mapToSpec: function(hideAxisLabel, spec) { if (hideAxisLabel === true) { // unset the x axis label objectPath.set(spec, "axes.0.title", undefined); @@ -56,12 +56,14 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.barOptions.maxValue", - mapToSpec: function(maxValue, spec, item) { + path: "item.options.barOptions.maxValue", + mapToSpec: function(maxValue, spec, renderingInfoInput) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(item.data); + const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); - const dataMaxValue = dataHelpers.getMaxValue(item.data); + const dataMaxValue = dataHelpers.getMaxValue( + renderingInfoInput.item.data + ); if (dataMaxValue > maxValue) { maxValue = dataMaxValue; } @@ -71,7 +73,7 @@ module.exports = function getMapping(config = {}) { } } ] - .concat(commonMappings.getColumnDateSeriesHandlingMappings(config)) - .concat(commonMappings.getColumnPrognosisMappings(config)) - .concat(commonMappings.getColumnLabelColorMappings(config)); + .concat(commonMappings.getColumnDateSeriesHandlingMappings()) + .concat(commonMappings.getColumnPrognosisMappings()) + .concat(commonMappings.getColumnLabelColorMappings()); }; diff --git a/chartTypes/commonMappings.js b/chartTypes/commonMappings.js index e5bc6848..640a041d 100644 --- a/chartTypes/commonMappings.js +++ b/chartTypes/commonMappings.js @@ -5,13 +5,14 @@ const d3 = { timeFormat: require("d3-time-format").timeFormat }; -function getLineDateSeriesHandlingMappings(config = {}) { +function getLineDateSeriesHandlingMappings() { return [ { - path: "data", // various settings that are not tied to an option - mapToSpec: function(itemData, spec, item) { + path: "item.data", // various settings that are not tied to an option + mapToSpec: function(itemData, spec, renderingInfoInput) { + const item = renderingInfoInput.item; if ( - config.dateFormat && + renderingInfoInput.dateFormat && item.options.lineChartOptions && item.options.lineChartOptions.isStockChart !== true ) { @@ -21,8 +22,9 @@ function getLineDateSeriesHandlingMappings(config = {}) { } }, { - path: "options.dateSeriesOptions.interval", - mapToSpec: function(interval, spec, item) { + path: "item.options.dateSeriesOptions.interval", + mapToSpec: function(interval, spec, renderingInfoInput) { + const item = renderingInfoInput.item; // only use this option if we have a valid dateFormat if (spec.scales[0].type === "time") { if (process.env.FEAT_VARIABLE_HOUR_STEP === true) { @@ -61,12 +63,13 @@ function getLineDateSeriesHandlingMappings(config = {}) { ]; } -function getColumnDateSeriesHandlingMappings(config = {}) { +function getColumnDateSeriesHandlingMappings() { return [ { - path: "data", // various settings that are not tied to an option - mapToSpec: function(itemData, spec, item) { - if (config.dateFormat) { + path: "item.data", // various settings that are not tied to an option + mapToSpec: function(itemData, spec, renderingInfoInput) { + const item = renderingInfoInput.item; + if (renderingInfoInput.dateFormat) { const d3format = intervals[item.options.dateSeriesOptions.interval].d3format; @@ -90,12 +93,13 @@ function getColumnDateSeriesHandlingMappings(config = {}) { ]; } -function getBarDateSeriesHandlingMappings(config = {}) { +function getBarDateSeriesHandlingMappings() { return [ { - path: "data", // various settings that are not tied to an option - mapToSpec: function(itemData, spec, item) { - if (config.dateFormat) { + path: "item.data", // various settings that are not tied to an option + mapToSpec: function(itemData, spec, renderingInfoInput) { + const item = renderingInfoInput.item; + if (renderingInfoInput.dateFormat) { const d3format = intervals[item.options.dateSeriesOptions.interval].d3format; @@ -119,11 +123,11 @@ function getBarDateSeriesHandlingMappings(config = {}) { ]; } -function getColumnPrognosisMappings(config) { +function getColumnPrognosisMappings() { return [ { - path: "options.dateSeriesOptions.prognosisStart", - mapToSpec: function(prognosisStart, spec, item, id) { + path: "item.options.dateSeriesOptions.prognosisStart", + mapToSpec: function(prognosisStart, spec, renderingInfoInput, id) { if (!Number.isInteger(prognosisStart)) { return; } @@ -168,11 +172,11 @@ function getColumnPrognosisMappings(config) { ]; } -function getBarPrognosisMappings(config) { +function getBarPrognosisMappings() { return [ { - path: "options.dateSeriesOptions.prognosisStart", - mapToSpec: function(prognosisStart, spec, item, id) { + path: "item.options.dateSeriesOptions.prognosisStart", + mapToSpec: function(prognosisStart, spec, renderingInfoInput, id) { if (!Number.isInteger(prognosisStart)) { return; } @@ -215,11 +219,11 @@ function getBarPrognosisMappings(config) { ]; } -function getColumnLabelColorMappings(config) { +function getColumnLabelColorMappings() { return [ { - path: "data", - mapToSpec: function(itemData, spec, item, id) { + path: "item.data", + mapToSpec: function(itemData, spec) { if (!spec.config.axis.labelColorDark) { return; } @@ -233,11 +237,11 @@ function getColumnLabelColorMappings(config) { ]; } -function getBarLabelColorMappings(config) { +function getBarLabelColorMappings() { return [ { path: "data", - mapToSpec: function(itemData, spec, item, id) { + mapToSpec: function(itemData, spec) { if (!spec.config.axis.labelColorDark) { return; } diff --git a/chartTypes/dotplot/mapping.js b/chartTypes/dotplot/mapping.js index aa64e620..d590e6a9 100644 --- a/chartTypes/dotplot/mapping.js +++ b/chartTypes/dotplot/mapping.js @@ -11,11 +11,11 @@ const getLongestDataLabel = require("../../helpers/data.js") .getLongestDataLabel; const textMetrics = require("vega").textMetrics; -module.exports = function getMapping(config = {}) { +module.exports = function getMapping() { return [ { - path: "data", - mapToSpec: function(itemData, spec, item) { + path: "item.data", + mapToSpec: function(itemData, spec) { // set the x axis title objectPath.set(spec, "axes.1.title", itemData[0][0]); @@ -138,8 +138,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.hideAxisLabel", - mapToSpec: function(hideAxisLabel, spec, item) { + path: "item.options.hideAxisLabel", + mapToSpec: function(hideAxisLabel, spec) { if (hideAxisLabel === true) { // unset the x axis label objectPath.set(spec, "axes.1.title", undefined); @@ -148,12 +148,14 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.dotplotOptions.minValue", - mapToSpec: function(minValue, spec, item) { + path: "item.options.dotplotOptions.minValue", + mapToSpec: function(minValue, spec, renderingInfoInput) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(item.data); + const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); - const dataMinValue = dataHelpers.getMinValue(item.data); + const dataMinValue = dataHelpers.getMinValue( + renderingInfoInput.item.data + ); if (dataMinValue < minValue) { minValue = dataMinValue; } @@ -163,12 +165,14 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.dotplotOptions.maxValue", - mapToSpec: function(maxValue, spec, item) { + path: "item.options.dotplotOptions.maxValue", + mapToSpec: function(maxValue, spec, renderingInfoInput) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(item.data); + const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); - const dataMaxValue = dataHelpers.getMaxValue(item.data); + const dataMaxValue = dataHelpers.getMaxValue( + renderingInfoInput.item.data + ); if (dataMaxValue > maxValue) { maxValue = dataMaxValue; } @@ -178,8 +182,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.dotplotOptions.connectDots", - mapToSpec: function(connectDots, spec, item) { + path: "item.options.dotplotOptions.connectDots", + mapToSpec: function(connectDots, spec) { if (!connectDots) { return; } @@ -212,8 +216,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.annotations.min", - mapToSpec: function(showMinAnnotation, spec, item) { + path: "item.options.annotations.min", + mapToSpec: function(showMinAnnotation, spec) { if (!showMinAnnotation) { return; } @@ -250,8 +254,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.annotations.max", - mapToSpec: function(showMaxAnnotation, spec, item) { + path: "item.options.annotations.max", + mapToSpec: function(showMaxAnnotation, spec) { if (!showMaxAnnotation) { return; } @@ -288,8 +292,8 @@ module.exports = function getMapping(config = {}) { } }, { - path: "options.annotations.diff", - mapToSpec: function(showDiffAnnoation, spec, item) { + path: "item.options.annotations.diff", + mapToSpec: function(showDiffAnnoation, spec) { if (!showDiffAnnoation) { return; } @@ -337,5 +341,5 @@ module.exports = function getMapping(config = {}) { spec.marks[0].marks[0].marks.push(diffTextMarksSpec); } } - ].concat(commonMappings.getBarLabelColorMappings(config)); + ].concat(commonMappings.getBarLabelColorMappings()); }; diff --git a/chartTypes/line/mapping.js b/chartTypes/line/mapping.js index b1a89bb9..1f7b357e 100644 --- a/chartTypes/line/mapping.js +++ b/chartTypes/line/mapping.js @@ -11,11 +11,11 @@ const d3 = { array: require("d3-array") }; -module.exports = function getMappings(config = {}) { +module.exports = function getMappings() { return [ { - path: "data", - mapToSpec: function(itemData, spec, item) { + path: "item.data", + mapToSpec: function(itemData, spec) { // set the x axis title objectPath.set(spec, "axes.0.title", itemData[0][0]); @@ -52,8 +52,9 @@ module.exports = function getMappings(config = {}) { } }, { - path: "options.annotations", - mapToSpec: function(annotationOptions, spec, item) { + path: "item.options.annotations", + mapToSpec: function(annotationOptions, spec, renderingInfoInput) { + const item = renderingInfoInput.item; // this option is only available if we have exactly one data series if (item.data[0].length !== 2) { return; @@ -160,8 +161,8 @@ module.exports = function getMappings(config = {}) { } }, { - path: "options.hideAxisLabel", - mapToSpec: function(hideAxisLabel, spec, item) { + path: "item.options.hideAxisLabel", + mapToSpec: function(hideAxisLabel, spec) { if (hideAxisLabel === true) { // unset the x axis label objectPath.set(spec, "axes.0.title", undefined); @@ -170,12 +171,14 @@ module.exports = function getMappings(config = {}) { } }, { - path: "options.lineChartOptions.minValue", - mapToSpec: function(minValue, spec, item) { + path: "item.options.lineChartOptions.minValue", + mapToSpec: function(minValue, spec, renderingInfoInput) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(item.data); + const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); - const dataMinValue = dataHelpers.getMinValue(item.data); + const dataMinValue = dataHelpers.getMinValue( + renderingInfoInput.item.data + ); if (dataMinValue < minValue) { minValue = dataMinValue; } @@ -185,12 +188,14 @@ module.exports = function getMappings(config = {}) { } }, { - path: "options.lineChartOptions.maxValue", - mapToSpec: function(maxValue, spec, item) { + path: "item.options.lineChartOptions.maxValue", + mapToSpec: function(maxValue, spec, renderingInfoInput) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(item.data); + const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); - const dataMaxValue = dataHelpers.getMaxValue(item.data); + const dataMaxValue = dataHelpers.getMaxValue( + renderingInfoInput.item.data + ); if (dataMaxValue > maxValue) { maxValue = dataMaxValue; } @@ -200,16 +205,16 @@ module.exports = function getMappings(config = {}) { } }, { - path: "options.lineChartOptions.reverseYScale", - mapToSpec: function(reverseYScale, spec, item) { + path: "item.options.lineChartOptions.reverseYScale", + mapToSpec: function(reverseYScale, spec) { if (reverseYScale === true) { objectPath.set(spec, "scales.1.reverse", true); } } }, { - path: "options.lineChartOptions.lineInterpolation", - mapToSpec: function(interpolation, spec, item) { + path: "item.options.lineChartOptions.lineInterpolation", + mapToSpec: function(interpolation, spec) { if (interpolation) { objectPath.set( spec, @@ -220,7 +225,7 @@ module.exports = function getMappings(config = {}) { } }, { - path: "options.dateSeriesOptions.prognosisStart", + path: "item.options.dateSeriesOptions.prognosisStart", mapToSpec: function(prognosisStart, spec) { if (prognosisStart === null) { return; @@ -245,8 +250,9 @@ module.exports = function getMappings(config = {}) { } }, { - path: "options.lineChartOptions.isStockChart", - mapToSpec: function(isStockChart, spec, item) { + path: "item.options.lineChartOptions.isStockChart", + mapToSpec: function(isStockChart, spec, renderingInfoInput) { + const item = renderingInfoInput.item; if (!isStockChart) { return; } @@ -303,5 +309,5 @@ module.exports = function getMappings(config = {}) { objectPath.set(spec, "axes.0.labelOverlap", "parity"); // use parity label overlap strategy if we have a date series } } - ].concat(commonMappings.getLineDateSeriesHandlingMappings(config)); + ].concat(commonMappings.getLineDateSeriesHandlingMappings()); }; diff --git a/helpers/data.js b/helpers/data.js index a2fb091c..544f7828 100644 --- a/helpers/data.js +++ b/helpers/data.js @@ -31,7 +31,8 @@ function getDataWithStringsCastedToFloats(data) { }); } -function getLongestDataLabel(item, config, transposed = false) { +function getLongestDataLabel(renderingInfoInput, transposed = false) { + const item = renderingInfoInput.item; data = clone(item.data); if (transposed) { data = array2d.transpose(data); @@ -40,7 +41,7 @@ function getLongestDataLabel(item, config, transposed = false) { titleRow.shift(); return titleRow .map(label => { - if (!config.dateFormat) { + if (!renderingInfoInput.dateFormat) { return label; } // we have a date format, so we need to format the labels @@ -53,7 +54,7 @@ function getLongestDataLabel(item, config, transposed = false) { }) .reduce((prev, current) => { // if we have a date series, we need to format the label here - if (config.dateFormat) { + if (renderingInfoInput.dateFormat) { } if (prev.length > current.length) { diff --git a/helpers/itemVegaMapping.js b/helpers/itemVegaMapping.js index ec4aac6a..0c22b8f0 100644 --- a/helpers/itemVegaMapping.js +++ b/helpers/itemVegaMapping.js @@ -1,11 +1,11 @@ const clone = require("clone"); const objectPath = require("object-path"); -function getSpecWithMappedItem(item, id, chartType, spec, config = {}) { +function getMappedSpec(id, chartType, spec, renderingInfoInput) { const modifiedSpec = clone(spec); let mappings; try { - mappings = require(`../chartTypes/${chartType}/mapping.js`)(config); + mappings = require(`../chartTypes/${chartType}/mapping.js`)(); } catch (err) { throw new Error( `no or no valid type mapping implemented for type ${chartType}` @@ -13,11 +13,11 @@ function getSpecWithMappedItem(item, id, chartType, spec, config = {}) { } try { for (const mapping of mappings) { - const itemValue = objectPath.get(item, mapping.path); + const itemValue = objectPath.get(renderingInfoInput, mapping.path); if (itemValue === undefined) { continue; } - mapping.mapToSpec(itemValue, modifiedSpec, item, id); + mapping.mapToSpec(itemValue, modifiedSpec, renderingInfoInput, id); } } catch (err) { throw err; @@ -26,5 +26,5 @@ function getSpecWithMappedItem(item, id, chartType, spec, config = {}) { } module.exports = { - getSpecWithMappedItem: getSpecWithMappedItem + getMappedSpec: getMappedSpec }; diff --git a/routes/rendering-info/web-svg.js b/routes/rendering-info/web-svg.js index a6fbe40e..ca5e9594 100644 --- a/routes/rendering-info/web-svg.js +++ b/routes/rendering-info/web-svg.js @@ -3,8 +3,7 @@ const Boom = require("boom"); const vega = require("vega"); const clone = require("clone"); const deepmerge = require("deepmerge"); -const getSpecWithMappedItem = require("../../helpers/itemVegaMapping.js") - .getSpecWithMappedItem; +const getMappedSpec = require("../../helpers/itemVegaMapping.js").getMappedSpec; const vegaConfigHelper = require("../../helpers/vegaConfig.js"); const getDataWithStringsCastedToFloats = require("../../helpers/data.js") .getDataWithStringsCastedToFloats; @@ -52,28 +51,31 @@ function getSpecConfig(item, baseConfig, toolRuntimeConfig) { return config; } -async function getSpec(item, width, toolRuntimeConfig, chartType, id) { - const mappingConfig = { - width: width, - colorSchemes: toolRuntimeConfig.colorSchemes +async function getSpec(id, width, chartType, item, toolRuntimeConfig) { + const renderingInfoInput = { + item: item, + toolRuntimeConfig: toolRuntimeConfig }; - const chartTypeConfig = require(`../../chartTypes/${chartType}/config.js`); if (chartTypeConfig.data.handleDateSeries) { // if we have a date series, we change the date values to date objects - // and set the detected dateFormat to the mappingConfig to be used within the mapping functions + // and set the detected dateFormat to the renderingInfoInput to be used within the mapping functions if (dateSeries.isDateSeriesData(item.data)) { - mappingConfig.dateFormat = dateSeries.getDateFormatForData(item.data); - item.data = dateSeries.getDataWithDateParsed(item.data); + renderingInfoInput.dateFormat = dateSeries.getDateFormatForData( + renderingInfoInput.item.data + ); + renderingInfoInput.item.data = dateSeries.getDataWithDateParsed( + renderingInfoInput.item.data + ); } } const templateSpec = require(`../../chartTypes/${chartType}/vega-spec.json`); templateSpec.config = getSpecConfig( - item, + renderingInfoInput.item, templateSpec.config, - toolRuntimeConfig + renderingInfoInput.toolRuntimeConfig ); // set the size to the spec @@ -82,20 +84,14 @@ async function getSpec(item, width, toolRuntimeConfig, chartType, id) { // this will be the compiled spec from template and mapping let spec; try { - spec = getSpecWithMappedItem( - item, - id, - chartType, - templateSpec, - mappingConfig - ); + spec = getMappedSpec(id, chartType, templateSpec, renderingInfoInput); } catch (err) { throw new Boom(err); } return spec; } -async function getSvg(item, width, toolRuntimeConfig, id, request) { +async function getSvg(id, request, width, item, toolRuntimeConfig) { // first and foremost: cast all the floats in strings to actual floats item.data = getDataWithStringsCastedToFloats(item.data); @@ -113,7 +109,7 @@ async function getSvg(item, width, toolRuntimeConfig, id, request) { spec.data[0].values = clone(item.data); } else if (item.options.chartType) { try { - spec = await getSpec(item, width, toolRuntimeConfig, chartType, id); + spec = await getSpec(id, width, chartType, item, toolRuntimeConfig); } catch (err) { console.log(err); throw err; @@ -213,11 +209,11 @@ module.exports = { const webSvg = { markup: await getSvg( - item, - request.query.width, - toolRuntimeConfig, request.query.id, - request + request, + request.query.width, + item, + toolRuntimeConfig ) }; diff --git a/routes/rendering-info/web.js b/routes/rendering-info/web.js index 2a782494..35d22e93 100644 --- a/routes/rendering-info/web.js +++ b/routes/rendering-info/web.js @@ -109,7 +109,8 @@ module.exports = { toolRuntimeConfigForWebSVG = { axis: request.payload.toolRuntimeConfig.axis, text: request.payload.toolRuntimeConfig.text, - colorSchemes: request.payload.toolRuntimeConfig.colorSchemes + colorSchemes: request.payload.toolRuntimeConfig.colorSchemes, + size: request.payload.toolRuntimeConfig.displayOptions.size }; } From 463cd7692cd54a6670eadef1f69abef41d972ecc Mon Sep 17 00:00:00 2001 From: Manuel Roth Date: Wed, 3 Oct 2018 14:42:44 +0200 Subject: [PATCH 07/18] Implement height calculation based on size displayOption --- chartTypes/column-stacked/mapping.js | 21 +++++++++++++++++++++ chartTypes/column/mapping.js | 21 +++++++++++++++++++++ chartTypes/line/mapping.js | 21 +++++++++++++++++++++ 3 files changed, 63 insertions(+) diff --git a/chartTypes/column-stacked/mapping.js b/chartTypes/column-stacked/mapping.js index e708a6a4..9db7b41d 100644 --- a/chartTypes/column-stacked/mapping.js +++ b/chartTypes/column-stacked/mapping.js @@ -73,6 +73,27 @@ module.exports = function getMapping() { objectPath.set(spec, "axes.1.values", [0, 25, 50, 75, 100]); } }, + { + path: "toolRuntimeConfig.displayOptions.size", + mapToSpec: function(size, spec) { + let height; + if (size === "prominent") { + // Aspect ratio 16:9 + height = spec.width * (9 / 16); + if (height < 240) { + height = 240; + } + objectPath.set(spec, "height", height); + } else { + // Aspect ratio 7:3 + height = spec.width * (3 / 7); + if (height < 240) { + height = 240; + } + objectPath.set(spec, "height", height); + } + } + }, { path: "item.options.hideAxisLabel", mapToSpec: function(hideAxisLabel, spec) { diff --git a/chartTypes/column/mapping.js b/chartTypes/column/mapping.js index d68a796f..21f32e66 100644 --- a/chartTypes/column/mapping.js +++ b/chartTypes/column/mapping.js @@ -45,6 +45,27 @@ module.exports = function getMapping() { numberOfDataSeriesSignal.value = itemData[0].length - 1; // the first column is not a data column, so we subtract it } }, + { + path: "toolRuntimeConfig.displayOptions.size", + mapToSpec: function(size, spec) { + let height; + if (size === "prominent") { + // Aspect ratio 16:9 + height = spec.width * (9 / 16); + if (height < 240) { + height = 240; + } + objectPath.set(spec, "height", height); + } else { + // Aspect ratio 7:3 + height = spec.width * (3 / 7); + if (height < 240) { + height = 240; + } + objectPath.set(spec, "height", height); + } + } + }, { path: "item.options.hideAxisLabel", mapToSpec: function(hideAxisLabel, spec) { diff --git a/chartTypes/line/mapping.js b/chartTypes/line/mapping.js index 1f7b357e..16afb52d 100644 --- a/chartTypes/line/mapping.js +++ b/chartTypes/line/mapping.js @@ -51,6 +51,27 @@ module.exports = function getMappings() { ]; } }, + { + path: "toolRuntimeConfig.displayOptions.size", + mapToSpec: function(size, spec) { + let height; + if (size === "prominent") { + // Aspect ratio 16:9 + height = spec.width * (9 / 16); + if (height < 240) { + height = 240; + } + objectPath.set(spec, "height", height); + } else { + // Aspect ratio 7:3 + height = spec.width * (3 / 7); + if (height < 240) { + height = 240; + } + objectPath.set(spec, "height", height); + } + } + }, { path: "item.options.annotations", mapToSpec: function(annotationOptions, spec, renderingInfoInput) { From 46ecf65e1de8e69d5243fc0bc055e7420f8bbc28 Mon Sep 17 00:00:00 2001 From: Manuel Roth Date: Wed, 3 Oct 2018 16:41:36 +0200 Subject: [PATCH 08/18] Height for axis label should not be included in aspect ratio calculation --- chartTypes/column-stacked/mapping.js | 4 ++-- chartTypes/column/mapping.js | 4 ++-- chartTypes/line/mapping.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/chartTypes/column-stacked/mapping.js b/chartTypes/column-stacked/mapping.js index 9db7b41d..e7e76116 100644 --- a/chartTypes/column-stacked/mapping.js +++ b/chartTypes/column-stacked/mapping.js @@ -83,14 +83,14 @@ module.exports = function getMapping() { if (height < 240) { height = 240; } - objectPath.set(spec, "height", height); + objectPath.set(spec, "height", height + 20); // increase the height because we need space for the axis title } else { // Aspect ratio 7:3 height = spec.width * (3 / 7); if (height < 240) { height = 240; } - objectPath.set(spec, "height", height); + objectPath.set(spec, "height", height + 20); // increase the height because we need space for the axis title } } }, diff --git a/chartTypes/column/mapping.js b/chartTypes/column/mapping.js index 21f32e66..d8b146d5 100644 --- a/chartTypes/column/mapping.js +++ b/chartTypes/column/mapping.js @@ -55,14 +55,14 @@ module.exports = function getMapping() { if (height < 240) { height = 240; } - objectPath.set(spec, "height", height); + objectPath.set(spec, "height", height + 20); // increase the height because we need space for the axis title } else { // Aspect ratio 7:3 height = spec.width * (3 / 7); if (height < 240) { height = 240; } - objectPath.set(spec, "height", height); + objectPath.set(spec, "height", height + 20); // increase the height because we need space for the axis title } } }, diff --git a/chartTypes/line/mapping.js b/chartTypes/line/mapping.js index 16afb52d..346390b7 100644 --- a/chartTypes/line/mapping.js +++ b/chartTypes/line/mapping.js @@ -61,14 +61,14 @@ module.exports = function getMappings() { if (height < 240) { height = 240; } - objectPath.set(spec, "height", height); + objectPath.set(spec, "height", height + 20); // increase the height because we need space for the axis title } else { // Aspect ratio 7:3 height = spec.width * (3 / 7); if (height < 240) { height = 240; } - objectPath.set(spec, "height", height); + objectPath.set(spec, "height", height + 20); // increase the height because we need space for the axis title } } }, From b137d5167245cd71c68e6b9cab2454d513f62d10 Mon Sep 17 00:00:00 2001 From: Manuel Roth Date: Wed, 3 Oct 2018 16:41:57 +0200 Subject: [PATCH 09/18] Set size property if displayOption is available --- routes/rendering-info/web.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/routes/rendering-info/web.js b/routes/rendering-info/web.js index 35d22e93..f796d1d7 100644 --- a/routes/rendering-info/web.js +++ b/routes/rendering-info/web.js @@ -110,8 +110,14 @@ module.exports = { axis: request.payload.toolRuntimeConfig.axis, text: request.payload.toolRuntimeConfig.text, colorSchemes: request.payload.toolRuntimeConfig.colorSchemes, - size: request.payload.toolRuntimeConfig.displayOptions.size + size: "basic" }; + + // set size property if displayOptions are defined + const displayOptions = request.payload.toolRuntimeConfig.displayOptions; + if (displayOptions && displayOptions.size) { + toolRuntimeConfigForWebSVG.size = displayOptions.size; + } } let requestMethod; From fd75ad8652434725b6b4f2dddfaa1ca56be2cebf Mon Sep 17 00:00:00 2001 From: Manuel Roth Date: Wed, 3 Oct 2018 17:29:18 +0200 Subject: [PATCH 10/18] Define height mapping once in commenmappings --- chartTypes/column-stacked/mapping.js | 24 ++--------------------- chartTypes/column/mapping.js | 24 ++--------------------- chartTypes/commonMappings.js | 29 +++++++++++++++++++++++++++- chartTypes/line/mapping.js | 25 +++--------------------- 4 files changed, 35 insertions(+), 67 deletions(-) diff --git a/chartTypes/column-stacked/mapping.js b/chartTypes/column-stacked/mapping.js index e7e76116..f917d9de 100644 --- a/chartTypes/column-stacked/mapping.js +++ b/chartTypes/column-stacked/mapping.js @@ -73,27 +73,6 @@ module.exports = function getMapping() { objectPath.set(spec, "axes.1.values", [0, 25, 50, 75, 100]); } }, - { - path: "toolRuntimeConfig.displayOptions.size", - mapToSpec: function(size, spec) { - let height; - if (size === "prominent") { - // Aspect ratio 16:9 - height = spec.width * (9 / 16); - if (height < 240) { - height = 240; - } - objectPath.set(spec, "height", height + 20); // increase the height because we need space for the axis title - } else { - // Aspect ratio 7:3 - height = spec.width * (3 / 7); - if (height < 240) { - height = 240; - } - objectPath.set(spec, "height", height + 20); // increase the height because we need space for the axis title - } - } - }, { path: "item.options.hideAxisLabel", mapToSpec: function(hideAxisLabel, spec) { @@ -124,5 +103,6 @@ module.exports = function getMapping() { ] .concat(commonMappings.getColumnDateSeriesHandlingMappings()) .concat(commonMappings.getColumnPrognosisMappings()) - .concat(commonMappings.getColumnLabelColorMappings()); + .concat(commonMappings.getColumnLabelColorMappings()) + .concat(commonMappings.getHeightMappings()); }; diff --git a/chartTypes/column/mapping.js b/chartTypes/column/mapping.js index d8b146d5..0c6f1404 100644 --- a/chartTypes/column/mapping.js +++ b/chartTypes/column/mapping.js @@ -45,27 +45,6 @@ module.exports = function getMapping() { numberOfDataSeriesSignal.value = itemData[0].length - 1; // the first column is not a data column, so we subtract it } }, - { - path: "toolRuntimeConfig.displayOptions.size", - mapToSpec: function(size, spec) { - let height; - if (size === "prominent") { - // Aspect ratio 16:9 - height = spec.width * (9 / 16); - if (height < 240) { - height = 240; - } - objectPath.set(spec, "height", height + 20); // increase the height because we need space for the axis title - } else { - // Aspect ratio 7:3 - height = spec.width * (3 / 7); - if (height < 240) { - height = 240; - } - objectPath.set(spec, "height", height + 20); // increase the height because we need space for the axis title - } - } - }, { path: "item.options.hideAxisLabel", mapToSpec: function(hideAxisLabel, spec) { @@ -96,5 +75,6 @@ module.exports = function getMapping() { ] .concat(commonMappings.getColumnDateSeriesHandlingMappings()) .concat(commonMappings.getColumnPrognosisMappings()) - .concat(commonMappings.getColumnLabelColorMappings()); + .concat(commonMappings.getColumnLabelColorMappings()) + .concat(commonMappings.getHeightMappings()); }; diff --git a/chartTypes/commonMappings.js b/chartTypes/commonMappings.js index 640a041d..2b747978 100644 --- a/chartTypes/commonMappings.js +++ b/chartTypes/commonMappings.js @@ -255,6 +255,32 @@ function getBarLabelColorMappings() { ]; } +function getHeightMappings() { + return [ + { + path: "toolRuntimeConfig.size", + mapToSpec: function(size, spec, renderingInfoInput) { + let aspectRatio; + if (size === "prominent") { + aspectRatio = 9 / 16; + } else { + aspectRatio = 3 / 7; + } + let height = spec.width * aspectRatio; + + // minimum height is 240px + if (height < 240) { + height = 240; + } + // increase the height if hideAxisLabel option is unchecked + if (renderingInfoInput.item.options.hideAxisLabel === false) { + height = height + 20; + } + } + } + ]; +} + module.exports = { getLineDateSeriesHandlingMappings: getLineDateSeriesHandlingMappings, getColumnDateSeriesHandlingMappings: getColumnDateSeriesHandlingMappings, @@ -262,5 +288,6 @@ module.exports = { getColumnPrognosisMappings: getColumnPrognosisMappings, getBarPrognosisMappings: getBarPrognosisMappings, getColumnLabelColorMappings: getColumnLabelColorMappings, - getBarLabelColorMappings: getBarLabelColorMappings + getBarLabelColorMappings: getBarLabelColorMappings, + getHeightMappings: getHeightMappings }; diff --git a/chartTypes/line/mapping.js b/chartTypes/line/mapping.js index 346390b7..386532f8 100644 --- a/chartTypes/line/mapping.js +++ b/chartTypes/line/mapping.js @@ -51,27 +51,6 @@ module.exports = function getMappings() { ]; } }, - { - path: "toolRuntimeConfig.displayOptions.size", - mapToSpec: function(size, spec) { - let height; - if (size === "prominent") { - // Aspect ratio 16:9 - height = spec.width * (9 / 16); - if (height < 240) { - height = 240; - } - objectPath.set(spec, "height", height + 20); // increase the height because we need space for the axis title - } else { - // Aspect ratio 7:3 - height = spec.width * (3 / 7); - if (height < 240) { - height = 240; - } - objectPath.set(spec, "height", height + 20); // increase the height because we need space for the axis title - } - } - }, { path: "item.options.annotations", mapToSpec: function(annotationOptions, spec, renderingInfoInput) { @@ -330,5 +309,7 @@ module.exports = function getMappings() { objectPath.set(spec, "axes.0.labelOverlap", "parity"); // use parity label overlap strategy if we have a date series } } - ].concat(commonMappings.getLineDateSeriesHandlingMappings()); + ] + .concat(commonMappings.getLineDateSeriesHandlingMappings()) + .concat(commonMappings.getHeightMappings()); }; From e17ff5a4939ff5e608e2d6c3feee2a501f8f932a Mon Sep 17 00:00:00 2001 From: Manuel Roth Date: Thu, 4 Oct 2018 10:37:10 +0200 Subject: [PATCH 11/18] Write new height to spec --- chartTypes/commonMappings.js | 1 + 1 file changed, 1 insertion(+) diff --git a/chartTypes/commonMappings.js b/chartTypes/commonMappings.js index 2b747978..b19e4067 100644 --- a/chartTypes/commonMappings.js +++ b/chartTypes/commonMappings.js @@ -276,6 +276,7 @@ function getHeightMappings() { if (renderingInfoInput.item.options.hideAxisLabel === false) { height = height + 20; } + objectPath.set(spec, "height", height); } } ]; From c765154c59044e876379c9166a5a8bd2d9afa817 Mon Sep 17 00:00:00 2001 From: Manuel Roth Date: Thu, 4 Oct 2018 11:54:40 +0200 Subject: [PATCH 12/18] Pass the entire displayOption object to the web-svg route --- chartTypes/commonMappings.js | 2 +- routes/rendering-info/web.js | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/chartTypes/commonMappings.js b/chartTypes/commonMappings.js index b19e4067..c59d38c8 100644 --- a/chartTypes/commonMappings.js +++ b/chartTypes/commonMappings.js @@ -258,7 +258,7 @@ function getBarLabelColorMappings() { function getHeightMappings() { return [ { - path: "toolRuntimeConfig.size", + path: "toolRuntimeConfig.displayOptions.size", mapToSpec: function(size, spec, renderingInfoInput) { let aspectRatio; if (size === "prominent") { diff --git a/routes/rendering-info/web.js b/routes/rendering-info/web.js index f796d1d7..730e5352 100644 --- a/routes/rendering-info/web.js +++ b/routes/rendering-info/web.js @@ -110,14 +110,8 @@ module.exports = { axis: request.payload.toolRuntimeConfig.axis, text: request.payload.toolRuntimeConfig.text, colorSchemes: request.payload.toolRuntimeConfig.colorSchemes, - size: "basic" + displayOptions: request.payload.toolRuntimeConfig.displayOptions || {} }; - - // set size property if displayOptions are defined - const displayOptions = request.payload.toolRuntimeConfig.displayOptions; - if (displayOptions && displayOptions.size) { - toolRuntimeConfigForWebSVG.size = displayOptions.size; - } } let requestMethod; From 906deaed8bdaf9ad1f4477d0197423e85143b6dd Mon Sep 17 00:00:00 2001 From: Manuel Roth Date: Fri, 5 Oct 2018 10:06:05 +0200 Subject: [PATCH 13/18] Use radio buttons instead of dropdown for weight property --- resources/display-options-schema.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/display-options-schema.json b/resources/display-options-schema.json index 7fcc2cc8..296defa0 100644 --- a/resources/display-options-schema.json +++ b/resources/display-options-schema.json @@ -13,6 +13,7 @@ "default": "basic", "enum": ["basic", "prominent"], "Q:options": { + "selectType": "radio", "enum_titles": ["standard", "prominent"], "availabilityChecks": [ { From fd49545ecb0c02226138a85eb24bb0848d770c38 Mon Sep 17 00:00:00 2001 From: Manuel Roth Date: Mon, 8 Oct 2018 09:52:10 +0200 Subject: [PATCH 14/18] Rename size title --- resources/display-options-schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/display-options-schema.json b/resources/display-options-schema.json index 296defa0..60520f90 100644 --- a/resources/display-options-schema.json +++ b/resources/display-options-schema.json @@ -8,7 +8,7 @@ "title": "Titel ausblenden" }, "size": { - "title": "Gewicht", + "title": "Gewichtung", "type": "string", "default": "basic", "enum": ["basic", "prominent"], From 9d5b0cc42aa8aa75e3a063d23d7fddecaa816851 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20K=C3=BCng?= Date: Mon, 8 Oct 2018 12:48:11 +0200 Subject: [PATCH 15/18] download data in chart --- package-lock.json | 2919 +++++++++++++++++----------------- package.json | 1 + resources/schema.json | 5 + routes/download-data.js | 41 + routes/rendering-info/web.js | 6 + routes/routes.js | 3 +- views/footer.html | 3 +- 7 files changed, 1519 insertions(+), 1459 deletions(-) create mode 100644 routes/download-data.js diff --git a/package-lock.json b/package-lock.json index 7de483b3..d1eaab2c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,8 +24,8 @@ "resolved": "https://registry.npmjs.org/accept/-/accept-3.0.2.tgz", "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", "requires": { - "boom": "7.1.1", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "acorn": { @@ -38,7 +38,7 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", "requires": { - "acorn": "5.4.1" + "acorn": "^5.0.0" } }, "acorn-jsx": { @@ -47,7 +47,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -63,10 +63,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -81,9 +81,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "alphanum-sort": { @@ -103,8 +103,8 @@ "resolved": "https://registry.npmjs.org/ammo/-/ammo-3.0.0.tgz", "integrity": "sha512-6yoz9MXYV9sgCHrwprHWPxBaJ9/roQRfXzS//4JCNgKfPYcghFNwJQKBt6vWOoSGGRHsP6qsLJ+xtKStKJWdLQ==", "requires": { - "boom": "6.0.0", - "hoek": "5.0.3" + "boom": "6.x.x", + "hoek": "5.x.x" }, "dependencies": { "boom": { @@ -112,7 +112,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-6.0.0.tgz", "integrity": "sha512-LYLa8BmiiOWjvxTMVh73lcZzd2E5yczrKvxAny1UuzO2tkarLrw4tdp3rdfmus3+YfKcZP0vRSM3Obh+fGK6eA==", "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } } } @@ -134,7 +134,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "anymatch": { @@ -143,8 +143,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "aproba": { @@ -157,8 +157,8 @@ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.3" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "argparse": { @@ -167,7 +167,7 @@ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -176,7 +176,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -202,7 +202,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -277,12 +277,12 @@ "integrity": "sha512-XqHfo8Ht0VU+T5P+eWEVoXza456KJ4l62BPewu3vpNf3LP9s2+zYXkXBznzYby4XeECXgG3N4i+hGvOhXErZmA==", "dev": true, "requires": { - "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000804", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "6.0.17", - "postcss-value-parser": "3.3.0" + "browserslist": "^2.11.1", + "caniuse-lite": "^1.0.30000791", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^6.0.16", + "postcss-value-parser": "^3.2.3" } }, "aws-sign2": { @@ -306,9 +306,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "ansi-styles": { @@ -323,11 +323,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "supports-color": { @@ -349,7 +349,7 @@ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "big-time": { @@ -368,7 +368,7 @@ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "boom": { @@ -376,7 +376,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-7.1.1.tgz", "integrity": "sha512-qwEARHTliqgEQiVkzKkkbLt3q0vRPIW60VRZ8zRnbjsm7INkPe9NxfAYDDYLZOdhxyUHa1gIe639Cx7t6RH/4A==", "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "bossy": { @@ -385,9 +385,9 @@ "integrity": "sha512-IrXZdXnDrjfk9ZVtnnmehlcTGK/KRqUJuNZJteMGU2/cJdXC6yWf2yhkAAbAgjOTsJJHXdlYloTeFH1ZgRNllw==", "dev": true, "requires": { - "boom": "7.1.1", - "hoek": "5.0.3", - "joi": "13.1.2" + "boom": "7.x.x", + "hoek": "5.x.x", + "joi": "13.x.x" } }, "bounce": { @@ -395,8 +395,8 @@ "resolved": "https://registry.npmjs.org/bounce/-/bounce-1.2.0.tgz", "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", "requires": { - "boom": "7.1.1", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "brace-expansion": { @@ -404,7 +404,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -414,9 +414,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "browser-process-hrtime": { @@ -430,8 +430,8 @@ "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000804", - "electron-to-chromium": "1.3.33" + "caniuse-lite": "^1.0.30000792", + "electron-to-chromium": "^1.3.30" } }, "builtin-modules": { @@ -445,8 +445,8 @@ "resolved": "https://registry.npmjs.org/call/-/call-5.0.1.tgz", "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", "requires": { - "boom": "7.1.1", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "caller-path": { @@ -455,7 +455,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -475,8 +475,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "caniuse-api": { @@ -485,10 +485,10 @@ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000804", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" }, "dependencies": { "browserslist": { @@ -497,8 +497,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000804", - "electron-to-chromium": "1.3.33" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } } } @@ -520,7 +520,7 @@ "resolved": "https://registry.npmjs.org/canvas/-/canvas-1.6.11.tgz", "integrity": "sha512-ElVw5Uk8PReGpzXfDg6PDa+wntnZLGWWfdSHI0Pc8GyXiFbW13drSTzWU6C4E5QylHe+FnLqI7ngMRlp3eGZIQ==", "requires": { - "nan": "2.10.0" + "nan": "^2.10.0" } }, "canvas-prebuilt": { @@ -528,9 +528,9 @@ "resolved": "https://registry.npmjs.org/canvas-prebuilt/-/canvas-prebuilt-1.6.5-prerelease.1.tgz", "integrity": "sha1-aBSyC5yAg13MJL/WGZFHKIYwUhw=", "requires": { - "node-pre-gyp": "0.6.39", - "parse-css-font": "2.0.2", - "units-css": "0.4.0" + "node-pre-gyp": "^0.6.29", + "parse-css-font": "^2.0.2", + "units-css": "^0.4.0" } }, "caseless": { @@ -543,10 +543,10 @@ "resolved": "https://registry.npmjs.org/catbox/-/catbox-10.0.2.tgz", "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", "requires": { - "boom": "7.1.1", - "bounce": "1.2.0", - "hoek": "5.0.3", - "joi": "13.1.2" + "boom": "7.x.x", + "bounce": "1.x.x", + "hoek": "5.x.x", + "joi": "13.x.x" } }, "catbox-memory": { @@ -554,9 +554,9 @@ "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-3.1.1.tgz", "integrity": "sha512-fl6TI/uneeUb9NGClKWZWkpCZQrkPmuVz/Jaqqb15vqW6KGfJ/vMP/ZMp8VgAkyTrrRvFHbFcS67sbU7EkvbhQ==", "requires": { - "big-time": "2.0.0", - "boom": "7.1.1", - "hoek": "5.0.3" + "big-time": "2.x.x", + "boom": "7.x.x", + "hoek": "5.x.x" } }, "center-align": { @@ -566,8 +566,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" }, "dependencies": { "lazy-cache": { @@ -585,9 +585,9 @@ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" }, "dependencies": { "supports-color": { @@ -596,7 +596,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -613,15 +613,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "circular-json": { @@ -636,7 +636,7 @@ "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", "dev": true, "requires": { - "chalk": "1.1.3" + "chalk": "^1.1.3" }, "dependencies": { "ansi-styles": { @@ -651,11 +651,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "supports-color": { @@ -672,7 +672,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -686,9 +686,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "clone": { @@ -707,7 +707,7 @@ "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", "dev": true, "requires": { - "q": "1.5.1" + "q": "^1.1.2" } }, "code": { @@ -716,7 +716,7 @@ "integrity": "sha512-Typ0BuWOKPGNOY9M7hBDY60J9uSPok4Y7hhtTG/3Cpqg0/AhauZSWax0Mb0lZuzm89w1YgVvl8BTrBW/4Sw6sw==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "code-point-at": { @@ -730,9 +730,9 @@ "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", "dev": true, "requires": { - "clone": "1.0.3", - "color-convert": "1.9.1", - "color-string": "0.3.0" + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" }, "dependencies": { "clone": { @@ -749,7 +749,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -764,7 +764,7 @@ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.0.0" } }, "colormin": { @@ -773,9 +773,9 @@ "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", "dev": true, "requires": { - "color": "0.11.4", + "color": "^0.11.0", "css-color-names": "0.0.4", - "has": "1.0.1" + "has": "^1.0.1" } }, "colors": { @@ -789,7 +789,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -808,9 +808,9 @@ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "console-control-strings": { @@ -823,7 +823,7 @@ "resolved": "https://registry.npmjs.org/content/-/content-4.0.3.tgz", "integrity": "sha512-BrMfT1xXZHaXyPT/sneXc3IQzh8uL15JWV1R5tU0xo4sBGjF7BN+IRi9WoQLSbfNEs7bJ3E69rjxBKg/RL7lOQ==", "requires": { - "boom": "7.1.1" + "boom": "7.x.x" } }, "core-util-is": { @@ -836,9 +836,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "cryptiles": { @@ -846,7 +846,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", "requires": { - "boom": "7.1.1" + "boom": "7.x.x" } }, "css-color-names": { @@ -885,7 +885,7 @@ "resolved": "https://registry.npmjs.org/css-list-helpers/-/css-list-helpers-1.0.1.tgz", "integrity": "sha1-//VxkiAtuDJAxBaG+RnkSacCT30=", "requires": { - "tcomb": "2.7.0" + "tcomb": "^2.5.0" } }, "css-system-font-keywords": { @@ -899,38 +899,38 @@ "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", "dev": true, "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.1", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.2", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" }, "dependencies": { "ansi-styles": { @@ -945,12 +945,12 @@ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000804", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" } }, "browserslist": { @@ -959,8 +959,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000804", - "electron-to-chromium": "1.3.33" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } }, "chalk": { @@ -969,11 +969,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -996,10 +996,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -1008,7 +1008,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -1019,8 +1019,8 @@ "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", "dev": true, "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" + "clap": "^1.0.9", + "source-map": "^0.5.3" } }, "cssom": { @@ -1033,7 +1033,7 @@ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", "requires": { - "cssom": "0.3.2" + "cssom": "0.3.x" } }, "currently-unhandled": { @@ -1042,7 +1042,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "d3-array": { @@ -1065,7 +1065,7 @@ "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.0.tgz", "integrity": "sha512-6zccxidQRtcydx0lWqHawdW1UcBzKZTxv0cW90Dlx98pY/L7GjQJmftH1tWopYFDaLCoXU0ECg9x/z2EuFT8tg==", "requires": { - "d3-array": "1.2.1" + "d3-array": "^1.1.1" } }, "d3-dispatch": { @@ -1078,9 +1078,9 @@ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.0.8.tgz", "integrity": "sha512-IVCJpQ+YGe3qu6odkPQI0KPqfxkhbP/oM1XhhE/DFiYmcXKfCRub4KXyiuehV1d4drjWVXHUWx4gHqhdZb6n/A==", "requires": { - "commander": "2.14.1", - "iconv-lite": "0.4.19", - "rw": "1.3.3" + "commander": "2", + "iconv-lite": "0.4", + "rw": "1" } }, "d3-force": { @@ -1088,10 +1088,10 @@ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.1.0.tgz", "integrity": "sha512-2HVQz3/VCQs0QeRNZTYb7GxoUCeb6bOzMp/cGcLa87awY9ZsPvXOGeZm0iaGBjXic6I1ysKwMn+g+5jSAdzwcg==", "requires": { - "d3-collection": "1.0.4", - "d3-dispatch": "1.0.3", - "d3-quadtree": "1.0.3", - "d3-timer": "1.0.7" + "d3-collection": "1", + "d3-dispatch": "1", + "d3-quadtree": "1", + "d3-timer": "1" } }, "d3-format": { @@ -1104,7 +1104,7 @@ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.10.0.tgz", "integrity": "sha512-VK/buVGgexthTTqGRNXQ/LSo3EbOFu4p2Pjud5drSIaEnOaF2moc8A3P7WEljEO1JEBEwbpAJjFWMuJiUtoBcw==", "requires": { - "d3-array": "1.2.1" + "d3-array": "1" } }, "d3-hierarchy": { @@ -1117,7 +1117,7 @@ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.2.0.tgz", "integrity": "sha512-zLvTk8CREPFfc/2XglPQriAsXkzoRDAyBzndtKJWrZmHw7kmOWHNS11e40kPTd/oGk8P5mFJW5uBbcFQ+ybxyA==", "requires": { - "d3-color": "1.2.0" + "d3-color": "1" } }, "d3-path": { @@ -1135,12 +1135,12 @@ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.1.0.tgz", "integrity": "sha512-Bb2N3ZgzPdKVEoWGkt8lPV6R7YdpSBWI70Xf26NQHOVjs77a6gLUmBOOPt9d9nB8JiQhwXY1RHCa+eSyWCJZIQ==", "requires": { - "d3-array": "1.2.1", - "d3-collection": "1.0.4", - "d3-format": "1.2.2", - "d3-interpolate": "1.2.0", - "d3-time": "1.0.8", - "d3-time-format": "2.1.1" + "d3-array": "^1.2.0", + "d3-collection": "1", + "d3-format": "1", + "d3-interpolate": "1", + "d3-time": "1", + "d3-time-format": "2" } }, "d3-scale-chromatic": { @@ -1148,8 +1148,8 @@ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.3.0.tgz", "integrity": "sha512-YwMbiaW2bStWvQFByK8hA6hk7ToWflspIo2TRukCqERd8isiafEMBXmwfh8c7/0Z94mVvIzIveRLVC6RAjhgeA==", "requires": { - "d3-color": "1.2.0", - "d3-interpolate": "1.2.0" + "d3-color": "1", + "d3-interpolate": "1" } }, "d3-shape": { @@ -1157,7 +1157,7 @@ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.2.0.tgz", "integrity": "sha1-RdAVOPBkuv0F6j1tLLdI/YxB93c=", "requires": { - "d3-path": "1.0.5" + "d3-path": "1" } }, "d3-time": { @@ -1170,7 +1170,7 @@ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.1.1.tgz", "integrity": "sha512-8kAkymq2WMfzW7e+s/IUNAtN/y3gZXGRrdGfo6R8NKPAA85UBTxZg5E61bR6nLwjPjj4d3zywSQe1CkYLPFyrw==", "requires": { - "d3-time": "1.0.8" + "d3-time": "1" } }, "d3-timer": { @@ -1188,7 +1188,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "data-urls": { @@ -1196,9 +1196,9 @@ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.0.tgz", "integrity": "sha512-ai40PPQR0Fn1lD2PPie79CibnlMN2AYiDhwFX/rZHVsxbs5kNJSjegqXIprhouGXlRdEnfybva7kqRGnB6mypA==", "requires": { - "abab": "1.0.4", - "whatwg-mimetype": "2.1.0", - "whatwg-url": "6.4.1" + "abab": "^1.0.4", + "whatwg-mimetype": "^2.0.0", + "whatwg-url": "^6.4.0" } }, "debug": { @@ -1246,13 +1246,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" } }, "delayed-stream": { @@ -1282,7 +1282,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "domexception": { @@ -1290,7 +1290,7 @@ "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", "requires": { - "webidl-conversions": "4.0.2" + "webidl-conversions": "^4.0.2" } }, "ecc-jsbn": { @@ -1299,7 +1299,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "electron-to-chromium": { @@ -1313,7 +1313,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.19" + "iconv-lite": "~0.4.13" } }, "error-ex": { @@ -1322,7 +1322,7 @@ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { @@ -1336,11 +1336,11 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -1357,43 +1357,43 @@ "integrity": "sha512-YVXV4bDhNoHHcv0qzU4Meof7/P26B4EuaktMi5L1Tnt52Aov85KmYA8c5D+xyZr/BkhvwUqr011jDSD/QTULxg==", "dev": true, "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.3.0", - "concat-stream": "1.6.0", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.3", - "esquery": "1.0.0", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.3.0", - "ignore": "3.3.7", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.10.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.5", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "require-uncached": "1.0.3", - "semver": "5.5.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.2", - "text-table": "0.2.0" + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "^4.0.1", + "text-table": "~0.2.0" }, "dependencies": { "ansi-regex": { @@ -1429,8 +1429,8 @@ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "dev": true, "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "strip-ansi": { @@ -1439,7 +1439,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -1456,11 +1456,11 @@ "integrity": "sha512-z1yUoSWArx6pXaC0FoWRFpqjbHn8QWonJiTVhJmiC14jOAT7FZKdKWCkhM4jQrgrkEK9YEv3p2HuzSf5dtWmuQ==", "dev": true, "requires": { - "hapi-capitalize-modules": "1.1.6", - "hapi-for-you": "1.0.0", - "hapi-no-var": "1.0.1", - "hapi-scope-start": "2.1.1", - "no-arrowception": "1.0.0" + "hapi-capitalize-modules": "1.x.x", + "hapi-for-you": "1.x.x", + "hapi-no-var": "1.x.x", + "hapi-scope-start": "2.x.x", + "no-arrowception": "1.x.x" } }, "eslint-scope": { @@ -1469,8 +1469,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "4.2.0", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-visitor-keys": { @@ -1485,8 +1485,8 @@ "integrity": "sha512-Zy3tAJDORxQZLl2baguiRU1syPERAIg0L+JB2MWorORgTu/CplzvxS9WWA7Xh4+Q+eOQihNs/1o1Xep8cvCxWQ==", "dev": true, "requires": { - "acorn": "5.4.1", - "acorn-jsx": "3.0.1" + "acorn": "^5.4.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -1500,7 +1500,7 @@ "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -1509,8 +1509,8 @@ "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", "dev": true, "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" + "estraverse": "^4.1.0", + "object-assign": "^4.0.1" } }, "estraverse": { @@ -1528,13 +1528,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "expand-brackets": { @@ -1543,7 +1543,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -1552,7 +1552,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "extend": { @@ -1566,9 +1566,9 @@ "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.19", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -1577,7 +1577,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -1606,7 +1606,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -1615,8 +1615,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -1631,11 +1631,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" }, "dependencies": { "kind-of": { @@ -1650,9 +1650,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "optional": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -1677,8 +1677,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "flat-cache": { @@ -1687,10 +1687,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "flatten": { @@ -1711,7 +1711,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -1724,9 +1724,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "fs.realpath": { @@ -1740,8 +1740,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -1763,8 +1763,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -1775,7 +1775,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1829,7 +1829,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -1842,14 +1842,14 @@ "bundled": true, "optional": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { @@ -1857,12 +1857,12 @@ "bundled": true, "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-unicode": { @@ -1875,7 +1875,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -1883,7 +1883,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -1891,8 +1891,8 @@ "bundled": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -1908,7 +1908,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -1920,7 +1920,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -1931,8 +1931,8 @@ "version": "2.2.4", "bundled": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -1940,7 +1940,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -1966,9 +1966,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -1976,16 +1976,16 @@ "bundled": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { @@ -1993,8 +1993,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -2007,8 +2007,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -2016,10 +2016,10 @@ "bundled": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { @@ -2035,7 +2035,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -2053,8 +2053,8 @@ "bundled": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -2072,10 +2072,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -2090,13 +2090,13 @@ "bundled": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { @@ -2104,7 +2104,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -2140,9 +2140,9 @@ "version": "1.0.2", "bundled": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -2150,14 +2150,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -2170,13 +2170,13 @@ "bundled": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } }, "util-deprecate": { @@ -2189,7 +2189,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -2207,10 +2207,10 @@ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "fstream-ignore": { @@ -2218,9 +2218,9 @@ "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" } }, "function-bind": { @@ -2240,14 +2240,14 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "gaze": { @@ -2256,7 +2256,7 @@ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, "requires": { - "globule": "1.2.1" + "globule": "^1.0.0" } }, "generate-function": { @@ -2271,7 +2271,7 @@ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", "dev": true, "requires": { - "is-property": "1.0.2" + "is-property": "^1.0.0" } }, "get-caller-file": { @@ -2295,7 +2295,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -2303,12 +2303,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -2317,8 +2317,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -2326,7 +2326,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globby": { @@ -2335,12 +2335,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "globule": { @@ -2349,9 +2349,9 @@ "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", "dev": true, "requires": { - "glob": "7.1.2", - "lodash": "4.17.10", - "minimatch": "3.0.4" + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" }, "dependencies": { "lodash": { @@ -2373,10 +2373,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { @@ -2385,7 +2385,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -2395,23 +2395,23 @@ "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.2.0.tgz", "integrity": "sha512-zw2tqNimjT+qglgUNGNpeweHJ5To1xUcJcfGKsG5dWiTzwkEZtmtHJ8mBIvxuuZ3Buu4xkAGj0yWrrR95FVqQQ==", "requires": { - "accept": "3.0.2", - "ammo": "3.0.0", - "boom": "7.1.1", - "bounce": "1.2.0", - "call": "5.0.1", - "catbox": "10.0.2", - "catbox-memory": "3.1.1", - "heavy": "6.1.0", - "hoek": "5.0.3", - "joi": "13.1.2", - "mimos": "4.0.0", - "podium": "3.1.2", - "shot": "4.0.4", - "statehood": "6.0.5", - "subtext": "6.0.7", - "teamwork": "3.0.1", - "topo": "3.0.0" + "accept": "3.x.x", + "ammo": "3.x.x", + "boom": "7.x.x", + "bounce": "1.x.x", + "call": "5.x.x", + "catbox": "10.x.x", + "catbox-memory": "3.x.x", + "heavy": "6.x.x", + "hoek": "5.x.x", + "joi": "13.x.x", + "mimos": "4.x.x", + "podium": "3.x.x", + "shot": "4.x.x", + "statehood": "6.x.x", + "subtext": "6.x.x", + "teamwork": "3.x.x", + "topo": "3.x.x" } }, "hapi-capitalize-modules": { @@ -2448,8 +2448,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "has": { @@ -2458,7 +2458,7 @@ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.0.2" } }, "has-ansi": { @@ -2467,7 +2467,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -2486,10 +2486,10 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" }, "dependencies": { "boom": { @@ -2497,7 +2497,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "cryptiles": { @@ -2505,7 +2505,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "hoek": { @@ -2520,9 +2520,9 @@ "resolved": "https://registry.npmjs.org/heavy/-/heavy-6.1.0.tgz", "integrity": "sha512-TKS9DC9NOTGulHQI31Lx+bmeWmNOstbJbGMiN3pX6bF+Zc2GKSpbbym4oasNnB6yPGkqJ9TQXXYDGohqNSJRxA==", "requires": { - "boom": "7.1.1", - "hoek": "5.0.3", - "joi": "13.1.2" + "boom": "7.x.x", + "hoek": "5.x.x", + "joi": "13.x.x" } }, "hoek": { @@ -2547,7 +2547,7 @@ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", "requires": { - "whatwg-encoding": "1.0.3" + "whatwg-encoding": "^1.0.1" } }, "http-signature": { @@ -2555,9 +2555,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "iconv-lite": { @@ -2589,7 +2589,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexes-of": { @@ -2603,12 +2603,12 @@ "resolved": "https://registry.npmjs.org/inert/-/inert-5.1.0.tgz", "integrity": "sha512-5rJZbezGEkBN4QrP/HEEwsQ0N+7YzqDZrvBZrE7B0CrNY6I4XKI434aL3UNLCmbI4HzPGQs7Ae/4h1tiTMJ6Wg==", "requires": { - "ammo": "3.0.0", - "boom": "7.1.1", - "bounce": "1.2.0", - "hoek": "5.0.3", - "joi": "13.1.2", - "lru-cache": "4.1.1" + "ammo": "3.x.x", + "boom": "7.x.x", + "bounce": "1.x.x", + "hoek": "5.x.x", + "joi": "13.x.x", + "lru-cache": "4.1.x" } }, "inflight": { @@ -2616,8 +2616,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2636,20 +2636,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.0.0", - "chalk": "2.3.0", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.1.0", - "figures": "2.0.0", - "lodash": "4.17.5", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -2670,8 +2670,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -2680,7 +2680,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -2695,9 +2695,9 @@ "resolved": "https://registry.npmjs.org/iron/-/iron-5.0.4.tgz", "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", "requires": { - "boom": "7.1.1", - "cryptiles": "4.1.1", - "hoek": "5.0.3" + "boom": "7.x.x", + "cryptiles": "4.x.x", + "hoek": "5.x.x" } }, "is-absolute-url": { @@ -2718,7 +2718,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -2732,7 +2732,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-dotfile": { @@ -2747,7 +2747,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -2767,7 +2767,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -2775,7 +2775,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { @@ -2783,7 +2783,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-my-ip-valid": { @@ -2798,11 +2798,11 @@ "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", "dev": true, "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "is-my-ip-valid": "1.0.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" } }, "is-number": { @@ -2811,7 +2811,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-path-cwd": { @@ -2826,7 +2826,7 @@ "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", "dev": true, "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -2835,7 +2835,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -2885,7 +2885,7 @@ "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", "dev": true, "requires": { - "html-comment-regex": "1.1.1" + "html-comment-regex": "^1.1.0" } }, "is-typedarray": { @@ -2909,7 +2909,7 @@ "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.1.1.tgz", "integrity": "sha512-mVjAjvdPkpwXW61agT2E9AkGoegZO7SdJGCezWwxnETL58f5KwJ4vSVAMBUL5idL6rTlYAIGkX3n4suiviMLNw==", "requires": { - "punycode": "2.1.0" + "punycode": "2.x.x" } }, "isexe": { @@ -2941,9 +2941,9 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-13.1.2.tgz", "integrity": "sha512-bZZSQYW5lPXenOfENvgCBPb9+H6E6MeNWcMtikI04fKphj5tvFL9TOb+H2apJzbCrRw/jebjTH8z6IHLpBytGg==", "requires": { - "hoek": "5.0.3", - "isemail": "3.1.1", - "topo": "3.0.0" + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" } }, "js-base64": { @@ -2964,8 +2964,8 @@ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", "dev": true, "requires": { - "argparse": "1.0.9", - "esprima": "2.7.3" + "argparse": "^1.0.7", + "esprima": "^2.6.0" }, "dependencies": { "esprima": { @@ -2987,32 +2987,32 @@ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.10.0.tgz", "integrity": "sha512-x5No5FpJgBg3j5aBwA8ka6eGuS5IxbC8FOkmyccKvObtFT0bDMict/LOxINZsZGZSfGdNomLZ/qRV9Bpq/GIBA==", "requires": { - "abab": "1.0.4", - "acorn": "5.4.1", - "acorn-globals": "4.1.0", - "array-equal": "1.0.0", - "cssom": "0.3.2", - "cssstyle": "0.2.37", - "data-urls": "1.0.0", - "domexception": "1.0.1", - "escodegen": "1.9.1", - "html-encoding-sniffer": "1.0.2", - "left-pad": "1.3.0", - "nwmatcher": "1.4.4", + "abab": "^1.0.4", + "acorn": "^5.3.0", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": ">= 0.2.37 < 0.3.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.0", + "escodegen": "^1.9.0", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.2.0", + "nwmatcher": "^1.4.3", "parse5": "4.0.0", - "pn": "1.1.0", - "request": "2.87.0", - "request-promise-native": "1.0.5", - "sax": "1.2.4", - "symbol-tree": "3.2.2", - "tough-cookie": "2.3.3", - "w3c-hr-time": "1.0.1", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.3", - "whatwg-mimetype": "2.1.0", - "whatwg-url": "6.4.1", - "ws": "4.1.0", - "xml-name-validator": "3.0.0" + "pn": "^1.1.0", + "request": "^2.83.0", + "request-promise-native": "^1.0.5", + "sax": "^1.2.4", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.3.3", + "w3c-hr-time": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.3", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^6.4.0", + "ws": "^4.0.0", + "xml-name-validator": "^3.0.0" } }, "json-schema": { @@ -3030,7 +3030,7 @@ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stable-stringify-without-jsonify": { @@ -3071,7 +3071,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lab": { @@ -3080,23 +3080,23 @@ "integrity": "sha512-RzswRTnRLt2NICBvJX0xOaTS/pkVNQlbdcgcCoyxBbf9jv78H8PwU9OChzn2gFvVlQ46IZirFtnZdbD7238rQg==", "dev": true, "requires": { - "bossy": "4.0.1", - "diff": "3.4.0", - "eslint": "4.16.0", - "eslint-config-hapi": "11.1.0", - "eslint-plugin-hapi": "4.1.0", - "espree": "3.5.3", - "find-rc": "3.0.1", - "handlebars": "4.0.11", - "hoek": "5.0.3", - "json-stable-stringify": "1.0.1", - "json-stringify-safe": "5.0.1", - "mkdirp": "0.5.1", - "seedrandom": "2.4.3", - "source-map": "0.6.1", - "source-map-support": "0.5.3", - "supports-color": "4.4.0", - "will-call": "1.0.1" + "bossy": "4.x.x", + "diff": "3.4.x", + "eslint": "4.16.x", + "eslint-config-hapi": "11.x.x", + "eslint-plugin-hapi": "4.x.x", + "espree": "^3.5.1", + "find-rc": "3.0.x", + "handlebars": "4.x.x", + "hoek": "5.x.x", + "json-stable-stringify": "1.x.x", + "json-stringify-safe": "5.x.x", + "mkdirp": "0.5.x", + "seedrandom": "2.4.x", + "source-map": "0.6.x", + "source-map-support": "0.5.x", + "supports-color": "4.4.x", + "will-call": "1.x.x" }, "dependencies": { "source-map": { @@ -3111,7 +3111,7 @@ "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", "dev": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.0" } }, "supports-color": { @@ -3120,7 +3120,7 @@ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -3130,7 +3130,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "left-pad": { @@ -3143,8 +3143,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -3153,11 +3153,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "locate-path": { @@ -3165,8 +3165,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { @@ -3228,8 +3228,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lru-cache": { @@ -3237,8 +3237,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "macaddress": { @@ -3270,7 +3270,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "meow": { @@ -3279,16 +3279,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { "minimist": { @@ -3305,19 +3305,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mime-db": { @@ -3330,7 +3330,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "requires": { - "mime-db": "1.30.0" + "mime-db": "~1.30.0" }, "dependencies": { "mime-db": { @@ -3350,8 +3350,8 @@ "resolved": "https://registry.npmjs.org/mimos/-/mimos-4.0.0.tgz", "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", "requires": { - "hoek": "5.0.3", - "mime-db": "1.32.0" + "hoek": "5.x.x", + "mime-db": "1.x.x" } }, "minimatch": { @@ -3359,7 +3359,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -3385,7 +3385,7 @@ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.16.tgz", "integrity": "sha512-4d1l92plNNqnMkqI/7boWNVXJvwGL2WyByl1Hxp3h/ao3HZiAqaoQY+6KBkYdiN5QtNDpndq+58ozl8W4GVoNw==", "requires": { - "moment": "2.22.1" + "moment": ">= 2.9.0" } }, "ms": { @@ -3415,8 +3415,8 @@ "resolved": "https://registry.npmjs.org/nigel/-/nigel-3.0.0.tgz", "integrity": "sha512-ufFVFCe1zS/pfIQzQNa5uJxB8v8IcVTUn1zyPvQwb4CQGRxxBfdQPSXpEnI6ZzIwbV5L+GuAoRhYgcVSvTO7fA==", "requires": { - "hoek": "5.0.3", - "vise": "3.0.0" + "hoek": "5.x.x", + "vise": "3.x.x" } }, "no-arrowception": { @@ -3430,8 +3430,8 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-gyp": { @@ -3440,18 +3440,18 @@ "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==", "dev": true, "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.4", - "request": "2.81.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.0" + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": ">=2.9.0 <2.82.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" }, "dependencies": { "ajv": { @@ -3460,8 +3460,8 @@ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "dev": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "assert-plus": { @@ -3482,7 +3482,7 @@ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "cryptiles": { @@ -3491,7 +3491,7 @@ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "form-data": { @@ -3500,9 +3500,9 @@ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "har-schema": { @@ -3517,8 +3517,8 @@ "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "dev": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "hawk": { @@ -3527,10 +3527,10 @@ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -3545,9 +3545,9 @@ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "nopt": { @@ -3556,7 +3556,7 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "performance-now": { @@ -3577,28 +3577,28 @@ "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "dev": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.6", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" } }, "semver": { @@ -3613,7 +3613,7 @@ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } } } @@ -3623,17 +3623,17 @@ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", "requires": { - "detect-libc": "1.0.3", + "detect-libc": "^1.0.2", "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.2", - "rc": "1.2.8", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.0.2", + "rc": "^1.1.7", "request": "2.81.0", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "2.2.1", - "tar-pack": "3.4.1" + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^2.2.1", + "tar-pack": "^3.4.0" }, "dependencies": { "ajv": { @@ -3641,8 +3641,8 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "assert-plus": { @@ -3660,9 +3660,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "har-schema": { @@ -3675,8 +3675,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "http-signature": { @@ -3684,9 +3684,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "performance-now": { @@ -3704,28 +3704,28 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.6", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" } } } @@ -3736,25 +3736,25 @@ "integrity": "sha512-QFHfrZl6lqRU3csypwviz2XLgGNOoWQbo2GOvtsfQqOfL4cy1BtWnhx/XUeAO9LT3ahBzSRXcEO6DdvAH9DzSg==", "dev": true, "requires": { - "async-foreach": "0.1.3", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "gaze": "1.1.3", - "get-stdin": "4.0.1", - "glob": "7.1.2", - "in-publish": "2.0.0", - "lodash.assign": "4.2.0", - "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.1", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.10.0", - "node-gyp": "3.7.0", - "npmlog": "4.1.2", - "request": "2.79.0", - "sass-graph": "2.2.4", - "stdout-stream": "1.4.0", - "true-case-path": "1.0.2" + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.3.1", + "npmlog": "^4.0.0", + "request": "~2.79.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" }, "dependencies": { "ansi-styles": { @@ -3781,7 +3781,7 @@ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "caseless": { @@ -3796,11 +3796,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "cross-spawn": { @@ -3809,8 +3809,8 @@ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", "dev": true, "requires": { - "lru-cache": "4.1.1", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "cryptiles": { @@ -3819,7 +3819,7 @@ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "form-data": { @@ -3828,9 +3828,9 @@ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "har-validator": { @@ -3839,10 +3839,10 @@ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "dev": true, "requires": { - "chalk": "1.1.3", - "commander": "2.14.1", - "is-my-json-valid": "2.17.2", - "pinkie-promise": "2.0.1" + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" } }, "hawk": { @@ -3851,10 +3851,10 @@ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -3869,9 +3869,9 @@ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "nan": { @@ -3892,26 +3892,26 @@ "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", "dev": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.11.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "2.0.6", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "qs": "6.3.2", - "stringstream": "0.0.6", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.4.3", - "uuid": "3.2.1" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.0.0" } }, "sntp": { @@ -3920,7 +3920,7 @@ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "supports-color": { @@ -3942,8 +3942,8 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.4" + "abbrev": "1", + "osenv": "^0.1.4" } }, "normalize-package-data": { @@ -3952,10 +3952,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -3963,7 +3963,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-range": { @@ -3978,10 +3978,10 @@ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "dev": true, "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" } }, "npm-run-path": { @@ -3989,7 +3989,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "npmlog": { @@ -3997,10 +3997,10 @@ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "num2fraction": { @@ -4019,10 +4019,10 @@ "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.0.1.tgz", "integrity": "sha1-TedKPlULr2+jNwMj89HHwqhr3E0=", "requires": { - "a-sync-waterfall": "1.0.0", - "asap": "2.0.6", - "chokidar": "1.7.0", - "yargs": "3.32.0" + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "chokidar": "^1.6.0", + "yargs": "^3.32.0" } }, "nwmatcher": { @@ -4051,8 +4051,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "once": { @@ -4060,7 +4060,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -4069,7 +4069,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "optimist": { @@ -4078,8 +4078,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" }, "dependencies": { "wordwrap": { @@ -4095,12 +4095,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "os-homedir": { @@ -4113,7 +4113,7 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -4126,8 +4126,8 @@ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "p-finally": { @@ -4140,7 +4140,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", "requires": { - "p-try": "2.0.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -4148,7 +4148,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "2.0.0" + "p-limit": "^2.0.0" } }, "p-try": { @@ -4161,15 +4161,15 @@ "resolved": "https://registry.npmjs.org/parse-css-font/-/parse-css-font-2.0.2.tgz", "integrity": "sha1-e2CwYHBaJam5C38O1JPlgjJIplI=", "requires": { - "css-font-size-keywords": "1.0.0", - "css-font-stretch-keywords": "1.0.1", - "css-font-style-keywords": "1.0.1", - "css-font-weight-keywords": "1.0.0", - "css-global-keywords": "1.0.1", - "css-list-helpers": "1.0.1", - "css-system-font-keywords": "1.0.0", - "tcomb": "2.7.0", - "unquote": "1.1.1" + "css-font-size-keywords": "^1.0.0", + "css-font-stretch-keywords": "^1.0.1", + "css-font-style-keywords": "^1.0.1", + "css-font-weight-keywords": "^1.0.0", + "css-global-keywords": "^1.0.1", + "css-list-helpers": "^1.0.1", + "css-system-font-keywords": "^1.0.0", + "tcomb": "^2.5.0", + "unquote": "^1.1.0" } }, "parse-glob": { @@ -4178,10 +4178,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -4190,7 +4190,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parse5": { @@ -4204,7 +4204,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -4235,9 +4235,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "performance-now": { @@ -4250,11 +4250,11 @@ "resolved": "https://registry.npmjs.org/pez/-/pez-4.0.1.tgz", "integrity": "sha512-0c/SoW5MY7lPdc5U1Q/ixyjLZbluGWJonHVmn4mKwSq7vgO9+a9WzoCopHubIwkot6Q+fevNVElaA+1M9SqHrA==", "requires": { - "b64": "4.0.0", - "boom": "7.1.1", - "content": "4.0.3", - "hoek": "5.0.3", - "nigel": "3.0.0" + "b64": "4.x.x", + "boom": "7.x.x", + "content": "4.x.x", + "hoek": "5.x.x", + "nigel": "3.x.x" } }, "pify": { @@ -4275,7 +4275,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pluralize": { @@ -4294,8 +4294,8 @@ "resolved": "https://registry.npmjs.org/podium/-/podium-3.1.2.tgz", "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", "requires": { - "hoek": "5.0.3", - "joi": "13.1.2" + "hoek": "5.x.x", + "joi": "13.x.x" } }, "postcss": { @@ -4304,9 +4304,9 @@ "integrity": "sha512-Bl1nybsSzWYbP8O4gAVD8JIjZIul9hLNOPTGBIlVmZNUnNAGL+W0cpYWzVwfImZOwumct4c1SDvSbncVWKtXUw==", "dev": true, "requires": { - "chalk": "2.3.0", - "source-map": "0.6.1", - "supports-color": "5.1.0" + "chalk": "^2.3.0", + "source-map": "^0.6.1", + "supports-color": "^5.1.0" }, "dependencies": { "source-map": { @@ -4323,9 +4323,9 @@ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" }, "dependencies": { "ansi-styles": { @@ -4340,11 +4340,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -4367,10 +4367,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -4379,7 +4379,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4390,9 +4390,9 @@ "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", "dev": true, "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" }, "dependencies": { "ansi-styles": { @@ -4407,11 +4407,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -4434,10 +4434,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -4446,7 +4446,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4457,8 +4457,8 @@ "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" }, "dependencies": { "ansi-styles": { @@ -4473,11 +4473,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -4500,10 +4500,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -4512,7 +4512,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4523,7 +4523,7 @@ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.14" }, "dependencies": { "ansi-styles": { @@ -4538,11 +4538,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -4565,10 +4565,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -4577,7 +4577,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4588,7 +4588,7 @@ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { "ansi-styles": { @@ -4603,11 +4603,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -4630,10 +4630,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -4642,7 +4642,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4653,7 +4653,7 @@ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.14" }, "dependencies": { "ansi-styles": { @@ -4668,11 +4668,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -4695,10 +4695,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -4707,7 +4707,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4718,7 +4718,7 @@ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.16" }, "dependencies": { "ansi-styles": { @@ -4733,11 +4733,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -4760,10 +4760,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -4772,7 +4772,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4783,8 +4783,8 @@ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", "dev": true, "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" + "postcss": "^5.0.14", + "uniqs": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -4799,11 +4799,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -4826,10 +4826,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -4838,7 +4838,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4849,8 +4849,8 @@ "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", "dev": true, "requires": { - "postcss": "5.2.18", - "uniqid": "4.1.1" + "postcss": "^5.0.4", + "uniqid": "^4.0.0" }, "dependencies": { "ansi-styles": { @@ -4865,11 +4865,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -4892,10 +4892,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -4904,7 +4904,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4915,10 +4915,10 @@ "integrity": "sha1-qWLi34LTvFptpqOGhBdHIE9B71s=", "dev": true, "requires": { - "postcss": "6.0.17", - "postcss-value-parser": "3.3.0", - "read-cache": "1.0.0", - "resolve": "1.5.0" + "postcss": "^6.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" } }, "postcss-merge-idents": { @@ -4927,9 +4927,9 @@ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", "dev": true, "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" }, "dependencies": { "ansi-styles": { @@ -4944,11 +4944,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -4971,10 +4971,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -4983,7 +4983,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4994,7 +4994,7 @@ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { "ansi-styles": { @@ -5009,11 +5009,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5036,10 +5036,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5048,7 +5048,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5059,11 +5059,11 @@ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.1" + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" }, "dependencies": { "ansi-styles": { @@ -5078,8 +5078,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000804", - "electron-to-chromium": "1.3.33" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } }, "chalk": { @@ -5088,11 +5088,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5115,10 +5115,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5127,7 +5127,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5144,9 +5144,9 @@ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", "dev": true, "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" }, "dependencies": { "ansi-styles": { @@ -5161,11 +5161,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5188,10 +5188,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5200,7 +5200,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5211,8 +5211,8 @@ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" }, "dependencies": { "ansi-styles": { @@ -5227,11 +5227,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5254,10 +5254,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5266,7 +5266,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5277,10 +5277,10 @@ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -5295,11 +5295,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5322,10 +5322,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5334,7 +5334,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5345,10 +5345,10 @@ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -5363,11 +5363,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5390,10 +5390,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5402,7 +5402,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5413,7 +5413,7 @@ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.5" }, "dependencies": { "ansi-styles": { @@ -5428,11 +5428,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5455,10 +5455,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5467,7 +5467,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5478,10 +5478,10 @@ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", "dev": true, "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" }, "dependencies": { "ansi-styles": { @@ -5496,11 +5496,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5523,10 +5523,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5535,7 +5535,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5546,8 +5546,8 @@ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" }, "dependencies": { "ansi-styles": { @@ -5562,11 +5562,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5589,10 +5589,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5601,7 +5601,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5612,8 +5612,8 @@ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" }, "dependencies": { "ansi-styles": { @@ -5628,11 +5628,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5655,10 +5655,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5667,7 +5667,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5678,7 +5678,7 @@ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { "ansi-styles": { @@ -5693,11 +5693,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5720,10 +5720,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5732,7 +5732,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5743,9 +5743,9 @@ "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", "dev": true, "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" }, "dependencies": { "ansi-styles": { @@ -5760,11 +5760,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5787,10 +5787,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5799,7 +5799,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5810,9 +5810,9 @@ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", "dev": true, "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "postcss-svgo": { @@ -5821,10 +5821,10 @@ "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", "dev": true, "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" }, "dependencies": { "ansi-styles": { @@ -5839,11 +5839,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5866,10 +5866,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5878,7 +5878,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5889,9 +5889,9 @@ "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -5906,11 +5906,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5933,10 +5933,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -5945,7 +5945,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5962,9 +5962,9 @@ "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", "dev": true, "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -5979,11 +5979,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -6006,10 +6006,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -6018,7 +6018,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6078,8 +6078,8 @@ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "dev": true, "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "rc": { @@ -6087,10 +6087,10 @@ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -6106,7 +6106,7 @@ "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.3.0" } }, "read-pkg": { @@ -6115,9 +6115,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -6126,8 +6126,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "readable-stream": { @@ -6135,13 +6135,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -6150,10 +6150,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "optional": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "redent": { @@ -6162,8 +6162,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "reduce-css-calc": { @@ -6172,9 +6172,9 @@ "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", "dev": true, "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" }, "dependencies": { "balanced-match": { @@ -6191,7 +6191,7 @@ "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", "dev": true, "requires": { - "balanced-match": "0.4.2" + "balanced-match": "^0.4.2" }, "dependencies": { "balanced-match": { @@ -6208,7 +6208,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "remove-trailing-separator": { @@ -6232,7 +6232,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -6240,26 +6240,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.1", - "har-validator": "5.0.3", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" } }, "request-promise-core": { @@ -6267,7 +6267,7 @@ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", "requires": { - "lodash": "4.17.5" + "lodash": "^4.13.1" } }, "request-promise-native": { @@ -6276,8 +6276,8 @@ "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", "requires": { "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.3" + "stealthy-require": "^1.1.0", + "tough-cookie": ">=2.3.3" } }, "require-directory": { @@ -6296,8 +6296,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "resolve": { @@ -6306,7 +6306,7 @@ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resolve-from": { @@ -6321,8 +6321,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "right-align": { @@ -6332,7 +6332,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -6340,7 +6340,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "run-async": { @@ -6349,7 +6349,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "rw": { @@ -6369,7 +6369,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "safe-buffer": { @@ -6388,10 +6388,10 @@ "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", "dev": true, "requires": { - "glob": "7.1.2", - "lodash": "4.17.5", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" }, "dependencies": { "camelcase": { @@ -6406,19 +6406,19 @@ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", "dev": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" } }, "yargs-parser": { @@ -6427,7 +6427,7 @@ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" } } } @@ -6443,8 +6443,8 @@ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "dev": true, "requires": { - "js-base64": "2.4.3", - "source-map": "0.4.4" + "js-base64": "^2.1.8", + "source-map": "^0.4.2" }, "dependencies": { "source-map": { @@ -6453,7 +6453,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -6485,7 +6485,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -6498,8 +6498,8 @@ "resolved": "https://registry.npmjs.org/shot/-/shot-4.0.4.tgz", "integrity": "sha512-V8wHSJSNqt8ZIgdbTQCFIrp5BwBH+tsFLNBL1REmkFN/0PJdmzUBQscZqsbdSvdLc+Qxq7J5mcwzai66vs3ozA==", "requires": { - "hoek": "5.0.3", - "joi": "13.1.2" + "hoek": "5.x.x", + "joi": "13.x.x" } }, "signal-exit": { @@ -6513,7 +6513,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -6524,12 +6524,17 @@ } } }, + "slugify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.3.1.tgz", + "integrity": "sha512-6BwyhjF5tG5P8s+0DPNyJmBSBePG6iMyhjvIW5zGdA3tFik9PtK+yNkZgTeiroCRGZYgkHftFA62tGVK1EI9Kw==" + }, "sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" }, "dependencies": { "hoek": { @@ -6545,7 +6550,7 @@ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-map": { @@ -6560,7 +6565,7 @@ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -6586,15 +6591,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "statehood": { @@ -6602,12 +6607,12 @@ "resolved": "https://registry.npmjs.org/statehood/-/statehood-6.0.5.tgz", "integrity": "sha512-HPa8qT5sGTBVn1Fc9czBYR1oo7gBaay3ysnb04cvcF80YrDIV7880KpjmMj54j7CrFuQFfgMRb44QCRxRmAdTg==", "requires": { - "boom": "7.1.1", - "bounce": "1.2.0", - "cryptiles": "4.1.1", - "hoek": "5.0.3", - "iron": "5.0.4", - "joi": "13.1.2" + "boom": "7.x.x", + "bounce": "1.x.x", + "cryptiles": "4.x.x", + "hoek": "5.x.x", + "iron": "5.x.x", + "joi": "13.x.x" } }, "stdout-stream": { @@ -6616,7 +6621,7 @@ "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", "dev": true, "requires": { - "readable-stream": "2.3.3" + "readable-stream": "^2.0.1" } }, "stealthy-require": { @@ -6635,9 +6640,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -6645,7 +6650,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "stringstream": { @@ -6658,7 +6663,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -6667,7 +6672,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -6681,7 +6686,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -6694,11 +6699,11 @@ "resolved": "https://registry.npmjs.org/subtext/-/subtext-6.0.7.tgz", "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", "requires": { - "boom": "7.1.1", - "content": "4.0.3", - "hoek": "5.0.3", - "pez": "4.0.1", - "wreck": "14.0.2" + "boom": "7.x.x", + "content": "4.x.x", + "hoek": "5.x.x", + "pez": "4.x.x", + "wreck": "14.x.x" } }, "supports-color": { @@ -6707,7 +6712,7 @@ "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } }, "svgo": { @@ -6716,13 +6721,13 @@ "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", "dev": true, "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.4", - "whet.extend": "0.9.9" + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" } }, "symbol-tree": { @@ -6736,12 +6741,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.3.0", - "lodash": "4.17.5", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" }, "dependencies": { "ansi-regex": { @@ -6762,8 +6767,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -6772,7 +6777,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -6782,9 +6787,9 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "tar-pack": { @@ -6792,14 +6797,14 @@ "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.1.tgz", "integrity": "sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg==", "requires": { - "debug": "2.6.9", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.3.3", - "rimraf": "2.6.2", - "tar": "2.2.1", - "uid-number": "0.0.6" + "debug": "^2.2.0", + "fstream": "^1.0.10", + "fstream-ignore": "^1.0.5", + "once": "^1.3.3", + "readable-stream": "^2.1.4", + "rimraf": "^2.5.1", + "tar": "^2.2.1", + "uid-number": "^0.0.6" } }, "tcomb": { @@ -6830,7 +6835,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "topo": { @@ -6838,7 +6843,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.0.tgz", "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "topojson-client": { @@ -6846,7 +6851,7 @@ "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.0.0.tgz", "integrity": "sha1-H5kpOnfvQqRI0DKoGqmCtz82DS8=", "requires": { - "commander": "2.14.1" + "commander": "2" } }, "tough-cookie": { @@ -6854,7 +6859,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" }, "dependencies": { "punycode": { @@ -6869,7 +6874,7 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", "requires": { - "punycode": "2.1.0" + "punycode": "^2.1.0" } }, "trim-newlines": { @@ -6884,7 +6889,7 @@ "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", "dev": true, "requires": { - "glob": "6.0.4" + "glob": "^6.0.4" }, "dependencies": { "glob": { @@ -6893,11 +6898,11 @@ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } @@ -6907,7 +6912,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -6921,7 +6926,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "typedarray": { @@ -6937,9 +6942,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "camelcase": { @@ -6956,8 +6961,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" } }, @@ -6982,9 +6987,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -7014,7 +7019,7 @@ "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", "dev": true, "requires": { - "macaddress": "0.2.9" + "macaddress": "^0.2.8" } }, "uniqs": { @@ -7028,8 +7033,8 @@ "resolved": "https://registry.npmjs.org/units-css/-/units-css-0.4.0.tgz", "integrity": "sha1-1iKGU6UZg9fBb/KPi53Dsf/tOgc=", "requires": { - "isnumeric": "0.2.0", - "viewport-dimensions": "0.2.0" + "isnumeric": "^0.2.0", + "viewport-dimensions": "^0.2.0" } }, "unquote": { @@ -7053,8 +7058,8 @@ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "vega": { @@ -7062,12 +7067,12 @@ "resolved": "https://registry.npmjs.org/vega/-/vega-4.2.0.tgz", "integrity": "sha1-KBhWWkH5kJ8EJ26dV4bBq1XyrrM=", "requires": { - "canvas": "1.6.11", + "canvas": "^1.6.11", "canvas-prebuilt": "1.6.5-prerelease.1", "vega-lib": "4.2.0", "vega-parser": "3.7.2", - "vega-typings": "0.3.31", - "yargs": "12.0.1" + "vega-typings": "*", + "yargs": "12" }, "dependencies": { "ansi-regex": { @@ -7080,9 +7085,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "decamelize": { @@ -7098,7 +7103,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "3.0.0" + "locate-path": "^3.0.0" } }, "is-fullwidth-code-point": { @@ -7111,9 +7116,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "string-width": { @@ -7121,8 +7126,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -7130,7 +7135,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "which-module": { @@ -7143,18 +7148,18 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.1.tgz", "integrity": "sha512-B0vRAp1hRX4jgIOWFtjfNjd9OA9RWYZ6tqGA9/I/IrTMsxmKvtWy+ersM+jzpQqbC3YfLzeABPdeTgcJ9eu1qQ==", "requires": { - "cliui": "4.1.0", - "decamelize": "2.0.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "10.1.0" + "cliui": "^4.0.0", + "decamelize": "^2.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^10.1.0" } } } @@ -7169,9 +7174,9 @@ "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-3.0.0.tgz", "integrity": "sha512-h8HLc0YGaCFx3XTJYe2ixDQKHErvAFmFCE5EzLf7qmoWKtfXvXqB0+YcV/h5XC6VmLdUwFzMah+deDjIwncq7g==", "requires": { - "d3-array": "1.2.1", - "vega-dataflow": "4.0.4", - "vega-util": "1.7.0" + "d3-array": "^1.2.1", + "vega-dataflow": "^4.0.0", + "vega-util": "^1.7.0" } }, "vega-dataflow": { @@ -7179,8 +7184,8 @@ "resolved": "https://registry.npmjs.org/vega-dataflow/-/vega-dataflow-4.0.4.tgz", "integrity": "sha1-4vS0gFYY0BwLgzqTSE08JEZ1+6M=", "requires": { - "vega-loader": "3.0.1", - "vega-util": "1.7.0" + "vega-loader": "^3.0.1", + "vega-util": "^1.7.0" } }, "vega-encode": { @@ -7188,12 +7193,12 @@ "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-3.1.4.tgz", "integrity": "sha1-7PG963oBvAfthvsL+2rjLTT2J5s=", "requires": { - "d3-array": "1.2.1", - "d3-format": "1.3.0", - "d3-interpolate": "1.2.0", - "vega-dataflow": "4.0.4", - "vega-scale": "2.4.0", - "vega-util": "1.7.0" + "d3-array": "^1.2.1", + "d3-format": "^1.3.0", + "d3-interpolate": "^1.2.0", + "vega-dataflow": "^4.0.3", + "vega-scale": "^2.4.0", + "vega-util": "^1.7.0" }, "dependencies": { "d3-format": { @@ -7213,7 +7218,7 @@ "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-2.3.1.tgz", "integrity": "sha512-BOf+7XuzsubcbiLJkgyvnywse1+NY72HhzFPQqwUIfloaH9U6m2sNfMhc353ODWF9UFpKXSQ9r4tWohTj64kNQ==", "requires": { - "vega-util": "1.7.0" + "vega-util": "1" } }, "vega-force": { @@ -7221,9 +7226,9 @@ "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-3.0.0.tgz", "integrity": "sha512-Uar26RDxDQEpIdWBIFKnOr6/B30RU8/2qBtoiux1C3goZIWBRkXNlCR5kMDkll8Mg60deD6ynflsXXNwyGS69w==", "requires": { - "d3-force": "1.1.0", - "vega-dataflow": "4.0.4", - "vega-util": "1.7.0" + "d3-force": "^1.1.0", + "vega-dataflow": "^4.0.0", + "vega-util": "^1.7.0" } }, "vega-geo": { @@ -7231,12 +7236,12 @@ "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-3.1.0.tgz", "integrity": "sha1-ICLw3GEhmVhbENInSWf+6U11BbQ=", "requires": { - "d3-array": "1.2.1", - "d3-contour": "1.3.0", - "d3-geo": "1.10.0", - "vega-dataflow": "4.0.4", - "vega-projection": "1.2.0", - "vega-util": "1.7.0" + "d3-array": "^1.2.1", + "d3-contour": "^1.3.0", + "d3-geo": "^1.10.0", + "vega-dataflow": "^4.0.3", + "vega-projection": "^1.2.0", + "vega-util": "^1.7.0" } }, "vega-hierarchy": { @@ -7244,10 +7249,10 @@ "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-3.0.3.tgz", "integrity": "sha1-AAPtWerNunAlagDJw54WQ0JGYuw=", "requires": { - "d3-collection": "1.0.4", - "d3-hierarchy": "1.1.6", - "vega-dataflow": "4.0.4", - "vega-util": "1.7.0" + "d3-collection": "^1.0.4", + "d3-hierarchy": "^1.1.6", + "vega-dataflow": "^4.0.4", + "vega-util": "^1.7.0" } }, "vega-lib": { @@ -7255,28 +7260,28 @@ "resolved": "https://registry.npmjs.org/vega-lib/-/vega-lib-4.2.0.tgz", "integrity": "sha1-eK3AhsewIw2ltBw/38AgK0jiKPo=", "requires": { - "vega-crossfilter": "3.0.0", - "vega-dataflow": "4.0.4", - "vega-encode": "3.1.4", - "vega-event-selector": "2.0.0", - "vega-expression": "2.3.1", - "vega-force": "3.0.0", - "vega-geo": "3.1.0", - "vega-hierarchy": "3.0.3", - "vega-loader": "3.0.1", - "vega-parser": "3.7.2", - "vega-projection": "1.2.0", - "vega-runtime": "3.1.0", - "vega-scale": "2.4.0", - "vega-scenegraph": "3.2.2", - "vega-statistics": "1.2.1", - "vega-transforms": "2.2.0", - "vega-typings": "0.3.31", - "vega-util": "1.7.0", - "vega-view": "3.3.3", - "vega-view-transforms": "2.0.2", - "vega-voronoi": "3.0.0", - "vega-wordcloud": "3.0.0" + "vega-crossfilter": "^3.0.0", + "vega-dataflow": "^4.0.4", + "vega-encode": "^3.1.4", + "vega-event-selector": "^2.0.0", + "vega-expression": "^2.3.1", + "vega-force": "^3.0.0", + "vega-geo": "^3.1.0", + "vega-hierarchy": "^3.0.3", + "vega-loader": "^3.0.1", + "vega-parser": "^3.7.2", + "vega-projection": "^1.2.0", + "vega-runtime": "^3.1.0", + "vega-scale": "^2.4.0", + "vega-scenegraph": "^3.2.2", + "vega-statistics": "^1.2.1", + "vega-transforms": "^2.2.0", + "vega-typings": "*", + "vega-util": "^1.7.0", + "vega-view": "^3.3.3", + "vega-view-transforms": "^2.0.2", + "vega-voronoi": "^3.0.0", + "vega-wordcloud": "^3.0.0" } }, "vega-loader": { @@ -7284,11 +7289,11 @@ "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-3.0.1.tgz", "integrity": "sha1-coQmtU503n28kdQY4FIwvH7iOog=", "requires": { - "d3-dsv": "1.0.8", - "d3-time-format": "2.1.1", - "node-fetch": "2.1.2", - "topojson-client": "3.0.0", - "vega-util": "1.7.0" + "d3-dsv": "^1.0.8", + "d3-time-format": "^2.1.1", + "node-fetch": "^2.1.2", + "topojson-client": "^3.0.0", + "vega-util": "^1.7.0" }, "dependencies": { "node-fetch": { @@ -7303,18 +7308,18 @@ "resolved": "https://registry.npmjs.org/vega-parser/-/vega-parser-3.7.2.tgz", "integrity": "sha1-A7fOG89Ms+3S+BV2k3Ajov+sFn0=", "requires": { - "d3-array": "1.2.1", - "d3-color": "1.2.0", - "d3-format": "1.3.0", - "d3-geo": "1.10.0", - "d3-time-format": "2.1.1", - "vega-dataflow": "4.0.4", - "vega-event-selector": "2.0.0", - "vega-expression": "2.3.1", - "vega-scale": "2.4.0", - "vega-scenegraph": "3.2.2", - "vega-statistics": "1.2.1", - "vega-util": "1.7.0" + "d3-array": "^1.2.1", + "d3-color": "^1.2.0", + "d3-format": "^1.3.0", + "d3-geo": "^1.10.0", + "d3-time-format": "^2.1.1", + "vega-dataflow": "^4.0.4", + "vega-event-selector": "^2.0.0", + "vega-expression": "^2.3.1", + "vega-scale": "^2.4.0", + "vega-scenegraph": "^3.2.2", + "vega-statistics": "^1.2.1", + "vega-util": "^1.7.0" }, "dependencies": { "d3-format": { @@ -7329,7 +7334,7 @@ "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.2.0.tgz", "integrity": "sha1-gSyVUlHatJX9qD2UBrpy2YM6IBQ=", "requires": { - "d3-geo": "1.10.0" + "d3-geo": "^1.10.0" } }, "vega-runtime": { @@ -7337,8 +7342,8 @@ "resolved": "https://registry.npmjs.org/vega-runtime/-/vega-runtime-3.1.0.tgz", "integrity": "sha1-yL09Zb7yjK4LG7yN37zWt25eYBM=", "requires": { - "vega-dataflow": "4.0.4", - "vega-util": "1.7.0" + "vega-dataflow": "^4.0.4", + "vega-util": "^1.7.0" } }, "vega-scale": { @@ -7346,12 +7351,12 @@ "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-2.4.0.tgz", "integrity": "sha1-GEsRl55kNGPtRd+ukULkK1o17sw=", "requires": { - "d3-array": "1.2.1", - "d3-interpolate": "1.2.0", - "d3-scale": "2.1.0", - "d3-scale-chromatic": "1.3.0", - "d3-time": "1.0.8", - "vega-util": "1.7.0" + "d3-array": "^1.2.1", + "d3-interpolate": "^1.2.0", + "d3-scale": "^2.1.0", + "d3-scale-chromatic": "^1.3.0", + "d3-time": "^1.0.8", + "vega-util": "^1.7.0" } }, "vega-scenegraph": { @@ -7359,11 +7364,11 @@ "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-3.2.2.tgz", "integrity": "sha1-btXzf2N8fl7tcCYh6sxoscbtTNs=", "requires": { - "d3-path": "1.0.5", - "d3-shape": "1.2.0", - "vega-canvas": "1.1.0", - "vega-loader": "3.0.1", - "vega-util": "1.7.0" + "d3-path": "^1.0.5", + "d3-shape": "^1.2.0", + "vega-canvas": "^1.1.0", + "vega-loader": "^3.0.1", + "vega-util": "^1.7.0" } }, "vega-statistics": { @@ -7371,7 +7376,7 @@ "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.2.1.tgz", "integrity": "sha512-70CC6rbS1RFVEpKT/qOGHhHATeh92cB2gXnjg+zErrY8255cBlOW8X0s4iZBsoa4vibGXb42imyM+rxAwL1VPA==", "requires": { - "d3-array": "1.2.1" + "d3-array": "1" } }, "vega-transforms": { @@ -7379,10 +7384,10 @@ "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-2.2.0.tgz", "integrity": "sha1-X0J2Mqv21CJiSUNfrfC419dOebw=", "requires": { - "d3-array": "1.2.1", - "vega-dataflow": "4.0.4", - "vega-statistics": "1.2.1", - "vega-util": "1.7.0" + "d3-array": "^1.2.1", + "vega-dataflow": "^4.0.4", + "vega-statistics": "^1.2.1", + "vega-util": "^1.7.0" } }, "vega-typings": { @@ -7390,7 +7395,7 @@ "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.3.31.tgz", "integrity": "sha512-hUEBhlwHmeAxbsAqKP2iwgDVeMImYxJaC4gqZ5MoSlmWgfpgEHMCOfOeEzMxqfC1LOsXQraF+7H4Y0bf03wMvA==", "requires": { - "vega-util": "1.7.0" + "vega-util": "^1.7.0" } }, "vega-util": { @@ -7403,13 +7408,13 @@ "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-3.3.3.tgz", "integrity": "sha1-qoEXdf5fFxYgvC9TV9PeFYXkzhI=", "requires": { - "d3-array": "1.2.1", - "d3-timer": "1.0.7", - "vega-dataflow": "4.0.4", - "vega-parser": "3.7.2", - "vega-runtime": "3.1.0", - "vega-scenegraph": "3.2.2", - "vega-util": "1.7.0" + "d3-array": "^1.2.1", + "d3-timer": "^1.0.7", + "vega-dataflow": "^4.0.4", + "vega-parser": "^3.7.0", + "vega-runtime": "^3.1.0", + "vega-scenegraph": "^3.2.1", + "vega-util": "^1.7.0" } }, "vega-view-transforms": { @@ -7417,9 +7422,9 @@ "resolved": "https://registry.npmjs.org/vega-view-transforms/-/vega-view-transforms-2.0.2.tgz", "integrity": "sha1-XCh3u55+vvKW90C2DF4WEtJmbc0=", "requires": { - "vega-dataflow": "4.0.4", - "vega-scenegraph": "3.2.2", - "vega-util": "1.7.0" + "vega-dataflow": "^4.0.3", + "vega-scenegraph": "^3.2.1", + "vega-util": "^1.7.0" } }, "vega-voronoi": { @@ -7427,9 +7432,9 @@ "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-3.0.0.tgz", "integrity": "sha512-ZkQw4UprxqiS3IjrdLOoQq1oEeH0REqWonf7Wz5zt2pKDHyMPlFX89EueoDYOKnfQjk9/7IiptBDK1ruAbDNiQ==", "requires": { - "d3-voronoi": "1.1.2", - "vega-dataflow": "4.0.4", - "vega-util": "1.7.0" + "d3-voronoi": "^1.1.2", + "vega-dataflow": "^4.0.0", + "vega-util": "^1.7.0" } }, "vega-wordcloud": { @@ -7437,11 +7442,11 @@ "resolved": "https://registry.npmjs.org/vega-wordcloud/-/vega-wordcloud-3.0.0.tgz", "integrity": "sha512-/2F09L2tNTQ8aqK/ZLjd7m+fYwJR8/waE8YWuexLZob4+4BEByzqFfRMATE39ZpdTHOreCEQ5uUKyvv0qA6O0A==", "requires": { - "vega-canvas": "1.1.0", - "vega-dataflow": "4.0.4", - "vega-scale": "2.4.0", - "vega-statistics": "1.2.1", - "vega-util": "1.7.0" + "vega-canvas": "^1.0.1", + "vega-dataflow": "^4.0.0", + "vega-scale": "^2.1.1", + "vega-statistics": "^1.2.1", + "vega-util": "^1.7.0" } }, "vendors": { @@ -7455,9 +7460,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "viewport-dimensions": { @@ -7470,7 +7475,7 @@ "resolved": "https://registry.npmjs.org/vise/-/vise-3.0.0.tgz", "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "w3c-hr-time": { @@ -7478,7 +7483,7 @@ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", "requires": { - "browser-process-hrtime": "0.1.2" + "browser-process-hrtime": "^0.1.2" } }, "webidl-conversions": { @@ -7504,9 +7509,9 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.1.tgz", "integrity": "sha512-FwygsxsXx27x6XXuExA/ox3Ktwcbf+OAvrKmLulotDAiO1Q6ixchPFaHYsis2zZBZSJTR0+dR+JVtf7MlbqZjw==", "requires": { - "lodash.sortby": "4.7.0", - "tr46": "1.0.1", - "webidl-conversions": "4.0.2" + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } }, "whet.extend": { @@ -7520,7 +7525,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -7534,7 +7539,7 @@ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "will-call": { @@ -7558,8 +7563,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -7572,8 +7577,8 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-14.0.2.tgz", "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", "requires": { - "boom": "7.1.1", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "write": { @@ -7582,7 +7587,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "ws": { @@ -7590,8 +7595,8 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0" } }, "xml-name-validator": { @@ -7625,13 +7630,13 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", "requires": { - "camelcase": "2.1.1", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "os-locale": "1.4.0", - "string-width": "1.0.2", - "window-size": "0.1.4", - "y18n": "3.2.1" + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" } }, "yargs-parser": { @@ -7639,7 +7644,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { diff --git a/package.json b/package.json index fb103e99..6f5b9293 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "node-fetch": "^1.7.3", "nunjucks": "^3.0.1", "object-path": "^0.11.4", + "slugify": "^1.3.1", "vega": "^4.2.0" }, "devDependencies": { diff --git a/resources/schema.json b/resources/schema.json index aa804f17..1bbb94bc 100755 --- a/resources/schema.json +++ b/resources/schema.json @@ -76,6 +76,11 @@ }, "minItems": 1 }, + "downloadData": { + "title": "Daten zum herunterladen anbieten", + "type": "boolean", + "default": false + }, "vegaSpec": { "title": "Vega-Spezifikation", "type": "object", diff --git a/routes/download-data.js b/routes/download-data.js new file mode 100644 index 00000000..2038fd69 --- /dev/null +++ b/routes/download-data.js @@ -0,0 +1,41 @@ +const Joi = require("joi"); +const slugify = require("slugify"); + +module.exports = { + method: "POST", + path: "/download-data", + options: { + cors: true, + validate: { + payload: { + item: Joi.object().required() + } + } + }, + handler: function(request, h) { + let csv = createCSV(request.payload.item.data); + const response = h.response(csv); + response.type("text/csv"); + response.header( + "Content-Disposition", + `attachment; filename=chart-${slugify(request.payload.item.title)}.csv` + ); + return response; + } +}; + +function createCSV(json) { + var data = typeof json != "object" ? JSON.parse(json) : json; + var csv = ""; + for (var i = 0; i < data.length; i++) { + var line = ""; + for (var index in data[i]) { + if (line !== "") { + line += ","; + } + line += data[i][index]; + } + csv += line + "\r\n"; + } + return csv; +} diff --git a/routes/rendering-info/web.js b/routes/rendering-info/web.js index 2a782494..7f7bda82 100644 --- a/routes/rendering-info/web.js +++ b/routes/rendering-info/web.js @@ -75,6 +75,12 @@ module.exports = { )}`.replace(/-/g, "") }; + if (item.downloadData) { + context.linkToCSV = `${ + request.payload.toolRuntimeConfig.toolBaseUrl + }/download-data?appendItemToPayload=${request.query._id}`; + } + const renderingInfo = {}; // if we have the width in toolRuntimeConfig.size diff --git a/routes/routes.js b/routes/routes.js index c70b4796..df70c919 100755 --- a/routes/routes.js +++ b/routes/routes.js @@ -12,5 +12,6 @@ module.exports = [ require("./notification/shouldBeBarChart.js"), require("./notification/shouldBeLineChart.js"), require("./notification/shouldBeBars.js"), - require("./locales.js") + require("./locales.js"), + require("./download-data.js") ].concat(require("./schema.js")); diff --git a/views/footer.html b/views/footer.html index c4f81b91..8491c3a8 100644 --- a/views/footer.html +++ b/views/footer.html @@ -22,4 +22,5 @@ {%- else %}Quelle: nicht angegeben{%- endif %} {%- if item.acronym %} – Grafik: {{ item.acronym }}{%- endif %} - + {%- if item.downloadData -%}
Daten herunterladen{%- endif %} + \ No newline at end of file From 525b356fcc43d9059172c1edea4c579ed8b8ba27 Mon Sep 17 00:00:00 2001 From: Manuel Roth Date: Mon, 8 Oct 2018 14:25:59 +0200 Subject: [PATCH 16/18] Rename renderingInfoInput to mappingData --- chartTypes/arrow/mapping.js | 16 ++++++--------- chartTypes/bar-stacked/mapping.js | 24 ++++++++++------------ chartTypes/bar/mapping.js | 24 ++++++++++------------ chartTypes/column-stacked/mapping.js | 8 +++----- chartTypes/column/mapping.js | 8 +++----- chartTypes/commonMappings.js | 30 ++++++++++++++-------------- chartTypes/dotplot/mapping.js | 16 ++++++--------- chartTypes/line/mapping.js | 24 ++++++++++------------ helpers/data.js | 8 ++++---- helpers/itemVegaMapping.js | 6 +++--- routes/rendering-info/web-svg.js | 18 ++++++++--------- 11 files changed, 81 insertions(+), 101 deletions(-) diff --git a/chartTypes/arrow/mapping.js b/chartTypes/arrow/mapping.js index 9a838465..8fc5968e 100644 --- a/chartTypes/arrow/mapping.js +++ b/chartTypes/arrow/mapping.js @@ -137,13 +137,11 @@ module.exports = function getMapping() { }, { path: "item.options.arrowOptions.minValue", - mapToSpec: function(minValue, spec, renderingInfoInput) { + mapToSpec: function(minValue, spec, mappingData) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); + const divisor = dataHelpers.getDivisor(mappingData.item.data); - const dataMinValue = dataHelpers.getMinValue( - renderingInfoInput.item.data - ); + const dataMinValue = dataHelpers.getMinValue(mappingData.item.data); if (dataMinValue < minValue) { minValue = dataMinValue; } @@ -154,13 +152,11 @@ module.exports = function getMapping() { }, { path: "item.options.arrowOptions.maxValue", - mapToSpec: function(maxValue, spec, renderingInfoInput) { + mapToSpec: function(maxValue, spec, mappingData) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); + const divisor = dataHelpers.getDivisor(mappingData.item.data); - const dataMaxValue = dataHelpers.getMaxValue( - renderingInfoInput.item.data - ); + const dataMaxValue = dataHelpers.getMaxValue(mappingData.item.data); if (dataMaxValue > maxValue) { maxValue = dataMaxValue; } diff --git a/chartTypes/bar-stacked/mapping.js b/chartTypes/bar-stacked/mapping.js index f6f533d9..6ad7a3d9 100644 --- a/chartTypes/bar-stacked/mapping.js +++ b/chartTypes/bar-stacked/mapping.js @@ -11,8 +11,8 @@ const getLongestDataLabel = require("../../helpers/data.js") .getLongestDataLabel; const textMetrics = require("vega").textMetrics; -function shouldHaveLabelsOnTopOfBar(renderingInfoInput) { - const item = renderingInfoInput.item; +function shouldHaveLabelsOnTopOfBar(mappingData) { + const item = mappingData.item; // this does not work for positive and negative values. so if we have both, we do not show the labels on top const minValue = dataHelpers.getMinValue(item.data); const maxValue = dataHelpers.getMaxValue(item.data); @@ -20,13 +20,13 @@ function shouldHaveLabelsOnTopOfBar(renderingInfoInput) { return false; } - const longestLabel = getLongestDataLabel(renderingInfoInput, true); + const longestLabel = getLongestDataLabel(mappingData, true); const textItem = { text: longestLabel }; const longestLabelWidth = textMetrics.width(textItem); - if (renderingInfoInput.width / 3 < longestLabelWidth) { + if (mappingData.width / 3 < longestLabelWidth) { return true; } return false; @@ -36,8 +36,8 @@ module.exports = function getMapping() { return [ { path: "item.data", - mapToSpec: function(itemData, spec, renderingInfoInput) { - const item = renderingInfoInput.item; + mapToSpec: function(itemData, spec, mappingData) { + const item = mappingData.item; // set the x axis title objectPath.set(spec, "axes.1.title", itemData[0][0]); @@ -83,7 +83,7 @@ module.exports = function getMapping() { ); numberOfDataSeriesSignal.value = itemData[0].length - 1; // the first column is not a data column, so we subtract it - if (shouldHaveLabelsOnTopOfBar(renderingInfoInput)) { + if (shouldHaveLabelsOnTopOfBar(mappingData)) { spec.axes[1].labels = false; // flush the X axis labels if we have the labels on top of the bar @@ -100,7 +100,7 @@ module.exports = function getMapping() { // if we have a date series, we need to format the label accordingly // otherwise we use the exact xValue as the label const labelText = {}; - if (renderingInfoInput.dateFormat) { + if (mappingData.dateFormat) { const d3format = intervals[item.options.dateSeriesOptions.interval].d3format; labelText.signal = `timeFormat(datum.xValue, '${ @@ -171,13 +171,11 @@ module.exports = function getMapping() { }, { path: "item.options.barOptions.maxValue", - mapToSpec: function(maxValue, spec, renderingInfoInput) { + mapToSpec: function(maxValue, spec, mappingData) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); + const divisor = dataHelpers.getDivisor(mappingData.item.data); - const dataMaxValue = dataHelpers.getMaxValue( - renderingInfoInput.item.data - ); + const dataMaxValue = dataHelpers.getMaxValue(mappingData.item.data); if (dataMaxValue > maxValue) { maxValue = dataMaxValue; } diff --git a/chartTypes/bar/mapping.js b/chartTypes/bar/mapping.js index d02f79aa..22aaf39b 100644 --- a/chartTypes/bar/mapping.js +++ b/chartTypes/bar/mapping.js @@ -10,8 +10,8 @@ const getLongestDataLabel = require("../../helpers/data.js") .getLongestDataLabel; const textMetrics = require("vega").textMetrics; -function shouldHaveLabelsOnTopOfBar(renderingInfoInput) { - const item = renderingInfoInput.item; +function shouldHaveLabelsOnTopOfBar(mappingData) { + const item = mappingData.item; // this does not work for positive and negative values. so if we have both, we do not show the labels on top const minValue = dataHelpers.getMinValue(item.data); const maxValue = dataHelpers.getMaxValue(item.data); @@ -19,13 +19,13 @@ function shouldHaveLabelsOnTopOfBar(renderingInfoInput) { return false; } - const longestLabel = getLongestDataLabel(renderingInfoInput, true); + const longestLabel = getLongestDataLabel(mappingData, true); const textItem = { text: longestLabel }; const longestLabelWidth = textMetrics.width(textItem); - if (renderingInfoInput.width / 3 < longestLabelWidth) { + if (mappingData.width / 3 < longestLabelWidth) { return true; } return false; @@ -35,8 +35,8 @@ module.exports = function getMapping() { return [ { path: "item.data", - mapToSpec: function(itemData, spec, renderingInfoInput) { - const item = renderingInfoInput.item; + mapToSpec: function(itemData, spec, mappingData) { + const item = mappingData.item; // set the x axis title objectPath.set(spec, "axes.1.title", itemData[0][0]); @@ -82,7 +82,7 @@ module.exports = function getMapping() { ); numberOfDataSeriesSignal.value = itemData[0].length - 1; // the first column is not a data column, so we subtract it - if (shouldHaveLabelsOnTopOfBar(renderingInfoInput)) { + if (shouldHaveLabelsOnTopOfBar(mappingData)) { spec.axes[1].labels = false; // flush the X axis labels if we have the labels on top of the bar @@ -99,7 +99,7 @@ module.exports = function getMapping() { // if we have a date series, we need to format the label accordingly // otherwise we use the exact xValue as the label const labelText = {}; - if (renderingInfoInput.dateFormat) { + if (mappingData.dateFormat) { const d3format = intervals[item.options.dateSeriesOptions.interval].d3format; labelText.signal = `timeFormat(datum.xValue, '${ @@ -142,13 +142,11 @@ module.exports = function getMapping() { }, { path: "options.barOptions.maxValue", - mapToSpec: function(maxValue, spec, renderingInfoInput) { + mapToSpec: function(maxValue, spec, mappingData) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); + const divisor = dataHelpers.getDivisor(mappingData.item.data); - const dataMaxValue = dataHelpers.getMaxValue( - renderingInfoInput.item.data - ); + const dataMaxValue = dataHelpers.getMaxValue(mappingData.item.data); if (dataMaxValue > maxValue) { maxValue = dataMaxValue; } diff --git a/chartTypes/column-stacked/mapping.js b/chartTypes/column-stacked/mapping.js index f917d9de..6c195c17 100644 --- a/chartTypes/column-stacked/mapping.js +++ b/chartTypes/column-stacked/mapping.js @@ -85,13 +85,11 @@ module.exports = function getMapping() { }, { path: "item.options.barOptions.maxValue", - mapToSpec: function(maxValue, spec, renderingInfoInput) { + mapToSpec: function(maxValue, spec, mappingData) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); + const divisor = dataHelpers.getDivisor(mappingData.item.data); - const dataMaxValue = dataHelpers.getMaxValue( - renderingInfoInput.item.data - ); + const dataMaxValue = dataHelpers.getMaxValue(mappingData.item.data); if (dataMaxValue > maxValue) { maxValue = dataMaxValue; } diff --git a/chartTypes/column/mapping.js b/chartTypes/column/mapping.js index 0c6f1404..7575e6fa 100644 --- a/chartTypes/column/mapping.js +++ b/chartTypes/column/mapping.js @@ -57,13 +57,11 @@ module.exports = function getMapping() { }, { path: "item.options.barOptions.maxValue", - mapToSpec: function(maxValue, spec, renderingInfoInput) { + mapToSpec: function(maxValue, spec, mappingData) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); + const divisor = dataHelpers.getDivisor(mappingData.item.data); - const dataMaxValue = dataHelpers.getMaxValue( - renderingInfoInput.item.data - ); + const dataMaxValue = dataHelpers.getMaxValue(mappingData.item.data); if (dataMaxValue > maxValue) { maxValue = dataMaxValue; } diff --git a/chartTypes/commonMappings.js b/chartTypes/commonMappings.js index c59d38c8..8dc26542 100644 --- a/chartTypes/commonMappings.js +++ b/chartTypes/commonMappings.js @@ -9,10 +9,10 @@ function getLineDateSeriesHandlingMappings() { return [ { path: "item.data", // various settings that are not tied to an option - mapToSpec: function(itemData, spec, renderingInfoInput) { - const item = renderingInfoInput.item; + mapToSpec: function(itemData, spec, mappingData) { + const item = mappingData.item; if ( - renderingInfoInput.dateFormat && + mappingData.dateFormat && item.options.lineChartOptions && item.options.lineChartOptions.isStockChart !== true ) { @@ -23,8 +23,8 @@ function getLineDateSeriesHandlingMappings() { }, { path: "item.options.dateSeriesOptions.interval", - mapToSpec: function(interval, spec, renderingInfoInput) { - const item = renderingInfoInput.item; + mapToSpec: function(interval, spec, mappingData) { + const item = mappingData.item; // only use this option if we have a valid dateFormat if (spec.scales[0].type === "time") { if (process.env.FEAT_VARIABLE_HOUR_STEP === true) { @@ -67,9 +67,9 @@ function getColumnDateSeriesHandlingMappings() { return [ { path: "item.data", // various settings that are not tied to an option - mapToSpec: function(itemData, spec, renderingInfoInput) { - const item = renderingInfoInput.item; - if (renderingInfoInput.dateFormat) { + mapToSpec: function(itemData, spec, mappingData) { + const item = mappingData.item; + if (mappingData.dateFormat) { const d3format = intervals[item.options.dateSeriesOptions.interval].d3format; @@ -97,9 +97,9 @@ function getBarDateSeriesHandlingMappings() { return [ { path: "item.data", // various settings that are not tied to an option - mapToSpec: function(itemData, spec, renderingInfoInput) { - const item = renderingInfoInput.item; - if (renderingInfoInput.dateFormat) { + mapToSpec: function(itemData, spec, mappingData) { + const item = mappingData.item; + if (mappingData.dateFormat) { const d3format = intervals[item.options.dateSeriesOptions.interval].d3format; @@ -127,7 +127,7 @@ function getColumnPrognosisMappings() { return [ { path: "item.options.dateSeriesOptions.prognosisStart", - mapToSpec: function(prognosisStart, spec, renderingInfoInput, id) { + mapToSpec: function(prognosisStart, spec, mappingData, id) { if (!Number.isInteger(prognosisStart)) { return; } @@ -176,7 +176,7 @@ function getBarPrognosisMappings() { return [ { path: "item.options.dateSeriesOptions.prognosisStart", - mapToSpec: function(prognosisStart, spec, renderingInfoInput, id) { + mapToSpec: function(prognosisStart, spec, mappingData, id) { if (!Number.isInteger(prognosisStart)) { return; } @@ -259,7 +259,7 @@ function getHeightMappings() { return [ { path: "toolRuntimeConfig.displayOptions.size", - mapToSpec: function(size, spec, renderingInfoInput) { + mapToSpec: function(size, spec, mappingData) { let aspectRatio; if (size === "prominent") { aspectRatio = 9 / 16; @@ -273,7 +273,7 @@ function getHeightMappings() { height = 240; } // increase the height if hideAxisLabel option is unchecked - if (renderingInfoInput.item.options.hideAxisLabel === false) { + if (mappingData.item.options.hideAxisLabel === false) { height = height + 20; } objectPath.set(spec, "height", height); diff --git a/chartTypes/dotplot/mapping.js b/chartTypes/dotplot/mapping.js index d590e6a9..6276b9d4 100644 --- a/chartTypes/dotplot/mapping.js +++ b/chartTypes/dotplot/mapping.js @@ -149,13 +149,11 @@ module.exports = function getMapping() { }, { path: "item.options.dotplotOptions.minValue", - mapToSpec: function(minValue, spec, renderingInfoInput) { + mapToSpec: function(minValue, spec, mappingData) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); + const divisor = dataHelpers.getDivisor(mappingData.item.data); - const dataMinValue = dataHelpers.getMinValue( - renderingInfoInput.item.data - ); + const dataMinValue = dataHelpers.getMinValue(mappingData.item.data); if (dataMinValue < minValue) { minValue = dataMinValue; } @@ -166,13 +164,11 @@ module.exports = function getMapping() { }, { path: "item.options.dotplotOptions.maxValue", - mapToSpec: function(maxValue, spec, renderingInfoInput) { + mapToSpec: function(maxValue, spec, mappingData) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); + const divisor = dataHelpers.getDivisor(mappingData.item.data); - const dataMaxValue = dataHelpers.getMaxValue( - renderingInfoInput.item.data - ); + const dataMaxValue = dataHelpers.getMaxValue(mappingData.item.data); if (dataMaxValue > maxValue) { maxValue = dataMaxValue; } diff --git a/chartTypes/line/mapping.js b/chartTypes/line/mapping.js index 386532f8..c6368395 100644 --- a/chartTypes/line/mapping.js +++ b/chartTypes/line/mapping.js @@ -53,8 +53,8 @@ module.exports = function getMappings() { }, { path: "item.options.annotations", - mapToSpec: function(annotationOptions, spec, renderingInfoInput) { - const item = renderingInfoInput.item; + mapToSpec: function(annotationOptions, spec, mappingData) { + const item = mappingData.item; // this option is only available if we have exactly one data series if (item.data[0].length !== 2) { return; @@ -172,13 +172,11 @@ module.exports = function getMappings() { }, { path: "item.options.lineChartOptions.minValue", - mapToSpec: function(minValue, spec, renderingInfoInput) { + mapToSpec: function(minValue, spec, mappingData) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); + const divisor = dataHelpers.getDivisor(mappingData.item.data); - const dataMinValue = dataHelpers.getMinValue( - renderingInfoInput.item.data - ); + const dataMinValue = dataHelpers.getMinValue(mappingData.item.data); if (dataMinValue < minValue) { minValue = dataMinValue; } @@ -189,13 +187,11 @@ module.exports = function getMappings() { }, { path: "item.options.lineChartOptions.maxValue", - mapToSpec: function(maxValue, spec, renderingInfoInput) { + mapToSpec: function(maxValue, spec, mappingData) { // check if we need to shorten the number labels - const divisor = dataHelpers.getDivisor(renderingInfoInput.item.data); + const divisor = dataHelpers.getDivisor(mappingData.item.data); - const dataMaxValue = dataHelpers.getMaxValue( - renderingInfoInput.item.data - ); + const dataMaxValue = dataHelpers.getMaxValue(mappingData.item.data); if (dataMaxValue > maxValue) { maxValue = dataMaxValue; } @@ -251,8 +247,8 @@ module.exports = function getMappings() { }, { path: "item.options.lineChartOptions.isStockChart", - mapToSpec: function(isStockChart, spec, renderingInfoInput) { - const item = renderingInfoInput.item; + mapToSpec: function(isStockChart, spec, mappingData) { + const item = mappingData.item; if (!isStockChart) { return; } diff --git a/helpers/data.js b/helpers/data.js index 544f7828..ed0dfcc2 100644 --- a/helpers/data.js +++ b/helpers/data.js @@ -31,8 +31,8 @@ function getDataWithStringsCastedToFloats(data) { }); } -function getLongestDataLabel(renderingInfoInput, transposed = false) { - const item = renderingInfoInput.item; +function getLongestDataLabel(mappingData, transposed = false) { + const item = mappingData.item; data = clone(item.data); if (transposed) { data = array2d.transpose(data); @@ -41,7 +41,7 @@ function getLongestDataLabel(renderingInfoInput, transposed = false) { titleRow.shift(); return titleRow .map(label => { - if (!renderingInfoInput.dateFormat) { + if (!mappingData.dateFormat) { return label; } // we have a date format, so we need to format the labels @@ -54,7 +54,7 @@ function getLongestDataLabel(renderingInfoInput, transposed = false) { }) .reduce((prev, current) => { // if we have a date series, we need to format the label here - if (renderingInfoInput.dateFormat) { + if (mappingData.dateFormat) { } if (prev.length > current.length) { diff --git a/helpers/itemVegaMapping.js b/helpers/itemVegaMapping.js index 0c22b8f0..55cd1dc3 100644 --- a/helpers/itemVegaMapping.js +++ b/helpers/itemVegaMapping.js @@ -1,7 +1,7 @@ const clone = require("clone"); const objectPath = require("object-path"); -function getMappedSpec(id, chartType, spec, renderingInfoInput) { +function getMappedSpec(id, chartType, spec, mappingData) { const modifiedSpec = clone(spec); let mappings; try { @@ -13,11 +13,11 @@ function getMappedSpec(id, chartType, spec, renderingInfoInput) { } try { for (const mapping of mappings) { - const itemValue = objectPath.get(renderingInfoInput, mapping.path); + const itemValue = objectPath.get(mappingData, mapping.path); if (itemValue === undefined) { continue; } - mapping.mapToSpec(itemValue, modifiedSpec, renderingInfoInput, id); + mapping.mapToSpec(itemValue, modifiedSpec, mappingData, id); } } catch (err) { throw err; diff --git a/routes/rendering-info/web-svg.js b/routes/rendering-info/web-svg.js index ca5e9594..8aabe80c 100644 --- a/routes/rendering-info/web-svg.js +++ b/routes/rendering-info/web-svg.js @@ -52,20 +52,20 @@ function getSpecConfig(item, baseConfig, toolRuntimeConfig) { } async function getSpec(id, width, chartType, item, toolRuntimeConfig) { - const renderingInfoInput = { + const mappingData = { item: item, toolRuntimeConfig: toolRuntimeConfig }; const chartTypeConfig = require(`../../chartTypes/${chartType}/config.js`); if (chartTypeConfig.data.handleDateSeries) { // if we have a date series, we change the date values to date objects - // and set the detected dateFormat to the renderingInfoInput to be used within the mapping functions + // and set the detected dateFormat to the mappingData to be used within the mapping functions if (dateSeries.isDateSeriesData(item.data)) { - renderingInfoInput.dateFormat = dateSeries.getDateFormatForData( - renderingInfoInput.item.data + mappingData.dateFormat = dateSeries.getDateFormatForData( + mappingData.item.data ); - renderingInfoInput.item.data = dateSeries.getDataWithDateParsed( - renderingInfoInput.item.data + mappingData.item.data = dateSeries.getDataWithDateParsed( + mappingData.item.data ); } } @@ -73,9 +73,9 @@ async function getSpec(id, width, chartType, item, toolRuntimeConfig) { const templateSpec = require(`../../chartTypes/${chartType}/vega-spec.json`); templateSpec.config = getSpecConfig( - renderingInfoInput.item, + mappingData.item, templateSpec.config, - renderingInfoInput.toolRuntimeConfig + mappingData.toolRuntimeConfig ); // set the size to the spec @@ -84,7 +84,7 @@ async function getSpec(id, width, chartType, item, toolRuntimeConfig) { // this will be the compiled spec from template and mapping let spec; try { - spec = getMappedSpec(id, chartType, templateSpec, renderingInfoInput); + spec = getMappedSpec(id, chartType, templateSpec, mappingData); } catch (err) { throw new Boom(err); } From 40beaea1ab4af36c462aacc625101b3f778cd7bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20K=C3=BCng?= Date: Tue, 9 Oct 2018 11:35:07 +0200 Subject: [PATCH 17/18] renamed route to data and property to allowDownloadData --- resources/schema.json | 2 +- routes/{download-data.js => data.js} | 2 +- routes/rendering-info/web.js | 4 ++-- routes/routes.js | 2 +- views/footer.html | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) rename routes/{download-data.js => data.js} (97%) diff --git a/resources/schema.json b/resources/schema.json index 1bbb94bc..70d1effb 100755 --- a/resources/schema.json +++ b/resources/schema.json @@ -76,7 +76,7 @@ }, "minItems": 1 }, - "downloadData": { + "allowDownloadData": { "title": "Daten zum herunterladen anbieten", "type": "boolean", "default": false diff --git a/routes/download-data.js b/routes/data.js similarity index 97% rename from routes/download-data.js rename to routes/data.js index 2038fd69..fd79fc98 100644 --- a/routes/download-data.js +++ b/routes/data.js @@ -3,7 +3,7 @@ const slugify = require("slugify"); module.exports = { method: "POST", - path: "/download-data", + path: "/data", options: { cors: true, validate: { diff --git a/routes/rendering-info/web.js b/routes/rendering-info/web.js index 7f7bda82..566989a9 100644 --- a/routes/rendering-info/web.js +++ b/routes/rendering-info/web.js @@ -75,10 +75,10 @@ module.exports = { )}`.replace(/-/g, "") }; - if (item.downloadData) { + if (item.allowDownloadData) { context.linkToCSV = `${ request.payload.toolRuntimeConfig.toolBaseUrl - }/download-data?appendItemToPayload=${request.query._id}`; + }/data?appendItemToPayload=${request.query._id}`; } const renderingInfo = {}; diff --git a/routes/routes.js b/routes/routes.js index df70c919..284a1e24 100755 --- a/routes/routes.js +++ b/routes/routes.js @@ -13,5 +13,5 @@ module.exports = [ require("./notification/shouldBeLineChart.js"), require("./notification/shouldBeBars.js"), require("./locales.js"), - require("./download-data.js") + require("./data.js") ].concat(require("./schema.js")); diff --git a/views/footer.html b/views/footer.html index 8491c3a8..c8dcd690 100644 --- a/views/footer.html +++ b/views/footer.html @@ -22,5 +22,5 @@ {%- else %}Quelle: nicht angegeben{%- endif %} {%- if item.acronym %} – Grafik: {{ item.acronym }}{%- endif %} - {%- if item.downloadData -%}
Daten herunterladen{%- endif %} + {%- if item.allowDownloadData -%}
Daten herunterladen{%- endif %} \ No newline at end of file From 6333f099bbe4ec8f4d51aab83cb6058d795615b0 Mon Sep 17 00:00:00 2001 From: benib Date: Tue, 9 Oct 2018 18:16:27 +0200 Subject: [PATCH 18/18] update deps, v 1.13.0 --- package-lock.json | 994 +++++++++++++++++++--------------------------- package.json | 6 +- 2 files changed, 415 insertions(+), 585 deletions(-) diff --git a/package-lock.json b/package-lock.json index d1eaab2c..f4e08e15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "q-chart", - "version": "1.12.7", + "version": "1.13.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -153,9 +153,9 @@ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -524,13 +524,11 @@ } }, "canvas-prebuilt": { - "version": "1.6.5-prerelease.1", - "resolved": "https://registry.npmjs.org/canvas-prebuilt/-/canvas-prebuilt-1.6.5-prerelease.1.tgz", - "integrity": "sha1-aBSyC5yAg13MJL/WGZFHKIYwUhw=", + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/canvas-prebuilt/-/canvas-prebuilt-1.6.11.tgz", + "integrity": "sha512-ayBAayYLgFbGBX+cwtOzM4iEQP4XB5DuBbtjgvAwQ66/FMzSR7DhlCqtDZIq9UBbpFCb1QpyDgUNVclHDdBixg==", "requires": { - "node-pre-gyp": "^0.6.29", - "parse-css-font": "^2.0.2", - "units-css": "^0.4.0" + "node-pre-gyp": "^0.10.0" } }, "caseless": { @@ -624,6 +622,11 @@ "readdirp": "^2.0.0" } }, + "chownr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==" + }, "circular-json": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", @@ -858,32 +861,38 @@ "css-font-size-keywords": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", - "integrity": "sha1-hUh1rOmspqjS7g00WkSq6btttss=" + "integrity": "sha1-hUh1rOmspqjS7g00WkSq6btttss=", + "optional": true }, "css-font-stretch-keywords": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", - "integrity": "sha1-UM7puboDH7XJUtRyMTnx4Qe1SxA=" + "integrity": "sha1-UM7puboDH7XJUtRyMTnx4Qe1SxA=", + "optional": true }, "css-font-style-keywords": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", - "integrity": "sha1-XDUygT9jtKHelU0TzqhqtDM0CeQ=" + "integrity": "sha1-XDUygT9jtKHelU0TzqhqtDM0CeQ=", + "optional": true }, "css-font-weight-keywords": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", - "integrity": "sha1-m8BGcayFvHJLV07106yWsNYE/Zc=" + "integrity": "sha1-m8BGcayFvHJLV07106yWsNYE/Zc=", + "optional": true }, "css-global-keywords": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", - "integrity": "sha1-cqmupyeW0Bmx0qMlLeTlqqN+Smk=" + "integrity": "sha1-cqmupyeW0Bmx0qMlLeTlqqN+Smk=", + "optional": true }, "css-list-helpers": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/css-list-helpers/-/css-list-helpers-1.0.1.tgz", "integrity": "sha1-//VxkiAtuDJAxBaG+RnkSacCT30=", + "optional": true, "requires": { "tcomb": "^2.5.0" } @@ -891,7 +900,8 @@ "css-system-font-keywords": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", - "integrity": "sha1-hcbwhquk6zLFcaMIav/ENLhII+0=" + "integrity": "sha1-hcbwhquk6zLFcaMIav/ENLhII+0=", + "optional": true }, "cssnano": { "version": "3.10.0", @@ -1317,9 +1327,9 @@ } }, "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" @@ -1729,6 +1739,14 @@ "mime-types": "^2.1.12" } }, + "fs-minipass": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "requires": { + "minipass": "^2.2.1" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2217,6 +2235,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "optional": true, "requires": { "fstream": "^1.0.0", "inherits": "2", @@ -2259,21 +2278,6 @@ "globule": "^1.0.0" } }, - "generate-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", - "dev": true - }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "dev": true, - "requires": { - "is-property": "^1.0.0" - } - }, "get-caller-file": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", @@ -2355,9 +2359,9 @@ }, "dependencies": { "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true } } @@ -2531,9 +2535,9 @@ "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" }, "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, "html-comment-regex": { @@ -2571,6 +2575,14 @@ "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", "dev": true }, + "ignore-walk": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "requires": { + "minimatch": "^3.0.4" + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -2728,7 +2740,7 @@ }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { @@ -2786,25 +2798,6 @@ "is-extglob": "^1.0.0" } }, - "is-my-ip-valid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", - "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", - "dev": true - }, - "is-my-json-valid": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", - "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", - "dev": true, - "requires": { - "generate-function": "^2.0.0", - "generate-object-property": "^1.1.0", - "is-my-ip-valid": "^1.0.0", - "jsonpointer": "^4.0.0", - "xtend": "^4.0.0" - } - }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", @@ -2862,12 +2855,6 @@ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", - "dev": true - }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -2920,7 +2907,8 @@ "isnumeric": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/isnumeric/-/isnumeric-0.2.0.tgz", - "integrity": "sha1-ojR7o2DeGeM9D/1ZD933dVy/LmQ=" + "integrity": "sha1-ojR7o2DeGeM9D/1ZD933dVy/LmQ=", + "optional": true }, "isobject": { "version": "2.1.0", @@ -3049,12 +3037,6 @@ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", - "dev": true - }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -3149,7 +3131,7 @@ }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { @@ -3293,7 +3275,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } @@ -3367,6 +3349,35 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, + "minipass": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.4.tgz", + "integrity": "sha512-mlouk1OHlaUE8Odt1drMtG1bAJA4ZA6B/ehysgV0LUIrDHdKgo1KorZq3pK0b/7Z7LJIQ12MNM6aC+Tn6lUZ5w==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "yallist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" + } + } + }, + "minizlib": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "requires": { + "minipass": "^2.2.1" + } + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -3410,6 +3421,16 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "needle": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.4.tgz", + "integrity": "sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA==", + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, "nigel": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/nigel/-/nigel-3.0.0.tgz", @@ -3435,9 +3456,9 @@ } }, "node-gyp": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.7.0.tgz", - "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", "dev": true, "requires": { "fstream": "^1.0.0", @@ -3447,109 +3468,13 @@ "nopt": "2 || 3", "npmlog": "0 || 1 || 2 || 3 || 4", "osenv": "0", - "request": ">=2.9.0 <2.82.0", + "request": "^2.87.0", "rimraf": "2", "semver": "~5.3.0", "tar": "^2.0.0", "which": "1" }, "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.x.x" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "requires": { - "boom": "2.x.x" - } - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true, - "requires": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", @@ -3559,368 +3484,96 @@ "abbrev": "1" } }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - } - }, "semver": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { - "hoek": "2.x.x" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } } } }, "node-pre-gyp": { - "version": "0.6.39", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", - "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz", + "integrity": "sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A==", "requires": { "detect-libc": "^1.0.2", - "hawk": "3.1.3", - "mkdirp": "^0.5.1", - "nopt": "^4.0.1", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "request": "2.81.0", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^2.2.1", - "tar-pack": "^3.4.0" - }, - "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "requires": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" - } - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - } - } - } - }, - "node-sass": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.0.tgz", - "integrity": "sha512-QFHfrZl6lqRU3csypwviz2XLgGNOoWQbo2GOvtsfQqOfL4cy1BtWnhx/XUeAO9LT3ahBzSRXcEO6DdvAH9DzSg==", - "dev": true, - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash.assign": "^4.2.0", - "lodash.clonedeep": "^4.3.2", - "lodash.mergewith": "^4.6.0", - "meow": "^3.7.0", "mkdirp": "^0.5.1", - "nan": "^2.10.0", - "node-gyp": "^3.3.1", - "npmlog": "^4.0.0", - "request": "~2.79.0", - "sass-graph": "^2.2.4", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.x.x" - } - }, - "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "requires": { - "boom": "2.x.x" - } - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } - }, - "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "dev": true, - "requires": { - "chalk": "^1.1.1", - "commander": "^2.9.0", - "is-my-json-valid": "^2.12.4", - "pinkie-promise": "^2.0.0" - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true - }, - "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "node-sass": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz", + "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "2.87.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, - "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.11.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~2.0.6", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "qs": "~6.3.0", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "~0.4.1", - "uuid": "^3.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", "dev": true, "requires": { - "hoek": "2.x.x" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "supports-color": { @@ -3928,12 +3581,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true - }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", - "dev": true } } }, @@ -3984,6 +3631,20 @@ "sort-keys": "^1.0.0" } }, + "npm-bundled": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.5.tgz", + "integrity": "sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g==" + }, + "npm-packlist": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.12.tgz", + "integrity": "sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==", + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -4122,9 +3783,9 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -4160,6 +3821,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/parse-css-font/-/parse-css-font-2.0.2.tgz", "integrity": "sha1-e2CwYHBaJam5C38O1JPlgjJIplI=", + "optional": true, "requires": { "css-font-size-keywords": "^1.0.0", "css-font-stretch-keywords": "^1.0.1", @@ -6095,7 +5757,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } @@ -6560,24 +6222,35 @@ "dev": true }, "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", + "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", "dev": true, "requires": { - "spdx-license-ids": "^1.0.2" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", "dev": true }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", + "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==", "dev": true }, "sprintf-js": { @@ -6616,9 +6289,9 @@ } }, "stdout-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", - "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", "dev": true, "requires": { "readable-stream": "^2.0.1" @@ -6656,7 +6329,8 @@ "stringstream": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", - "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==" + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "optional": true }, "strip-ansi": { "version": "3.0.1", @@ -6783,19 +6457,36 @@ } }, "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.6.tgz", + "integrity": "sha512-tMkTnh9EdzxyfW+6GK6fCahagXsnYk6kE6S9Gr9pjVdys769+laCTbodXDhPAjzVtEBazRgP0gYqOjnk9dQzLg==", + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.3", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "yallist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" + } } }, "tar-pack": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.1.tgz", "integrity": "sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg==", + "optional": true, "requires": { "debug": "^2.2.0", "fstream": "^1.0.10", @@ -6805,6 +6496,19 @@ "rimraf": "^2.5.1", "tar": "^2.2.1", "uid-number": "^0.0.6" + }, + "dependencies": { + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "optional": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + } } }, "tcomb": { @@ -6884,27 +6588,12 @@ "dev": true }, "true-case-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", - "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", "dev": true, "requires": { - "glob": "^6.0.4" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } + "glob": "^7.1.2" } }, "tunnel-agent": { @@ -7005,7 +6694,8 @@ "uid-number": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=" + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "optional": true }, "uniq": { "version": "1.0.1", @@ -7032,6 +6722,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/units-css/-/units-css-0.4.0.tgz", "integrity": "sha1-1iKGU6UZg9fBb/KPi53Dsf/tOgc=", + "optional": true, "requires": { "isnumeric": "^0.2.0", "viewport-dimensions": "^0.2.0" @@ -7040,7 +6731,8 @@ "unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "optional": true }, "util-deprecate": { "version": "1.0.2", @@ -7053,13 +6745,13 @@ "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" }, "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "vega": { @@ -7075,11 +6767,44 @@ "yargs": "12" }, "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "optional": true, + "requires": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "optional": true + }, + "canvas-prebuilt": { + "version": "1.6.5-prerelease.1", + "resolved": "https://registry.npmjs.org/canvas-prebuilt/-/canvas-prebuilt-1.6.5-prerelease.1.tgz", + "integrity": "sha1-aBSyC5yAg13MJL/WGZFHKIYwUhw=", + "optional": true, + "requires": { + "node-pre-gyp": "^0.6.29", + "parse-css-font": "^2.0.2", + "units-css": "^0.4.0" + } + }, "cliui": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", @@ -7106,11 +6831,68 @@ "locate-path": "^3.0.0" } }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "optional": true, + "requires": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "optional": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, + "node-pre-gyp": { + "version": "0.6.39", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", + "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "hawk": "3.1.3", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "request": "2.81.0", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^2.2.1", + "tar-pack": "^3.4.0" + } + }, "os-locale": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", @@ -7121,6 +6903,48 @@ "mem": "^1.1.0" } }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "optional": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "optional": true + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "optional": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + } + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -7138,6 +6962,17 @@ "ansi-regex": "^3.0.0" } }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "optional": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -7468,7 +7303,8 @@ "viewport-dimensions": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/viewport-dimensions/-/viewport-dimensions-0.2.0.tgz", - "integrity": "sha1-3nQHR9tTh/0XJfUXXpG6x2r982w=" + "integrity": "sha1-3nQHR9tTh/0XJfUXXpG6x2r982w=", + "optional": true }, "vise": { "version": "3.0.0", @@ -7535,11 +7371,11 @@ "dev": true }, "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "requires": { - "string-width": "^1.0.2" + "string-width": "^1.0.2 || 2" } }, "will-call": { @@ -7609,12 +7445,6 @@ "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==" }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, "y18n": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", diff --git a/package.json b/package.json index 6f5b9293..71072e35 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "q-chart", - "version": "1.12.7", + "version": "1.13.0", "description": "", "main": "index.js", "scripts": { @@ -14,7 +14,7 @@ "array2d": "0.0.5", "boom": "^7.1.1", "canvas": "^1.6.11", - "canvas-prebuilt": "^1.6.5-prerelease.1", + "canvas-prebuilt": "^1.6.11", "clone": "^2.1.1", "d3-array": "^1.2.1", "d3-format": "^1.2.1", @@ -37,7 +37,7 @@ "code": "^5.1.2", "cssnano": "^3.10.0", "lab": "^15.1.2", - "node-sass": "^4.9.0", + "node-sass": "^4.9.3", "postcss": "^6.0.14", "postcss-import": "^11.0.0" }