From 17fcaa24094e01c9207a16614ea6773a9afbfd23 Mon Sep 17 00:00:00 2001 From: Kevin Grandon Date: Fri, 16 Mar 2018 11:40:17 -0700 Subject: [PATCH] Revert "Upgrade to webpack@4" (#279) This reverts commit 615c472e561540cb9fb7baabcb4efdadf445a712. --- build/chunk-module-manifest-plugin.js | 34 +- build/chunk-preload-plugin.js | 25 +- build/client-chunk-bundle-url-map-plugin.js | 46 +- build/client-source-map-plugin.js | 51 +- build/compiler.js | 50 +- build/external-chunk-manifest-plugin.js | 39 +- ...ented-import-dependency-template-plugin.js | 31 +- ...instrumented-import-dependency-template.js | 37 +- build/service-worker-timestamp-plugin.js | 34 +- build/sync-chunk-ids-plugin.js | 22 +- .../lib/Shared.js | 8 +- package.json | 56 +- test/cli/build.js | 3 +- test/compiler/api.js | 102 +- test/run-command.js | 13 +- yarn.lock | 1095 +++++++++++------ 16 files changed, 980 insertions(+), 666 deletions(-) diff --git a/build/chunk-module-manifest-plugin.js b/build/chunk-module-manifest-plugin.js index f9ef74d5..1160e3ad 100644 --- a/build/chunk-module-manifest-plugin.js +++ b/build/chunk-module-manifest-plugin.js @@ -11,28 +11,26 @@ class ChunkModuleManifestPlugin { this.opts = opts; } apply(compiler) { - compiler.hooks.invalid.tap('ChunkModuleManifestPlugin', () => { + compiler.plugin('invalid', () => { this.opts.onInvalidate(); }); - compiler.hooks.compilation.tap('ChunkModuleManifestPlugin', compilation => { - compilation.hooks.afterOptimizeChunkAssets.tap( - 'ChunkModuleManifestPlugin', - chunks => { - const chunkIdsByFile = new Map(); - chunks.forEach(c => { - const chunkId = c.id; - const files = Array.from(c.modulesIterable, m => m.resource); - files.forEach(path => { - if (!chunkIdsByFile.has(path)) { - chunkIdsByFile.set(path, new Set()); - } - chunkIdsByFile.get(path).add(chunkId); - }); + compiler.plugin('compilation', compilation => { + compilation.plugin('after-optimize-chunk-assets', chunks => { + const chunkIdsByFile = new Map(); + chunks.forEach(c => { + const chunkId = c.id; + const files = c.mapModules(m => m.resource); + + files.forEach(path => { + if (!chunkIdsByFile.has(path)) { + chunkIdsByFile.set(path, new Set()); + } + chunkIdsByFile.get(path).add(chunkId); }); - this.opts.onChunkIndex(chunkIdsByFile); - } - ); + }); + this.opts.onChunkIndex(chunkIdsByFile); + }); }); } } diff --git a/build/chunk-preload-plugin.js b/build/chunk-preload-plugin.js index 8b92dce4..236b4d47 100644 --- a/build/chunk-preload-plugin.js +++ b/build/chunk-preload-plugin.js @@ -4,19 +4,15 @@ * This is meant for the client */ -const Template = require('webpack/lib/Template'); - class ChunkPreloadPlugin { apply(compiler) { - compiler.hooks.compilation.tap('ChunkPreloadPlugin', function(compilation) { - compilation.mainTemplate.hooks.localVars.tap( - 'ChunkPreloadPlugin', - function(source) { - var buf = [source]; - buf.push(''); - buf.push('// chunk preloading'); - buf.push( - ` + compiler.plugin('compilation', function(compilation) { + compilation.mainTemplate.plugin('local-vars', function(source) { + var buf = [source]; + buf.push(''); + buf.push('// chunk preloading'); + buf.push( + ` if (window.__PRELOADED_CHUNKS__) { window.__PRELOADED_CHUNKS__.forEach(function(chunkId) { var result; @@ -42,10 +38,9 @@ class ChunkPreloadPlugin { window.__UNHANDLED_ERRORS__.forEach(rejectChunkPreload); } ` - ); - return Template.asString(buf); - } - ); + ); + return this.asString(buf); + }); }); } } diff --git a/build/client-chunk-bundle-url-map-plugin.js b/build/client-chunk-bundle-url-map-plugin.js index c7855b2d..b794bd66 100644 --- a/build/client-chunk-bundle-url-map-plugin.js +++ b/build/client-chunk-bundle-url-map-plugin.js @@ -11,36 +11,30 @@ class ClientChunkBundleUrlMapPlugin { apply(compiler) { const {expectedGroupIds, groupId} = this; - compiler.hooks.invalid.tap('ClientChunkBundleUrlMapPlugin', () => { + compiler.plugin('invalid', () => { clientChunkBundleUrlMap.invalidate(); }); - compiler.hooks.compilation.tap( - 'ClientChunkBundleUrlMapPlugin', - compilation => { - compilation.hooks.afterOptimizeChunkAssets.tap( - 'ClientChunkBundleUrlMapPlugin', - chunks => { - const {manifest = new Map(), groups = new Set(), resolve = null} = - clientChunkBundleUrlMap.value || {}; - groups.add(groupId); - chunks.forEach(chunk => { - const chunkGroups = manifest.get(chunk.id) || new Map(); - const [filename] = chunk.files; - chunkGroups.set(groupId, filename); - manifest.set(chunk.id, chunkGroups); - }); - const finalValue = {manifest, groups, resolve}; - clientChunkBundleUrlMap.value = finalValue; + compiler.plugin('compilation', compilation => { + compilation.plugin('after-optimize-chunk-assets', chunks => { + const {manifest = new Map(), groups = new Set(), resolve = null} = + clientChunkBundleUrlMap.value || {}; + groups.add(groupId); + chunks.forEach(chunk => { + const chunkGroups = manifest.get(chunk.id) || new Map(); + const [filename] = chunk.files; + chunkGroups.set(groupId, filename); + manifest.set(chunk.id, chunkGroups); + }); + const finalValue = {manifest, groups, resolve}; + clientChunkBundleUrlMap.value = finalValue; - // wait until all assets are built before letting the loader load - if (groups.size === expectedGroupIds.length) { - clientChunkBundleUrlMap.set(finalValue); - } - } - ); - } - ); + // wait until all assets are built before letting the loader load + if (groups.size === expectedGroupIds.length) { + clientChunkBundleUrlMap.set(finalValue); + } + }); + }); } } diff --git a/build/client-source-map-plugin.js b/build/client-source-map-plugin.js index 04a2aca0..4275fd03 100644 --- a/build/client-source-map-plugin.js +++ b/build/client-source-map-plugin.js @@ -15,38 +15,35 @@ const clientSourceMap = require('./client-source-map'); */ class ClientSourceMapPlugin { apply(compiler) { - compiler.hooks.invalid.tap('ClientSourceMapPlugin', () => { + compiler.plugin('invalid', () => { clientSourceMap.invalidate(); }); - compiler.hooks.emit.tapAsync( - 'ClientSourceMapPlugin', - (compilation, done) => { - const sourcemaps = new Map(); - compilation.chunks.forEach(chunk => { - const len = chunk.files.length; - if (len % 2 !== 0) { - throw new Error( - 'Chunk had odd number of files, probably due missing sourcemaps' + compiler.plugin('emit', (compilation, done) => { + const sourcemaps = new Map(); + compilation.chunks.forEach(chunk => { + const len = chunk.files.length; + if (len % 2 !== 0) { + throw new Error( + 'Chunk had odd number of files, probably due missing sourcemaps' + ); + } + const files = new Map(); + const canonicalSize = len / 2; + chunk.files.forEach((filename, index) => { + const canonicalIndex = index % canonicalSize; + if (!files.has(canonicalIndex)) { + files.set(canonicalIndex, filename); + } else { + sourcemaps.set( + files.get(canonicalIndex), + JSON.parse(compilation.assets[filename].source()) ); } - const files = new Map(); - const canonicalSize = len / 2; - chunk.files.forEach((filename, index) => { - const canonicalIndex = index % canonicalSize; - if (!files.has(canonicalIndex)) { - files.set(canonicalIndex, filename); - } else { - sourcemaps.set( - files.get(canonicalIndex), - JSON.parse(compilation.assets[filename].source()) - ); - } - }); }); - clientSourceMap.set(sourcemaps); - done(); - } - ); + }); + clientSourceMap.set(sourcemaps); + done(); + }); } } diff --git a/build/compiler.js b/build/compiler.js index 7d13af3e..a13d9d4f 100644 --- a/build/compiler.js +++ b/build/compiler.js @@ -5,6 +5,8 @@ const path = require('path'); const webpack = require('webpack'); const ProgressBarPlugin = require('progress-bar-webpack-plugin'); +const progress = new ProgressBarPlugin(); +const WebpackChunkHash = require('webpack-chunk-hash'); const webpackDevMiddleware = require('../lib/simple-webpack-dev-middleware'); const ChunkManifestPlugin = require('./external-chunk-manifest-plugin.js'); const UglifyJSPlugin = require('uglifyjs-webpack-plugin'); @@ -145,7 +147,6 @@ function getConfig({target, env, dir, watch, cover}) { entry, ].filter(Boolean), }, - mode: env === 'production' ? 'production' : 'development', // TODO(#47): Do we need to do something different here for production? stats: 'minimal', /** @@ -355,7 +356,7 @@ function getConfig({target, env, dir, watch, cover}) { }, }, plugins: [ - new ProgressBarPlugin(), + progress, // TODO(#9): relying only on timestamp will invalidate service worker after every build // optimize by importing all chunk names to sw and then remove timestamp in non-dev. target === 'webworker' && new ServiceWorkerTimestampPlugin(), @@ -388,6 +389,16 @@ function getConfig({target, env, dir, watch, cover}) { env === 'development' && watch && new webpack.HotModuleReplacementPlugin(), + target === 'web' && + env !== 'test' && + // Bundles all node_modules code into vendor chunk + // See https://webpack.js.org/guides/code-splitting-libraries/#implicit-common-vendor-chunk + new webpack.optimize.CommonsChunkPlugin({ + name: 'vendor', + minChunks: module => { + return module.context && module.context.includes('node_modules'); + }, + }), // The next two plugins are required for deterministic file hashes // See https://github.com/webpack/webpack/issues/1315 and // https://webpack.js.org/guides/caching/#generating-unique-hashes-for-each-file @@ -395,6 +406,8 @@ function getConfig({target, env, dir, watch, cover}) { env === 'production' && target === 'web' ? new webpack.HashedModuleIdsPlugin() : new webpack.NamedModulesPlugin(), + // Adds md5 hashing of webpack chunks + env === 'production' && target === 'web' && new WebpackChunkHash(), // This is necessary to tell webpack not to inline code referencing // assets. See https://github.com/webpack/webpack/issues/1315 env === 'production' && @@ -455,36 +468,6 @@ function getConfig({target, env, dir, watch, cover}) { sourceMap: true, }), ].filter(Boolean), - optimization: { - splitChunks: target === 'web' && { - // See https://webpack.js.org/guides/code-splitting/ - // See https://gist.github.com/sokra/1522d586b8e5c0f5072d7565c2bee693 - // See https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366 - // Bundles all node_modules code into vendor chunk - chunks: 'async', - minSize: 30000, - minChunks: 1, - maxAsyncRequests: 5, - maxInitialRequests: 3, - name: true, - cacheGroups: { - default: { - minChunks: 2, - reuseExistingChunk: true, - }, - vendor: { - test: /[\\/]node_modules[\\/]/, - name: 'vendor', - filename: - env === 'production' && target === 'web' - ? `${name}-[name]-[chunkhash].js` - : `${name}-[name].js`, - chunks: 'initial', - enforce: true, - }, - }, - }, - }, }; } @@ -564,7 +547,7 @@ function Compiler({ const statsLogger = getStatsLogger({dir, logger, envs}); - this.on = (type, callback) => compiler.hooks[type].tap('compiler', callback); + this.on = (type, callback) => compiler.plugin(type, callback); this.start = cb => { cb = cb || function noop() {}; // Handler may be called multiple times by `watch` @@ -589,7 +572,6 @@ function Compiler({ }; } }; - this.getMiddleware = () => { const dev = webpackDevMiddleware(compiler, { filter: c => c.name === 'client' || c.name === 'client-evergreen', diff --git a/build/external-chunk-manifest-plugin.js b/build/external-chunk-manifest-plugin.js index aeb796e7..793a18db 100644 --- a/build/external-chunk-manifest-plugin.js +++ b/build/external-chunk-manifest-plugin.js @@ -21,28 +21,27 @@ class ChunkManifestPlugin { const manifestVariable = this.manifestVariable; let oldChunkFilename; - compiler.hooks.thisCompilation.tap('ChunkManifestPlugin', compilation => { - compilation.mainTemplate.hooks.requireEnsure.tap( - 'ChunkManifestPlugin', - function(_) { - oldChunkFilename = this.outputOptions.chunkFilename; - this.outputOptions.chunkFilename = '__CHUNK_MANIFEST__'; - return _; - } - ); + compiler.plugin('this-compilation', compilation => { + compilation.mainTemplate.plugin('require-ensure', function(_) { + oldChunkFilename = this.outputOptions.chunkFilename; + this.outputOptions.chunkFilename = '__CHUNK_MANIFEST__'; + return _; + }); }); - compiler.hooks.compilation.tap('ChunkManifestPlugin', compilation => { - compilation.mainTemplate.hooks.requireEnsure.tap( - 'ChunkManifestPlugin', - function(_, chunk, hash, chunkIdVar) { - this.outputOptions.chunkFilename = oldChunkFilename; - return _.replace( - '"__CHUNK_MANIFEST__"', - `window["${manifestVariable}"][${chunkIdVar}]` - ); - } - ); + compiler.plugin('compilation', compilation => { + compilation.mainTemplate.plugin('require-ensure', function( + _, + chunk, + hash, + chunkIdVar + ) { + this.outputOptions.chunkFilename = oldChunkFilename; + return _.replace( + '"__CHUNK_MANIFEST__"', + `window["${manifestVariable}"][${chunkIdVar}]` + ); + }); }); } } diff --git a/build/instrumented-import-dependency-template-plugin.js b/build/instrumented-import-dependency-template-plugin.js index a91131af..6782a20e 100644 --- a/build/instrumented-import-dependency-template-plugin.js +++ b/build/instrumented-import-dependency-template-plugin.js @@ -18,28 +18,25 @@ class InstrumentedImportDependencyTemplatePlugin { * which sets the default value for `ImportDependency` in the `dependencyTemplates` map. * `make` is the subsequent lifeycle method, so we can override this value here. */ - compiler.hooks.make.tapAsync( - 'InstrumentedImportDependencyTemplatePlugin', - (compilation, done) => { - if (this.clientChunkModuleManifest) { - // server - this.clientChunkModuleManifest.get().then(manifest => { - compilation.dependencyTemplates.set( - ImportDependency, - new InstrumentedImportDependencyTemplate(manifest) - ); - done(); - }); - } else { - // client + compiler.plugin('make', (compilation, done) => { + if (this.clientChunkModuleManifest) { + // server + this.clientChunkModuleManifest.get().then(manifest => { compilation.dependencyTemplates.set( ImportDependency, - new InstrumentedImportDependencyTemplate() + new InstrumentedImportDependencyTemplate(manifest) ); done(); - } + }); + } else { + // client + compilation.dependencyTemplates.set( + ImportDependency, + new InstrumentedImportDependencyTemplate() + ); + done(); } - ); + }); } } diff --git a/build/instrumented-import-dependency-template.js b/build/instrumented-import-dependency-template.js index 1f46527c..5c6e9ab8 100644 --- a/build/instrumented-import-dependency-template.js +++ b/build/instrumented-import-dependency-template.js @@ -1,6 +1,7 @@ /* eslint-env node */ const ImportDependencyTemplate = require('webpack/lib/dependencies/ImportDependency') .Template; +const DepBlockHelpers = require('webpack/lib/dependencies/DepBlockHelpers'); /** * We create an extension to the original ImportDependency template @@ -34,15 +35,18 @@ class InstrumentedImportDependencyTemplate extends ImportDependencyTemplate { * For now, we'll just override this method entirely with a modified version * Based on https://github.com/webpack/webpack/blob/5e38646f589b5b6325556f3127e7b61df33d3cb9/lib/dependencies/ImportDependency.js */ - apply(dep, source, runtime) { + apply(dep, source, outputOptions, requestShortener) { const depBlock = dep.block; - const content = runtime.moduleNamespacePromise({ - block: dep.block, - module: dep.module, - request: dep.request, - strict: dep.originModule.buildMeta.strictHarmonyModule, - message: 'import()', - }); + const promise = DepBlockHelpers.getDepBlockPromise( + depBlock, + outputOptions, + requestShortener, + 'import()' + ); + const comment = this.getOptionalComment( + outputOptions.pathinfo, + requestShortener.shorten(dep.request) + ); if (this.clientChunkMap && dep.module) { /** @@ -50,8 +54,8 @@ class InstrumentedImportDependencyTemplate extends ImportDependencyTemplate { */ const stringifiedId = JSON.stringify(dep.module.id); - const request = content - ? `${content};__webpack_require__(${stringifiedId});` + const request = promise + ? `${promise};__webpack_require__(${stringifiedId});` : `__webpack_require__(${stringifiedId});`; const preloadSrc = `/* PRE-REQUIRE DYNAMIC IMPORTS */${request}`; @@ -59,12 +63,14 @@ class InstrumentedImportDependencyTemplate extends ImportDependencyTemplate { source.insert(0, preloadSrc); } + const content = this.getContent(promise, dep, comment); // TODO(#17): throw with nice error message here if not in manifest const chunkIds = this.clientChunkMap ? // server-side, use values from client bundle Array.from(this.clientChunkMap.get(dep.module.resource)) : // client-side, use built-in values - getChunkGroupIds(depBlock.chunkGroup); + getChunkIds(depBlock.chunks); + // Add `__CHUNK_IDS` property to promise returned by `import()`` if they exist const customContent = chunkIds ? `Object.defineProperty(${content}, "__CHUNK_IDS", {value:${JSON.stringify( @@ -83,8 +89,11 @@ module.exports = InstrumentedImportDependencyTemplate; * Adapted from * https://github.com/webpack/webpack/blob/5e38646f589b5b6325556f3127e7b61df33d3cb9/lib/dependencies/DepBlockHelpers.js */ -function getChunkGroupIds(chunkGroup) { - if (chunkGroup && !chunkGroup.isInitial()) { - return [chunkGroup.id]; +function getChunkIds(chunks) { + if (chunks) { + const nonEntryChunks = chunks.filter(chunk => { + return !chunk.hasRuntime() && typeof chunk.id === 'number'; + }); + return nonEntryChunks.map(chunk => chunk.id); } } diff --git a/build/service-worker-timestamp-plugin.js b/build/service-worker-timestamp-plugin.js index 438184ff..55249bc2 100644 --- a/build/service-worker-timestamp-plugin.js +++ b/build/service-worker-timestamp-plugin.js @@ -10,26 +10,20 @@ const {ConcatSource} = require('webpack-sources'); */ class ServiceWorkerTimestampPlugin { apply(compiler) { - compiler.hooks.compilation.tap( - 'ServiceWorkerTimestampPlugin', - compilation => { - compilation.hooks.optimizeChunkAssets.tapAsync( - 'ServiceWorkerTimestampPlugin', - (chunks, cb) => { - chunks.forEach(chunk => { - chunk.files.forEach(f => { - compilation.assets[f] = new ConcatSource( - `var ts = ${Date.now()};`, - '\n', - compilation.assets[f] - ); - }); - }); - return cb(); - } - ); - } - ); + compiler.plugin('compilation', compilation => { + compilation.plugin('optimize-chunk-assets', (chunks, cb) => { + chunks.forEach(chunk => { + chunk.files.forEach(f => { + compilation.assets[f] = new ConcatSource( + `var ts = ${Date.now()};`, + '\n', + compilation.assets[f] + ); + }); + }); + return cb(); + }); + }); } } diff --git a/build/sync-chunk-ids-plugin.js b/build/sync-chunk-ids-plugin.js index 7efffdb4..466e6e3e 100644 --- a/build/sync-chunk-ids-plugin.js +++ b/build/sync-chunk-ids-plugin.js @@ -10,22 +10,20 @@ const syncChunkPaths = require('./sync-chunk-paths'); */ class SyncChunkIdsPlugin { apply(compiler) { - compiler.hooks.invalid.tap('SyncChunkIdsPlugin', () => { + compiler.plugin('invalid', () => { syncChunkIds.invalidate(); syncChunkPaths.invalidate(); }); - compiler.hooks.compilation.tap('SyncChunkIdsPlugin', compilation => { - compilation.hooks.afterOptimizeChunkAssets.tap( - 'SyncChunkIdsPlugin', - () => { - const mainEntrypoint = compilation.entrypoints.get('main'); - const chunkIds = mainEntrypoint.chunks.map(c => c.id); - const chunkPaths = mainEntrypoint.chunks.map(c => c.files[0]); - syncChunkIds.set(chunkIds); - syncChunkPaths.set(chunkPaths); - } - ); + compiler.plugin('compilation', compilation => { + compilation.plugin('after-optimize-chunk-assets', () => { + const chunkIds = compilation.entrypoints.main.chunks.map(c => c.id); + const chunkPaths = compilation.entrypoints.main.chunks.map( + c => c.files[0] + ); + syncChunkIds.set(chunkIds); + syncChunkPaths.set(chunkPaths); + }); }); } } diff --git a/lib/simple-webpack-dev-middleware/lib/Shared.js b/lib/simple-webpack-dev-middleware/lib/Shared.js index 28fe7dd7..46b1a6b0 100644 --- a/lib/simple-webpack-dev-middleware/lib/Shared.js +++ b/lib/simple-webpack-dev-middleware/lib/Shared.js @@ -113,10 +113,10 @@ module.exports = function Shared(context) { }; share.setFs(context.compiler); - context.compiler.hooks.done.tap('Shared', share.compilerDone); - context.compiler.hooks.invalid.tap('Shared', share.compilerInvalid); - context.compiler.hooks.watchRun.tap('Shared', share.compilerInvalid); - context.compiler.hooks.run.tap('Shared', share.compilerInvalid); + context.compiler.plugin('done', share.compilerDone); + context.compiler.plugin('invalid', share.compilerInvalid); + context.compiler.plugin('watch-run', share.compilerInvalid); + context.compiler.plugin('run', share.compilerInvalid); return share; }; diff --git a/package.json b/package.json index cd53cc4a..ba1b5b95 100644 --- a/package.json +++ b/package.json @@ -11,10 +11,10 @@ "test": "node test/index.js" }, "dependencies": { - "@nadiia/file-loader": "^2.0.0", + "@nadiia/file-loader": "^1.0.0-beta.5", "babel-core": "^6.26.0", - "babel-jest": "^22.4.1", - "babel-loader": "^7.1.4", + "babel-jest": "^22.4.0", + "babel-loader": "^7.1.2", "babel-plugin-dynamic-import-node": "^1.2.0", "babel-plugin-external-helpers": "^6.22.0", "babel-plugin-istanbul": "^4.1.5", @@ -27,29 +27,29 @@ "babel-plugin-transform-react-jsx": "^6.24.1", "babel-preset-env": "^1.6.1", "babel-preset-flow": "^6.23.0", - "babel-preset-jest": "^22.4.1", + "babel-preset-jest": "^22.2.0", "babel-preset-react": "^6.24.1", "babel-template": "^6.26.0", "browser-unhandled-rejection": "^1.0.1", - "case-sensitive-paths-webpack-plugin": "^2.1.2", - "chalk": "^2.3.2", - "compression-webpack-plugin": "^1.1.11", + "case-sensitive-paths-webpack-plugin": "^2.1.1", + "chalk": "^2.3.1", + "compression-webpack-plugin": "^1.1.7", "core-js": "^2.5.3", "enzyme-adapter-react-16": "^1.1.1", "enzyme-to-json": "3.3.1", "es6-object-assign": "^1.1.0", - "express": "^4.16.3", - "fast-async": "^6.3.1", + "express": "^4.16.2", + "fast-async": "^6.3.0", "fusion-plugin-universal-events": "^1.0.2", "get-port": "^3.2.0", "gzip-size": "^4.1.0", - "iltorb": "^2.0.5", + "iltorb": "^2.0.3", "imagemin": "^5.3.1", "imagemin-svgo": "^6.0.0", - "istanbul-api": "^1.3.1", - "istanbul-lib-coverage": "^1.2.0", - "jest": "^22.4.2", - "jest-cli": "^22.4.2", + "istanbul-api": "^1.2.2", + "istanbul-lib-coverage": "^1.1.2", + "jest": "^22.4.0", + "jest-cli": "^22.4.0", "just-snake-case": "^1.0.0", "koa": "^2.5.0", "koa-mount": "^3.0.0", @@ -63,24 +63,24 @@ "node-zopfli": "^2.0.2", "nyc": "^11.4.1", "path-is-absolute": "^1.0.1", - "progress-bar-webpack-plugin": "^1.11.0", + "progress-bar-webpack-plugin": "^1.10.0", "range-parser": "^1.2.0", "react-dev-utils": "^5.0.0", "react-error-overlay": "^4.0.0", - "react-hot-loader": "^4.0.0", + "react-hot-loader": "^3.1.3", "redbox-react": "^1.5.0", - "request": "^2.85.0", + "request": "^2.83.0", "resolve-from": "^4.0.0", "rimraf": "^2.6.2", "source-map-explorer": "^1.5.0", "source-map-support": "^0.5.3", - "uglifyjs-webpack-plugin": "^1.2.3", + "uglifyjs-webpack-plugin": "^1.2.0", "unitest": "^2.1.1", - "webpack": "^4.1.1", + "webpack": "^3.11.0", "webpack-chunk-hash": "^0.5.0", - "webpack-dev-middleware": "^3.0.1", - "webpack-dev-server": "^3.1.1", - "webpack-hot-middleware": "^2.21.2", + "webpack-dev-middleware": "^2.0.5", + "webpack-dev-server": "^3.0.0", + "webpack-hot-middleware": "^2.21.0", "webpack-node-externals": "^1.6.0", "webpack-sources": "^1.1.0", "winston": "^2.4.0", @@ -90,7 +90,7 @@ "babel-eslint": "8.2.2", "chrome-remote-interface": "^0.25.5", "enzyme": "3.3.0", - "eslint": "4.18.2", + "eslint": "4.18.1", "eslint-config-fusion": "^1.0.0", "eslint-plugin-cup": "1.0.0", "eslint-plugin-flowtype": "2.46.1", @@ -99,13 +99,13 @@ "eslint-plugin-react": "7.7.0", "flow-bin": "0.68.0", "fusion-core": "^1.2.0", - "fusion-plugin-react-router": "^1.0.3", + "fusion-plugin-react-router": "^1.0.2", "fusion-react": "^1.0.2", - "fusion-react-async": "^1.1.0", + "fusion-react-async": "^1.0.2", "fusion-test-utils": "^1.0.1", - "fusion-tokens": "^1.0.2", + "fusion-tokens": "^1.0.1", "globby": "8.0.1", - "prettier": "1.11.1", + "prettier": "1.10.2", "react": "16.2.0", "react-dom": "16.2.0", "react-test-renderer": "16.2.0", @@ -116,7 +116,7 @@ "peerDependencies": { "enzyme": "^3.3.0", "fusion-core": "^1.2.0", - "fusion-tokens": "^1.0.2" + "fusion-tokens": "^1.0.1" }, "engines": { "node": ">= 8.9.0" diff --git a/test/cli/build.js b/test/cli/build.js index a00c5952..ed2a7eeb 100644 --- a/test/cli/build.js +++ b/test/cli/build.js @@ -249,7 +249,8 @@ test('`fusion build` with dynamic imports', async t => { // Execute node script to validate dynamic imports const entryPath = `.fusion/dist/development/server/server-main.js`; const entry = path.resolve(dir, entryPath); - const {stdout} = await run(entry, {stdio: 'pipe'}); + const command = `require('${entry}');`; + const {stdout} = await run(command, {stdio: 'pipe'}); const testContent = JSON.parse(stdout); t.ok( testContent.dynamicContent.includes('loaded dynamic import'), diff --git a/test/compiler/api.js b/test/compiler/api.js index 91ca2ca2..79bf0f1c 100644 --- a/test/compiler/api.js +++ b/test/compiler/api.js @@ -86,7 +86,7 @@ test('development/production env globals', async t => { }); }); `; - const {stdout} = await run(['-e', command], {stdio: 'pipe'}); + const {stdout} = await run(command, {stdio: 'pipe'}); t.ok( stdout.includes('main __BROWSER__ is false'), 'the global, __BROWSER__, is false' @@ -135,7 +135,7 @@ test('test env globals', async t => { const serverCommand = ` require('${entry}'); `; - let {stdout} = await run(['-e', serverCommand], { + let {stdout} = await run(serverCommand, { env: Object.assign({}, process.env, { NODE_ENV: 'production', }), @@ -155,30 +155,31 @@ test('test env globals', async t => { ); // browser test bundle - // Disabled due to webpack 4 changes - // const browserCommand = `require('${clientEntry}');`; - // const {stdout: browserStdout} = await run(['-e', browserCommand], { - // env: Object.assign({}, process.env, { - // NODE_ENV: 'production', - // }), - // stdio: 'inherit', - // }); - // t.ok( - // browserStdout.includes('browser __BROWSER__ is true'), - // 'the global, __BROWSER__, is true in browser tests' - // ); - // t.ok( - // browserStdout.includes('universal __BROWSER__ is true'), - // 'the global, __BROWSER__, is true in universal tests' - // ); - // t.ok( - // browserStdout.includes('browser __NODE__ is false'), - // 'the global, __NODE__, is false in browser tests' - // ); - // t.ok( - // browserStdout.includes('universal __NODE__ is false'), - // 'the global, __NODE__, is false in universal tests' - // ); + const browserCommand = ` + require('${clientEntry}'); + `; + const {stdout: browserStdout} = await run(browserCommand, { + env: Object.assign({}, process.env, { + NODE_ENV: 'production', + }), + stdio: 'pipe', + }); + t.ok( + browserStdout.includes('browser __BROWSER__ is true'), + 'the global, __BROWSER__, is true in browser tests' + ); + t.ok( + browserStdout.includes('universal __BROWSER__ is true'), + 'the global, __BROWSER__, is true in universal tests' + ); + t.ok( + browserStdout.includes('browser __NODE__ is false'), + 'the global, __NODE__, is false in browser tests' + ); + t.ok( + browserStdout.includes('universal __NODE__ is false'), + 'the global, __NODE__, is false in universal tests' + ); t.end(); }); @@ -265,7 +266,7 @@ test('dev works', async t => { }); }); `; - await run(['-e', command], { + await run(command, { env: Object.assign({}, process.env, { NODE_ENV: 'development', }), @@ -368,7 +369,7 @@ test('production works', async t => { }); }); `; - await run(['-e', command], { + await run(command, { env: Object.assign({}, process.env, { NODE_ENV: 'production', }), @@ -412,7 +413,7 @@ test('test works', async t => { const serverCommand = ` require('${entry}'); `; - const {stdout} = await run(['-e', serverCommand], { + const {stdout} = await run(serverCommand, { env: Object.assign({}, process.env, { NODE_ENV: 'production', }), @@ -432,28 +433,27 @@ test('test works', async t => { ); // browser test bundle - // Disabled due to webpack 4 changes - // const browserCommand = ` - // require('${clientEntry}'); - // `; - // const {stdout: browserStdout} = await run(['-e', browserCommand], { - // env: Object.assign({}, process.env, { - // NODE_ENV: 'production', - // }), - // stdio: 'inherit', - // }); - // t.ok( - // !browserStdout.includes('server test runs'), - // 'server test not included in browser test bundle' - // ); - // t.ok( - // browserStdout.includes('client test runs'), - // 'client test included in browser test bundle' - // ); - // t.ok( - // browserStdout.includes('universal test runs'), - // 'universal test included in browser test bundle' - // ); + const browserCommand = ` + require('${clientEntry}'); + `; + const {stdout: browserStdout} = await run(browserCommand, { + env: Object.assign({}, process.env, { + NODE_ENV: 'production', + }), + stdio: 'pipe', + }); + t.ok( + !browserStdout.includes('server test runs'), + 'server test not included in browser test bundle' + ); + t.ok( + browserStdout.includes('client test runs'), + 'client test included in browser test bundle' + ); + t.ok( + browserStdout.includes('universal test runs'), + 'universal test included in browser test bundle' + ); t.end(); }); diff --git a/test/run-command.js b/test/run-command.js index ece54f0c..04e5b6b7 100644 --- a/test/run-command.js +++ b/test/run-command.js @@ -1,16 +1,15 @@ /* eslint-env node */ -const binPath = require.resolve('../bin/cli.js'); +const binPath = require.resolve('../bin/cli-runner.js'); const {spawn} = require('child_process'); const getPort = require('get-port'); const request = require('request-promise'); -function run(args, options) { +function run(command, options) { const opts = { stdio: 'inherit', ...options, }; - const command = Array.isArray(args) ? args : [args]; - const child = spawn('node', command, opts); + const child = spawn('node', ['-e', command], opts); const stdoutLines = []; const stderrLines = []; const promise = new Promise((resolve, reject) => { @@ -39,8 +38,12 @@ function run(args, options) { return promise; } +function withRunner(args) { + return `require('${binPath}').run('${args}')`; +} + function cmd(args, options) { - return run([binPath, args], options); + return run(withRunner(args), options); } async function start(args, options) { diff --git a/yarn.lock b/yarn.lock index 883d1b13..610bdde3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,140 +2,121 @@ # yarn lockfile v1 -"@babel/code-frame@7.0.0-beta.41", "@babel/code-frame@^7.0.0-beta.35", "@babel/code-frame@^7.0.0-beta.40": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.41.tgz#68845c10a895050ab643e869100bbcf294b64e09" +"@babel/code-frame@7.0.0-beta.40", "@babel/code-frame@^7.0.0-beta.35", "@babel/code-frame@^7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.40.tgz#37e2b0cf7c56026b4b21d3927cadf81adec32ac6" dependencies: - "@babel/highlight" "7.0.0-beta.41" + "@babel/highlight" "7.0.0-beta.40" -"@babel/generator@7.0.0-beta.41": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.41.tgz#5fce0676cea5acc1d493480d9fb7317ea2164d3f" +"@babel/generator@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.40.tgz#ab61f9556f4f71dbd1138949c795bb9a21e302ea" dependencies: - "@babel/types" "7.0.0-beta.41" + "@babel/types" "7.0.0-beta.40" jsesc "^2.5.1" lodash "^4.2.0" source-map "^0.5.0" trim-right "^1.0.1" -"@babel/helper-builder-react-jsx@7.0.0-beta.41": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0-beta.41.tgz#33893f3f9a77093be55a3750c7b17713dc81d9ba" +"@babel/helper-builder-react-jsx@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0-beta.40.tgz#2a171b6c4939c6cd0bdc38cca261d1f3b32cedb1" dependencies: - "@babel/types" "7.0.0-beta.41" + "@babel/types" "7.0.0-beta.40" esutils "^2.0.0" -"@babel/helper-function-name@7.0.0-beta.41": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.41.tgz#5c50bc96c50b23383aad413b84a3ee806ceaa0e1" +"@babel/helper-function-name@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.40.tgz#9d033341ab16517f40d43a73f2d81fc431ccd7b6" dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.41" - "@babel/template" "7.0.0-beta.41" - "@babel/types" "7.0.0-beta.41" + "@babel/helper-get-function-arity" "7.0.0-beta.40" + "@babel/template" "7.0.0-beta.40" + "@babel/types" "7.0.0-beta.40" -"@babel/helper-get-function-arity@7.0.0-beta.41": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.41.tgz#04b9e89d783f6c2223fbb81e11e59235a7781713" +"@babel/helper-get-function-arity@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.40.tgz#ac0419cf067b0ec16453e1274f03878195791c6e" dependencies: - "@babel/types" "7.0.0-beta.41" + "@babel/types" "7.0.0-beta.40" "@babel/helper-module-imports@^7.0.0-beta.39": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.41.tgz#c639ad715483bb6ec585eb08793d3220a062bc70" + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.40.tgz#251cbb6404599282e8f7356a5b32c9381bef5d2d" dependencies: - "@babel/types" "7.0.0-beta.41" + "@babel/types" "7.0.0-beta.40" lodash "^4.2.0" -"@babel/helper-plugin-utils@7.0.0-beta.41": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.41.tgz#b515524853b2e509409ccbcd8b0bc3586da3e7f0" - -"@babel/helper-split-export-declaration@7.0.0-beta.41": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.41.tgz#8a0a67ded225ab7abeb4ad1fc138b4e0e882abee" - dependencies: - "@babel/types" "7.0.0-beta.41" - -"@babel/highlight@7.0.0-beta.41": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.41.tgz#7e1d634de3821e664bc8ad9688f240530d239b95" +"@babel/highlight@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.40.tgz#b43d67d76bf46e1d10d227f68cddcd263786b255" dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^3.0.0" -"@babel/plugin-syntax-jsx@7.0.0-beta.41": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0-beta.41.tgz#b52ebe8cdf19973f63099b09bb6c9468ff8062d3" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.41" +"@babel/plugin-syntax-jsx@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0-beta.40.tgz#db44d52ff06f784be22f2659e694cc2cf97f99f9" -"@babel/plugin-transform-react-display-name@7.0.0-beta.41": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0-beta.41.tgz#fe5b8535227fe8b562885544c3c0dd6ea86c0ae9" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.41" +"@babel/plugin-transform-react-display-name@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0-beta.40.tgz#2e9aba5d74da8ecee00d6d4bf68c833955355e4c" -"@babel/plugin-transform-react-jsx-self@7.0.0-beta.41": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.0.0-beta.41.tgz#49b75496d78bd97a1f2710074383d4270542c4ba" +"@babel/plugin-transform-react-jsx-self@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.0.0-beta.40.tgz#cbf0286ec9e52129840e16d1a173adb98e52fb97" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.41" - "@babel/plugin-syntax-jsx" "7.0.0-beta.41" + "@babel/plugin-syntax-jsx" "7.0.0-beta.40" -"@babel/plugin-transform-react-jsx-source@7.0.0-beta.41": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0-beta.41.tgz#65586d944c9d25ae5f033b11daddb816e75062e2" +"@babel/plugin-transform-react-jsx-source@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0-beta.40.tgz#7e62fe33f3e46c7f0d81d187d9c9aa348daa6488" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.41" - "@babel/plugin-syntax-jsx" "7.0.0-beta.41" + "@babel/plugin-syntax-jsx" "7.0.0-beta.40" -"@babel/plugin-transform-react-jsx@7.0.0-beta.41": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0-beta.41.tgz#6cded90682ca83146b512ff288ce58836b1d404e" +"@babel/plugin-transform-react-jsx@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0-beta.40.tgz#93af0b0ef691cda86ab52d912b50f72eb538349d" dependencies: - "@babel/helper-builder-react-jsx" "7.0.0-beta.41" - "@babel/helper-plugin-utils" "7.0.0-beta.41" - "@babel/plugin-syntax-jsx" "7.0.0-beta.41" + "@babel/helper-builder-react-jsx" "7.0.0-beta.40" + "@babel/plugin-syntax-jsx" "7.0.0-beta.40" "@babel/preset-react@^7.0.0-beta.40": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0-beta.41.tgz#7741496d39933c6d8048c448849db15d27ab7428" - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.41" - "@babel/plugin-syntax-jsx" "7.0.0-beta.41" - "@babel/plugin-transform-react-display-name" "7.0.0-beta.41" - "@babel/plugin-transform-react-jsx" "7.0.0-beta.41" - "@babel/plugin-transform-react-jsx-self" "7.0.0-beta.41" - "@babel/plugin-transform-react-jsx-source" "7.0.0-beta.41" - -"@babel/template@7.0.0-beta.41": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.41.tgz#628eeb93f9b5b423a252d3b6183f12e09505ab55" - dependencies: - "@babel/code-frame" "7.0.0-beta.41" - "@babel/types" "7.0.0-beta.41" - babylon "7.0.0-beta.41" + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0-beta.40.tgz#ccc8f916b694c8ea4b4ccbd1584f873caf199557" + dependencies: + "@babel/plugin-syntax-jsx" "7.0.0-beta.40" + "@babel/plugin-transform-react-display-name" "7.0.0-beta.40" + "@babel/plugin-transform-react-jsx" "7.0.0-beta.40" + "@babel/plugin-transform-react-jsx-self" "7.0.0-beta.40" + "@babel/plugin-transform-react-jsx-source" "7.0.0-beta.40" + +"@babel/template@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.40.tgz#034988c6424eb5c3268fe6a608626de1f4410fc8" + dependencies: + "@babel/code-frame" "7.0.0-beta.40" + "@babel/types" "7.0.0-beta.40" + babylon "7.0.0-beta.40" lodash "^4.2.0" "@babel/traverse@^7.0.0-beta.40": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.41.tgz#1615f6fa87382c34511be8be1cd083eba9b1ae88" - dependencies: - "@babel/code-frame" "7.0.0-beta.41" - "@babel/generator" "7.0.0-beta.41" - "@babel/helper-function-name" "7.0.0-beta.41" - "@babel/helper-split-export-declaration" "7.0.0-beta.41" - "@babel/types" "7.0.0-beta.41" - babylon "7.0.0-beta.41" - debug "^3.1.0" + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.40.tgz#d140e449b2e093ef9fe1a2eecc28421ffb4e521e" + dependencies: + "@babel/code-frame" "7.0.0-beta.40" + "@babel/generator" "7.0.0-beta.40" + "@babel/helper-function-name" "7.0.0-beta.40" + "@babel/types" "7.0.0-beta.40" + babylon "7.0.0-beta.40" + debug "^3.0.1" globals "^11.1.0" invariant "^2.2.0" lodash "^4.2.0" -"@babel/types@7.0.0-beta.41", "@babel/types@^7.0.0-beta.40": - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.41.tgz#776e6ec154fb8ec11da697be35b705c6eeb00e75" +"@babel/types@7.0.0-beta.40", "@babel/types@^7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.40.tgz#25c3d7aae14126abe05fcb098c65a66b6d6b8c14" dependencies: esutils "^2.0.2" lodash "^4.2.0" @@ -148,9 +129,9 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@nadiia/file-loader@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@nadiia/file-loader/-/file-loader-2.0.0.tgz#2c4b02a661185663f69680cc1ecf87856402dd3b" +"@nadiia/file-loader@^1.0.0-beta.5": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@nadiia/file-loader/-/file-loader-1.0.1.tgz#62cadae557f41a8d4dab9fe6017bda6c7ebc7ef2" dependencies: loader-utils "^1.0.2" @@ -163,16 +144,16 @@ resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.3.29.tgz#7f2ad7ec55f914482fc9b1ec4bb1ae6028d46066" "@types/node@*", "@types/node@^9.3.0": - version "9.4.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-9.4.7.tgz#57d81cd98719df2c9de118f2d5f3b1120dcd7275" + version "9.4.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-9.4.6.tgz#d8176d864ee48753d053783e4e463aec86b8d82e" "@types/rimraf@^0.0.28": version "0.0.28" resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-0.0.28.tgz#5562519bc7963caca8abf7f128cae3b594d41d06" -"@types/tapable@^0": - version "0.2.5" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-0.2.5.tgz#2443fc12da514c81346b1a665675559cee21fa75" +"@types/tapable@*": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-0.2.4.tgz#8181a228da46185439300e600c5ae3b3b3982585" "@types/uglify-js@*": version "2.6.30" @@ -181,11 +162,11 @@ source-map "^0.6.1" "@types/webpack@^3.0.5": - version "3.8.10" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-3.8.10.tgz#2086c1d3969afea84ffc4159e646d3919248ee7b" + version "3.8.9" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-3.8.9.tgz#c420c9428ba18e20e4fe8eff7bee4d04bace9182" dependencies: "@types/node" "*" - "@types/tapable" "^0" + "@types/tapable" "*" "@types/uglify-js" "*" source-map "^0.6.0" @@ -197,18 +178,18 @@ abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" -accepts@^1.2.2, accepts@^1.3.3, accepts@~1.3.4, accepts@~1.3.5: +accepts@^1.2.2, accepts@^1.3.3, accepts@~1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" dependencies: mime-types "~2.1.18" negotiator "0.6.1" -acorn-dynamic-import@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" +acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" dependencies: - acorn "^5.0.0" + acorn "^4.0.3" acorn-es7-plugin@>=1.1.6: version "1.1.7" @@ -234,15 +215,15 @@ acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" +acorn@^4.0.3: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + address@1.0.3, address@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - -ajv-keywords@^3.1.0: +ajv-keywords@^3.0.0, ajv-keywords@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be" @@ -253,7 +234,7 @@ ajv@^4.9.1: co "^4.6.0" json-stable-stringify "^1.0.1" -ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: +ajv@^5.1.0, ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" dependencies: @@ -262,7 +243,7 @@ ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.1.0: +ajv@^6.0.1, ajv@^6.1.0: version "6.2.1" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.2.1.tgz#28a6abc493a2abe0fb4c8507acaedb43fa550671" dependencies: @@ -488,7 +469,7 @@ async@^1.4.0, async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" -async@^2.1.4: +async@^2.1.2, async@^2.1.4: version "2.6.0" resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" dependencies: @@ -506,6 +487,10 @@ atob@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d" +attempt-x@^1.1.0, attempt-x@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/attempt-x/-/attempt-x-1.1.3.tgz#9ac844c75bca2c4e9e30d8d5c01f41eeb481a8b7" + aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" @@ -693,14 +678,14 @@ babel-helpers@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^22.4.1: +babel-jest@^22.4.0, babel-jest@^22.4.1: version "22.4.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.4.1.tgz#ff53ebca45957347f27ff4666a31499fbb4c4ddd" dependencies: babel-plugin-istanbul "^4.1.5" babel-preset-jest "^22.4.1" -babel-loader@^7.1.4: +babel-loader@^7.1.2: version "7.1.4" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.4.tgz#e3463938bd4e6d55d1c174c5485d406a188ed015" dependencies: @@ -1081,7 +1066,7 @@ babel-preset-flow@^6.23.0: dependencies: babel-plugin-transform-flow-strip-types "^6.22.0" -babel-preset-jest@^22.4.1: +babel-preset-jest@^22.2.0, babel-preset-jest@^22.4.1: version "22.4.1" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.4.1.tgz#efa2e5f5334242a9457a068452d7d09735db172a" dependencies: @@ -1151,9 +1136,9 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26 lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@7.0.0-beta.41, babylon@^7.0.0-beta.40: - version "7.0.0-beta.41" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.41.tgz#e1b208d53a7a05ede2cf96cbecd86f5ed47f584f" +babylon@7.0.0-beta.40, babylon@^7.0.0-beta.40: + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.40.tgz#91fc8cd56d5eb98b28e6fde41045f2957779940a" babylon@^6.18.0: version "6.18.0" @@ -1397,8 +1382,10 @@ btoa@^1.1.2: resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.1.2.tgz#3e40b81663f81d2dd6596a4cb714a8dc16cfabe0" buffer-from@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.2.tgz#15f4b9bcef012044df31142c14333caf6e0260d0" + version "0.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.1.tgz#57b18b1da0a19ec06f33837a5275a242351bd75e" + dependencies: + is-array-buffer-x "^1.0.13" buffer-indexof@^1.0.0: version "1.1.1" @@ -1428,7 +1415,7 @@ bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" -cacache@^10.0.1, cacache@^10.0.4: +cacache@^10.0.1: version "10.0.4" resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" dependencies: @@ -1460,6 +1447,10 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cached-constructors-x@^1.0.0, cached-constructors-x@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cached-constructors-x/-/cached-constructors-x-1.0.2.tgz#d8a7b79b43fdcf13fd861bb763f38b627b0ccf91" + caching-transform@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1" @@ -1506,14 +1497,14 @@ camelcase@^4.0.0, camelcase@^4.1.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" caniuse-lite@^1.0.30000792: - version "1.0.30000814" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000814.tgz#73eb6925ac2e54d495218f1ea0007da3940e488b" + version "1.0.30000813" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000813.tgz#7b25e27fdfb8d133f3c932b01f77452140fcc6c9" capture-stack-trace@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" -case-sensitive-paths-webpack-plugin@^2.1.2: +case-sensitive-paths-webpack-plugin@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz#c899b52175763689224571dad778742e133f0192" @@ -1538,7 +1529,7 @@ chalk@1.1.3, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" dependencies: @@ -1615,13 +1606,9 @@ chrome-remote-interface@^0.25.5: commander "2.11.x" ws "3.3.x" -chrome-trace-event@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-0.1.2.tgz#90f36885d5345a50621332f0717b595883d5d982" - ci-info@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" + version "1.1.2" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4" cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" @@ -1763,10 +1750,6 @@ commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" -compare-versions@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.1.0.tgz#43310256a5c555aaed4193c04d8f154cf9c6efd5" - component-emitter@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" @@ -1777,9 +1760,9 @@ compressible@~2.0.13: dependencies: mime-db ">= 1.33.0 < 2" -compression-webpack-plugin@^1.1.11: - version "1.1.11" - resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-1.1.11.tgz#8384c7a6ead1d2e2efb190bdfcdcf35878ed8266" +compression-webpack-plugin@^1.1.7: + version "1.1.10" + resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-1.1.10.tgz#dbc2d2d65729a89f7b195668211d38ea0883df98" dependencies: cacache "^10.0.1" find-cache-dir "^1.0.0" @@ -1856,7 +1839,7 @@ content-type@^1.0.0, content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" -convert-source-map@^1.1.1, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: +convert-source-map@^1.1.1, convert-source-map@^1.3.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" @@ -2064,6 +2047,12 @@ cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -2078,7 +2067,7 @@ debug-log@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" -debug@*, debug@^3.1.0: +debug@*, debug@^3.0.1, debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: @@ -2193,7 +2182,7 @@ depd@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" -depd@^1.1.0, depd@~1.1.1, depd@~1.1.2: +depd@^1.1.0, depd@~1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -2380,8 +2369,8 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" electron-to-chromium@^1.3.30: - version "1.3.37" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.37.tgz#4a92734e0044c8cf0b1553be57eae21a4c6e5fab" + version "1.3.36" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.36.tgz#0eabf71a9ebea9013fb1cc35a390e068624f27e8" elliptic@^6.0.0: version "6.4.0" @@ -2399,7 +2388,7 @@ emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" -encodeurl@~1.0.2: +encodeurl@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -2415,13 +2404,14 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz#e34a6eaa790f62fccd71d93959f56b2b432db10a" +enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" - tapable "^1.0.0" + object-assign "^4.0.1" + tapable "^0.2.7" entities@^1.1.1, entities@~1.1.1: version "1.1.1" @@ -2514,10 +2504,62 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.39" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.39.tgz#fca21b67559277ca4ac1a1ed7048b107b6f76d87" + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + +es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + es6-object-assign@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + escape-html@~1.0.1, escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -2537,6 +2579,15 @@ escodegen@^1.9.0: optionalDependencies: source-map "~0.6.1" +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + eslint-config-cup@^1.0.0-rc.4: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-config-cup/-/eslint-config-cup-1.0.0.tgz#0fcdb787fe254fc9458ec5258143cb0d47052896" @@ -2640,9 +2691,9 @@ eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" -eslint@4.18.2: - version "4.18.2" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" +eslint@4.18.1: + version "4.18.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.1.tgz#b9138440cb1e98b2f44a0d578c6ecf8eae6150b0" dependencies: ajv "^5.3.0" babel-code-frame "^6.22.0" @@ -2679,7 +2730,7 @@ eslint@4.18.2: semver "^5.3.0" strip-ansi "^4.0.0" strip-json-comments "~2.0.1" - table "4.0.2" + table "^4.0.1" text-table "~0.2.0" espree@^3.5.2: @@ -2721,6 +2772,13 @@ etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + eventemitter3@1.x.x: version "1.2.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" @@ -2815,11 +2873,11 @@ expect@^22.4.0: jest-message-util "^22.4.0" jest-regex-util "^22.1.0" -express@^4.16.2, express@^4.16.3: - version "4.16.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" +express@^4.16.2: + version "4.16.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" dependencies: - accepts "~1.3.5" + accepts "~1.3.4" array-flatten "1.1.1" body-parser "1.18.2" content-disposition "0.5.2" @@ -2827,26 +2885,26 @@ express@^4.16.2, express@^4.16.3: cookie "0.3.1" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" + depd "~1.1.1" + encodeurl "~1.0.1" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.1.1" + finalhandler "1.1.0" fresh "0.5.2" merge-descriptors "1.0.1" methods "~1.1.2" on-finished "~2.3.0" parseurl "~1.3.2" path-to-regexp "0.1.7" - proxy-addr "~2.0.3" + proxy-addr "~2.0.2" qs "6.5.1" range-parser "~1.2.0" safe-buffer "5.1.1" - send "0.16.2" - serve-static "1.13.2" + send "0.16.1" + serve-static "1.13.1" setprototypeof "1.1.0" - statuses "~1.4.0" - type-is "~1.6.16" + statuses "~1.3.1" + type-is "~1.6.15" utils-merge "1.0.1" vary "~1.1.2" @@ -2906,7 +2964,7 @@ eyes@0.1.x: version "0.1.8" resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" -fast-async@^6.3.1: +fast-async@^6.3.0: version "6.3.1" resolved "https://registry.yarnpkg.com/fast-async/-/fast-async-6.3.1.tgz#53383a651be5e4f7aa2d4cc38e3520fd1460b4ad" dependencies: @@ -2923,8 +2981,8 @@ fast-diff@^1.1.1: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" fast-glob@^2.0.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.0.tgz#e9d032a69b86bef46fc03d935408f02fb211d9fc" + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.1.0.tgz#50ee95e6a112f09e886cfff5215de69ca4a6a861" dependencies: "@mrmlnc/readdir-enhanced" "^2.2.1" glob-parent "^3.1.0" @@ -2936,7 +2994,7 @@ fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.4: +fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" @@ -3021,16 +3079,16 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" -finalhandler@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" +finalhandler@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" dependencies: debug "2.6.9" - encodeurl "~1.0.2" + encodeurl "~1.0.1" escape-html "~1.0.3" on-finished "~2.3.0" parseurl "~1.3.2" - statuses "~1.4.0" + statuses "~1.3.1" unpipe "~1.0.0" find-cache-dir@^0.1.1: @@ -3218,7 +3276,7 @@ fusion-core@^1.2.0: ua-parser-js "^0.7.17" uuid "^3.2.1" -fusion-plugin-react-router@^1.0.3: +fusion-plugin-react-router@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/fusion-plugin-react-router/-/fusion-plugin-react-router-1.0.3.tgz#0271e677aa2e44b246b1b6fdb5e2f0610f5fea42" dependencies: @@ -3233,7 +3291,7 @@ fusion-plugin-universal-events@^1.0.2: dependencies: koa-bodyparser "4.2.0" -fusion-react-async@^1.1.0: +fusion-react-async@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/fusion-react-async/-/fusion-react-async-1.1.0.tgz#7a2a75e4711ee5e8a85219b3375602ba8a818af1" dependencies: @@ -3251,7 +3309,7 @@ fusion-test-utils@^1.0.1: koa "^2.4.1" node-mocks-http "^1.6.6" -fusion-tokens@^1.0.2: +fusion-tokens@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/fusion-tokens/-/fusion-tokens-1.0.2.tgz#86ffd5a4377d0cb4448176fa2dc6bfc8657913e5" @@ -3512,6 +3570,10 @@ has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -3522,10 +3584,28 @@ has-glob@^0.1.1: dependencies: is-glob "^2.0.1" +has-own-property-x@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/has-own-property-x/-/has-own-property-x-3.2.0.tgz#1c4b112a577c8cb5805469556e54b6e959e4ded9" + dependencies: + cached-constructors-x "^1.0.0" + to-object-x "^1.5.0" + to-property-key-x "^2.0.2" + +has-symbol-support-x@^1.4.1, has-symbol-support-x@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + has-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" +has-to-string-tag-x@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + dependencies: + has-symbol-support-x "^1.4.1" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -3602,8 +3682,8 @@ hawk@~6.0.2: sntp "2.x.x" highland@^2.5.1: - version "2.12.0" - resolved "https://registry.yarnpkg.com/highland/-/highland-2.12.0.tgz#728ceff4c7a971a89b18d993ebfb74a82022542e" + version "2.11.1" + resolved "https://registry.yarnpkg.com/highland/-/highland-2.11.1.tgz#39b4d9299b6e07da3d15e7af7b2a6f127522acaf" dependencies: util-deprecate "^1.0.2" @@ -3633,7 +3713,7 @@ hoek@4.x.x: version "4.2.1" resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" -hoist-non-react-statics@^2.3.0, hoist-non-react-statics@^2.5.0: +hoist-non-react-statics@^2.3.0: version "2.5.0" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.0.tgz#d2ca2dfc19c5a91c5a6615ce8e564ef0347e2a40" @@ -3768,9 +3848,9 @@ ignore@^3.3.3, ignore@^3.3.5: version "3.3.7" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" -iltorb@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/iltorb/-/iltorb-2.0.5.tgz#889f5e874bc0415d6c7a2f789f32c7252beebab9" +iltorb@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/iltorb/-/iltorb-2.0.3.tgz#9ca96c4f02da262416dd2b538d269af8c155780e" dependencies: detect-libc "^1.0.3" nan "^2.8.0" @@ -3825,6 +3905,10 @@ indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" +infinity-x@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/infinity-x/-/infinity-x-1.0.2.tgz#374a4d5c8a9b98d2f61b782fc63892598de2f14c" + inflation@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f" @@ -3873,9 +3957,13 @@ internal-ip@1.2.0: dependencies: meow "^3.3.0" +interpret@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + version "2.2.3" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.3.tgz#1a827dfde7dcbd7c323f0ca826be8fa7c5e9d688" dependencies: loose-envify "^1.0.0" @@ -3903,6 +3991,16 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-array-buffer-x@^1.0.13: + version "1.7.0" + resolved "https://registry.yarnpkg.com/is-array-buffer-x/-/is-array-buffer-x-1.7.0.tgz#4b0b10427b64aa3437767adf4fc07702c59b2371" + dependencies: + attempt-x "^1.1.0" + has-to-string-tag-x "^1.4.1" + is-object-like-x "^1.5.1" + object-get-own-property-descriptor-x "^3.2.0" + to-string-tag-x "^1.4.1" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -4001,6 +4099,19 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" +is-falsey-x@^1.0.0, is-falsey-x@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-falsey-x/-/is-falsey-x-1.0.3.tgz#d8bb6d77c15fb2b99d81d10a7351641495fb36e2" + dependencies: + to-boolean-x "^1.0.2" + +is-finite-x@^3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-finite-x/-/is-finite-x-3.0.4.tgz#320c97bab8aacc7e3cfa34aa58c432762c491b4e" + dependencies: + infinity-x "^1.0.1" + is-nan-x "^1.0.2" + is-finite@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" @@ -4017,6 +4128,19 @@ is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" +is-function-x@^3.2.0, is-function-x@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/is-function-x/-/is-function-x-3.3.0.tgz#7d16bc113853db206d5e40a8b32caf99bd4ff7c0" + dependencies: + attempt-x "^1.1.1" + has-to-string-tag-x "^1.4.1" + is-falsey-x "^1.0.1" + is-primitive "^2.0.0" + normalize-space-x "^3.0.0" + replace-comments-x "^2.0.0" + to-boolean-x "^1.0.1" + to-string-tag-x "^1.4.2" + is-function@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" @@ -4047,6 +4171,16 @@ is-glob@^4.0.0: dependencies: is-extglob "^2.1.1" +is-index-x@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-index-x/-/is-index-x-1.1.0.tgz#43dac97b3a04f30191530833f45ac35001682ee2" + dependencies: + math-clamp-x "^1.2.0" + max-safe-integer "^1.0.1" + to-integer-x "^3.0.0" + to-number-x "^2.0.0" + to-string-symbols-supported-x "^1.0.0" + is-installed-globally@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" @@ -4054,6 +4188,17 @@ is-installed-globally@^0.1.0: global-dirs "^0.1.0" is-path-inside "^1.0.0" +is-nan-x@^1.0.1, is-nan-x@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-nan-x/-/is-nan-x-1.0.3.tgz#1c7fca40fc1b830a36e8800b37513a81f91fcc58" + +is-nil-x@^1.4.1, is-nil-x@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/is-nil-x/-/is-nil-x-1.4.2.tgz#a45e798d1e490d38db4570f2457245da21493e97" + dependencies: + lodash.isnull "^3.0.0" + validate.io-undefined "^1.0.3" + is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" @@ -4082,6 +4227,13 @@ is-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" +is-object-like-x@^1.5.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/is-object-like-x/-/is-object-like-x-1.7.1.tgz#f440ce811fb31278e4ed0b34f2d5a277d87b4481" + dependencies: + is-function-x "^3.3.0" + is-primitive "^3.0.0" + is-odd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" @@ -4118,6 +4270,10 @@ is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" +is-primitive@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-3.0.0.tgz#ddc27a9f9ebe7bed4b4f308acc9abb1c7a025757" + is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -4223,26 +4379,25 @@ isstream@0.1.x, isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -istanbul-api@^1.1.14, istanbul-api@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.1.tgz#4c3b05d18c0016d1022e079b98dc82c40f488954" +istanbul-api@^1.1.14, istanbul-api@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.2.2.tgz#e17cd519dd5ec4141197f246fdf380b75487f3b1" dependencies: async "^2.1.4" - compare-versions "^3.1.0" fileset "^2.0.2" - istanbul-lib-coverage "^1.2.0" - istanbul-lib-hook "^1.2.0" - istanbul-lib-instrument "^1.10.1" - istanbul-lib-report "^1.1.4" - istanbul-lib-source-maps "^1.2.4" - istanbul-reports "^1.3.0" + istanbul-lib-coverage "^1.1.2" + istanbul-lib-hook "^1.1.0" + istanbul-lib-instrument "^1.9.2" + istanbul-lib-report "^1.1.3" + istanbul-lib-source-maps "^1.2.3" + istanbul-reports "^1.1.4" js-yaml "^3.7.0" mkdirp "^0.5.1" once "^1.4.0" -istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" +istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.2.tgz#4113c8ff6b7a40a1ef7350b01016331f63afde14" istanbul-lib-hook@^1.1.0: version "1.1.0" @@ -4250,25 +4405,19 @@ istanbul-lib-hook@^1.1.0: dependencies: append-transform "^0.4.0" -istanbul-lib-hook@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.0.tgz#ae556fd5a41a6e8efa0b1002b1e416dfeaf9816c" - dependencies: - append-transform "^0.4.0" - -istanbul-lib-instrument@^1.10.0, istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.8.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" +istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.8.0, istanbul-lib-instrument@^1.9.1, istanbul-lib-instrument@^1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.2.tgz#84905bf47f7e0b401d6b840da7bad67086b4aab6" dependencies: babel-generator "^6.18.0" babel-template "^6.16.0" babel-traverse "^6.18.0" babel-types "^6.18.0" babylon "^6.18.0" - istanbul-lib-coverage "^1.2.0" + istanbul-lib-coverage "^1.1.2" semver "^5.3.0" -istanbul-lib-report@^1.1.3: +istanbul-lib-report@^1.1.2, istanbul-lib-report@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz#2df12188c0fa77990c0d2176d2d0ba3394188259" dependencies: @@ -4277,16 +4426,7 @@ istanbul-lib-report@^1.1.3: path-parse "^1.0.5" supports-color "^3.1.2" -istanbul-lib-report@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5" - dependencies: - istanbul-lib-coverage "^1.2.0" - mkdirp "^0.5.1" - path-parse "^1.0.5" - supports-color "^3.1.2" - -istanbul-lib-source-maps@^1.2.1, istanbul-lib-source-maps@^1.2.3: +istanbul-lib-source-maps@^1.2.1, istanbul-lib-source-maps@^1.2.2, istanbul-lib-source-maps@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6" dependencies: @@ -4296,19 +4436,9 @@ istanbul-lib-source-maps@^1.2.1, istanbul-lib-source-maps@^1.2.3: rimraf "^2.6.1" source-map "^0.5.3" -istanbul-lib-source-maps@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.4.tgz#cc7ccad61629f4efff8e2f78adb8c522c9976ec7" - dependencies: - debug "^3.1.0" - istanbul-lib-coverage "^1.2.0" - mkdirp "^0.5.1" - rimraf "^2.6.1" - source-map "^0.5.3" - -istanbul-reports@^1.1.4, istanbul-reports@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554" +istanbul-reports@^1.1.3, istanbul-reports@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.4.tgz#5ccba5e22b7b5a5d91d5e0a830f89be334bf97bd" dependencies: handlebars "^4.0.3" @@ -4318,7 +4448,7 @@ jest-changed-files@^22.2.0: dependencies: throat "^4.0.0" -jest-cli@^22.4.2: +jest-cli@^22.4.0, jest-cli@^22.4.2: version "22.4.2" resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-22.4.2.tgz#e6546dc651e13d164481aa3e76e53ac4f4edab06" dependencies: @@ -4568,7 +4698,7 @@ jest-worker@^22.2.2: dependencies: merge-stream "^1.0.1" -jest@^22.4.2: +jest@^22.4.0: version "22.4.2" resolved "https://registry.yarnpkg.com/jest/-/jest-22.4.2.tgz#34012834a49bf1bdd3bc783850ab44e4499afc20" dependencies: @@ -4648,6 +4778,10 @@ jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" +json-loader@^0.5.4: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + 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" @@ -4825,7 +4959,7 @@ lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" -lazy-cache@^2.0.1: +lazy-cache@^2.0.1, lazy-cache@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" dependencies: @@ -4934,11 +5068,15 @@ lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" +lodash.isnull@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash.isnull/-/lodash.isnull-3.0.0.tgz#fafbe59ea1dca27eed786534039dd84c2e07c56e" + lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" -lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0: +lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.6.1: version "4.17.5" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" @@ -5024,6 +5162,23 @@ matched@^0.4.4: lazy-cache "^2.0.1" resolve-dir "^0.1.0" +math-clamp-x@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/math-clamp-x/-/math-clamp-x-1.2.0.tgz#8b537be0645bbba7ee73ee16091e7d6018c5edcf" + dependencies: + to-number-x "^2.0.0" + +math-sign-x@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/math-sign-x/-/math-sign-x-3.0.0.tgz#d5286022b48e150c384729a86042e0835264c3ed" + dependencies: + is-nan-x "^1.0.1" + to-number-x "^2.0.0" + +max-safe-integer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/max-safe-integer/-/max-safe-integer-1.0.1.tgz#f38060be2c563d8c02e6d48af39122fd83b6f410" + md5-hex@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" @@ -5313,6 +5468,10 @@ mz@^2.6.0: object-assign "^4.0.1" thenify-all "^1.0.0" +nan-x@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nan-x/-/nan-x-1.0.2.tgz#5f34e9d3115242486219eee3c8bc49fd2425b19a" + nan@^2.0.0, nan@^2.3.0, nan@^2.8.0: version "2.9.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.9.2.tgz#f564d75f5f8f36a6d9456cca7a6c4fe488ab7866" @@ -5526,6 +5685,14 @@ normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" +normalize-space-x@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-space-x/-/normalize-space-x-3.0.0.tgz#17907d6c7c724a4f9567471cbb319553bc0f8882" + dependencies: + cached-constructors-x "^1.0.0" + trim-x "^3.0.0" + white-space-x "^3.0.0" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -5556,25 +5723,25 @@ nwmatcher@^1.4.3: resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.3.tgz#64348e3b3d80f035b40ac11563d278f8b72db89c" nyc@^11.4.1: - version "11.6.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.6.0.tgz#d9c7b51ffceb6bba099a4683a6adc1b331b98853" + version "11.4.1" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.4.1.tgz#13fdf7e7ef22d027c61d174758f6978a68f4f5e5" dependencies: archy "^1.0.0" arrify "^1.0.1" caching-transform "^1.0.0" - convert-source-map "^1.5.1" + convert-source-map "^1.3.0" debug-log "^1.0.1" default-require-extensions "^1.0.0" find-cache-dir "^0.1.1" find-up "^2.1.0" foreground-child "^1.5.3" glob "^7.0.6" - istanbul-lib-coverage "^1.1.2" + istanbul-lib-coverage "^1.1.1" istanbul-lib-hook "^1.1.0" - istanbul-lib-instrument "^1.10.0" - istanbul-lib-report "^1.1.3" - istanbul-lib-source-maps "^1.2.3" - istanbul-reports "^1.1.4" + istanbul-lib-instrument "^1.9.1" + istanbul-lib-report "^1.1.2" + istanbul-lib-source-maps "^1.2.2" + istanbul-reports "^1.1.3" md5-hex "^1.2.0" merge-source-map "^1.0.2" micromatch "^2.3.11" @@ -5583,8 +5750,8 @@ nyc@^11.4.1: rimraf "^2.5.4" signal-exit "^3.0.1" spawn-wrap "^1.4.2" - test-exclude "^4.2.0" - yargs "11.1.0" + test-exclude "^4.1.1" + yargs "^10.0.3" yargs-parser "^8.0.0" oauth-sign@~0.8.1, oauth-sign@~0.8.2: @@ -5603,6 +5770,21 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" +object-get-own-property-descriptor-x@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/object-get-own-property-descriptor-x/-/object-get-own-property-descriptor-x-3.2.0.tgz#464585ad03e66108ed166c99325b8d2c5ba93712" + dependencies: + attempt-x "^1.1.0" + has-own-property-x "^3.1.1" + has-symbol-support-x "^1.4.1" + is-falsey-x "^1.0.0" + is-index-x "^1.0.0" + is-primitive "^2.0.0" + is-string "^1.0.4" + property-is-enumerable-x "^1.1.0" + to-object-x "^1.4.1" + to-property-key-x "^2.0.1" + object-inspect@^1.5.0, object-inspect@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.5.0.tgz#9d876c11e40f485c79215670281b767488f9bfe3" @@ -5669,8 +5851,8 @@ object.values@^1.0.4: has "^1.0.1" obuf@^1.0.0, obuf@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + version "1.1.1" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" on-finished@^2.1.0, on-finished@~2.3.0: version "2.3.0" @@ -5709,18 +5891,12 @@ opn@4.0.2: object-assign "^4.0.1" pinkie-promise "^2.0.0" -opn@5.2.0: +opn@5.2.0, opn@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225" dependencies: is-wsl "^1.1.0" -opn@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" - dependencies: - is-wsl "^1.1.0" - optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -5850,6 +6026,15 @@ parse-glob@^3.0.4: is-extglob "^1.0.0" is-glob "^2.0.0" +parse-int-x@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-int-x/-/parse-int-x-2.0.0.tgz#9f979d4115930df2f4706a41810b9c712405552f" + dependencies: + cached-constructors-x "^1.0.0" + nan-x "^1.0.0" + to-string-x "^1.4.2" + trim-left-x "^3.0.0" + parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -6042,9 +6227,9 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -prettier@1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.11.1.tgz#61e43fc4cd44e68f2b0dfc2c38cd4bb0fccdcc75" +prettier@1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.10.2.tgz#1af8356d1842276a99a5b5529c82dd9e9ad3cc93" pretty-format@^22.4.0: version "22.4.0" @@ -6069,7 +6254,7 @@ process@~0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" -progress-bar-webpack-plugin@^1.11.0: +progress-bar-webpack-plugin@^1.10.0: version "1.11.0" resolved "https://registry.yarnpkg.com/progress-bar-webpack-plugin/-/progress-bar-webpack-plugin-1.11.0.tgz#4f801288443c55ec029b20cbfdcbf3e1dc17f852" dependencies: @@ -6103,7 +6288,14 @@ prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.0: loose-envify "^1.3.1" object-assign "^4.1.1" -proxy-addr@~2.0.3: +property-is-enumerable-x@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/property-is-enumerable-x/-/property-is-enumerable-x-1.1.0.tgz#7ca48917476cd0914b37809bfd05776a0d942f6f" + dependencies: + to-object-x "^1.4.1" + to-property-key-x "^2.0.1" + +proxy-addr@~2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" dependencies: @@ -6251,14 +6443,18 @@ raw-body@2.3.2, raw-body@^2.2.0: unpipe "1.0.0" rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: - version "1.2.6" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.6.tgz#eb18989c6d4f4f162c399f79ddd29f3835568092" + version "1.2.5" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd" dependencies: deep-extend "~0.4.0" ini "~1.3.0" minimist "^1.2.0" strip-json-comments "~2.0.1" +react-deep-force-update@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-2.1.1.tgz#8ea4263cd6455a050b37445b3f08fd839d86e909" + react-dev-utils@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-5.0.0.tgz#425ac7c9c40c2603bc4f7ab8836c1406e96bb473" @@ -6295,15 +6491,21 @@ react-error-overlay@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-4.0.0.tgz#d198408a85b4070937a98667f500c832f86bd5d4" -react-hot-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.0.0.tgz#3452fa9bc0d0ba9dfc5b0ccfa25101ca8dbd2de2" +react-hot-loader@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-3.1.3.tgz#6f92877326958c7cb0134b512474517869126082" dependencies: - fast-levenshtein "^2.0.6" global "^4.3.0" - hoist-non-react-statics "^2.5.0" - prop-types "^15.6.0" - shallowequal "^1.0.2" + react-deep-force-update "^2.1.1" + react-proxy "^3.0.0-alpha.0" + redbox-react "^1.3.6" + source-map "^0.6.1" + +react-proxy@^3.0.0-alpha.0: + version "3.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz#4400426bcfa80caa6724c7755695315209fa4b07" + dependencies: + lodash "^4.6.1" react-reconciler@^0.7.0: version "0.7.0" @@ -6417,7 +6619,7 @@ recursive-readdir@2.2.1: dependencies: minimatch "3.0.3" -redbox-react@^1.5.0: +redbox-react@^1.3.6, redbox-react@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.5.0.tgz#04dab11557d26651bf3562a67c22ace56c5d3967" dependencies: @@ -6511,6 +6713,13 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" +replace-comments-x@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/replace-comments-x/-/replace-comments-x-2.0.0.tgz#a5cec18efd912aad78a7c3c4b69d01768556d140" + dependencies: + require-coercible-to-string-x "^1.0.0" + to-string-x "^1.4.2" + replace-ext@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" @@ -6538,9 +6747,9 @@ request-promise@4.2.2: stealthy-require "^1.1.0" tough-cookie ">=2.3.3" -request@2, request@^2.83.0, request@^2.85.0: - version "2.85.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" +request@2, request@^2.83.0: + version "2.83.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" dependencies: aws-sign2 "~0.7.0" aws4 "^1.6.0" @@ -6592,6 +6801,13 @@ request@2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" +require-coercible-to-string-x@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/require-coercible-to-string-x/-/require-coercible-to-string-x-1.0.2.tgz#b8c96ab42962ab7b28f3311fc6b198124c56f9f6" + dependencies: + require-object-coercible-x "^1.4.3" + to-string-x "^1.4.5" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -6600,6 +6816,12 @@ require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" +require-object-coercible-x@^1.4.1, require-object-coercible-x@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/require-object-coercible-x/-/require-object-coercible-x-1.4.3.tgz#783719a23a5c0ce24e845fcc50cd55b6421ea4bb" + dependencies: + is-nil-x "^1.4.2" + require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" @@ -6773,7 +6995,7 @@ sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" -schema-utils@^0.4.2, schema-utils@^0.4.5: +schema-utils@^0.4.2: version "0.4.5" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" dependencies: @@ -6804,14 +7026,14 @@ semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" -send@0.16.2: - version "0.16.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" +send@0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" dependencies: debug "2.6.9" - depd "~1.1.2" + depd "~1.1.1" destroy "~1.0.4" - encodeurl "~1.0.2" + encodeurl "~1.0.1" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" @@ -6820,7 +7042,7 @@ send@0.16.2: ms "2.0.0" on-finished "~2.3.0" range-parser "~1.2.0" - statuses "~1.4.0" + statuses "~1.3.1" serialize-javascript@^1.4.0: version "1.4.0" @@ -6838,14 +7060,14 @@ serve-index@^1.7.2: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" +serve-static@1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" dependencies: - encodeurl "~1.0.2" + encodeurl "~1.0.1" escape-html "~1.0.3" parseurl "~1.3.2" - send "0.16.2" + send "0.16.1" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" @@ -6898,10 +7120,6 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -shallowequal@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.0.2.tgz#1561dbdefb8c01408100319085764da3fcf83f8f" - shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -6970,8 +7188,8 @@ snapdragon-util@^3.0.1: kind-of "^3.2.0" snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + version "0.8.1" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.1.tgz#e12b5487faded3e3dea0ac91e9400bf75b401370" dependencies: base "^0.11.1" debug "^2.2.0" @@ -6980,7 +7198,7 @@ snapdragon@^0.8.1: map-cache "^0.2.2" source-map "^0.5.6" source-map-resolve "^0.5.0" - use "^3.1.0" + use "^2.0.0" sntp@1.x.x: version "1.0.9" @@ -7162,8 +7380,8 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -7176,8 +7394,8 @@ sshpk@^1.7.0: tweetnacl "~0.14.0" ssri@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + version "5.2.4" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.2.4.tgz#9985e14041e65fc397af96542be35724ac11da52" dependencies: safe-buffer "^5.1.1" @@ -7208,10 +7426,14 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.3.1 < 2", statuses@^1.2.0, statuses@~1.4.0: +"statuses@>= 1.3.1 < 2", statuses@^1.2.0: version "1.4.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" +statuses@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + stealthy-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" @@ -7340,6 +7562,12 @@ supports-color@^3.1.2: 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.1.0, supports-color@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" @@ -7369,12 +7597,12 @@ symbol-tree@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" -table@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" +table@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" + ajv "^6.0.1" + ajv-keywords "^3.0.0" chalk "^2.1.0" lodash "^4.17.4" slice-ansi "1.0.0" @@ -7399,9 +7627,9 @@ tap-parser@~0.2.0: dependencies: split "~0.1.2" -tapable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2" +tapable@^0.2.7: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" tape@4.9.0: version "4.9.0" @@ -7473,12 +7701,12 @@ term-size@^1.2.0: dependencies: execa "^0.7.0" -test-exclude@^4.1.1, test-exclude@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa" +test-exclude@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.0.tgz#07e3613609a362c74516a717515e13322ab45b3c" dependencies: arrify "^1.0.1" - micromatch "^3.1.8" + micromatch "^2.3.11" object-assign "^4.1.0" read-pkg-up "^1.0.1" require-main-filename "^1.0.1" @@ -7546,6 +7774,10 @@ to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" +to-boolean-x@^1.0.1, to-boolean-x@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-boolean-x/-/to-boolean-x-1.0.3.tgz#cbe15e38a85d09553f29869a9b3e3b54ceef5af0" + to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" @@ -7554,12 +7786,59 @@ to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" +to-integer-x@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/to-integer-x/-/to-integer-x-3.0.0.tgz#9f3b80e668c7f0ae45e6926b40d95f52c1addc74" + dependencies: + is-finite-x "^3.0.2" + is-nan-x "^1.0.1" + math-sign-x "^3.0.0" + to-number-x "^2.0.0" + +to-number-x@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-number-x/-/to-number-x-2.0.0.tgz#c9099d7ded8fd327132a2987df2dcc8baf36df4d" + dependencies: + cached-constructors-x "^1.0.0" + nan-x "^1.0.0" + parse-int-x "^2.0.0" + to-primitive-x "^1.1.0" + trim-x "^3.0.0" + to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" dependencies: kind-of "^3.0.2" +to-object-x@^1.4.1, to-object-x@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/to-object-x/-/to-object-x-1.5.0.tgz#bd69dd4e104d77acc0cc0d84f5ac48f630aebe3c" + dependencies: + cached-constructors-x "^1.0.0" + require-object-coercible-x "^1.4.1" + +to-primitive-x@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/to-primitive-x/-/to-primitive-x-1.1.0.tgz#41ce2c13e3e246e0e5d0a8829a0567c6015833f8" + dependencies: + has-symbol-support-x "^1.4.1" + is-date-object "^1.0.1" + is-function-x "^3.2.0" + is-nil-x "^1.4.1" + is-primitive "^2.0.0" + is-symbol "^1.0.1" + require-object-coercible-x "^1.4.1" + validate.io-undefined "^1.0.3" + +to-property-key-x@^2.0.1, to-property-key-x@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/to-property-key-x/-/to-property-key-x-2.0.2.tgz#b19aa8e22faa0ff7d1c102cfbc657af73413cfa1" + dependencies: + has-symbol-support-x "^1.4.1" + to-primitive-x "^1.1.0" + to-string-x "^1.4.2" + to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" @@ -7576,6 +7855,28 @@ to-regex@^3.0.1: regex-not "^1.0.2" safe-regex "^1.1.0" +to-string-symbols-supported-x@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/to-string-symbols-supported-x/-/to-string-symbols-supported-x-1.0.2.tgz#73f5e17963520b2b365559f05e3864addaab7f1e" + dependencies: + cached-constructors-x "^1.0.2" + has-symbol-support-x "^1.4.2" + is-symbol "^1.0.1" + +to-string-tag-x@^1.4.1, to-string-tag-x@^1.4.2: + version "1.4.3" + resolved "https://registry.yarnpkg.com/to-string-tag-x/-/to-string-tag-x-1.4.3.tgz#3aed2edec9343be3c76e338161f85d6864c692b1" + dependencies: + lodash.isnull "^3.0.0" + validate.io-undefined "^1.0.3" + +to-string-x@^1.4.2, to-string-x@^1.4.5: + version "1.4.5" + resolved "https://registry.yarnpkg.com/to-string-x/-/to-string-x-1.4.5.tgz#b86dad14df68ca4df52ca4cb011a25e0bf5d9ca1" + dependencies: + cached-constructors-x "^1.0.0" + is-symbol "^1.0.1" + toposort@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec" @@ -7592,14 +7893,37 @@ tr46@^1.0.0: dependencies: punycode "^2.1.0" +trim-left-x@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/trim-left-x/-/trim-left-x-3.0.0.tgz#356cf055896726b9754425e841398842e90b4cdf" + dependencies: + cached-constructors-x "^1.0.0" + require-coercible-to-string-x "^1.0.0" + white-space-x "^3.0.0" + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" +trim-right-x@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/trim-right-x/-/trim-right-x-3.0.0.tgz#28c4cd37d5981f50ace9b52e3ce9106f4d2d22c0" + dependencies: + cached-constructors-x "^1.0.0" + require-coercible-to-string-x "^1.0.0" + white-space-x "^3.0.0" + trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" +trim-x@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/trim-x/-/trim-x-3.0.0.tgz#24efdcd027b748bbfc246a0139ad1749befef024" + dependencies: + trim-left-x "^3.0.0" + trim-right-x "^3.0.0" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -7620,7 +7944,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-is@^1.5.5, type-is@^1.6.14, type-is@~1.6.15, type-is@~1.6.16: +type-is@^1.5.5, type-is@^1.6.14, type-is@~1.6.15: version "1.6.16" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" dependencies: @@ -7642,7 +7966,7 @@ uglify-es@^3.3.4: commander "~2.13.0" source-map "~0.6.1" -uglify-js@^2.6: +uglify-js@^2.6, uglify-js@^2.8.29: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" dependencies: @@ -7655,13 +7979,21 @@ uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" -uglifyjs-webpack-plugin@^1.1.1, uglifyjs-webpack-plugin@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.3.tgz#bf23197b37a8fc953fecfbcbab66e506f9a0ae72" +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + +uglifyjs-webpack-plugin@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.2.tgz#e7516d4367afdb715c3847841eb46f94c45ca2b9" dependencies: - cacache "^10.0.4" + cacache "^10.0.1" find-cache-dir "^1.0.0" - schema-utils "^0.4.5" + schema-utils "^0.4.2" serialize-javascript "^1.4.0" source-map "^0.6.1" uglify-es "^3.3.4" @@ -7768,9 +8100,9 @@ urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" -url-join@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a" +url-join@^2.0.2: + version "2.0.5" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728" url-parse-lax@^1.0.0: version "1.0.0" @@ -7799,11 +8131,13 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" -use@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" +use@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/use/-/use-2.0.2.tgz#ae28a0d72f93bf22422a18a2e379993112dec8e8" dependencies: - kind-of "^6.0.2" + define-property "^0.2.5" + isobject "^3.0.0" + lazy-cache "^2.0.2" util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" @@ -7841,6 +8175,10 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validate.io-undefined@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/validate.io-undefined/-/validate.io-undefined-1.0.3.tgz#7e27fcbb315b841e78243431897671929e20b7f4" + value-equal@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7" @@ -7888,7 +8226,7 @@ watch@~0.18.0: exec-sh "^0.2.0" minimist "^1.2.0" -watchpack@^1.5.0: +watchpack@^1.4.0: version "1.5.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.5.0.tgz#231e783af830a22f8966f65c4c4bacc814072eed" dependencies: @@ -7897,8 +8235,8 @@ watchpack@^1.5.0: neo-async "^2.5.0" wbuf@^1.1.0, wbuf@^1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + version "1.7.2" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" dependencies: minimalistic-assert "^1.0.0" @@ -7912,21 +8250,21 @@ webpack-chunk-hash@^0.5.0: dependencies: "@types/webpack" "^3.0.5" -webpack-dev-middleware@3.0.1, webpack-dev-middleware@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.0.1.tgz#7ffd6d0192883c83d3f262e8d7dec822493c6166" +webpack-dev-middleware@2.0.6, webpack-dev-middleware@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-2.0.6.tgz#a51692801e8310844ef3e3790e1eacfe52326fd4" dependencies: loud-rejection "^1.6.0" memory-fs "~0.4.1" mime "^2.1.0" path-is-absolute "^1.0.0" range-parser "^1.0.3" - url-join "^4.0.0" + url-join "^2.0.2" webpack-log "^1.0.1" -webpack-dev-server@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.1.tgz#3c0fdd1ba3b50ebc79858a0e6b9ccdd1565b0c24" +webpack-dev-server@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.0.tgz#5d2365514d9dfa0d415502742d2cc28afc4a32d8" dependencies: ansi-html "0.0.7" array-includes "^3.0.3" @@ -7953,11 +8291,11 @@ webpack-dev-server@^3.1.1: spdy "^3.4.1" strip-ansi "^3.0.0" supports-color "^5.1.0" - webpack-dev-middleware "3.0.1" + webpack-dev-middleware "2.0.6" webpack-log "^1.1.2" yargs "9.0.1" -webpack-hot-middleware@2.x, webpack-hot-middleware@^2.21.2: +webpack-hot-middleware@2.x, webpack-hot-middleware@^2.21.0: version "2.21.2" resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.21.2.tgz#2e2aa65563b8b32546b67e53b5a9667dcd80f327" dependencies: @@ -7986,29 +8324,32 @@ webpack-sources@^1.0.1, webpack-sources@^1.1.0: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.1.1.tgz#44e4d6a869dd36fdfc0b227f9bd865a4bccfd81c" +webpack@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.11.0.tgz#77da451b1d7b4b117adaf41a1a93b5742f24d894" dependencies: acorn "^5.0.0" - acorn-dynamic-import "^3.0.0" + acorn-dynamic-import "^2.0.0" ajv "^6.1.0" ajv-keywords "^3.1.0" - chrome-trace-event "^0.1.1" - enhanced-resolve "^4.0.0" - eslint-scope "^3.7.1" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" loader-runner "^2.3.0" loader-utils "^1.1.0" memory-fs "~0.4.1" - micromatch "^3.1.8" mkdirp "~0.5.0" - neo-async "^2.5.0" node-libs-browser "^2.0.0" - schema-utils "^0.4.2" - tapable "^1.0.0" - uglifyjs-webpack-plugin "^1.1.1" - watchpack "^1.5.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" webpack-sources "^1.0.1" + yargs "^8.0.2" websocket-driver@>=0.5.1: version "0.7.0" @@ -8053,6 +8394,10 @@ which@1, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0: dependencies: isexe "^2.0.0" +white-space-x@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/white-space-x/-/white-space-x-3.0.1.tgz#81a82d5432da725aba5ca671624bb579c9e66d4f" + wide-align@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" @@ -8074,8 +8419,8 @@ window-size@^0.1.4: resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" winston@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/winston/-/winston-2.4.1.tgz#a3a9265105564263c6785b4583b8c8aca26fded6" + version "2.4.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-2.4.0.tgz#808050b93d52661ed9fb6c26b3f0c826708b0aee" dependencies: async "~1.0.0" colors "1.0.x" @@ -8097,10 +8442,11 @@ wordwrap@~1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" worker-farm@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" + version "1.5.4" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.5.4.tgz#4debbe46b40edefcc717ebde74a90b1ae1e909a1" dependencies: errno "~0.1.7" + xtend "~4.0.1" wrap-ansi@^2.0.0: version "2.1.0" @@ -8200,23 +8546,6 @@ yargs-parser@^9.0.2: dependencies: camelcase "^4.1.0" -yargs@11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" - dependencies: - cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^9.0.2" - yargs@3.32.0: version "3.32.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" @@ -8281,6 +8610,24 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"