diff --git a/react-native-scripts/package.json b/react-native-scripts/package.json index ca671347..0b2b7db6 100644 --- a/react-native-scripts/package.json +++ b/react-native-scripts/package.json @@ -1,6 +1,6 @@ { "name": "react-native-scripts", - "version": "0.0.27", + "version": "0.0.28", "description": "Configuration and scripts for Create React Native App.", "license": "BSD-3-Clause", "keywords": [ @@ -33,8 +33,9 @@ "match-require": "^2.0.0", "minimist": "^1.2.0", "path-exists": "^3.0.0", + "progress": "^1.1.8", "qrcode-terminal": "^0.11.0", - "xdl": "^37.0.0" + "xdl": "^40.0.0" }, "devDependencies": { "babel-plugin-add-module-exports": "^0.2.1", diff --git a/react-native-scripts/src/scripts/android.js b/react-native-scripts/src/scripts/android.js index 192ca840..ca8a173e 100644 --- a/react-native-scripts/src/scripts/android.js +++ b/react-native-scripts/src/scripts/android.js @@ -1,3 +1,5 @@ +// @flow + import { Android, Config, ProjectSettings, UrlUtils } from 'xdl'; import chalk from 'chalk'; @@ -5,6 +7,7 @@ import indent from 'indent-string'; import path from 'path'; import pathExists from 'path-exists'; import qr from 'qrcode-terminal'; +import log from '../util/log'; import packager from '../util/packager'; @@ -19,14 +22,13 @@ packager.run(startAndroidAndPrintInfo); // print a nicely formatted message with setup information async function startAndroidAndPrintInfo() { const address = await UrlUtils.constructManifestUrlAsync(process.cwd()); - console.log('Starting Android...'); + log.withTimestamp('Starting Android...'); const { success, error } = await Android.openProjectAsync(process.cwd()); qr.generate(address, qrCode => { - console.log( - `${chalk.green('Packager started!')} - + log.withTimestamp(`${chalk.green('Packager started!')}`); + log(` To view your app with live reloading, point the Expo app to this QR code. You'll find the QR scanner on the Projects tab of the app. @@ -46,6 +48,6 @@ Logs from serving your app will appear here. Press Ctrl+C at any time to stop. }); if (!success) { - console.log(chalk.red(error.message)); + log(chalk.red(error.message)); } } diff --git a/react-native-scripts/src/scripts/eject.js b/react-native-scripts/src/scripts/eject.js index 70a8cadb..13d731c1 100644 --- a/react-native-scripts/src/scripts/eject.js +++ b/react-native-scripts/src/scripts/eject.js @@ -6,6 +6,7 @@ import inquirer from 'inquirer'; import matchRequire from 'match-require'; import path from 'path'; import spawn from 'cross-spawn'; +import log from '../util/log'; import { detach } from '../util/expo'; @@ -31,7 +32,7 @@ We didn't find any uses of the Expo SDK in your project, so you should be fine t "Plain" React Native. (This check isn't very sophisticated, though.)`; } - console.log( + log( ` ${expoSdkWarning} @@ -95,7 +96,7 @@ Ejecting is permanent! Please be careful with your selection. newDisplayName = expName; } - console.log( + log( "We have a couple of questions to ask you about how you'd like to name your app:" ); const { enteredName, enteredDisplayname } = await inquirer.prompt([ @@ -120,10 +121,10 @@ Ejecting is permanent! Please be careful with your selection. appJson.name = enteredName; appJson.displayName = enteredDisplayname; - console.log('Writing your selections to app.json...'); + log('Writing your selections to app.json...'); // write the updated app.json file await fsp.writeFile(path.resolve('app.json'), JSON.stringify(appJson, null, 2)); - console.log(chalk.green('Wrote to app.json, please update it manually in the future.')); + log(chalk.green('Wrote to app.json, please update it manually in the future.')); const ejectCommand = 'node'; const ejectArgs = [ @@ -136,13 +137,13 @@ Ejecting is permanent! Please be careful with your selection. }); if (status !== 0) { - console.log( + log( chalk.red(`Eject failed with exit code ${status}, see above output for any issues.`) ); - console.log(chalk.yellow('You may want to delete the `ios` and/or `android` directories.')); + log(chalk.yellow('You may want to delete the `ios` and/or `android` directories.')); process.exit(1); } else { - console.log('Successfully copied template native code.'); + log('Successfully copied template native code.'); } // if the project .babelrc matches the template one, then we don't need to have it around anymore @@ -156,14 +157,14 @@ Ejecting is permanent! Please be careful with your selection. if (projectBabelRc === templateBabelRc) { await fsp.unlink(projectBabelPath); - console.log( + log( chalk.green( `The template .babelrc is no longer necessary after ejecting. It has been successfully deleted.` ) ); } else { - console.log( + log( chalk.yellow( `It looks like you modified your .babelrc file. Make sure to change your babel preset to \`react-native\`.` @@ -171,13 +172,13 @@ Make sure to change your babel preset to \`react-native\`.` ); } } catch (e) { - console.log( + log( chalk.yellow( `We had an issue preparing your .babelrc for ejection. If you have a .babelrc in your project, make sure to change the preset to \`react-native\`.` ) ); - console.log(chalk.red(e)); + log(chalk.red(e)); } delete pkgJson.main; @@ -195,14 +196,14 @@ If you have a .babelrc in your project, make sure to change the preset to \`reac // no longer relevant to an ejected project (maybe build is?) delete pkgJson.scripts.eject; - console.log(`Updating your ${npmOrYarn} scripts in package.json...`); + log(`Updating your ${npmOrYarn} scripts in package.json...`); await fsp.writeFile(path.resolve('package.json'), JSON.stringify(pkgJson, null, 2)); - console.log(chalk.green('Your package.json is up to date!')); + log(chalk.green('Your package.json is up to date!')); // FIXME now we need to provide platform-specific entry points until upstream uses a single one - console.log(`Adding platform-specific entry points...`); + log(`Adding platform-specific entry points...`); const lolThatsSomeComplexCode = `import { AppRegistry } from 'react-native'; import App from './App'; @@ -212,15 +213,15 @@ AppRegistry.registerComponent('${newName}', () => App); await fsp.writeFile(path.resolve('index.ios.js'), lolThatsSomeComplexCode); await fsp.writeFile(path.resolve('index.android.js'), lolThatsSomeComplexCode); - console.log(chalk.green('Added new entry points!')); + log(chalk.green('Added new entry points!')); - console.log( + log( ` Note that using \`${npmOrYarn} start\` will now require you to run Xcode and/or Android Studio to build the native code for your project.` ); - console.log( + log( chalk.yellow( ` It's recommended to delete your node_modules directory and rerun ${npmOrYarn} @@ -232,11 +233,11 @@ to ensure that the changes we made to package.json persist correctly. await detach(); } else { // we don't want to print the survey for cancellations - console.log('OK! If you change your mind you can run this command again.'); + log('OK! If you change your mind you can run this command again.'); return; } - console.log( + log( `${chalk.green('Ejected successfully!')} Please consider letting us know why you ejected in this survey: ${chalk.cyan('https://goo.gl/forms/iD6pl218r7fn9N0d2')}` diff --git a/react-native-scripts/src/scripts/init.js b/react-native-scripts/src/scripts/init.js index 2103d193..020f422f 100644 --- a/react-native-scripts/src/scripts/init.js +++ b/react-native-scripts/src/scripts/init.js @@ -5,18 +5,19 @@ import fsp from 'fs-promise'; import path from 'path'; import pathExists from 'path-exists'; import spawn from 'cross-spawn'; +import log from '../util/log'; // UPDATE DEPENDENCY VERSIONS HERE const DEFAULT_DEPENDENCIES = { - expo: '^15.1.0', - react: '~15.4.0', - 'react-native': '0.42.3', + expo: '^16.0.0', + react: '16.0.0-alpha.6', + 'react-native': '^0.43.4', }; // TODO figure out how this interacts with ejection const DEFAULT_DEV_DEPENDENCIES = { - 'jest-expo': '^0.3.0', - 'react-test-renderer': '~15.4.1', + 'jest-expo': '^0.4.0', + 'react-test-renderer': '16.0.0-alpha.6', }; module.exports = async (appPath: string, appName: string, verbose: boolean, cwd: string = '') => { @@ -94,8 +95,8 @@ module.exports = async (appPath: string, appName: string, verbose: boolean, cwd: } } - console.log(`Installing dependencies using ${command}...`); - console.log(); + log(`Installing dependencies using ${command}...`); + log(); // why is this here if (command === 'yarnpkg') { // it's weird to print a yarn alias that no one uses @@ -118,7 +119,7 @@ module.exports = async (appPath: string, appName: string, verbose: boolean, cwd: cdpath = appPath; } - console.log( + log( ` Success! Created ${appName} at ${appPath} @@ -151,13 +152,13 @@ We suggest that you begin by typing: ); if (readmeExists) { - console.log( + log( ` ${chalk.yellow('You had a `README.md` file, we renamed it to `README.old.md`')}` ); } - console.log(); - console.log('Happy hacking!'); + log(); + log('Happy hacking!'); }); }; diff --git a/react-native-scripts/src/scripts/ios.js b/react-native-scripts/src/scripts/ios.js index 789fe67b..b2bd1837 100644 --- a/react-native-scripts/src/scripts/ios.js +++ b/react-native-scripts/src/scripts/ios.js @@ -1,3 +1,5 @@ +// @flow + import { Config, ProjectSettings, Simulator, UrlUtils } from 'xdl'; import chalk from 'chalk'; @@ -5,6 +7,7 @@ import indent from 'indent-string'; import path from 'path'; import pathExists from 'path-exists'; import qr from 'qrcode-terminal'; +import log from '../util/log'; import packager from '../util/packager'; @@ -15,12 +18,12 @@ Config.offline = true; const command: string = pathExists.sync(path.join(process.cwd(), 'yarn.lock')) ? 'yarnpkg' : 'npm'; if (!Simulator.isPlatformSupported()) { - console.log( + log( chalk.red( '\nThis command only works on macOS computers with Xcode and the iOS simulator installed.' ) ); - console.log( + log( chalk.yellow( `If you run \`${chalk.cyan(command + ' start')}\` then you can view your app on a physical device.\n` ) @@ -37,14 +40,13 @@ async function startSimulatorAndPrintInfo() { hostType: 'localhost', }); - console.log('Starting simulator...'); + log.withTimestamp('Starting simulator...'); const { success, msg } = await Simulator.openUrlInSimulatorSafeAsync(localAddress); if (success) { qr.generate(address, qrCode => { - console.log( - `${chalk.green('Packager started!')} - + log.withTimestamp(`${chalk.green('Packager started!')}`); + log(` To view your app with live reloading, point the Expo app to this QR code. You'll find the QR scanner on the Projects tab of the app. @@ -65,7 +67,7 @@ If you restart the simulator or change the simulated hardware, you may need to r ); }); } else { - console.log( + log.withTimestamp( `${chalk.red('Failed to start simulator:')} ${msg} diff --git a/react-native-scripts/src/scripts/start.js b/react-native-scripts/src/scripts/start.js index 26121c70..d99e4f63 100644 --- a/react-native-scripts/src/scripts/start.js +++ b/react-native-scripts/src/scripts/start.js @@ -5,6 +5,7 @@ import { Config, ProjectSettings, UrlUtils } from 'xdl'; import chalk from 'chalk'; import indent from 'indent-string'; import qr from 'qrcode-terminal'; +import log from '../util/log'; import packager from '../util/packager'; @@ -17,7 +18,7 @@ const args = require('minimist')(process.argv.slice(2), { boolean: ['--reset-cac const options = {}; if (args['reset-cache']) { options.reset = true; - console.log('Asking packager to reset its cache...'); + log('Asking packager to reset its cache...'); } packager.run(printServerInfo, options); @@ -28,7 +29,7 @@ async function printServerInfo() { // who knows why qrcode-terminal takes a callback instead of just returning a string const address = await UrlUtils.constructManifestUrlAsync(process.cwd()); qr.generate(address, qrCode => { - console.log( + log( `${chalk.green('Packager started!')} To view your app with live reloading, point the Expo app to this QR code. diff --git a/react-native-scripts/src/util/log.js b/react-native-scripts/src/util/log.js new file mode 100644 index 00000000..68c952db --- /dev/null +++ b/react-native-scripts/src/util/log.js @@ -0,0 +1,38 @@ +// @flow + +import chalk from 'chalk'; + +function log() { + const args = Array.prototype.slice.call(arguments, 0); + + respectProgressBars(() => { + console.log(...args); + }); +}; + +log.withTimestamp = function() { + const prefix = chalk.dim(new Date().toLocaleTimeString()) + ':'; + const args = [prefix].concat(Array.prototype.slice.call(arguments, 0)); + + respectProgressBars(() => { + console.log(...args); + }); +} + +let _bundleProgressBar; +log.setBundleProgressBar = function(bundleProgressBar) { + _bundleProgressBar = bundleProgressBar; +}; + +function respectProgressBars(commitLogs) { + if (_bundleProgressBar) { + _bundleProgressBar.terminate(); + _bundleProgressBar.lastDraw = ''; + commitLogs(); + _bundleProgressBar.render(); + } else { + commitLogs(); + } +} + +export default log; diff --git a/react-native-scripts/src/util/packager.js b/react-native-scripts/src/util/packager.js index d1851b62..1bf54d3f 100644 --- a/react-native-scripts/src/util/packager.js +++ b/react-native-scripts/src/util/packager.js @@ -1,10 +1,13 @@ // @flow -import { Project, ProjectSettings, ProjectUtils } from 'xdl'; +import { PackagerLogsStream, Project, ProjectSettings, ProjectUtils } from 'xdl'; +import ProgressBar from 'progress'; import bunyan from 'bunyan'; import chalk from 'chalk'; +import log from './log'; + // TODO get babel output that's nice enough to let it take over the console function clearConsole() { process.stdout.write(process.platform === 'win32' ? '\x1Bc' : '\x1B[2J\x1B[3J\x1B[H'); @@ -23,9 +26,10 @@ function installExitHooks(projectDir) { } process.on('SIGINT', () => { - console.log('\nStopping packager...'); + log.withTimestamp('Stopping packager...'); cleanUpPackager(projectDir).then(() => { - console.log(chalk.green('Packager stopped.')); + // TODO: this shows up after process exits, fix it + log.withTimestamp(chalk.green('Packager stopped.')); process.exit(); }); }); @@ -52,53 +56,115 @@ function run(onReady: () => ?any, options: Object = {}) { let packagerReady = false; let needsClear = false; let logBuffer = ''; + let progressBar; const projectDir = process.cwd(); - ProjectUtils.attachLoggerStream(projectDir, { - stream: { - write: chunk => { - // don't show the initial packager setup, so that we can display a nice getting started message - // note: it's possible for the RN packager to log its setup before the express server is done - // this is a potential race condition but it'll work for now - if (chunk.msg.indexOf('Loading dependency graph, done.') >= 0) { - packagerReady = true; - // TODO clearConsole(); - onReady(); - return; - } - const messagePrefix = chalk.dim(new Date().toLocaleTimeString()) + ':'; + const handleLogChunk = chunk => { + // we don't need to print the entire manifest when loading the app + if (chunk.msg.indexOf(' with appParams: ') >= 0) { + if (needsClear) { + // this is set when we previously encountered an error + // TODO clearConsole(); + } + log.withTimestamp(`Running app on ${chunk.deviceName}\n`); + return; + } - // we don't need to print the entire manifest when loading the app - if (chunk.msg.indexOf(' with appParams: ') >= 0) { - if (needsClear) { - // this is set when we previously encountered an error - // TODO clearConsole(); - } - console.log(`${messagePrefix} Loading your app...\n`); - return; - } + if (chunk.msg === 'Dependency graph loaded.') { + packagerReady = true; + onReady(); + return; + } - if (packagerReady) { - const message = `${messagePrefix} ${chunk.msg}\n`; - if (chunk.level <= bunyan.INFO) { - console.log(message); - } else if (chunk.level === bunyan.WARN) { - console.log(chalk.yellow(message)); - } else { - console.log(chalk.red(message)); - - // if you run into a syntax error then we should clear log output on reload - needsClear = message.indexOf('SyntaxError') >= 0; - } + if (packagerReady) { + const message = `${chunk.msg.trim()}\n`; + if (chunk.level <= bunyan.INFO) { + log.withTimestamp(message); + } else if (chunk.level === bunyan.WARN) { + log.withTimestamp(chalk.yellow(message)); + } else { + log.withTimestamp(chalk.red(message)); + + // if you run into a syntax error then we should clear log output on reload + needsClear = message.indexOf('SyntaxError') >= 0; + } + } else { + if (chunk.level >= bunyan.ERROR) { + log(chalk.yellow('***ERROR STARTING PACKAGER***')); + log(logBuffer); + log(chalk.red(chunk.msg)); + logBuffer = ''; + } else { + logBuffer += chunk.msg + '\n'; + } + } + }; + + // Subscribe to packager/server logs + let packagerLogsStream = new PackagerLogsStream({ + projectRoot: projectDir, + onStartBuildBundle: () => { + progressBar = new ProgressBar('Building JavaScript bundle [:bar] :percent', { + total: 100, + clear: true, + complete: '=', + incomplete: ' ', + }); + + log.setBundleProgressBar(progressBar); + }, + onProgressBuildBundle: percent => { + if (!progressBar || progressBar.complete) return; + let ticks = percent - progressBar.curr; + ticks > 0 && progressBar.tick(ticks); + }, + onFinishBuildBundle: (err, startTime, endTime) => { + if (progressBar && !progressBar.complete) { + progressBar.tick(100 - progressBar.curr); + } + + if (progressBar) { + log.setBundleProgressBar(null); + progressBar = null; + + if (err) { + log.withTimestamp( + chalk.red(`Failed building JavaScript bundle`) + ); } else { - if (chunk.level >= bunyan.ERROR) { - console.log(chalk.yellow('***ERROR STARTING PACKAGER***')); - console.log(logBuffer); - console.log(chalk.red(chunk.msg)); - logBuffer = ''; - } else { - logBuffer += chunk.msg + '\n'; + let duration = endTime - startTime; + log.withTimestamp( + chalk.green(`Finished building JavaScript bundle in ${duration}ms`) + ); + } + } + }, + updateLogs: updater => { + let newLogChunks = updater([]); + + if (progressBar) { + // Restarting watchman causes `onFinishBuildBundle` to not fire. Until + // this is handled upstream in xdl, reset progress bar with error here. + newLogChunks.forEach(chunk => { + if (chunk.msg === 'Restarted watchman.') { + progressBar.tick(100 - progressBar.curr); + log.setBundleProgressBar(null); + progressBar = null; + log.withTimestamp(chalk.red('Failed building JavaScript bundle')); } + }); + } + + newLogChunks.map(handleLogChunk); + }, + }); + + // Subscribe to device updates separately from packager/server updates + ProjectUtils.attachLoggerStream(projectDir, { + stream: { + write: chunk => { + if (chunk.tag === 'device') { + handleLogChunk(chunk); } }, }, @@ -106,12 +172,12 @@ function run(onReady: () => ?any, options: Object = {}) { }); installExitHooks(projectDir); - console.log('Starting packager...'); + log.withTimestamp('Starting packager...'); Project.startAsync(projectDir, options).then( () => {}, reason => { - console.log(chalk.red(`Error starting packager: ${reason.stack}`)); + log.withTimestamp(chalk.red(`Error starting packager: ${reason.stack}`)); process.exit(1); } ); diff --git a/react-native-scripts/template/app.json b/react-native-scripts/template/app.json index e72780f6..b3600bca 100644 --- a/react-native-scripts/template/app.json +++ b/react-native-scripts/template/app.json @@ -1,5 +1,5 @@ { "expo": { - "sdkVersion": "15.0.0" + "sdkVersion": "16.0.0" } } diff --git a/react-native-scripts/yarn.lock b/react-native-scripts/yarn.lock index 8adae8d6..aa304a75 100644 --- a/react-native-scripts/yarn.lock +++ b/react-native-scripts/yarn.lock @@ -207,10 +207,14 @@ ast-types@0.8.12: version "0.8.12" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.12.tgz#a0d90e4351bb887716c83fd637ebf818af4adfcc" -ast-types@0.9.6, ast-types@0.x.x: +ast-types@0.9.6: version "0.9.6" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" +ast-types@0.x.x: + version "0.9.10" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.10.tgz#4472a8508726269562c766307133e0d4ed7ada52" + async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" @@ -219,7 +223,7 @@ async@^0.9.0: version "0.9.2" resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" -async@^1.4.0, async@~1.5: +async@~1.5: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -798,7 +802,7 @@ babel-register@^6.24.0: mkdirp "^0.5.1" source-map-support "^0.4.2" -babel-runtime@^5.2.17, babel-runtime@^5.8.38: +babel-runtime@^5.8.38: version "5.8.38" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-5.8.38.tgz#1c0b02eb63312f5f087ff20450827b425c9d4c19" dependencies: @@ -944,8 +948,8 @@ builtin-modules@^1.0.0: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" bunyan@^1.8.4: - version "1.8.8" - resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.8.tgz#6549ed6db088e4d82b7be3bcc6d0697159f6e209" + version "1.8.9" + resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.9.tgz#2c7c9d422ea64ee2465d52b4decd72de0657401a" optionalDependencies: dtrace-provider "~0.8" moment "^2.10.6" @@ -1094,7 +1098,7 @@ commoner@~0.10.3: q "^1.1.2" recast "^0.11.17" -component-emitter@^1.2.0, component-emitter@~1.2.0: +component-emitter@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" @@ -1126,8 +1130,8 @@ content-type@~1.0.2: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" convert-source-map@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.4.0.tgz#e3dad195bf61bfe13a7a3c73e9876ec14a0268f3" + version "1.5.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" cookie-signature@1.0.6: version "1.0.6" @@ -1137,10 +1141,6 @@ cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" -cookiejar@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.0.6.tgz#0abf356ad00d1c5a219d88d44518046dd026acfe" - cookiejar@^2.0.6: version "2.1.0" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.0.tgz#86549689539b6d0e269b6637a304be508194d898" @@ -1199,7 +1199,7 @@ data-uri-to-buffer@0: version "0.0.4" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-0.0.4.tgz#46e13ab9da8e309745c8d01ce547213ebdb2fe3f" -debug@*, debug@2, debug@^2.1.1, debug@^2.2.0: +debug@*, debug@2, debug@2.6.3, debug@^2.1.1, debug@^2.2.0: version "2.6.3" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.3.tgz#0f7eb8c30965ec08c72accfa0130c8b79984141d" dependencies: @@ -1211,12 +1211,6 @@ debug@2.6.1: dependencies: ms "0.7.2" -debug@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" - dependencies: - ms "0.7.1" - decamelize@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1273,10 +1267,8 @@ degenerator@~1.0.0: esprima "3.x.x" delay-async@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delay-async/-/delay-async-1.0.0.tgz#b4ce7995fc815937f7fa871e1a8cb30ae98ed65c" - dependencies: - babel-runtime "^5.2.17" + version "1.1.0" + resolved "https://registry.yarnpkg.com/delay-async/-/delay-async-1.1.0.tgz#b8fa8fecb88621350705285c8f3cf177dfde666d" delayed-stream@~1.0.0: version "1.0.0" @@ -1463,7 +1455,7 @@ express@^4.13.4: utils-merge "1.0.0" vary "~1.1.0" -extend@3, extend@3.0.0, extend@^3.0.0, extend@~3.0.0: +extend@3, extend@^3.0.0, extend@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" @@ -1488,8 +1480,8 @@ fast-levenshtein@~2.0.4: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" fbjs@^0.8.4: - version "0.8.9" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.9.tgz#180247fbd347dcc9004517b904f865400a0c8f14" + version "0.8.12" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" dependencies: core-js "^1.0.0" isomorphic-fetch "^2.1.1" @@ -1528,10 +1520,10 @@ fill-range@^2.1.0: repeat-string "^1.5.2" finalhandler@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.0.tgz#b5691c2c0912092f18ac23e9416bde5cd7dc6755" + version "1.0.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.1.tgz#bcd15d1689c0e5ed729b6f7f541a6df984117db8" dependencies: - debug "2.6.1" + debug "2.6.3" encodeurl "~1.0.1" escape-html "~1.0.3" on-finished "~2.3.0" @@ -1609,14 +1601,6 @@ forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" -form-data@1.0.0-rc3: - version "1.0.0-rc3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.0-rc3.tgz#d35bc62e7fbc2937ae78f948aaa0d38d90607577" - dependencies: - async "^1.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.3" - form-data@^2.1.1, form-data@~2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" @@ -1629,10 +1613,6 @@ formidable@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.1.1.tgz#96b8886f7c3c3508b932d6bd70c4d3a88f35f1a9" -formidable@~1.0.14: - version "1.0.17" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.0.17.tgz#ef5491490f9433b705faa77249c99029ae348559" - forwarded@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" @@ -1683,7 +1663,7 @@ fsevents@^1.0.0: nan "^2.3.0" node-pre-gyp "^0.6.29" -fstream-ignore@~1.0.5: +fstream-ignore@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" dependencies: @@ -1691,7 +1671,7 @@ fstream-ignore@~1.0.5: inherits "2" minimatch "^3.0.0" -fstream@^1.0.0, fstream@^1.0.2, fstream@^1.0.8, fstream@~1.0.10: +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2, fstream@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" dependencies: @@ -1782,8 +1762,8 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: path-is-absolute "^1.0.0" globals@^9.0.0: - version "9.16.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.16.0.tgz#63e903658171ec2d9f51b1d31de5e2b8dc01fb80" + version "9.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" @@ -1857,8 +1837,8 @@ home-or-tmp@^2.0.0: os-tmpdir "^1.0.1" hosted-git-info@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.2.0.tgz#7a0d097863d886c0fabbdcd37bf1758d8becf8a5" + version "2.4.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.1.tgz#4b0445e41c004a8bd1337773a4ff790ca40318c8" http-errors@~1.6.1: version "1.6.1" @@ -1952,9 +1932,9 @@ ip@^1.1.3, ip@^1.1.4: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" -ipaddr.js@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.2.0.tgz#8aba49c9192799585bdd643e0ccb50e8ae777ba4" +ipaddr.js@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.3.0.tgz#1e03a52fdad83a8bbb2b25cbf4998b4cffcd3dec" is-arrayish@^0.2.1: version "0.2.1" @@ -2074,9 +2054,9 @@ isemail@2.x.x: version "2.2.1" resolved "https://registry.yarnpkg.com/isemail/-/isemail-2.2.1.tgz#0353d3d9a62951080c262c2aa0a42b8ea8e9e2a6" -isexe@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" isobject@^2.0.0: version "2.1.0" @@ -2106,8 +2086,8 @@ jodid25519@^1.0.0: jsbn "~0.1.0" joi@^10.0.2: - version "10.2.2" - resolved "https://registry.yarnpkg.com/joi/-/joi-10.2.2.tgz#dc5a792b7b4c6fffa562242a95b55d9d3f077e24" + version "10.3.1" + resolved "https://registry.yarnpkg.com/joi/-/joi-10.3.1.tgz#2d22cab6eea650f02601144e51c35e2ba5ec497a" dependencies: hoek "4.x.x" isemail "2.x.x" @@ -2325,7 +2305,7 @@ merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" -methods@^1.1.1, methods@~1.1.1, methods@~1.1.2: +methods@^1.1.1, methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -2347,15 +2327,15 @@ micromatch@^2.1.5: parse-glob "^3.0.4" regex-cache "^0.4.2" -mime-db@~1.26.0: - version "1.26.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" +mime-db@~1.27.0: + version "1.27.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" -mime-types@^2.1.12, mime-types@^2.1.3, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: - version "2.1.14" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" +mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: + version "2.1.15" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" dependencies: - mime-db "~1.26.0" + mime-db "~1.27.0" mime@1.3.4, mime@^1.3.4: version "1.3.4" @@ -2396,17 +2376,13 @@ mkpath@^0.1.0: resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-0.1.0.tgz#7554a6f8d871834cc97b5462b122c4c124d6de91" moment@2.x.x, moment@^2.10.6: - version "2.17.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.1.tgz#fed9506063f36b10f066c8b59a144d7faebe1d82" + version "2.18.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" mout@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/mout/-/mout-0.11.1.tgz#ba3611df5f0e5b1ffbfd01166b8f02d1f5fa2b99" -ms@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" - ms@0.7.2, ms@^0.7.1: version "0.7.2" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" @@ -2455,29 +2431,32 @@ node-fetch@^1.0.1: is-stream "^1.0.1" node-pre-gyp@^0.6.29: - version "0.6.33" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.33.tgz#640ac55198f6a925972e0c16c4ac26a034d5ecc9" + version "0.6.34" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" dependencies: - mkdirp "~0.5.1" - nopt "~3.0.6" - npmlog "^4.0.1" - rc "~1.1.6" - request "^2.79.0" - rimraf "~2.5.4" - semver "~5.3.0" - tar "~2.2.1" - tar-pack "~3.3.0" - -node-uuid@^1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" - -nopt@^3.0.1, nopt@~3.0.6: + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "^2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +nopt@^3.0.1: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: abbrev "1" +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + nopt@~1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" @@ -2494,8 +2473,10 @@ normalize-package-data@^2.3.2: validate-npm-package-license "^3.0.1" normalize-path@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" npm-run-path@^1.0.0: version "1.0.0" @@ -2503,7 +2484,7 @@ npm-run-path@^1.0.0: dependencies: path-key "^1.0.0" -npmlog@^4.0.1: +npmlog@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" dependencies: @@ -2541,21 +2522,15 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" -once@^1.3.0: +once@^1.3.0, once@^1.3.3: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" -once@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - dependencies: - wrappy "1" - onetime@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.0.tgz#52aa8110e52fc5126ffc667bd8ec21c2ed209ce6" + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" dependencies: mimic-fn "^1.0.0" @@ -2587,10 +2562,17 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" +osenv@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + pac-proxy-agent@1: version "1.0.0" resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-1.0.0.tgz#dcd5b746581367430a236e88eacfd4e5b8d068a5" @@ -2717,6 +2699,10 @@ process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + promise-props@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/promise-props/-/promise-props-1.0.0.tgz#e4c673e65a9b0339ded85b1c5ad47e34349c5a1c" @@ -2728,11 +2714,11 @@ promise@^7.1.1: asap "~2.0.3" proxy-addr@~1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.3.tgz#dc97502f5722e888467b3fa2297a7b1ff47df074" + version "1.1.4" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.4.tgz#27e545f6960a44a627d9b44467e35c1b6b4ce2f3" dependencies: forwarded "~0.1.0" - ipaddr.js "1.2.0" + ipaddr.js "1.3.0" proxy-agent@2: version "2.0.0" @@ -2760,17 +2746,13 @@ punycode@^1.4.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" q@^1.1.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" + version "1.5.0" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" qrcode-terminal@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz#ffc6c28a2fc0bfb47052b47e23f4f446a5fbdb9e" -qs@2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-2.3.3.tgz#e9e85adbe75da0bbe4c8e0476a086290f863b404" - qs@6.4.0, qs@^6.1.0, qs@^6.2.1, qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" @@ -2798,9 +2780,9 @@ raw-body@~2.2.0: iconv-lite "0.4.15" unpipe "1.0.0" -rc@~1.1.6: - version "1.1.7" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.7.tgz#c5ea564bb07aff9fd3a5b32e906c1d3a65940fea" +rc@^1.1.7: + version "1.2.0" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.0.tgz#c7de973b7b46297c041366b2fd3d2363b1697c66" dependencies: deep-extend "~0.4.0" ini "~1.3.0" @@ -2846,15 +2828,6 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -readable-stream@1.0.27-1: - version "1.0.27-1" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.27-1.tgz#6b67983c20357cefd07f0165001a16d710d91078" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readable-stream@1.1.x, readable-stream@^1.1.8: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" @@ -2864,21 +2837,9 @@ readable-stream@1.1.x, readable-stream@^1.1.8: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@2, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.0.5: - version "2.2.3" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.3.tgz#9cf49463985df016c8ae8813097a9293a9b33729" - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@~2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" +readable-stream@2, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.4: + version "2.2.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.6.tgz#8b43aed76e71483938d12a8d46c6cf1a00b1f816" dependencies: buffer-shims "^1.0.0" core-util-is "~1.0.0" @@ -2915,13 +2876,9 @@ recast@^0.11.17: private "~0.1.5" source-map "~0.5.0" -reduce-component@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/reduce-component/-/reduce-component-1.0.1.tgz#e0c93542c574521bea13df0f9488ed82ab77c5da" - redux-logger@^2.7.4: - version "2.8.2" - resolved "https://registry.yarnpkg.com/redux-logger/-/redux-logger-2.8.2.tgz#52140a89afa1c1d25312cc17649c116650bf7fca" + version "2.10.2" + resolved "https://registry.yarnpkg.com/redux-logger/-/redux-logger-2.10.2.tgz#3c5a5f0a6f32577c1deadf6655f257f82c6c3937" dependencies: deep-diff "0.3.4" @@ -2991,6 +2948,10 @@ regjsparser@^0.1.4: dependencies: jsesc "~0.5.0" +remove-trailing-separator@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" + remove-trailing-slash@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-slash/-/remove-trailing-slash-0.1.0.tgz#1498e5df0984c27e49b76ebf06887ca2d01150d2" @@ -3015,7 +2976,7 @@ request-progress@^3.0.0: dependencies: throttleit "^1.0.0" -request@^2.74.0, request@^2.75.0, request@^2.79.0, request@^2.81.0: +request@^2.74.0, request@^2.75.0, request@^2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: @@ -3051,12 +3012,12 @@ reqwest@2.0.5: resolved "https://registry.yarnpkg.com/reqwest/-/reqwest-2.0.5.tgz#00fb15ac4918c419ca82b43f24c78882e66039a1" rest-facade@^1.2.7: - version "1.4.1" - resolved "https://registry.yarnpkg.com/rest-facade/-/rest-facade-1.4.1.tgz#c9b87a4ddf04d95fc5a8acf0f1341561cacee4a2" + version "1.5.0" + resolved "https://registry.yarnpkg.com/rest-facade/-/rest-facade-1.5.0.tgz#9d886eaf0256c7ecc902c17c9f7bf9072438dcee" dependencies: bluebird "^2.10.2" change-case "^2.3.0" - superagent "^1.4.0" + superagent "^3.5.2" restore-cursor@^2.0.0: version "2.0.0" @@ -3071,7 +3032,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: @@ -3083,12 +3044,6 @@ rimraf@~2.4.0: dependencies: glob "^6.0.1" -rimraf@~2.5.1, rimraf@~2.5.4: - version "2.5.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" - dependencies: - glob "^7.0.5" - run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" @@ -3107,7 +3062,7 @@ safe-json-stringify@~1: version "1.0.4" resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz#81a098f447e4bbc3ff3312a243521bc060ef5911" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@~5.3.0: +"semver@2 || 3 || 4 || 5", semver@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -3232,8 +3187,8 @@ socks@~1.1.5: smart-buffer "^1.0.13" source-map-support@^0.4.2: - version "0.4.12" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.12.tgz#f47d02bf01efaf0c160d3a37d038401b92b1867e" + version "0.4.14" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.14.tgz#9d4463772598b86271b4f523f6c1f4e02a7d6aef" dependencies: source-map "^0.5.6" @@ -3277,8 +3232,8 @@ sshpk@^1.7.0: tweetnacl "~0.14.0" stable@~0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.5.tgz#08232f60c732e9890784b5bed0734f8b32a887b9" + version "0.1.6" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.6.tgz#910f5d2aed7b520c6e777499c1f32e139fdecb10" "statuses@>= 1.3.1 < 2", statuses@~1.3.1: version "1.3.1" @@ -3362,25 +3317,9 @@ superagent-retry@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/superagent-retry/-/superagent-retry-0.6.0.tgz#e49b35ca96c0e3b1d0e3f49605136df0e0a028b7" -superagent@^1.4.0: - version "1.8.5" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-1.8.5.tgz#1c0ddc3af30e80eb84ebc05cb2122da8fe940b55" - dependencies: - component-emitter "~1.2.0" - cookiejar "2.0.6" - debug "2" - extend "3.0.0" - form-data "1.0.0-rc3" - formidable "~1.0.14" - methods "~1.1.1" - mime "1.3.4" - qs "2.3.3" - readable-stream "1.0.27-1" - reduce-component "1.0.1" - -superagent@^3.0.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.5.0.tgz#56872b8e1ee6de994035ada2e53266899af95a6d" +superagent@^3.0.0, superagent@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.5.2.tgz#3361a3971567504c351063abeaae0faa23dbf3f8" dependencies: component-emitter "^1.2.0" cookiejar "^2.0.6" @@ -3408,18 +3347,18 @@ symbol-observable@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" -tar-pack@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" +tar-pack@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" dependencies: - debug "~2.2.0" - fstream "~1.0.10" - fstream-ignore "~1.0.5" - once "~1.3.3" - readable-stream "~2.1.4" - rimraf "~2.5.1" - tar "~2.2.1" - uid-number "~0.0.6" + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" tar.gz@^1.0.5: version "1.0.5" @@ -3431,7 +3370,7 @@ tar.gz@^1.0.5: mout "^0.11.0" tar "^2.1.1" -tar@^2.1.1, tar@~2.2.1: +tar@^2.1.1, tar@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" dependencies: @@ -3551,7 +3490,7 @@ ua-parser-js@^0.7.9: version "0.7.12" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" -uid-number@~0.0.6: +uid-number@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" @@ -3592,7 +3531,7 @@ uuid@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" -uuid@^3.0.0: +uuid@^3.0.0, uuid@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" @@ -3604,8 +3543,8 @@ validate-npm-package-license@^3.0.1: spdx-expression-parse "~1.0.0" vary@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" + version "1.1.1" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" verror@1.3.6: version "1.3.6" @@ -3618,10 +3557,10 @@ whatwg-fetch@>=0.10.0: resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" which@^1.2.8, which@^1.2.9: - version "1.2.12" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" + version "1.2.14" + resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" dependencies: - isexe "^1.1.1" + isexe "^2.0.0" wide-align@^1.1.0: version "1.1.0" @@ -3649,9 +3588,9 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -xdl@^37.0.0: - version "37.0.1" - resolved "https://registry.yarnpkg.com/xdl/-/xdl-37.0.1.tgz#d0b945ce57f5a07559402bdb1b624aff5f3fa674" +xdl@^40.0.0: + version "40.0.0" + resolved "https://registry.yarnpkg.com/xdl/-/xdl-40.0.0.tgz#9fee04de06012ecac1b543b10d49090f8accf78c" dependencies: "@ccheever/crayon" "^5.0.0" "@exponent/json-file" "^5.3.0" @@ -3689,7 +3628,6 @@ xdl@^37.0.0: mkdirp-promise "^5.0.0" mz "^2.6.0" ncp "^2.0.0" - node-uuid "^1.4.7" opn "^4.0.2" promise-props "^1.0.0" react "^15.4.2" @@ -3706,6 +3644,7 @@ xdl@^37.0.0: tar.gz "^1.0.5" tree-kill "^1.1.0" url "^0.11.0" + uuid "^3.0.1" xhr2 "^0.1.3" yesno "^0.0.1"