diff options
| author | bozokopic <bozo.kopic@gmail.com> | 2018-04-15 19:14:15 +0200 |
|---|---|---|
| committer | bozokopic <bozo.kopic@gmail.com> | 2018-04-15 19:14:15 +0200 |
| commit | bb67223abd3d4a5c3654393b4a962daae0588741 (patch) | |
| tree | 90e0f4add9764f565b1c9dc2d2dc21db0bc50770 | |
| parent | dc7cc767859a82a087e258eead7d59e177b30d0f (diff) | |
WIP web frontend
| -rw-r--r-- | package.json | 1 | ||||
| -rw-r--r-- | src_js/opcut/common.js | 69 | ||||
| -rw-r--r-- | src_js/opcut/grid.js | 186 | ||||
| -rw-r--r-- | src_js/opcut/validators.js | 56 | ||||
| -rw-r--r-- | src_js/opcut/vt.js | 123 | ||||
| -rw-r--r-- | src_web/style/grid.scss | 53 | ||||
| -rw-r--r-- | src_web/style/main.scss | 52 | ||||
| -rw-r--r-- | src_web/style/shadow.scss | 23 | ||||
| -rw-r--r-- | yarn.lock | 256 |
9 files changed, 478 insertions, 341 deletions
diff --git a/package.json b/package.json index 57c4920..38b23ee 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "tern": "0.21.0", "tmp": "0.0.33", "tv4": "1.3.0", + "uri-js": "4.2.1", "url-loader": "0.6.2", "url-parse": "1.2.0", "vex-js": "4.0.1", diff --git a/src_js/opcut/common.js b/src_js/opcut/common.js index 3f39115..89088ac 100644 --- a/src_js/opcut/common.js +++ b/src_js/opcut/common.js @@ -1,16 +1,77 @@ +import * as URI from 'uri-js'; +import iziToast from 'izitoast'; +import r from 'opcut/renderer'; +import * as u from 'opcut/util'; -export function submit() { +const calculateUrl = URI.resolve(window.location.href, './calculate'); +const generateOutputUrl = URI.resolve(window.location.href, './generate_output'); -} +export function calculate() { + const msg = { + method: r.get('form', 'method'), + params: { + cut_width: u.strictParseFloat(r.get('form', 'cut_width')), + panels: u.pipe( + u.map(panel => [panel.name, {width: u.strictParseFloat(panel.width), + height: u.strictParseFloat(panel.height)}]), + u.fromPairs + )(r.get('form', 'panels', 'items')), + items: u.pipe( + u.map(item => [item.name, {width: u.strictParseFloat(item.width), + height: u.strictParseFloat(item.height), + can_rotate: item.can_rotate}]), + u.fromPairs + )(r.get('form', 'items', 'items')), + } + }; + try { + validateCalculateRequest(msg); + } catch (e) { + showNotification(e, 'error'); + return; + } + const req = new XMLHttpRequest(); + req.onload = () => parseCalculateResponse(JSON.parse(req.responseText)); + req.open('POST', calculateUrl); + req.setRequestHeader('Content-Type', 'application/json'); + req.send(JSON.stringify(msg)); +} -export function addPanel() { +function validateCalculateRequest(msg) { + if (!Number.isFinite(msg.params.cut_width) || msg.params.cut_width < 0) + throw 'Invalid cut width'; + if (u.equals(msg.params.panels, {})) + throw 'No panels defined'; + for (let [name, panel] of u.toPairs(msg.params.panels)) { + if (!name) + throw 'Invalid panel name'; + if (!Number.isFinite(panel.width) || panel.width <= 0) + throw 'Invalid width for panel ' + name; + if (!Number.isFinite(panel.height) || panel.height <= 0) + throw 'Invalid height for panel ' + name; + } + if (u.equals(msg.params.items, {})) + throw 'No items defined'; + for (let [name, item] of u.toPairs(msg.params.items)) { + if (!name) + throw 'Invalid item name'; + if (!Number.isFinite(item.width) || item.width <= 0) + throw 'Invalid width for item ' + name; + if (!Number.isFinite(item.height) || item.height <= 0) + throw 'Invalid height for item ' + name; + } } -export function addItem() { +function parseCalculateResponse(msg) { + +} + +function showNotification(message, type) { + iziToast[type]({message: message}); } diff --git a/src_js/opcut/grid.js b/src_js/opcut/grid.js index 972341d..4403195 100644 --- a/src_js/opcut/grid.js +++ b/src_js/opcut/grid.js @@ -30,39 +30,50 @@ export function tbody(gridPath, columns, validators) { content = checkboxColumn(gridPath, column)(row, rowIndex); } else if (selected) { content = ['input.grid-input', { - type: 'text', - 'ev-change': (evt) => r.set([gridPath, 'items', rowIndex, column], - evt.target.value), - 'ev-blur': _ => { - if (u.equals(gridState.selectedItem, [rowIndex, column])) - r.set([gridPath, 'selectedItem'], null); + props: { + type: 'text', + value: content }, - 'ev-keyup': (evt) => { - switch (evt.key) { - case 'Enter': - evt.target.blur(); - break; - case 'Escape': - evt.target.value = u.get(column, row); - evt.target.blur(); - break; + on: { + change: evt => r.set([gridPath, 'items', rowIndex, column], + evt.target.value), + blur: _ => { + if (u.equals(gridState.selectedItem, [rowIndex, column])) + r.set([gridPath, 'selectedItem'], null); + }, + keyup: evt => { + switch (evt.key) { + case 'Enter': + evt.target.blur(); + break; + case 'Escape': + evt.target.value = u.get(column, row); + evt.target.blur(); + break; + } } - }, - value: content - }]; + }} + ]; } } const title = (validator ? validator(u.get(column, row), row) : null); - return ['td' + (title ? '.invalid' : ''), { - title: (title ? title : ''), - 'ev-click': evt => { - if (u.equals(gridState.selectedItem, [rowIndex, column])) - return; - ev.one(r, 'render', () => { - if (evt.target.firstChild && evt.target.firstChild.focus) - evt.target.firstChild.focus(); - }); - r.set([gridPath, 'selectedItem'], [rowIndex, column]); + return ['td', { + class: { + invalid: title + }, + props: { + title: (title ? title : '') + }, + on: { + click: evt => { + if (u.equals(gridState.selectedItem, [rowIndex, column])) + return; + ev.one(r, 'render', () => { + if (evt.target.firstChild && evt.target.firstChild.focus) + evt.target.firstChild.focus(); + }); + r.set([gridPath, 'selectedItem'], [rowIndex, column]); + } }}, content]; })] @@ -75,36 +86,39 @@ export function tfoot(gridPath, colspan, newItem, csvColumns) { return ['tfoot', ['tr', ['td', { - colSpan: colspan}, + props: { + colSpan: colspan + }}, ['div', ['button', { - 'ev-click': () => r.change(itemsPath, u.append(newItem))}, + on: { + click: () => r.change(itemsPath, u.append(newItem)) + }}, ['span.fa.fa-plus'], ' Add' ], ['span.spacer'], - ['button', { - 'ev-click': () => r.set(itemsPath, [])}, - ['span.fa.fa-trash-o'], - ' Remove all' - ], (!csvColumns ? [] : [ ['button', { - 'ev-click': () => { - const items = importCsv(csvColumns, newItem); - if (!items) - return; - r.change(itemsPath, state => state.concat(items)); + on: { + click: () => { + const items = importCsv(csvColumns, newItem); + if (!items) + return; + r.change(itemsPath, state => state.concat(items)); + } }}, ['span.fa.fa-download'], - ' Import from CSV' + ' CSV Import' ], ['button', { - 'ev-click': () => exportCsv(r.get(itemsPath), csvColumns)}, + on: { + click: () => exportCsv(r.get(itemsPath), csvColumns) + }}, ['span.fa.fa-upload'], - ' Export to CSV' + ' CSV Export' ] ] ) @@ -126,41 +140,58 @@ export function createStringCsvColumns(...columns) { } +export function createBooleanCsvColumns(...columns) { + return u.pipe( + u.map(i => [i, { + toString: u.pipe(u.get(i), x => x ? 'true' : 'false'), + toItem: (x, acc) => u.set(i, x == 'true', acc) + }]), + u.fromPairs + )(columns); +} + + export function deleteColumn(gridPath, showUpDown, onDeleteCb) { const itemsPath = [gridPath, 'items']; return (i, index) => [ (!showUpDown ? [] : [ ['button', { - 'ev-click': () => { - const gridState = r.get(gridPath); - if (index < 1) - return; - r.change(itemsPath, u.pipe( - u.set(index, gridState.items[index-1]), - u.set(index-1, i) - )); + on: { + click: () => { + const gridState = r.get(gridPath); + if (index < 1) + return; + r.change(itemsPath, u.pipe( + u.set(index, gridState.items[index-1]), + u.set(index-1, i) + )); + } }}, ['span.fa.fa-arrow-up'] ], ['button', { - 'ev-click': () => { - const gridState = r.get(gridPath); - if (index > gridState.items.length - 2) - return; - r.change(itemsPath, u.pipe( - u.set(index, gridState.items[index+1]), - u.set(index+1, i) - )); + on: { + click: () => { + const gridState = r.get(gridPath); + if (index > gridState.items.length - 2) + return; + r.change(itemsPath, u.pipe( + u.set(index, gridState.items[index+1]), + u.set(index+1, i) + )); + } }}, ['span.fa.fa-arrow-down'] ] ]), ['button', { - 'ev-click': () => { - const item = r.get(itemsPath, index); - r.change(itemsPath, u.omit(index)); - if (onDeleteCb) - onDeleteCb(item); + on: { + click: () => { + const item = r.get(itemsPath, index); + r.change(itemsPath, u.omit(index)); + if (onDeleteCb) + onDeleteCb(item); + } }}, ['span.fa.fa-minus'] ] @@ -172,11 +203,17 @@ export function checkboxColumn(gridPath, column) { return (i, index) => { const columnPath = [gridPath, 'items', index, column]; return ['div', { - style: 'text-align: center'}, + props: { + style: 'text-align: center' + }}, ['input', { - type: 'checkbox', - 'ev-change': (evt) => r.set(columnPath, evt.target.checked), - checked: r.get(columnPath)} + props: { + type: 'checkbox', + checked: r.get(columnPath) + }, + on: { + change: evt => r.set(columnPath, evt.target.checked) + }} ] ]; }; @@ -191,9 +228,16 @@ export function selectColumn(gridPath, column, values) { i => u.equals(selectedValue, (u.isArray(i) ? i[0] : i))) === undefined; const allValues = (invalid ? u.append(selectedValue, values) : values); return ['select' + (invalid ? '.invalid' : ''), { - title: (invalid ? 'invalid value' : ''), - style: 'width: 100%', - 'ev-change': (evt) => r.set(columnPath, evt.target.value)}, + class: { + invalid: invalid + }, + props: { + title: (invalid ? 'invalid value' : ''), + style: 'width: 100%' + }, + on: { + change: evt => r.set(columnPath, evt.target.value) + }}, allValues.map(i => { const value = (u.isArray(i) ? i[0] : i); const label = (u.isArray(i) ? i[1] : i); diff --git a/src_js/opcut/validators.js b/src_js/opcut/validators.js new file mode 100644 index 0000000..eb49fac --- /dev/null +++ b/src_js/opcut/validators.js @@ -0,0 +1,56 @@ +import * as u from 'opcut/util';
+
+
+export function notEmptyValidator(value) {
+ if (!value)
+ return 'invalid value';
+}
+
+
+export function floatValidator(value) {
+ const floatValue = u.strictParseFloat(value);
+ if (!Number.isFinite(floatValue))
+ return 'not valid number';
+}
+
+
+export function integerValidator(value) {
+ const intValue = u.strictParseInt(value);
+ if (!Number.isFinite(intValue))
+ return 'not valid number';
+}
+
+
+export function tcpPortValidator(value) {
+ const intValue = u.strictParseInt(value);
+ if (!Number.isFinite(intValue) || intValue < 0 || intValue > 0xFFFF)
+ return 'not valid TCP port';
+}
+
+
+export function createChainValidator(...validators) {
+ return value => {
+ for (let validator of validators) {
+ let result = validator(value);
+ if (result)
+ return result;
+ }
+ };
+}
+
+
+export function createUniqueValidator() {
+ const values = new Set();
+ return value => {
+ if (values.has(value))
+ return 'duplicate value';
+ values.add(value);
+ };
+}
+
+
+export function dimensionValidator(value) {
+ const floatValue = u.strictParseFloat(value);
+ if (!Number.isFinite(floatValue) || floatValue <= 0)
+ return 'not valid dimension';
+}
diff --git a/src_js/opcut/vt.js b/src_js/opcut/vt.js index c13d35a..f942e4b 100644 --- a/src_js/opcut/vt.js +++ b/src_js/opcut/vt.js @@ -1,6 +1,9 @@ import r from 'opcut/renderer'; - +import * as u from 'opcut/util'; +import * as grid from 'opcut/grid'; import * as common from 'opcut/common'; +import * as states from 'opcut/states'; +import * as validators from 'opcut/validators'; export function main() { @@ -13,6 +16,11 @@ export function main() { function leftPanel() { + const methodPath = ['form', 'method']; + const cutWidthPath = ['form', 'cut_width']; + const cutWidthTitle = (cutWidth => + (Number.isFinite(cutWidth) && cutWidth >= 0) ? '' : 'not valid cut width' + )(u.strictParseFloat(r.get(cutWidthPath))); return ['div.left-panel', ['div.header', ['div.title', 'OPCUT'], @@ -30,7 +38,10 @@ function leftPanel() { ['option', { props: { value: method, - selected: r.get('form', 'method') == method + selected: r.get(methodPath) == method + }, + on: { + change: evt => r.set(methodPath, evt.target.value) }}, method ]) @@ -39,53 +50,87 @@ function leftPanel() { ['div.group', ['label', 'Cut width'], ['input', { + class: { + invalid: cutWidthTitle + }, props: { - value: r.get('form', 'cut_width') + value: r.get(cutWidthPath), + title: cutWidthTitle }, on: { - change: evt => r.set(['form', 'cut_width'], evt.target.value) + change: evt => r.set(cutWidthPath, evt.target.value) }} ] ], - ['div.list', - ['label', 'Panels'], - ['div.content', - 'sdfsdfssfd', ['br'], - 'sdfsdfssfd', ['br'], - 'sdfsdfssfd', ['br'], - 'sdfsdfssfd', ['br'], - 'sdfsdfssfd', ['br'] - ], - ['button.add', { - on: { - click: common.addPanel - }}, - ['span.fa.fa-plus'], - ' Add panel' - ] - ], - ['div.list', - ['label', 'Items'], - ['div.content', - 'sdfsdfssfd', ['br'], - 'sdfsdfssfd', ['br'], - 'sdfsdfssfd', ['br'], - 'sdfsdfssfd', ['br'], - 'sdfsdfssfd', ['br'] - ], - ['button.add', { - on: { - click: common.addItem - }}, - ['span.fa.fa-plus'], - ' Add item' - ] + ['div.content', + leftPanelPanels(), + leftPanelItems() ], - ['button.submit', { + ['button.calculate', { on: { - click: common.submit + click: common.calculate }}, 'Calculate' ] ]; } + + +function leftPanelPanels() { + const panelsPath = ['form', 'panels']; + const deleteColumn = grid.deleteColumn(panelsPath); + const nameValidator = validators.createChainValidator( + validators.notEmptyValidator, + validators.createUniqueValidator()); + const widthValidator = validators.dimensionValidator; + const heightValidator = validators.dimensionValidator; + const csvColumns = grid.createStringCsvColumns('name', 'width', 'height'); + return ['div', + ['table.grid', + ['thead', + ['tr', + ['th', 'Panel name'], + ['th.fixed', 'Width'], + ['th.fixed', 'Height'], + ['th.fixed'] + ] + ], + grid.tbody(panelsPath, + ['name', 'width', 'height', deleteColumn], + [nameValidator, widthValidator, heightValidator]), + grid.tfoot(panelsPath, 4, states.panelsItem, csvColumns) + ] + ]; +} + + +function leftPanelItems() { + const itemsPath = ['form', 'items']; + const rotateColumn = grid.checkboxColumn(itemsPath, 'can_rotate'); + const deleteColumn = grid.deleteColumn(itemsPath); + const nameValidator = validators.createChainValidator( + validators.notEmptyValidator, + validators.createUniqueValidator()); + const widthValidator = validators.dimensionValidator; + const heightValidator = validators.dimensionValidator; + const csvColumns = u.merge( + grid.createStringCsvColumns('name', 'width', 'height'), + grid.createBooleanCsvColumns('can_rotate')); + return ['div', + ['table.grid', + ['thead', + ['tr', + ['th', 'Item name'], + ['th.fixed', 'Width'], + ['th.fixed', 'Height'], + ['th.fixed', 'Rotate'], + ['th.fixed'] + ] + ], + grid.tbody(itemsPath, + ['name', 'width', 'height', rotateColumn, deleteColumn], + [nameValidator, widthValidator, heightValidator]), + grid.tfoot(itemsPath, 5, states.itemsItem, csvColumns) + ] + ]; +} diff --git a/src_web/style/grid.scss b/src_web/style/grid.scss new file mode 100644 index 0000000..b1e9bf8 --- /dev/null +++ b/src_web/style/grid.scss @@ -0,0 +1,53 @@ +@import './color';
+
+
+table.grid {
+ table-layout: fixed;
+ border-spacing: 0px;
+ border: 1px solid $color-grey-400;
+
+ td:not(:last-child) {
+ border-right: 1px solid $color-grey-300;
+ }
+
+ thead tr, tfoot tr {
+ background-color: $color-grey-200;
+ }
+
+ td, th {
+ padding: 4px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ tbody td {
+ background-color: white;
+ }
+
+ tbody td, tfoot td {
+ border-top: 1px solid $color-grey-400;
+ }
+
+ input {
+ width: 100%;
+ }
+
+ input[type=text] {
+ position: relative;
+ border: 1px;
+ font-size: 10pt;
+ font-family: 'Roboto';
+ }
+
+ tfoot td > div {
+ display: flex;
+
+ & > .spacer {
+ flex-grow: 1;
+ }
+ }
+
+ .invalid {
+ background-color: rgba(red, 0.2);
+ }
+}
diff --git a/src_web/style/main.scss b/src_web/style/main.scss index 6b848b4..612c2a7 100644 --- a/src_web/style/main.scss +++ b/src_web/style/main.scss @@ -1,8 +1,11 @@ @import '~normalize.css/normalize'; +@import '~izitoast/dist/css/iziToast.min'; @import './fonts/fontawesome'; @import './fonts/roboto'; @import './color'; +@import './shadow'; +@import './grid'; html, body { @@ -20,19 +23,12 @@ html, body { .left-panel { - width: 300px; + @include shadow-4dp(); + width: 400px; display: flex; flex-direction: column; background-color: $color-grey-100; - .group { - flex-shrink: 0; - display: flex; - flex-direction: column; - margin: 10px; - margin-bottom: 0px; - } - .header { flex-shrink: 0; margin: 10px; @@ -60,33 +56,49 @@ html, body { } } - .list { + .group { + flex-shrink: 0; + display: flex; + flex-direction: column; + margin: 10px; + margin-bottom: 0px; + } + + .content { flex-grow: 1; display: flex; flex-direction: column; margin: 10px; margin-bottom: 0px; + align-items: stretch; + overflow: auto; - & > * { - flex-shrink: 0; - } + table.grid { + width: 100%; - .content { - flex-grow: 1; - flex-shrink: 1; - overflow: auto; + .fixed { + width: 50px + } + + tbody td:last-child { + text-align: center; + } } - .add { - align-self: flex-end; + & > *:not(:last-child) { + margin-bottom: 10px; } } - .submit { + .calculate { flex-shrink: 0; margin: 10px; padding: 10px; } + + .invalid { + background-color: rgba(red, 0.2); + } } diff --git a/src_web/style/shadow.scss b/src_web/style/shadow.scss new file mode 100644 index 0000000..8bcb900 --- /dev/null +++ b/src_web/style/shadow.scss @@ -0,0 +1,23 @@ + +$shadow-key-umbra-opacity: 0.2 !default; +$shadow-key-penumbra-opacity: 0.14 !default; +$shadow-ambient-shadow-opacity: 0.12 !default; + + +@mixin shadow-1dp() { + box-shadow: 0 1px 1px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity), + 0 2px 1px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity), + 0 1px 2px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity); +} + +@mixin shadow-2dp() { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity), + 0 3px 1px -2px rgba(0, 0, 0, $shadow-key-umbra-opacity), + 0 1px 5px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity); +} + +@mixin shadow-4dp() { + box-shadow: 0 4px 5px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity), + 0 1px 10px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity), + 0 2px 4px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity); +} @@ -127,11 +127,7 @@ anymatch@^2.0.0: micromatch "^3.1.4"
normalize-path "^2.1.1"
-aproba@^1.0.3:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab"
-
-aproba@^1.1.1:
+aproba@^1.0.3, aproba@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
@@ -228,13 +224,7 @@ async-limiter@~1.0.0: version "1.0.0"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
-async@^2.1.2:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/async/-/async-2.3.0.tgz#1013d1051047dd320fe24e494d5c66ecaf6147d9"
- dependencies:
- lodash "^4.14.0"
-
-async@^2.1.5:
+async@^2.1.2, async@^2.1.5:
version "2.6.0"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
dependencies:
@@ -271,15 +261,7 @@ aws4@^1.2.1: version "1.6.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
-babel-code-frame@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4"
- dependencies:
- chalk "^1.1.0"
- esutils "^2.0.2"
- js-tokens "^3.0.0"
-
-babel-code-frame@^6.26.0:
+babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
dependencies:
@@ -291,7 +273,7 @@ babylon@7.0.0-beta.19: version "7.0.0-beta.19"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.19.tgz#e928c7e807e970e0536b078ab3e0c48f9e052503"
-balanced-match@^0.4.1, balanced-match@^0.4.2:
+balanced-match@^0.4.2:
version "0.4.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
@@ -368,13 +350,6 @@ boom@2.x.x: dependencies:
hoek "2.x.x"
-brace-expansion@^1.0.0:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
- dependencies:
- balanced-match "^0.4.1"
- concat-map "0.0.1"
-
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -485,10 +460,6 @@ buffer-from@^1.0.0: version "1.0.0"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531"
-buffer-shims@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
-
buffer-xor@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
@@ -622,7 +593,7 @@ center-align@^0.1.1: align-text "^0.1.3"
lazy-cache "^1.0.3"
-chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
+chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies:
@@ -761,13 +732,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0"
object-visit "^1.0.0"
-color-convert@^1.3.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
- dependencies:
- color-name "^1.1.1"
-
-color-convert@^1.9.0:
+color-convert@^1.3.0, color-convert@^1.9.0:
version "1.9.1"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
dependencies:
@@ -809,14 +774,10 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies:
delayed-stream "~1.0.0"
-commander@2.11.0:
+commander@2.11.0, commander@^2.9.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
-commander@^2.9.0:
- version "2.15.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
-
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -1103,7 +1064,7 @@ dateformat@3.0.2: version "3.0.2"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.2.tgz#9a4df4bff158ac2f34bc637abdb15471607e1659"
-debug@2.6.9, debug@^2.3.3:
+debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
dependencies:
@@ -1115,12 +1076,6 @@ debug@3.1.0, debug@^3.1.0: dependencies:
ms "2.0.0"
-debug@^2.2.0:
- version "2.6.4"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.4.tgz#7586a9b3c39741c0282ae33445c4e8ac74734fe0"
- dependencies:
- ms "0.7.3"
-
decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -1485,10 +1440,6 @@ esprima@^2.6.0: version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
-esprima@^3.1.1:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
-
esprima@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
@@ -1912,7 +1863,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0"
path-dirname "^1.0.0"
-glob@7.1.2, glob@^7.1.2:
+glob@7.1.2, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
dependencies:
@@ -1933,17 +1884,6 @@ glob@^6.0.4: once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@~7.1.1:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.2"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
global@^4.2.1, global@^4.3.0:
version "4.3.2"
resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
@@ -2306,11 +2246,7 @@ is-binary-path@^1.0.0: dependencies:
binary-extensions "^1.0.0"
-is-buffer@^1.0.2:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
-
-is-buffer@^1.1.5:
+is-buffer@^1.0.2, is-buffer@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
@@ -2516,18 +2452,10 @@ jodid25519@^1.0.0: dependencies:
jsbn "~0.1.0"
-js-base64@^2.1.8:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582"
-
-js-base64@^2.1.9:
+js-base64@^2.1.8, js-base64@^2.1.9:
version "2.1.9"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce"
-js-tokens@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
-
js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
@@ -2539,14 +2467,7 @@ js-yaml@3.9.0: argparse "^1.0.7"
esprima "^4.0.0"
-js-yaml@^3.5.2:
- version "3.8.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.1.tgz#782ba50200be7b9e5a8537001b7804db3ad02628"
- dependencies:
- argparse "^1.0.7"
- esprima "^3.1.1"
-
-js-yaml@^3.9.1:
+js-yaml@^3.5.2, js-yaml@^3.9.1:
version "3.11.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef"
dependencies:
@@ -2599,14 +2520,10 @@ json-formatter-js@2.2.0: version "2.2.0"
resolved "https://registry.yarnpkg.com/json-formatter-js/-/json-formatter-js-2.2.0.tgz#1ed987223ef2f1d945304597faae78b580a8212b"
-json-loader@0.5.7:
+json-loader@0.5.7, json-loader@^0.5.4:
version "0.5.7"
resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
-json-loader@^0.5.4:
- version "0.5.4"
- resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de"
-
json-schema-traverse@^0.3.0:
version "0.3.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
@@ -2656,13 +2573,7 @@ kind-of@^2.0.1: dependencies:
is-buffer "^1.0.2"
-kind-of@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47"
- dependencies:
- is-buffer "^1.0.2"
-
-kind-of@^3.0.3, kind-of@^3.2.0, kind-of@^3.2.2:
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0, kind-of@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
dependencies:
@@ -2854,11 +2765,7 @@ lodash.uniq@^4.5.0: version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
-lodash@^4.0.0, lodash@^4.14.0:
- version "4.17.4"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
-
-lodash@^4.17.4, lodash@^4.3.0:
+lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.3.0:
version "4.17.5"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
@@ -2885,14 +2792,7 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1"
signal-exit "^3.0.0"
-lru-cache@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e"
- dependencies:
- pseudomap "^1.0.1"
- yallist "^2.0.0"
-
-lru-cache@^4.1.1:
+lru-cache@^4.0.1, lru-cache@^4.1.1:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f"
dependencies:
@@ -3049,18 +2949,12 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
-"minimatch@2 || 3", minimatch@^3.0.4:
+"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
dependencies:
brace-expansion "^1.1.7"
-minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@~3.0.2:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
- dependencies:
- brace-expansion "^1.0.0"
-
minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
@@ -3119,14 +3013,10 @@ mocha@5.0.4: mkdirp "0.5.1"
supports-color "4.4.0"
-moment@2.20.1:
+moment@2.20.1, moment@2.x:
version "2.20.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd"
-moment@2.x:
- version "2.22.0"
- resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.0.tgz#7921ade01017dd45186e7fee5f424f0b8663a730"
-
move-concurrently@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
@@ -3138,10 +3028,6 @@ move-concurrently@^1.0.1: rimraf "^2.5.4"
run-queue "^1.0.3"
-ms@0.7.3:
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff"
-
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -3867,10 +3753,6 @@ prepend-http@^1.0.0: version "1.0.4"
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
-process-nextick-args@~1.0.6:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
-
process-nextick-args@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
@@ -3902,7 +3784,7 @@ prr@~0.0.0: version "0.0.0"
resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
-pseudomap@^1.0.1, pseudomap@^1.0.2:
+pseudomap@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
@@ -4042,7 +3924,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2"
path-type "^2.0.0"
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.4, readable-stream@^2.1.5, readable-stream@^2.2.2:
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6:
version "2.3.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
dependencies:
@@ -4054,18 +3936,6 @@ read-pkg@^2.0.0: string_decoder "~1.1.1"
util-deprecate "~1.0.1"
-readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.6:
- version "2.2.9"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8"
- dependencies:
- buffer-shims "~1.0.0"
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "~1.0.0"
- process-nextick-args "~1.0.6"
- string_decoder "~1.0.0"
- util-deprecate "~1.0.1"
-
readdirp@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
@@ -4147,18 +4017,18 @@ repeating@^2.0.0: dependencies:
is-finite "^1.0.0"
-request@2, request@2.81.0:
- version "2.81.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
+request@2, request@~2.79.0:
+ version "2.79.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
dependencies:
aws-sign2 "~0.6.0"
aws4 "^1.2.1"
- caseless "~0.12.0"
+ 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 "~4.2.1"
+ har-validator "~2.0.6"
hawk "~3.1.3"
http-signature "~1.1.0"
is-typedarray "~1.0.0"
@@ -4166,26 +4036,24 @@ request@2, request@2.81.0: 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"
+ qs "~6.3.0"
stringstream "~0.0.4"
tough-cookie "~2.3.0"
- tunnel-agent "^0.6.0"
+ tunnel-agent "~0.4.1"
uuid "^3.0.0"
-request@~2.79.0:
- version "2.79.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
+request@2.81.0:
+ version "2.81.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
dependencies:
aws-sign2 "~0.6.0"
aws4 "^1.2.1"
- caseless "~0.11.0"
+ 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 "~2.0.6"
+ har-validator "~4.2.1"
hawk "~3.1.3"
http-signature "~1.1.0"
is-typedarray "~1.0.0"
@@ -4193,10 +4061,12 @@ request@~2.79.0: json-stringify-safe "~5.0.1"
mime-types "~2.1.7"
oauth-sign "~0.8.1"
- qs "~6.3.0"
+ 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.4.1"
+ tunnel-agent "^0.6.0"
uuid "^3.0.0"
require-directory@^2.1.1:
@@ -4278,13 +4148,7 @@ right-align@^0.1.1: dependencies:
align-text "^0.1.1"
-rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
- dependencies:
- glob "^7.0.5"
-
-rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.2:
+rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
dependencies:
@@ -4316,14 +4180,10 @@ rx-lite@*, rx-lite@^4.0.8: version "4.0.8"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
-safe-buffer@5.1.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
-safe-buffer@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
-
safe-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
@@ -4563,7 +4423,7 @@ source-map-url@~0.3.0: version "0.3.0"
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9"
-source-map@0.5.x:
+source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
@@ -4579,10 +4439,6 @@ source-map@^0.4.2: dependencies:
amdefine ">=0.0.4"
-source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1:
- version "0.5.6"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
-
source-map@^0.6.1, source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
@@ -4639,11 +4495,7 @@ static-extend@^0.1.1: define-property "^0.2.5"
object-copy "^0.1.0"
-"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
-
-statuses@~1.4.0:
+"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2", statuses@~1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
@@ -4708,12 +4560,6 @@ string_decoder@^0.10.25: version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
-string_decoder@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667"
- dependencies:
- buffer-shims "~1.0.0"
-
string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
@@ -4767,7 +4613,7 @@ style-loader@0.20.1: loader-utils "^1.1.0"
schema-utils "^0.4.3"
-supports-color@4.4.0:
+supports-color@4.4.0, supports-color@^4.2.1:
version "4.4.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
dependencies:
@@ -4783,12 +4629,6 @@ supports-color@^3.2.3: dependencies:
has-flag "^1.0.0"
-supports-color@^4.2.1:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
- dependencies:
- has-flag "^2.0.0"
-
supports-color@^5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0"
@@ -4822,11 +4662,7 @@ taffydb@2.6.2: version "2.6.2"
resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268"
-tapable@^0.2.3:
- version "0.2.6"
- resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d"
-
-tapable@^0.2.7:
+tapable@^0.2.3, tapable@^0.2.7:
version "0.2.8"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22"
@@ -5058,6 +4894,12 @@ upath@^1.0.0: version "1.0.4"
resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.4.tgz#ee2321ba0a786c50973db043a50b7bcba822361d"
+uri-js@4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.1.tgz#4595a80a51f356164e22970df64c7abd6ade9850"
+ dependencies:
+ punycode "^2.1.0"
+
uri-js@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-3.0.2.tgz#f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa"
@@ -5324,7 +5166,7 @@ y18n@^4.0.0: version "4.0.0"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
-yallist@^2.0.0, yallist@^2.1.2:
+yallist@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
|
