diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 00000000..c4ae50c4
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,2 @@
+dist
+assets/*.js
diff --git a/app/experiments.js b/app/experiments.js
index aecee475..247bcb85 100644
--- a/app/experiments.js
+++ b/app/experiments.js
@@ -51,7 +51,7 @@ export default function initialize(state, emitter) {
emitter.on('DOMContentLoaded', () => {
const xp = experiments[state.query.x];
if (xp) {
- xp.run(state.query.v, state, emitter);
+ xp.run(+state.query.v, state, emitter);
}
});
diff --git a/app/fileManager.js b/app/fileManager.js
index e7816324..661d4163 100644
--- a/app/fileManager.js
+++ b/app/fileManager.js
@@ -1,7 +1,7 @@
/* global EXPIRE_SECONDS */
import FileSender from './fileSender';
import FileReceiver from './fileReceiver';
-import { copyToClipboard, delay, fadeOut } from './utils';
+import { copyToClipboard, delay, fadeOut, percent } from './utils';
import * as metrics from './metrics';
function saveFile(file) {
@@ -54,6 +54,7 @@ function exists(id) {
export default function(state, emitter) {
let lastRender = 0;
+ let updateTitle = false;
function render() {
emitter.emit('render');
@@ -74,7 +75,21 @@ export default function(state, emitter) {
}
}
- emitter.on('DOMContentLoaded', checkFiles);
+ function updateProgress() {
+ if (updateTitle) {
+ emitter.emit('DOMTitleChange', percent(state.transfer.progressRatio));
+ }
+ render();
+ }
+
+ emitter.on('DOMContentLoaded', () => {
+ document.addEventListener('blur', () => (updateTitle = true));
+ document.addEventListener('focus', () => {
+ updateTitle = false;
+ emitter.emit('DOMTitleChange', 'Firefox Send');
+ });
+ checkFiles();
+ });
emitter.on('navigate', checkFiles);
@@ -107,7 +122,7 @@ export default function(state, emitter) {
emitter.on('upload', async ({ file, type }) => {
const size = file.size;
const sender = new FileSender(file);
- sender.on('progress', render);
+ sender.on('progress', updateProgress);
sender.on('encrypting', render);
state.transfer = sender;
render();
@@ -153,7 +168,7 @@ export default function(state, emitter) {
const size = file.size;
const url = `/api/download/${file.id}`;
const receiver = new FileReceiver(url, file.key);
- receiver.on('progress', render);
+ receiver.on('progress', updateProgress);
receiver.on('decrypting', render);
state.transfer = receiver;
const links = openLinksInNewTab();
diff --git a/app/main.js b/app/main.js
index b222d129..6d7b4eaa 100644
--- a/app/main.js
+++ b/app/main.js
@@ -28,6 +28,13 @@ app.use((state, emitter) => {
uploadButtonStyle: 'browse btn'
};
emitter.on('DOMContentLoaded', async () => {
+ if (
+ /firefox/i.test(navigator.userAgent) &&
+ parseInt(navigator.userAgent.match(/firefox\/*([^\n\r]*)\./i)[1], 10) <=
+ 49
+ ) {
+ return emitter.emit('replaceState', '/unsupported/outdated');
+ }
const ok = await canHasSend(assets.get('cryptofill.js'));
if (!ok) {
const reason = /firefox/i.test(navigator.userAgent) ? 'outdated' : 'gcm';
diff --git a/app/templates/file.js b/app/templates/file.js
index 4a1bac47..7fc665e9 100644
--- a/app/templates/file.js
+++ b/app/templates/file.js
@@ -4,7 +4,7 @@ const assets = require('../../common/assets');
function timeLeft(milliseconds) {
const minutes = Math.floor(milliseconds / 1000 / 60);
const hours = Math.floor(minutes / 60);
- const seconds = Math.floor(milliseconds / 1000 % 60);
+ const seconds = Math.floor((milliseconds / 1000) % 60);
if (hours >= 1) {
return `${hours}h ${minutes % 60}m`;
} else if (hours === 0) {
diff --git a/app/templates/preview.js b/app/templates/preview.js
index 44ba951b..b623a3b4 100644
--- a/app/templates/preview.js
+++ b/app/templates/preview.js
@@ -40,11 +40,16 @@ module.exports = function(state, emit) {
state.translate('downloadFileSize', { size })}
${state.translate('downloadMessage')}
-
+
-
diff --git a/app/templates/share.js b/app/templates/share.js
index fd5917b2..8c9b3c3c 100644
--- a/app/templates/share.js
+++ b/app/templates/share.js
@@ -17,13 +17,13 @@ module.exports = function(state, emit) {
})}
- ${state.translate(
- 'copyUrlFormButton'
- )}
+ ${state.translate('copyUrlFormButton')}
- ${state.translate(
- 'deleteFileButton'
- )}
+ ${state.translate('deleteFileButton')}
${state.translate(
'sendAnotherFileLink'
)}
diff --git a/app/templates/upload.js b/app/templates/upload.js
index 15ab54c6..a2d9edd2 100644
--- a/app/templates/upload.js
+++ b/app/templates/upload.js
@@ -21,9 +21,9 @@ module.exports = function(state, emit) {
transfer.msg,
transfer.sizes
)}
- ${state.translate(
- 'uploadingPageCancel'
- )}
+ ${state.translate('uploadingPageCancel')}
`;
diff --git a/app/templates/welcome.js b/app/templates/welcome.js
index 582d3186..f3cc89f9 100644
--- a/app/templates/welcome.js
+++ b/app/templates/welcome.js
@@ -24,9 +24,9 @@ module.exports = function(state, emit) {
)}
diff --git a/assets/main.css b/assets/main.css
index c285f713..1cd51f36 100644
--- a/assets/main.css
+++ b/assets/main.css
@@ -278,7 +278,7 @@ a {
font-size: 20px;
}
-input[type="file"] {
+input[type='file'] {
display: none;
}
@@ -359,7 +359,7 @@ tbody {
cursor: pointer;
}
-.icon-copy[disabled="disabled"] {
+.icon-copy[disabled='disabled'] {
pointer-events: none;
opacity: 0.3;
}
@@ -398,7 +398,7 @@ tbody {
/* Popup arrow */
.popup .popuptext::after {
- content: "";
+ content: '';
position: absolute;
bottom: -11px;
left: 20px;
diff --git a/package-lock.json b/package-lock.json
index 6aa7bcdf..b8916b3a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -244,6 +244,16 @@
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
+ "array-includes": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
+ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
+ "dev": true,
+ "requires": {
+ "define-properties": "1.1.2",
+ "es-abstract": "1.8.2"
+ }
+ },
"array-map": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
@@ -340,23 +350,81 @@
"dev": true
},
"autoprefixer": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.2.tgz",
- "integrity": "sha1-++rwfUj9h44Ggr98vurecorbKxg=",
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.4.tgz",
+ "integrity": "sha512-MB1XybOJqu1uAwpfSilAa1wSURNc4W310CFKvMj1fNaJBFxr1PGgz72vZaPr9ryKGqs2vYZ6jDyJ0aiGELjsoA==",
"dev": true,
"requires": {
- "browserslist": "2.3.3",
- "caniuse-lite": "1.0.30000717",
+ "browserslist": "2.4.0",
+ "caniuse-lite": "1.0.30000727",
"normalize-range": "0.1.2",
"num2fraction": "1.2.2",
- "postcss": "6.0.9",
+ "postcss": "6.0.11",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.0"
+ }
+ },
+ "browserslist": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.4.0.tgz",
+ "integrity": "sha512-aM2Gt4x9bVlCUteADBS6JP0F+2tMWKM1jQzUulVROtdFWFIcIVvY76AJbr7GDqy0eDhn+PcnpzzivGxY4qiaKQ==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "1.0.30000727",
+ "electron-to-chromium": "1.3.18"
+ }
+ },
+ "caniuse-lite": {
+ "version": "1.0.30000727",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000727.tgz",
+ "integrity": "sha1-IMiVdoOY3tX5ikvqtKdsKF3vQdI=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
+ "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.4.0"
+ }
+ },
+ "postcss": {
+ "version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.11.tgz",
+ "integrity": "sha512-DsnIzznNRQprsGTALpkC0xjDygo+QcOd+qVjP9+RjyzrPiyYOXBGOwoJ4rAiiE4lu6JggQ/jW4niY24WLxuncg==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.1.0",
+ "source-map": "0.5.7",
+ "supports-color": "4.4.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
}
},
"aws-sdk": {
- "version": "2.103.0",
- "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.103.0.tgz",
- "integrity": "sha1-gJtzG+tlg/OmwLZYeMMso6aloRE=",
+ "version": "2.114.0",
+ "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.114.0.tgz",
+ "integrity": "sha1-NckZ6N4c/ZbtplzYpmGZcyR7tzc=",
"requires": {
"buffer": "4.9.1",
"crypto-browserify": "1.0.9",
@@ -1236,9 +1304,9 @@
"integrity": "sha1-NUvjMH/9CEM6ePXh4glYRfifx/4="
},
"bel": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/bel/-/bel-5.0.3.tgz",
- "integrity": "sha512-bMLvUOrKBM2zWp3Ab6UugjCjFmsZtIeKH3oMNWaUr9RA94sNeicajzptZHQWU3K8KNIL8o6JwAmKG1W3mUiwXw==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/bel/-/bel-5.1.1.tgz",
+ "integrity": "sha512-gw9u9YwrxynK2glPkBewYrmO2NSWgWWpcFCdQLnD1BkD5Jc+ndMpb5YFwDcpGRgmvZIQX/W+wIn23fl1tbxR6g==",
"requires": {
"hyperx": "2.3.0",
"is-electron": "2.1.0",
@@ -1299,20 +1367,40 @@
"dev": true
},
"body-parser": {
- "version": "1.17.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz",
- "integrity": "sha1-+IkqvI+eYn1Crtr7yma/WrmRBO4=",
+ "version": "1.18.1",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.1.tgz",
+ "integrity": "sha512-KL2pZpGvy6xuZHgYUznB1Zfw4AoGMApfRanT5NafeLvglbaSM+4CCtmlyYOv66oYXqvKL1xpaFb94V/AZVUnYg==",
"requires": {
- "bytes": "2.4.0",
- "content-type": "1.0.2",
- "debug": "2.6.7",
+ "bytes": "3.0.0",
+ "content-type": "1.0.4",
+ "debug": "2.6.8",
"depd": "1.1.1",
"http-errors": "1.6.2",
- "iconv-lite": "0.4.15",
+ "iconv-lite": "0.4.19",
"on-finished": "2.3.0",
- "qs": "6.4.0",
- "raw-body": "2.2.0",
+ "qs": "6.5.1",
+ "raw-body": "2.3.2",
"type-is": "1.6.15"
+ },
+ "dependencies": {
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
+ },
+ "debug": {
+ "version": "2.6.8",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+ "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "qs": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
+ }
}
},
"bonjour": {
@@ -1388,16 +1476,17 @@
"dev": true
},
"browserify-aes": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz",
- "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.8.tgz",
+ "integrity": "sha512-WYCMOT/PtGTlpOKFht0YJFYcPy6pLCR98CtWfzK13zoynLlBMvAdEMSRGmgnJCw2M2j/5qxBkinZQFobieM8dQ==",
"dev": true,
"requires": {
"buffer-xor": "1.0.3",
"cipher-base": "1.0.4",
"create-hash": "1.1.3",
- "evp_bytestokey": "1.0.2",
- "inherits": "2.0.3"
+ "evp_bytestokey": "1.0.3",
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
}
},
"browserify-cipher": {
@@ -1406,9 +1495,9 @@
"integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
"dev": true,
"requires": {
- "browserify-aes": "1.0.6",
+ "browserify-aes": "1.0.8",
"browserify-des": "1.0.0",
- "evp_bytestokey": "1.0.2"
+ "evp_bytestokey": "1.0.3"
}
},
"browserify-des": {
@@ -1518,9 +1607,9 @@
}
},
"bytes": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz",
- "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
},
"call-matcher": {
"version": "1.0.1",
@@ -1664,16 +1753,16 @@
}
},
"choo": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/choo/-/choo-6.0.0.tgz",
- "integrity": "sha512-bwBnTuZCZlHHTDJNqbBCdKmnLnApkJcaw6wYK6NRrS+wL1L4GXz1Athe6FiOGw15leisW+XhSGgF3WBT8E8Bmg==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/choo/-/choo-6.0.1.tgz",
+ "integrity": "sha512-bp9EpUFcDiPn0Qc5ccawQS4HnfAnC0QzeoZtzo1FjVGcXIeaO0DXhlBnrxa98ZK1vSjnt/3Juz+yG+Lzi3sdUQ==",
"requires": {
- "bel": "5.0.3",
+ "bel": "5.1.1",
"document-ready": "2.0.1",
"nanobus": "4.2.0",
"nanohref": "3.0.0",
"nanolocation": "1.0.0",
- "nanomorph": "5.1.2",
+ "nanomorph": "5.1.3",
"nanoquery": "1.1.0",
"nanoraf": "3.0.1",
"nanorouter": "2.1.0",
@@ -2174,7 +2263,7 @@
"jsonfile": "2.4.0",
"klaw": "1.3.1",
"path-is-absolute": "1.0.1",
- "rimraf": "2.6.1"
+ "rimraf": "2.6.2"
}
},
"glob": {
@@ -2324,9 +2413,9 @@
"dev": true
},
"css-loader": {
- "version": "0.28.5",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.5.tgz",
- "integrity": "sha512-/FJmsDD8e6xZOBHMFShN/BCjnrEybq0spYaTZ1QoZ10/jhUa1LDDojQELu/JJ1ykZZjt0nSwkYrb2Mfx3bZx3Q==",
+ "version": "0.28.7",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.7.tgz",
+ "integrity": "sha512-GxMpax8a/VgcfRrVy0gXD6yLd5ePYbXX/5zGgTVYp4wXtJklS8Z2VaUArJgc//f6/Dzil7BaJObdSv8eKKCPgg==",
"dev": true,
"requires": {
"babel-code-frame": "6.26.0",
@@ -2590,7 +2679,7 @@
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
"dev": true,
"requires": {
- "es5-ext": "0.10.29"
+ "es5-ext": "0.10.30"
}
},
"dasherize": {
@@ -2646,6 +2735,33 @@
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
"dev": true
},
+ "default-gateway": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.0.2.tgz",
+ "integrity": "sha512-lvDPOoSVibdJqnZNS9OF7SzDrvr5PYVgynPNNqt89lcJWDRnLP3bpzkgFc/5t759YcuNjz9VEpFe5I6NLLrSiQ==",
+ "dev": true,
+ "requires": {
+ "execa": "0.7.0",
+ "ip-regex": "2.1.0"
+ },
+ "dependencies": {
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "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"
+ }
+ }
+ }
+ },
"define-properties": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
@@ -2674,7 +2790,7 @@
"object-assign": "4.1.1",
"pify": "2.3.0",
"pinkie-promise": "2.0.1",
- "rimraf": "2.6.1"
+ "rimraf": "2.6.2"
}
},
"delayed-stream": {
@@ -2950,16 +3066,24 @@
}
},
"es-abstract": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.0.tgz",
- "integrity": "sha512-Cf9/h5MrXtExM20gSS55YFrGKCyPrRBjIVBtVyy8vmlsDfe0NPKMWj65tPLgzyfPuapWxh5whpXCtW4+AW5mRg==",
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz",
+ "integrity": "sha512-dvhwFL3yjQxNNsOWx6exMlaDrRHCRGMQlnx5lsXDCZ/J7G/frgIIl94zhZSp/galVAYp7VzPi1OrAHta89/yGQ==",
"dev": true,
"requires": {
"es-to-primitive": "1.1.1",
- "function-bind": "1.1.0",
+ "function-bind": "1.1.1",
"has": "1.0.1",
"is-callable": "1.1.3",
"is-regex": "1.0.4"
+ },
+ "dependencies": {
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ }
}
},
"es-to-primitive": {
@@ -2974,9 +3098,9 @@
}
},
"es5-ext": {
- "version": "0.10.29",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.29.tgz",
- "integrity": "sha512-KXla9NXo5sdaEkGSmbFPYgjH6m75kxsthL6GDRSug/Y2OiMoYm0I9giL39j4cgmaFmAbkIFJ6gG+SGKnLSmOvA==",
+ "version": "0.10.30",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz",
+ "integrity": "sha1-cUGhaDZpfbq/qq7uQUlc4p9SyTk=",
"dev": true,
"requires": {
"es6-iterator": "2.0.1",
@@ -2990,7 +3114,7 @@
"dev": true,
"requires": {
"d": "1.0.0",
- "es5-ext": "0.10.29",
+ "es5-ext": "0.10.30",
"es6-symbol": "3.1.1"
}
},
@@ -3001,7 +3125,7 @@
"dev": true,
"requires": {
"d": "1.0.0",
- "es5-ext": "0.10.29",
+ "es5-ext": "0.10.30",
"es6-iterator": "2.0.1",
"es6-set": "0.1.5",
"es6-symbol": "3.1.1",
@@ -3021,7 +3145,7 @@
"dev": true,
"requires": {
"d": "1.0.0",
- "es5-ext": "0.10.29",
+ "es5-ext": "0.10.30",
"es6-iterator": "2.0.1",
"es6-symbol": "3.1.1",
"event-emitter": "0.3.5"
@@ -3034,7 +3158,7 @@
"dev": true,
"requires": {
"d": "1.0.0",
- "es5-ext": "0.10.29"
+ "es5-ext": "0.10.30"
}
},
"es6-templates": {
@@ -3054,7 +3178,7 @@
"dev": true,
"requires": {
"d": "1.0.0",
- "es5-ext": "0.10.29",
+ "es5-ext": "0.10.30",
"es6-iterator": "2.0.1",
"es6-symbol": "3.1.1"
}
@@ -3119,9 +3243,9 @@
}
},
"eslint": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.5.0.tgz",
- "integrity": "sha1-u3XTuL3pf7XhPvzVOXRGd/6wGcM=",
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.6.1.tgz",
+ "integrity": "sha1-3cf8f9cL+TIFsLNEm7FqHp59SVA=",
"dev": true,
"requires": {
"ajv": "5.2.2",
@@ -3142,9 +3266,9 @@
"globals": "9.18.0",
"ignore": "3.3.3",
"imurmurhash": "0.1.4",
- "inquirer": "3.2.2",
+ "inquirer": "3.2.3",
"is-resolvable": "1.0.0",
- "js-yaml": "3.9.1",
+ "js-yaml": "3.10.0",
"json-stable-stringify": "1.0.1",
"levn": "0.3.0",
"lodash": "4.17.4",
@@ -3186,7 +3310,7 @@
"requires": {
"ansi-styles": "3.2.0",
"escape-string-regexp": "1.0.5",
- "supports-color": "4.2.1"
+ "supports-color": "4.4.0"
}
},
"debug": {
@@ -3205,9 +3329,9 @@
"dev": true
},
"js-yaml": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.1.tgz",
- "integrity": "sha512-CbcG379L1e+mWBnLvHWWeLs8GyV/EMw862uLI3c+GxVyDHWZcjZinwuBd3iW2pgxgIlksW/1vNJa4to+RvDOww==",
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
+ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
"dev": true,
"requires": {
"argparse": "1.0.9",
@@ -3224,9 +3348,9 @@
}
},
"supports-color": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz",
- "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
"dev": true,
"requires": {
"has-flag": "2.0.0"
@@ -3350,7 +3474,7 @@
"dev": true,
"requires": {
"d": "1.0.0",
- "es5-ext": "0.10.29"
+ "es5-ext": "0.10.30"
}
},
"event-stream": {
@@ -3389,9 +3513,9 @@
}
},
"evp_bytestokey": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.2.tgz",
- "integrity": "sha512-ni0r0lrm7AOzsh2qC5mi9sj8S0gmj5fLNjfFpxN05FB4tAVZEKotbkjOtLPqTCX/CXT7NsUr6juZb4IFJeNNdA==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
"dev": true,
"requires": {
"md5.js": "1.3.4",
@@ -3528,17 +3652,9 @@
"integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI=",
"dev": true,
"requires": {
- "iconv-lite": "0.4.18",
+ "iconv-lite": "0.4.19",
"jschardet": "1.5.1",
"tmp": "0.0.31"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.4.18",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz",
- "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==",
- "dev": true
- }
}
},
"extglob": {
@@ -3603,7 +3719,7 @@
"integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
"dev": true,
"requires": {
- "websocket-driver": "0.6.5"
+ "websocket-driver": "0.7.0"
}
},
"figures": {
@@ -3835,7 +3951,7 @@
"jsonfile": "2.4.0",
"klaw": "1.3.1",
"path-is-absolute": "1.0.1",
- "rimraf": "2.6.1"
+ "rimraf": "2.6.2"
}
},
"fs.realpath": {
@@ -3851,7 +3967,7 @@
"dev": true,
"optional": true,
"requires": {
- "nan": "2.6.2",
+ "nan": "2.7.0",
"node-pre-gyp": "0.6.36"
},
"dependencies": {
@@ -4761,6 +4877,12 @@
"integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
"dev": true
},
+ "get-own-enumerable-property-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-1.0.1.tgz",
+ "integrity": "sha1-8dTjrRQC4DmJjlbR6bmqkkwm5IQ=",
+ "dev": true
+ },
"get-stdin": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz",
@@ -5182,6 +5304,12 @@
"statuses": "1.3.1"
}
},
+ "http-parser-js": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.6.tgz",
+ "integrity": "sha1-GVJz9YcExFLWcQdr4gEyndNB3FU=",
+ "dev": true
+ },
"http-proxy": {
"version": "1.16.2",
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz",
@@ -5303,9 +5431,9 @@
}
},
"iconv-lite": {
- "version": "0.4.15",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
- "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es="
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
},
"icss-replace-symbols": {
"version": "1.1.0",
@@ -5387,9 +5515,9 @@
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"inquirer": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.2.2.tgz",
- "integrity": "sha512-bTKLzEHJVATimZO/YFdLrom0lRx1BHfRYskFHfIMVkGdp8+dIZaxuU+4yrsS1lcu6YWywVQVVsfvdwESzbeqHw==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.2.3.tgz",
+ "integrity": "sha512-Bc3KbimpDTOeQdDj18Ir/rlsGuhBSSNqdOnxaAuKhpkdnMMuKsEGbZD2v5KFF9oso2OU+BPh7+/u5obmFDRmWw==",
"dev": true,
"requires": {
"ansi-escapes": "2.0.0",
@@ -5431,7 +5559,7 @@
"requires": {
"ansi-styles": "3.2.0",
"escape-string-regexp": "1.0.5",
- "supports-color": "4.2.1"
+ "supports-color": "4.4.0"
}
},
"strip-ansi": {
@@ -5444,9 +5572,9 @@
}
},
"supports-color": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz",
- "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
"dev": true,
"requires": {
"has-flag": "2.0.0"
@@ -5468,12 +5596,21 @@
}
},
"internal-ip": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz",
- "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-2.0.2.tgz",
+ "integrity": "sha512-1OBR5z3Te0FrUtpsPP04XQ2Tsgj+AwujBioVtM9WVW/Jyoe7xR3BIfWnnmg1eUwRuYFelIJM9mQwB7u3bLXD7Q==",
"dev": true,
"requires": {
- "meow": "3.7.0"
+ "default-gateway": "2.0.2",
+ "ipaddr.js": "1.5.2"
+ },
+ "dependencies": {
+ "ipaddr.js": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz",
+ "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=",
+ "dev": true
+ }
}
},
"interpret": {
@@ -5503,6 +5640,12 @@
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
"dev": true
},
+ "ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
+ "dev": true
+ },
"ipaddr.js": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz",
@@ -5648,6 +5791,12 @@
"kind-of": "3.2.2"
}
},
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
"is-object": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/is-object/-/is-object-0.1.2.tgz",
@@ -5765,6 +5914,12 @@
"integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=",
"dev": true
},
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+ "dev": true
+ },
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -5785,6 +5940,28 @@
"isarray": "1.0.0"
}
},
+ "jest-matcher-utils": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz",
+ "integrity": "sha1-s6a443yld4A7CDKpixZPRLeBVhI=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "pretty-format": "20.0.3"
+ }
+ },
+ "jest-validate": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz",
+ "integrity": "sha1-0M/R3k9XnymEhJJcKA+PHZTsPKs=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "jest-matcher-utils": "20.0.3",
+ "leven": "2.1.0",
+ "pretty-format": "20.0.3"
+ }
+ },
"jmespath": {
"version": "0.15.0",
"resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz",
@@ -6072,6 +6249,12 @@
}
}
},
+ "leven": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+ "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
+ "dev": true
+ },
"levn": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
@@ -6092,20 +6275,80 @@
}
},
"lint-staged": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-4.0.4.tgz",
- "integrity": "sha1-nKaWizDfv+gTZbenY81PSZKJZVM=",
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-4.1.3.tgz",
+ "integrity": "sha512-nOV/CUs10lQz7STNkNs+X3lQahaMfWj31OoTPQxVVg17pqDbBi8chV564nk/GdTgHNAF7RyRFt0ZiA2cTjgppw==",
"dev": true,
"requires": {
"app-root-path": "2.0.1",
+ "chalk": "2.1.0",
"cosmiconfig": "1.1.0",
"execa": "0.8.0",
+ "is-glob": "4.0.0",
+ "jest-validate": "20.0.3",
"listr": "0.12.0",
- "lodash.chunk": "4.2.0",
+ "lodash": "4.17.4",
+ "log-symbols": "2.0.0",
"minimatch": "3.0.4",
"npm-which": "3.0.1",
- "p-map": "1.1.1",
- "staged-git-files": "0.0.4"
+ "p-map": "1.2.0",
+ "staged-git-files": "0.0.4",
+ "stringify-object": "3.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
+ "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.4.0"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ },
+ "log-symbols": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.0.0.tgz",
+ "integrity": "sha512-ValCSal2pRxRbet7O69a/1g5fZ2MLxf1YXIslNrdJF42ofY9zVf6MTqTwfhG+2x168xrbZATCgFQfXAwdNHv+w==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
}
},
"listr": {
@@ -6126,7 +6369,7 @@
"log-symbols": "1.0.2",
"log-update": "1.0.2",
"ora": "0.2.3",
- "p-map": "1.1.1",
+ "p-map": "1.2.0",
"rxjs": "5.4.3",
"stream-to-observable": "0.1.0",
"strip-ansi": "3.0.1"
@@ -6317,12 +6560,6 @@
"integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
"dev": true
},
- "lodash.chunk": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz",
- "integrity": "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=",
- "dev": true
- },
"lodash.clonedeep": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
@@ -6432,9 +6669,9 @@
}
},
"loglevel": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.4.1.tgz",
- "integrity": "sha1-lbOD+Ro8J1b9SrCTZn5DCRYfK80=",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.5.0.tgz",
+ "integrity": "sha512-OQ2jhWI5G2qsvO0UFNyCQWgKl/tFiwuPIXxELzACeUO2FqstN/R7mmL09+nhv6xOWVPPojQO1A90sCEoJSgBcQ==",
"dev": true
},
"lolex": {
@@ -6600,6 +6837,35 @@
}
}
},
+ "memory-streams": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/memory-streams/-/memory-streams-0.1.2.tgz",
+ "integrity": "sha1-Jz/3d6tg/sWZsRY1UlUoLMosUMI=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "1.0.34"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "0.0.1",
+ "string_decoder": "0.10.31"
+ }
+ }
+ }
+ },
"meow": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
@@ -6825,9 +7091,9 @@
}
},
"mocha": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.0.tgz",
- "integrity": "sha512-pIU2PJjrPYvYRqVpjXzj76qltO9uBYI7woYAMoxbSefsa+vqAfptjoeevd6bUgwD0mPIO+hv9f7ltvsNreL2PA==",
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz",
+ "integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==",
"dev": true,
"requires": {
"browser-stdout": "1.3.0",
@@ -6837,6 +7103,7 @@
"escape-string-regexp": "1.0.5",
"glob": "7.1.1",
"growl": "1.9.2",
+ "he": "1.1.1",
"json3": "3.3.2",
"lodash.create": "3.1.1",
"mkdirp": "0.5.1",
@@ -6961,12 +7228,17 @@
"dev": true
},
"nan": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz",
- "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=",
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz",
+ "integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=",
"dev": true,
"optional": true
},
+ "nanoassert": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-1.1.0.tgz",
+ "integrity": "sha1-TzFS4JVA/eKMdvRLGbvNHVpCR40="
+ },
"nanobus": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/nanobus/-/nanobus-4.2.0.tgz",
@@ -6996,9 +7268,12 @@
}
},
"nanomorph": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/nanomorph/-/nanomorph-5.1.2.tgz",
- "integrity": "sha1-ZtElCYco5UsOyqDISYA205XT8l0="
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/nanomorph/-/nanomorph-5.1.3.tgz",
+ "integrity": "sha512-VydkKjFWU/DAO0R10awFASRNXQKHrZUMdMIiNcdmWm+IhuifuPOw/dDtpiQ1cNROF8f3ATPrcKRVarEayQJOqA==",
+ "requires": {
+ "nanoassert": "1.1.0"
+ }
},
"nanoquery": {
"version": "1.1.0",
@@ -7160,7 +7435,7 @@
"create-hmac": "1.1.6",
"diffie-hellman": "5.0.2",
"inherits": "2.0.3",
- "pbkdf2": "3.0.13",
+ "pbkdf2": "3.0.14",
"public-encrypt": "4.0.0",
"randombytes": "2.0.5"
}
@@ -7285,18 +7560,51 @@
}
},
"npm-run-all": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.0.2.tgz",
- "integrity": "sha1-qEZpNI5ttsy+BSIAtM22v+A0pP4=",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.1.tgz",
+ "integrity": "sha512-qrmqqaJa+REbzUTIL/mHfTdgwz+gL1xUezY/ueyLa7GISZ4T3h0CH8D2r6AaZdCYN2unu7PzspP0ofpXla1ftg==",
"dev": true,
"requires": {
- "chalk": "1.1.3",
+ "ansi-styles": "3.2.0",
+ "chalk": "2.1.0",
"cross-spawn": "5.1.0",
+ "memory-streams": "0.1.2",
"minimatch": "3.0.4",
"ps-tree": "1.1.0",
"read-pkg": "2.0.0",
"shell-quote": "1.6.1",
"string.prototype.padend": "3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
+ "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.4.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
}
},
"npm-run-path": {
@@ -7421,13 +7729,12 @@
}
},
"opn": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz",
- "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz",
+ "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==",
"dev": true,
"requires": {
- "object-assign": "4.1.1",
- "pinkie-promise": "2.0.1"
+ "is-wsl": "1.1.0"
}
},
"optionator": {
@@ -7572,9 +7879,9 @@
}
},
"p-map": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.1.1.tgz",
- "integrity": "sha1-BfXkrpegaDcbwqXMhr+9vBnErno=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
+ "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
"dev": true
},
"pako": {
@@ -7599,10 +7906,10 @@
"dev": true,
"requires": {
"asn1.js": "4.9.1",
- "browserify-aes": "1.0.6",
+ "browserify-aes": "1.0.8",
"create-hash": "1.1.3",
- "evp_bytestokey": "1.0.2",
- "pbkdf2": "3.0.13"
+ "evp_bytestokey": "1.0.3",
+ "pbkdf2": "3.0.14"
}
},
"parse-glob": {
@@ -7723,9 +8030,9 @@
}
},
"pbkdf2": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.13.tgz",
- "integrity": "sha512-+dCHxDH+djNtjgWmvVC/my3SYBAKpKNqKSjLkp+GtWWYe4XPE+e/PSD2aCanlEZZnqPk2uekTKNC/ccbwd2X2Q==",
+ "version": "3.0.14",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz",
+ "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==",
"dev": true,
"requires": {
"create-hash": "1.1.3",
@@ -9084,11 +9391,32 @@
"dev": true
},
"prettier": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.5.3.tgz",
- "integrity": "sha1-WdrcaDNF7GuI+IuU7Urn4do5S/4=",
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.6.1.tgz",
+ "integrity": "sha512-f85qBoQiqiFM/sCmJaN4Lagj9bqMcv38vCftqp4GfVessAqq3Ns6g+3gd8UXReStLLE/DGEdwiZXoFKxphKqwg==",
"dev": true
},
+ "pretty-format": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz",
+ "integrity": "sha1-Ag41ClYKH+GpjcO+tsz/s4beixQ=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1",
+ "ansi-styles": "3.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.0"
+ }
+ }
+ }
+ },
"private": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
@@ -9189,7 +9517,8 @@
"qs": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
- "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM="
+ "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
+ "dev": true
},
"query-string": {
"version": "4.3.4",
@@ -9311,12 +9640,13 @@
"dev": true
},
"raw-body": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz",
- "integrity": "sha1-mUl2z2pQlqQRYoQEkvC9xdbn+5Y=",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
+ "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
"requires": {
- "bytes": "2.4.0",
- "iconv-lite": "0.4.15",
+ "bytes": "3.0.0",
+ "http-errors": "1.6.2",
+ "iconv-lite": "0.4.19",
"unpipe": "1.0.0"
}
},
@@ -9764,9 +10094,9 @@
}
},
"rimraf": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
- "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
"dev": true,
"requires": {
"glob": "7.1.2"
@@ -9868,7 +10198,7 @@
"dev": true,
"requires": {
"jszip": "3.1.4",
- "rimraf": "2.6.1",
+ "rimraf": "2.6.2",
"tmp": "0.0.30",
"xml2js": "0.4.17"
},
@@ -10143,7 +10473,7 @@
"integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
"dev": true,
"requires": {
- "websocket-driver": "0.6.5"
+ "websocket-driver": "0.7.0"
}
}
}
@@ -10506,10 +10836,21 @@
"dev": true,
"requires": {
"define-properties": "1.1.2",
- "es-abstract": "1.8.0",
+ "es-abstract": "1.8.2",
"function-bind": "1.1.0"
}
},
+ "stringify-object": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.2.0.tgz",
+ "integrity": "sha1-lDcKE15BvASDWIE7+ZSB8TFcaqY=",
+ "dev": true,
+ "requires": {
+ "get-own-enumerable-property-symbols": "1.0.1",
+ "is-obj": "1.0.1",
+ "is-regexp": "1.0.0"
+ }
+ },
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@@ -10554,7 +10895,7 @@
"integrity": "sha512-k1GkRhOtghvYu5PWCdec7SNN22KZZLq4TL1vVyykBvHr91oUS7eVfX2IAZJjBpYKh9Gdep+AnSZCwuUn+J76Bw==",
"dev": true,
"requires": {
- "autoprefixer": "7.1.2",
+ "autoprefixer": "7.1.4",
"balanced-match": "1.0.0",
"chalk": "2.1.0",
"cosmiconfig": "2.2.2",
@@ -11333,9 +11674,9 @@
}
},
"webpack": {
- "version": "3.5.5",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.5.5.tgz",
- "integrity": "sha512-qeUx4nIbeLL53qqNTs3kObPBMkUVDrOjEfp/hTvMlx21qL2MsGNr8/tXCoX/lS12dLl9qtZaXv2qfBEctPScDg==",
+ "version": "3.5.6",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.5.6.tgz",
+ "integrity": "sha512-sXnxfx6KoZVrFAGLjdhCCwDtDwkYMfwm8mJjkQv3thr5pjTlbxopVlr/kJwc9Bz317gL+gNjvz++ir9TgG1MDg==",
"dev": true,
"requires": {
"acorn": "5.1.1",
@@ -11354,7 +11695,7 @@
"mkdirp": "0.5.1",
"node-libs-browser": "2.0.0",
"source-map": "0.5.7",
- "supports-color": "4.2.1",
+ "supports-color": "4.4.0",
"tapable": "0.2.8",
"uglifyjs-webpack-plugin": "0.4.6",
"watchpack": "1.4.0",
@@ -11378,9 +11719,9 @@
}
},
"supports-color": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz",
- "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
"dev": true,
"requires": {
"has-flag": "2.0.0"
@@ -11402,12 +11743,13 @@
}
},
"webpack-dev-server": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.7.1.tgz",
- "integrity": "sha1-IVgPWgjNBlxxFEz29hw0W8pZqLg=",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.8.0.tgz",
+ "integrity": "sha512-uIHpSWqeAca//nDjACAHkhBDG2wJg3hD/sICImLj4ResZsc2t+WaBQ0f4FL50jd89NLaZjvlLRKu7ayMOTdOhg==",
"dev": true,
"requires": {
"ansi-html": "0.0.7",
+ "array-includes": "3.0.3",
"bonjour": "3.5.0",
"chokidar": "1.7.0",
"compression": "1.7.0",
@@ -11416,26 +11758,26 @@
"express": "4.15.4",
"html-entities": "1.2.1",
"http-proxy-middleware": "0.17.4",
- "internal-ip": "1.2.0",
+ "internal-ip": "2.0.2",
"ip": "1.1.5",
- "loglevel": "1.4.1",
- "opn": "4.0.2",
+ "loglevel": "1.5.0",
+ "opn": "5.1.0",
"portfinder": "1.0.13",
"selfsigned": "1.10.1",
"serve-index": "1.9.0",
"sockjs": "0.3.18",
"sockjs-client": "1.1.4",
"spdy": "3.4.7",
- "strip-ansi": "3.0.1",
- "supports-color": "3.2.3",
+ "strip-ansi": "4.0.0",
+ "supports-color": "4.4.0",
"webpack-dev-middleware": "1.12.0",
- "yargs": "6.6.0"
+ "yargs": "8.0.2"
},
"dependencies": {
- "camelcase": {
+ "ansi-regex": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
"del": {
@@ -11447,19 +11789,9 @@
"globby": "6.1.0",
"is-path-cwd": "1.0.0",
"is-path-in-cwd": "1.0.0",
- "p-map": "1.1.1",
+ "p-map": "1.2.0",
"pify": "3.0.0",
- "rimraf": "2.6.1"
- }
- },
- "find-up": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
- "dev": true,
- "requires": {
- "path-exists": "2.1.0",
- "pinkie-promise": "2.0.1"
+ "rimraf": "2.6.2"
}
},
"globby": {
@@ -11483,169 +11815,28 @@
}
}
},
- "has-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dev": true,
- "requires": {
- "number-is-nan": "1.0.1"
- }
- },
- "load-json-file": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
- "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"
- },
- "dependencies": {
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
- }
- }
- },
- "os-locale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "dev": true,
- "requires": {
- "lcid": "1.0.0"
- }
- },
- "path-exists": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
- "dev": true,
- "requires": {
- "pinkie-promise": "2.0.1"
- }
- },
- "path-type": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
- },
- "dependencies": {
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
- }
- }
- },
"pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
"dev": true
},
- "read-pkg": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "load-json-file": "1.1.0",
- "normalize-package-data": "2.4.0",
- "path-type": "1.1.0"
- }
- },
- "read-pkg-up": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
- "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
- "dev": true,
- "requires": {
- "find-up": "1.1.2",
- "read-pkg": "1.1.0"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dev": true,
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
- }
- },
- "strip-bom": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
- "dev": true,
- "requires": {
- "is-utf8": "0.2.1"
+ "ansi-regex": "3.0.0"
}
},
"supports-color": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
"dev": true,
"requires": {
- "has-flag": "1.0.0"
- }
- },
- "which-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
- "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
- "dev": true
- },
- "yargs": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
- "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
- "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": "4.2.1"
- }
- },
- "yargs-parser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
- "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
- "dev": true,
- "requires": {
- "camelcase": "3.0.0"
+ "has-flag": "2.0.0"
}
}
}
@@ -11691,18 +11882,19 @@
}
},
"websocket-driver": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz",
- "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=",
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
+ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
"dev": true,
"requires": {
- "websocket-extensions": "0.1.1"
+ "http-parser-js": "0.4.6",
+ "websocket-extensions": "0.1.2"
}
},
"websocket-extensions": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz",
- "integrity": "sha1-domUmcGEtu91Q3fC27DNbLVdKec=",
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.2.tgz",
+ "integrity": "sha1-Dhh4HeYpoYMIzhSBZQ9n/6JpOl0=",
"dev": true
},
"whet.extend": {
diff --git a/package.json b/package.json
index 2ca7fb42..307140dd 100644
--- a/package.json
+++ b/package.json
@@ -17,7 +17,7 @@
"lint-locales": "node scripts/lint-locales",
"lint-locales:dev": "npm run lint-locales",
"lint-locales:prod": "npm run lint-locales -- --production",
- "format": "prettier '!(dist|node_modules|assets)/**/*.js' 'assets/*.css' --single-quote --write",
+ "format": "prettier '**/*.js' 'assets/*.css' --single-quote --write",
"get-prod-locales": "node scripts/get-prod-locales",
"get-prod-locales:write": "npm run get-prod-locales -- --write",
"changelog": "github-changes -o mozilla -r send --only-pulls --use-commit-body --no-merges",
@@ -43,7 +43,7 @@
"node": ">=8.2.0"
},
"devDependencies": {
- "autoprefixer": "^7.1.2",
+ "autoprefixer": "^7.1.4",
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-plugin-yo-yoify": "^0.7.0",
@@ -54,10 +54,10 @@
"choo-log": "^7.2.1",
"copy-webpack-plugin": "^4.0.1",
"cross-env": "^5.0.5",
- "css-loader": "^0.28.5",
+ "css-loader": "^0.28.7",
"css-mqpacker": "^6.0.1",
"cssnano": "^3.10.0",
- "eslint": "^4.5.0",
+ "eslint": "^4.6.1",
"eslint-plugin-mocha": "^4.11.0",
"eslint-plugin-node": "^5.1.1",
"eslint-plugin-security": "^1.4.0",
@@ -68,17 +68,17 @@
"github-changes": "^1.1.0",
"html-loader": "^0.5.1",
"husky": "^0.14.3",
- "lint-staged": "^4.0.4",
- "mocha": "^3.5.0",
+ "lint-staged": "^4.1.3",
+ "mocha": "^3.5.3",
"nanobus": "^4.2.0",
- "npm-run-all": "^4.0.2",
+ "npm-run-all": "^4.1.1",
"postcss-loader": "^2.0.6",
- "prettier": "^1.5.3",
+ "prettier": "^1.6.1",
"proxyquire": "^1.8.0",
"raven-js": "^3.17.0",
"redis-mock": "^0.20.0",
"require-from-string": "^1.2.1",
- "rimraf": "^2.6.1",
+ "rimraf": "^2.6.2",
"selenium-webdriver": "^3.5.0",
"sinon": "^3.2.1",
"string-hash": "^1.1.3",
@@ -87,15 +87,15 @@
"supertest": "^3.0.0",
"testpilot-ga": "^0.3.0",
"val-loader": "^1.0.2",
- "webpack": "^3.5.5",
- "webpack-dev-server": "^2.7.1",
+ "webpack": "^3.5.6",
+ "webpack-dev-server": "^2.8.0",
"webpack-manifest-plugin": "^1.3.1",
"webpack-unassert-loader": "^1.2.0"
},
"dependencies": {
- "aws-sdk": "^2.103.0",
- "body-parser": "^1.17.2",
- "choo": "^6.0.0",
+ "aws-sdk": "^2.114.0",
+ "body-parser": "^1.18.1",
+ "choo": "^6.0.1",
"connect-busboy": "0.0.2",
"convict": "^4.0.0",
"express": "^4.15.4",
diff --git a/test/server/server.test.js b/test/server/server.test.js
index 627c3a9b..89a6d1ed 100644
--- a/test/server/server.test.js
+++ b/test/server/server.test.js
@@ -54,7 +54,9 @@ describe('Server integration tests', function() {
}
it('Responds with a 200 when the service is up', function() {
- return request(server).get('/').expect(200);
+ return request(server)
+ .get('/')
+ .expect(200);
});
it('Rejects with a 404 when a file id is not valid', function() {
@@ -89,7 +91,9 @@ describe('Server integration tests', function() {
});
it('Responds with a 200 if a file exists', function() {
- return request(server).get('/exists/' + fileId).expect(200);
+ return request(server)
+ .get('/exists/' + fileId)
+ .expect(200);
});
it('Exists in the redis server', function() {
@@ -107,7 +111,9 @@ describe('Server integration tests', function() {
});
it('Fails delete if the id is invalid', function() {
- return request(server).post('/delete/1').expect(404);
+ return request(server)
+ .post('/delete/1')
+ .expect(404);
});
it('Successfully deletes if the id is valid and the delete token matches', function(
@@ -129,7 +135,9 @@ describe('Server integration tests', function() {
});
it('Responds with a 404 if a file does not exist', function() {
- return request(server).get('/exists/notfound').expect(404);
+ return request(server)
+ .get('/exists/notfound')
+ .expect(404);
});
it('Uploads properly after a delete', function(done) {
@@ -150,21 +158,25 @@ describe('Server integration tests', function() {
});
it('Responds with a 200 for the download page', function() {
- return request(server).get('/download/' + fileId).expect(200);
+ return request(server)
+ .get('/download/' + fileId)
+ .expect(200);
});
it('Downloads a file properly', function() {
- return request(server).get('/assets/download/' + fileId).then(res => {
- assert(res.header.hasOwnProperty('content-disposition'));
- assert(res.header.hasOwnProperty('content-type'));
- assert(res.header.hasOwnProperty('content-length'));
- assert(res.header.hasOwnProperty('x-file-metadata'));
- assert.equal(
- res.header['content-disposition'],
- 'attachment; filename=test_upload.txt'
- );
- assert.equal(res.header['content-type'], 'application/octet-stream');
- });
+ return request(server)
+ .get('/assets/download/' + fileId)
+ .then(res => {
+ assert(res.header.hasOwnProperty('content-disposition'));
+ assert(res.header.hasOwnProperty('content-type'));
+ assert(res.header.hasOwnProperty('content-length'));
+ assert(res.header.hasOwnProperty('x-file-metadata'));
+ assert.equal(
+ res.header['content-disposition'],
+ 'attachment; filename=test_upload.txt'
+ );
+ assert.equal(res.header['content-type'], 'application/octet-stream');
+ });
});
it('The file is deleted after one download', function() {