diff --git a/lib/app/App.vue b/app/App.vue similarity index 100% rename from lib/app/App.vue rename to app/App.vue diff --git a/lib/app/client.js b/app/client.js similarity index 100% rename from lib/app/client.js rename to app/client.js diff --git a/lib/app/components/nuxt-child.js b/app/components/nuxt-child.js similarity index 100% rename from lib/app/components/nuxt-child.js rename to app/components/nuxt-child.js diff --git a/lib/app/components/nuxt-error.vue b/app/components/nuxt-error.vue similarity index 100% rename from lib/app/components/nuxt-error.vue rename to app/components/nuxt-error.vue diff --git a/lib/app/components/nuxt-link.js b/app/components/nuxt-link.js similarity index 100% rename from lib/app/components/nuxt-link.js rename to app/components/nuxt-link.js diff --git a/lib/app/components/nuxt-loading.vue b/app/components/nuxt-loading.vue similarity index 100% rename from lib/app/components/nuxt-loading.vue rename to app/components/nuxt-loading.vue diff --git a/lib/app/components/nuxt.vue b/app/components/nuxt.vue similarity index 100% rename from lib/app/components/nuxt.vue rename to app/components/nuxt.vue diff --git a/lib/app/index.js b/app/index.js similarity index 100% rename from lib/app/index.js rename to app/index.js diff --git a/lib/app/layouts/default.vue b/app/layouts/default.vue similarity index 100% rename from lib/app/layouts/default.vue rename to app/layouts/default.vue diff --git a/lib/app/middleware.js b/app/middleware.js similarity index 100% rename from lib/app/middleware.js rename to app/middleware.js diff --git a/lib/app/router.js b/app/router.js similarity index 100% rename from lib/app/router.js rename to app/router.js diff --git a/lib/app/server.js b/app/server.js similarity index 100% rename from lib/app/server.js rename to app/server.js diff --git a/lib/app/store.js b/app/store.js similarity index 100% rename from lib/app/store.js rename to app/store.js diff --git a/lib/app/utils.js b/app/utils.js similarity index 100% rename from lib/app/utils.js rename to app/utils.js diff --git a/lib/views/app.template.html b/app/views/app.template.html similarity index 100% rename from lib/views/app.template.html rename to app/views/app.template.html diff --git a/lib/views/error.html b/app/views/error.html similarity index 100% rename from lib/views/error.html rename to app/views/error.html diff --git a/bin/nuxt b/bin/nuxt index 4e9019757d..04764d440f 100755 --- a/bin/nuxt +++ b/bin/nuxt @@ -1,9 +1,9 @@ #!/usr/bin/env node -var join = require('path').join +const join = require('path').join -var defaultCommand = 'dev' -var commands = new Set([ +const defaultCommand = 'dev' +const commands = new Set([ defaultCommand, 'init', 'build', @@ -19,6 +19,6 @@ if (commands.has(cmd)) { cmd = defaultCommand } -var bin = join(__dirname, 'nuxt-' + cmd) +const bin = join(__dirname, 'nuxt-' + cmd) require(bin) diff --git a/bin/nuxt-build b/bin/nuxt-build index 0f7b956563..5d70258cef 100755 --- a/bin/nuxt-build +++ b/bin/nuxt-build @@ -3,11 +3,13 @@ // Show logs process.env.DEBUG = 'nuxt:*' -var fs = require('fs') -var parseArgs = require('minimist') -var without = require('lodash').without -var Nuxt = require('../') -var resolve = require('path').resolve +const fs = require('fs') +const parseArgs = require('minimist') +const without = require('lodash').without +const { Nuxt } = require('../') +const resolve = require('path').resolve +const debug = require('debug')('nuxt:build') +debug.color = 2 // Force green color const argv = parseArgs(process.argv.slice(2), { alias: { @@ -36,8 +38,8 @@ if (argv.help) { process.exit(0) } -var rootDir = resolve(argv._[0] || '.') -var nuxtConfigFile = resolve(rootDir, argv['config-file']) +const rootDir = resolve(argv._[0] || '.') +const nuxtConfigFile = resolve(rootDir, argv['config-file']) var options = {} if (fs.existsSync(nuxtConfigFile)) { @@ -59,13 +61,13 @@ if (argv.analyze) { options.build.analyze = true } -console.log('[nuxt] Building...') // eslint-disable-line no-console -var nuxt = module.exports = new Nuxt(options) +debug('Building...') +const nuxt = module.exports = new Nuxt(options) nuxt.ready() -.then(() => { - console.log('[nuxt] Building done') // eslint-disable-line no-console -}) -.catch((err) => { - console.error(err) // eslint-disable-line no-console - process.exit(1) -}) + .then(() => { + debug('Building done') + }) + .catch((err) => { + console.error(err) // eslint-disable-line no-console + process.exit(1) + }) diff --git a/bin/nuxt-dev b/bin/nuxt-dev index 7f52e988f5..f42e911ba0 100755 --- a/bin/nuxt-dev +++ b/bin/nuxt-dev @@ -3,17 +3,17 @@ // Show logs process.env.DEBUG = 'nuxt:*' -var _ = require('lodash') -var debug = require('debug')('nuxt:build') +const _ = require('lodash') +const debug = require('debug')('nuxt:build') debug.color = 2 // force green color -var fs = require('fs') -var parseArgs = require('minimist') -var Nuxt = require('../') -var chokidar = require('chokidar') -var resolve = require('path').resolve -var without = require('lodash').without +const fs = require('fs') +const parseArgs = require('minimist') +const { Nuxt,Server } = require('../') +const chokidar = require('chokidar') +const resolve = require('path').resolve +const without = require('lodash').without -var argv = parseArgs(process.argv.slice(2), { +const argv = parseArgs(process.argv.slice(2), { alias: { h: 'help', H: 'hostname', @@ -48,8 +48,8 @@ if (argv.help) { process.exit(0) } -var rootDir = resolve(argv._[0] || '.') -var nuxtConfigFile = resolve(rootDir, argv['config-file']) +const rootDir = resolve(argv._[0] || '.') +const nuxtConfigFile = resolve(rootDir, argv['config-file']) var options = {} if (fs.existsSync(nuxtConfigFile)) { @@ -64,19 +64,19 @@ if (typeof options.rootDir !== 'string') { // Force development mode: add hot reloading and watching changes options.dev = true -var nuxt = new Nuxt(options) -var port = argv.port || process.env.PORT || process.env.npm_package_config_nuxt_port -var host = argv.hostname || process.env.HOST || process.env.npm_package_config_nuxt_host -var server = new Nuxt.Server(nuxt).listen(port, host) +const nuxt = new Nuxt(options) +const port = argv.port || process.env.PORT || process.env.npm_package_config_nuxt_port +const host = argv.hostname || process.env.HOST || process.env.npm_package_config_nuxt_host +const server = new Server(nuxt).listen(port, host) listenOnConfigChanges(nuxt, server) -function listenOnConfigChanges(nuxt, server) { +function listenOnConfigChanges (nuxt, server) { // Listen on nuxt.config.js changes - var build = _.debounce(() => { + const build = _.debounce(() => { debug('[nuxt.config.js] changed') delete require.cache[nuxtConfigFile] - var options = {} + const options = {} if (fs.existsSync(nuxtConfigFile)) { try { options = require(nuxtConfigFile) @@ -88,7 +88,7 @@ function listenOnConfigChanges(nuxt, server) { nuxt.close() .then(() => { debug('Rebuilding the app...') - var nuxt = new Nuxt(options) + const nuxt = new Nuxt(options) server.nuxt = nuxt return nuxt.ready() }) diff --git a/bin/nuxt-generate b/bin/nuxt-generate index e9607b174a..ad7d4da2e0 100755 --- a/bin/nuxt-generate +++ b/bin/nuxt-generate @@ -3,12 +3,14 @@ // Show logs process.env.DEBUG = 'nuxt:*' -var fs = require('fs') -var parseArgs = require('minimist') -var Nuxt = require('../') -var resolve = require('path').resolve +const fs = require('fs') +const parseArgs = require('minimist') +const debug = require('debug')('nuxt:generate') -var argv = parseArgs(process.argv.slice(2), { +const { Nuxt } = require('../') +const resolve = require('path').resolve + +const argv = parseArgs(process.argv.slice(2), { alias: { h: 'help', c: 'config-file' @@ -33,8 +35,8 @@ if (argv.help) { process.exit(0) } -var rootDir = resolve(argv._[0] || '.') -var nuxtConfigFile = resolve(rootDir, argv['config-file']) +const rootDir = resolve(argv._[0] || '.') +const nuxtConfigFile = resolve(rootDir, argv['config-file']) var options = {} if (fs.existsSync(nuxtConfigFile)) { @@ -49,14 +51,14 @@ if (typeof options.rootDir !== 'string') { options.dev = false // Force production mode (no webpack middleware called) options.runBuild = true // Force doing production build before init -console.log('[nuxt] Generating...') // eslint-disable-line no-console -var nuxt = module.exports = new Nuxt(options) +debug('Generating...') +const nuxt = module.exports = new Nuxt(options) nuxt.generate() -.then(() => { - console.log('[nuxt] Generate done') // eslint-disable-line no-console - process.exit(0) -}) -.catch((err) => { - console.error(err) // eslint-disable-line no-console - process.exit(1) -}) + .then(() => { + debug('Generate done') + process.exit(0) + }) + .catch((err) => { + console.error(err) // eslint-disable-line no-console + process.exit(1) + }) diff --git a/bin/nuxt-start b/bin/nuxt-start index bbdb5df1ae..34c73f6a72 100755 --- a/bin/nuxt-start +++ b/bin/nuxt-start @@ -1,11 +1,11 @@ #!/usr/bin/env node -var fs = require('fs') -var parseArgs = require('minimist') -var Nuxt = require('../') -var resolve = require('path').resolve +const fs = require('fs') +const parseArgs = require('minimist') +const { Nuxt, Server } = require('../') +const resolve = require('path').resolve -var argv = parseArgs(process.argv.slice(2), { +const argv = parseArgs(process.argv.slice(2), { alias: { h: 'help', H: 'hostname', @@ -40,8 +40,8 @@ if (argv.help) { process.exit(0) } -var rootDir = resolve(argv._[0] || '.') -var nuxtConfigFile = resolve(rootDir, argv['config-file']) +const rootDir = resolve(argv._[0] || '.') +const nuxtConfigFile = resolve(rootDir, argv['config-file']) var options = {} if (fs.existsSync(nuxtConfigFile)) { @@ -55,9 +55,9 @@ if (typeof options.rootDir !== 'string') { } options.dev = false // Force production mode (no webpack middleware called) -var nuxt = new Nuxt(options) -var port = argv.port || process.env.PORT || process.env.npm_package_config_nuxt_port -var host = argv.hostname || process.env.HOST || process.env.npm_package_config_nuxt_host -new Nuxt.Server(nuxt).listen(port, host) +const nuxt = new Nuxt(options) +const port = argv.port || process.env.PORT || process.env.npm_package_config_nuxt_port +const host = argv.hostname || process.env.HOST || process.env.npm_package_config_nuxt_host +new Server(nuxt).listen(port, host) module.exports = nuxt diff --git a/build/rollup.config.js b/build/rollup.config.js new file mode 100755 index 0000000000..75e03d0074 --- /dev/null +++ b/build/rollup.config.js @@ -0,0 +1,106 @@ +// Some parts brought from https://github.com/vuejs/vue/blob/dev/build/config.js +const { resolve } = require('path') +const rollupBabel = require('rollup-plugin-babel') +const rollupAlias = require('rollup-plugin-alias') +const rollupCommonJS = require('rollup-plugin-commonjs') +const rollupReplace = require('rollup-plugin-replace') +const rollupResolve = require('rollup-plugin-node-resolve') +const packageJson = require('../package.json') + +const dependencies = Object.keys(packageJson.dependencies) +const version = packageJson.version || process.env.VERSION + +// ----------------------------- +// Banner +// ----------------------------- +const banner = + '/*!\n' + + ' * Nuxt.js v' + version + '\n' + + ' * Released under the MIT License.\n' + + ' */' + + +// ----------------------------- +// Aliases +// ----------------------------- +const rootDir = resolve(__dirname, '..') +const srcDir = resolve(rootDir, 'src') +const distDir = resolve(rootDir, 'dist') + +const aliases = { + core: resolve(srcDir, 'core/index.js'), + builder: resolve(srcDir, 'builder/index.js'), + common: resolve(srcDir, 'common/index.js'), + utils: resolve(srcDir, 'common/utils.js'), + app: resolve(srcDir, 'app'), +} + +// ----------------------------- +// Builds +// ----------------------------- +const builds = { + core: { + entry: resolve(srcDir, 'core/index.js'), + dest: resolve(distDir, 'core.js') + }, + builder: { + entry: resolve(srcDir, 'builder/index.js'), + dest: resolve(distDir, 'builder.js') + } +} + +// ----------------------------- +// Default config +// ----------------------------- +function genConfig (opts) { + const config = { + entry: opts.entry, + dest: opts.dest, + external: ['fs', 'path'].concat(dependencies, opts.external), + format: opts.format || 'cjs', + banner: opts.banner || banner, + moduleName: opts.moduleName || 'Nuxt', + sourceMap: true, + plugins: [ + rollupAlias(Object.assign({ + resolve: ['.js', '.json', '.jsx', '.ts'] + }, aliases, opts.alias)), + + rollupCommonJS(), + + rollupResolve({ jsnext: true }), + + rollupBabel(Object.assign({ + exclude: 'node_modules/**', + runtimeHelpers: true, + plugins: [ + ['transform-runtime', { 'helpers': false, 'polyfill': false }], + 'transform-async-to-generator', + 'array-includes' + ], + presets: [ + 'babel-preset-es2015-rollup' + ] + }, opts.babel)), + + rollupReplace({ + __VERSION__: version + }) + ].concat(opts.plugins || []) + } + + if (opts.env) { + config.plugins.push(rollupReplace({ + 'process.env.NODE_ENV': JSON.stringify(opts.env) + })) + } + + return config +} + +if (process.env.TARGET) { + module.exports = genConfig(builds[process.env.TARGET]) +} else { + exports.getBuild = name => genConfig(builds[name]) + exports.getAllBuilds = () => Object.keys(builds).map(name => genConfig(builds[name])) +} diff --git a/index.js b/index.js index 8e7487a896..fa3a31ff19 100644 --- a/index.js +++ b/index.js @@ -4,8 +4,24 @@ * Released under the MIT License. */ +const path = require('path') + process.noDeprecation = true -var Nuxt = require('./dist/nuxt.js') +// Node Source Map Support +// https://github.com/evanw/node-source-map-support +require('source-map-support').install(); -module.exports = Nuxt.default ? Nuxt.default : Nuxt +const Core = require('./dist/core.js') + +// ------------------------------------------------------------------ +// Polyfill Builder into Core +const Builder = require('./dist/builder') +// Use special env flag to specify app dir without modify builder +if (!process.env.NUXT_APP_TEMPALTE_DIR) { + process.env.NUXT_APP_TEMPALTE_DIR = path.resolve(__dirname, 'app') +} +Object.assign(Core, Builder) +// ------------------------------------------------------------------ + +module.exports = Core.default ? Core.default : Core diff --git a/package.json b/package.json index af39026350..53fefac7d8 100644 --- a/package.json +++ b/package.json @@ -46,8 +46,11 @@ "test": "npm run lint && nyc ava --verbose --serial test/", "coverage": "nyc report --reporter=text-lcov > coverage.lcov && codecov", "lint": "eslint --ext .js,.vue bin lib pages test/*.js --ignore-pattern lib/app", - "build": "webpack", - "watch": "webpack --watch", + "build": "npm run build:core && npm run build:builder", + "build:core": "rollup -c build/rollup.config.js --environment TARGET:core", + "watch": "npm run build:core -- -w", + "build:builder": "rollup -c build/rollup.config.js --environment TARGET:builder", + "watch:builder": "npm run build:builder -- -w", "precommit": "npm run lint", "prepublish": "npm run build", "postinstall": "opencollective postinstall" @@ -63,6 +66,7 @@ "babel-loader": "^7.0.0", "babel-preset-es2015": "^6.24.1", "babel-preset-vue-app": "^1.2.0", + "chalk": "^1.1.3", "chokidar": "^1.7.0", "compression": "^1.6.2", "connect": "^3.6.2", @@ -89,6 +93,7 @@ "script-ext-html-webpack-plugin": "^1.8.1", "serialize-javascript": "^1.3.0", "serve-static": "^1.12.3", + "source-map-support": "^0.4.15", "tapable": "^0.2.6", "tappable": "^1.0.1", "url-loader": "^0.5.9", @@ -112,6 +117,7 @@ "babel-plugin-array-includes": "^2.0.3", "babel-plugin-transform-async-to-generator": "^6.24.1", "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-es2015-rollup": "^3.0.0", "babel-preset-stage-2": "^6.24.1", "codecov": "^2.2.0", "copy-webpack-plugin": "^4.0.1", @@ -125,10 +131,19 @@ "finalhandler": "^1.0.3", "jsdom": "^11.0.0", "json-loader": "^0.5.4", + "lerna": "2.0.0-rc.5", "nyc": "^11.0.2", "request": "^2.81.0", "request-promise-native": "^1.0.4", - "std-mocks": "^1.0.1" + "rollup": "^0.43.0", + "rollup-plugin-alias": "^1.3.1", + "rollup-plugin-babel": "^2.7.1", + "rollup-plugin-commonjs": "^8.0.2", + "rollup-plugin-node-resolve": "^3.0.0", + "rollup-plugin-replace": "^1.1.1", + "rollup-watch": "^4.0.0", + "std-mocks": "^1.0.1", + "uglify-js": "^3.0.17" }, "collective": { "type": "opencollective", diff --git a/lib/builder.js b/src/builder/builder.js similarity index 95% rename from lib/builder.js rename to src/builder/builder.js index 2f9251b8c7..7667d03448 100644 --- a/lib/builder.js +++ b/src/builder/builder.js @@ -8,7 +8,9 @@ import serialize from 'serialize-javascript' import { join, resolve, basename, dirname } from 'path' import Tapable from 'tappable' import MFS from 'memory-fs' -import { r, wp, createRoutes, parallel } from './utils' +import webpackDevMiddleware from 'webpack-dev-middleware' +import webpackHotMiddleware from 'webpack-hot-middleware' +import { r, wp, createRoutes, parallel } from 'utils' import clientWebpackConfig from './webpack/client.config.js' import serverWebpackConfig from './webpack/server.config.js' @@ -119,7 +121,9 @@ export default class Builder extends Tapable { 'components/nuxt-loading.vue', 'components/nuxt-child.js', 'components/nuxt-link.js', - 'components/nuxt.vue' + 'components/nuxt.vue', + 'views/app.template.html', + 'views/error.html' ] const templateVars = { options: this.options, @@ -199,7 +203,9 @@ export default class Builder extends Tapable { const customFileExists = fs.existsSync(customPath) return { - src: customFileExists ? customPath : r(__dirname, 'app', file), + src: customFileExists + ? customPath + : r(__dirname, '../app', file), // Relative to dist dst: file, custom: customFileExists } @@ -325,7 +331,10 @@ export default class Builder extends Tapable { // Run after each compile this.compiler.plugin('done', stats => { - console.log(stats.toString(this.webpackStats)) // eslint-disable-line no-console + // Don't reload failed builds + if (stats.hasErrors() || stats.hasWarnings()) { + return + } // Reload renderer if available if (this.nuxt.renderer) { this.nuxt.renderer.loadResources(mfs) @@ -336,7 +345,7 @@ export default class Builder extends Tapable { debug('Adding webpack middleware...') // Create webpack dev middleware - this.webpackDevMiddleware = pify(require('webpack-dev-middleware')(this.compiler.client, { + this.webpackDevMiddleware = pify(webpackDevMiddleware(this.compiler.client, { publicPath: this.options.build.publicPath, stats: this.webpackStats, noInfo: true, @@ -344,7 +353,7 @@ export default class Builder extends Tapable { watchOptions: this.options.watchers.webpack })) - this.webpackHotMiddleware = pify(require('webpack-hot-middleware')(this.compiler.client, { + this.webpackHotMiddleware = pify(webpackHotMiddleware(this.compiler.client, { log: false, heartbeat: 2500 })) diff --git a/lib/generator.js b/src/builder/generator.js similarity index 98% rename from lib/generator.js rename to src/builder/generator.js index e92907d32e..4095fd4b6f 100644 --- a/lib/generator.js +++ b/src/builder/generator.js @@ -4,7 +4,7 @@ import _ from 'lodash' import { resolve, join, dirname, sep } from 'path' import { minify } from 'html-minifier' import Tapable from 'tappable' -import { isUrl, promisifyRoute, waitFor, flatRoutes } from './utils' +import { isUrl, promisifyRoute, waitFor, flatRoutes } from 'utils' const debug = require('debug')('nuxt:generate') const copy = pify(fs.copy) diff --git a/src/builder/index.js b/src/builder/index.js new file mode 100755 index 0000000000..34547d0c2a --- /dev/null +++ b/src/builder/index.js @@ -0,0 +1,7 @@ +import Builder from './builder' +import Generator from './generator' + +export default { + Builder, + Generator +} diff --git a/lib/webpack/base.config.js b/src/builder/webpack/base.config.js similarity index 99% rename from lib/webpack/base.config.js rename to src/builder/webpack/base.config.js index 25b56c8206..8fb8dbc652 100644 --- a/lib/webpack/base.config.js +++ b/src/builder/webpack/base.config.js @@ -2,7 +2,7 @@ import ExtractTextPlugin from 'extract-text-webpack-plugin' import { defaults, cloneDeep } from 'lodash' import { join, resolve } from 'path' import webpack from 'webpack' -import { isUrl, urlJoin } from '../utils' +import { isUrl, urlJoin } from 'utils' import vueLoaderConfig from './vue-loader.config' import { styleLoader, extractStyles } from './helpers' diff --git a/lib/webpack/client.config.js b/src/builder/webpack/client.config.js similarity index 100% rename from lib/webpack/client.config.js rename to src/builder/webpack/client.config.js diff --git a/lib/webpack/helpers.js b/src/builder/webpack/helpers.js similarity index 100% rename from lib/webpack/helpers.js rename to src/builder/webpack/helpers.js diff --git a/lib/webpack/server.config.js b/src/builder/webpack/server.config.js similarity index 100% rename from lib/webpack/server.config.js rename to src/builder/webpack/server.config.js diff --git a/lib/webpack/vue-loader.config.js b/src/builder/webpack/vue-loader.config.js similarity index 100% rename from lib/webpack/vue-loader.config.js rename to src/builder/webpack/vue-loader.config.js diff --git a/lib/utils.js b/src/common/utils.js similarity index 100% rename from lib/utils.js rename to src/common/utils.js diff --git a/src/core/index.js b/src/core/index.js new file mode 100755 index 0000000000..19e55a107e --- /dev/null +++ b/src/core/index.js @@ -0,0 +1,15 @@ +import Options from './options' +import ModuleContainer from './module' +import Nuxt from './nuxt' +import Renderer from './renderer' +import Server from './server' +import * as Utils from 'utils' + +export default { + Options, + ModuleContainer, + Nuxt, + Renderer, + Server, + Utils +} diff --git a/lib/module-container.js b/src/core/module.js similarity index 96% rename from lib/module-container.js rename to src/core/module.js index 4f13c3b9c9..e25ae67cd5 100755 --- a/lib/module-container.js +++ b/src/core/module.js @@ -3,7 +3,7 @@ import fs from 'fs' import { uniq } from 'lodash' import hash from 'hash-sum' import Tapable from 'tappable' -import { chainFn, sequence } from './utils' +import { chainFn, sequence } from 'utils' const debug = require('debug')('nuxt:module') @@ -102,8 +102,7 @@ export default class ModuleContainer extends Tapable { if (module.indexOf('~') === 0 || module.indexOf('./') === 0) { module = path.join(this.options.srcDir, module.substr(1)) } - // eslint-disable-next-line no-eval - module = eval('require')(module) + module = require(module) } // Validate module diff --git a/lib/nuxt.js b/src/core/nuxt.js similarity index 81% rename from lib/nuxt.js rename to src/core/nuxt.js index 6ffc424243..b07016894c 100644 --- a/lib/nuxt.js +++ b/src/core/nuxt.js @@ -1,10 +1,9 @@ import Tapable from 'tappable' import chalk from 'chalk' -import * as Utils from './utils' +import ModuleContainer from './module' import Renderer from './renderer' -import ModuleContainer from './module-container' -import Server from './server' -import defaults from './defaults' +import Options from './options' +import Core from './index' const defaultHost = process.env.HOST || process.env.npm_package_config_nuxt_host || 'localhost' const defaultPort = process.env.PORT || process.env.npm_package_config_nuxt_port || '3000' @@ -13,14 +12,14 @@ export default class Nuxt extends Tapable { constructor (_options = {}) { super() - this.options = defaults(_options) + this.options = Options(_options) this.initialized = false this.errorHandler = this.errorHandler.bind(this) // Create instance of core components - this.moduleContainer = new Nuxt.ModuleContainer(this) - this.renderer = new Nuxt.Renderer(this) + this.moduleContainer = new ModuleContainer(this) + this.renderer = new Renderer(this) // Backward compatibility this.render = this.renderer.render.bind(this.renderer) @@ -60,8 +59,7 @@ export default class Nuxt extends Tapable { if (this._builder) { return this._builder } - const Builder = require('./builder').default - this._builder = new Builder(this) + this._builder = new Core.Builder(this) return this._builder } @@ -69,8 +67,7 @@ export default class Nuxt extends Tapable { if (this._generator) { return this._generator } - const Generator = require('./generator').default - this._generator = new Generator(this) + this._generator = new Core.Generator(this) return this._generator } @@ -93,6 +90,7 @@ export default class Nuxt extends Tapable { process.exit(1) } + // Both Renderer & Server depend on this method serverReady ({ host = defaultHost, port = defaultPort } = {}) { let _host = host === '0.0.0.0' ? 'localhost' : host @@ -113,13 +111,7 @@ export default class Nuxt extends Tapable { this.initialized = false if (typeof callback === 'function') { - callback() + await callback() } } } - -// Add core components to Nuxt class -Nuxt.Utils = Utils -Nuxt.Renderer = Renderer -Nuxt.ModuleContainer = ModuleContainer -Nuxt.Server = Server diff --git a/lib/defaults.js b/src/core/options.js similarity index 95% rename from lib/defaults.js rename to src/core/options.js index 1a2195cc73..42e2e5e29a 100755 --- a/lib/defaults.js +++ b/src/core/options.js @@ -1,9 +1,9 @@ import _ from 'lodash' import { join, resolve } from 'path' import { existsSync } from 'fs' -import { isUrl } from './utils' +import { isUrl } from 'utils' -export default function defaults (_options) { +export default function Options (_options) { // Clone options to prevent unwanted side-effects const options = Object.assign({}, _options) @@ -30,7 +30,7 @@ export default function defaults (_options) { options.buildDir = join(options.rootDir, options.buildDir) // If app.html is defined, set the template path to the user template - options.appTemplatePath = resolve(__dirname, 'views/app.template.html') + options.appTemplatePath = resolve(options.buildDir, 'views/app.template.html') if (existsSync(join(options.srcDir, 'app.html'))) { options.appTemplatePath = join(options.srcDir, 'app.html') } diff --git a/lib/renderer.js b/src/core/renderer.js similarity index 96% rename from lib/renderer.js rename to src/core/renderer.js index 12b5f74f46..6388293758 100644 --- a/lib/renderer.js +++ b/src/core/renderer.js @@ -10,7 +10,7 @@ import _ from 'lodash' import { resolve, join } from 'path' import fs from 'fs-extra' import { createBundleRenderer } from 'vue-server-renderer' -import { getContext, setAnsiColors, encodeHtml } from './utils' +import { getContext, setAnsiColors, encodeHtml } from 'utils' const debug = require('debug')('nuxt:render') debug.color = 4 // Force blue color @@ -36,7 +36,7 @@ export default class Renderer extends Tapable { clientManifest: null, serverBundle: null, appTemplate: null, - errorTemplate: parseTemplate(fs.readFileSync(resolve(__dirname, 'views', 'error.html'), 'utf8')) + errorTemplate: '
{{ stack }}
' // Will be loaded on ready } // Initialize @@ -70,6 +70,11 @@ export default class Renderer extends Tapable { this.gzipMiddleware = pify(compression(this.options.render.gzip)) } + const errorTemplatePath = resolve(this.options.buildDir, 'views/error.html') + if (fs.existsSync(errorTemplatePath)) { + this.resources.errorTemplate = parseTemplate(fs.readFileSync(errorTemplatePath, 'utf8')) + } + // Load resources from fs if (!this.options.dev) { await this.loadResources() @@ -140,7 +145,9 @@ export default class Renderer extends Tapable { // Promisify renderToString this.bundleRenderer.renderToString = pify(this.bundleRenderer.renderToString) - this.nuxt.serverReady() + if (!this.options.runBuild) { + this.nuxt.serverReady() + } } async render (req, res) { diff --git a/lib/server.js b/src/core/server.js similarity index 96% rename from lib/server.js rename to src/core/server.js index 661a3e7a1a..fb094e0f8c 100644 --- a/lib/server.js +++ b/src/core/server.js @@ -46,8 +46,7 @@ class Server { if (src.indexOf('~') === 0 || src.indexOf('./') === 0) { src = path.join(this.nuxt.options.srcDir, src.substr(1)) } - // eslint-disable-next-line no-eval - m = eval('require')(src) + m = require(src) } if (m instanceof Function) { this.app.use(m) diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 946eb0d6db..0000000000 --- a/webpack.config.js +++ /dev/null @@ -1,59 +0,0 @@ - -// Until babel-loader 7 is released -process.noDeprecation = true - -var nodeExternals = require('webpack-node-externals') -var ProgressBarPlugin = require('progress-bar-webpack-plugin') -var CopyWebpackPlugin = require('copy-webpack-plugin') -var resolve = require('path').resolve -var r = function (p) { return resolve(__dirname, p) } - -module.exports = { - target: 'node', - node: { - __dirname: false, - __filename: false - }, - devtool: 'source-map', - entry: r('./lib/nuxt.js'), - output: { - path: r('./dist'), - filename: 'nuxt.js', - libraryTarget: 'commonjs2' - }, - externals: [ - nodeExternals() - ], - module: { - rules: [ - { - test: /\.json$/, - loader: 'json-loader' - }, - { - test: /\.js$/, - loader: 'babel-loader', - exclude: /node_modules/, - query: { - plugins: [ - 'transform-async-to-generator', - 'array-includes', - 'transform-runtime' - ], - presets: [ - ['es2015', { modules: false }], - 'stage-2' - ], - cacheDirectory: true - } - } - ] - }, - plugins: [ - new CopyWebpackPlugin([ - { from: 'lib/app', to: 'app' }, - { from: 'lib/views', to: 'views' } - ]), - new ProgressBarPlugin() - ] -} diff --git a/yarn.lock b/yarn.lock index c44bae33a7..9c7c9a3089 100644 --- a/yarn.lock +++ b/yarn.lock @@ -41,6 +41,13 @@ version "6.0.78" resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.78.tgz#5d4a3f579c1524e01ee21bf474e6fba09198f470" +JSONStream@^1.0.4: + version "1.3.1" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.1.tgz#707f761e01dae9e16f1bcf93703b78c70966579a" + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + abab@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d" @@ -78,7 +85,7 @@ acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" -acorn@^4.0.3, acorn@^4.0.4: +acorn@^4.0.1, acorn@^4.0.3, acorn@^4.0.4: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" @@ -86,6 +93,10 @@ acorn@^5.0.0, acorn@^5.0.1, acorn@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" +add-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" + ajv-keywords@^1.0.0: version "1.5.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" @@ -224,6 +235,10 @@ array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -272,7 +287,7 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" -async@^1.4.0: +async@^1.4.0, async@^1.5.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -421,7 +436,7 @@ babel-code-frame@^6.11.0, babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.0" -babel-core@^6.17.0, babel-core@^6.24.1: +babel-core@6, babel-core@^6.17.0, babel-core@^6.24.1: version "6.25.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.25.0.tgz#7dd42b0463c742e9d5296deb3ec67a9322dad729" dependencies: @@ -625,6 +640,12 @@ babel-plugin-espower@^2.3.2: espurify "^1.6.0" estraverse "^4.1.1" +babel-plugin-external-helpers@^6.18.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1" + dependencies: + babel-runtime "^6.22.0" + babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" @@ -718,7 +739,7 @@ babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es20 babel-types "^6.24.1" lodash "^4.2.0" -babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1: +babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1, babel-plugin-transform-es2015-classes@^6.9.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" dependencies: @@ -947,7 +968,15 @@ babel-preset-env@^1.2.1: invariant "^2.2.2" semver "^5.3.0" -babel-preset-es2015@^6.24.1: +babel-preset-es2015-rollup@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-es2015-rollup/-/babel-preset-es2015-rollup-3.0.0.tgz#854b63ecde2ee98cac40e882f67bfcf185b1f24a" + dependencies: + babel-plugin-external-helpers "^6.18.0" + babel-preset-es2015 "^6.3.13" + require-relative "^0.8.7" + +babel-preset-es2015@^6.24.1, babel-preset-es2015@^6.3.13: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" dependencies: @@ -1151,6 +1180,12 @@ brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" +browser-resolve@^1.11.0: + version "1.11.2" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" + dependencies: + resolve "1.1.7" + browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" @@ -1232,7 +1267,7 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -builtin-modules@^1.0.0, builtin-modules@^1.1.1: +builtin-modules@^1.0.0, builtin-modules@^1.1.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -1240,6 +1275,10 @@ builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" +byline@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + bytes@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.3.0.tgz#d5b680a165b6201739acb611542aabc2d8ceb070" @@ -1453,6 +1492,13 @@ clone@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" +cmd-shim@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" + dependencies: + graceful-fs "^4.1.2" + mkdirp "~0.5.0" + co-with-promise@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co-with-promise/-/co-with-promise-4.6.0.tgz#413e7db6f5893a60b942cf492c4bec93db415ab7" @@ -1523,12 +1569,23 @@ colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" +columnify@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + dependencies: + strip-ansi "^3.0.0" + wcwidth "^1.0.0" + combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" dependencies: delayed-stream "~1.0.0" +command-join@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/command-join/-/command-join-2.0.0.tgz#52e8b984f4872d952ff1bdc8b98397d27c7144cf" + commander@2.9.x, commander@^2.9.0, commander@~2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" @@ -1543,6 +1600,13 @@ commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" +compare-func@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" + dependencies: + array-ify "^1.0.0" + dot-prop "^3.0.0" + compressible@~2.0.8: version "2.0.10" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.10.tgz#feda1c7f7617912732b29bf8cf26252a20b9eecd" @@ -1564,7 +1628,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.6.0: +concat-stream@^1.4.10, concat-stream@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: @@ -1635,6 +1699,152 @@ content-type@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" +conventional-changelog-angular@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.3.4.tgz#7d7cdfbd358948312904d02229a61fd6075cf455" + dependencies: + compare-func "^1.3.1" + github-url-from-git "^1.4.0" + q "^1.4.1" + +conventional-changelog-atom@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.1.0.tgz#67a47c66a42b2f8909ef1587c9989ae1de730b92" + dependencies: + q "^1.4.1" + +conventional-changelog-cli@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.1.tgz#1cd5a9dbae25ffb5ffe67afef1e136eaceefd2d5" + dependencies: + add-stream "^1.0.0" + conventional-changelog "^1.1.3" + lodash "^4.1.0" + meow "^3.7.0" + tempfile "^1.1.1" + +conventional-changelog-codemirror@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.1.0.tgz#7577a591dbf9b538e7a150a7ee62f65a2872b334" + dependencies: + q "^1.4.1" + +conventional-changelog-core@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-1.9.0.tgz#de5dfbc091847656508d4a389e35c9a1bc49e7f4" + dependencies: + conventional-changelog-writer "^1.1.0" + conventional-commits-parser "^1.0.0" + dateformat "^1.0.12" + get-pkg-repo "^1.0.0" + git-raw-commits "^1.2.0" + git-remote-origin-url "^2.0.0" + git-semver-tags "^1.2.0" + lodash "^4.0.0" + normalize-package-data "^2.3.5" + q "^1.4.1" + read-pkg "^1.1.0" + read-pkg-up "^1.0.1" + through2 "^2.0.0" + +conventional-changelog-ember@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.2.6.tgz#8b7355419f5127493c4c562473ab2fc792f1c2b6" + dependencies: + q "^1.4.1" + +conventional-changelog-eslint@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-0.1.0.tgz#a52411e999e0501ce500b856b0a643d0330907e2" + dependencies: + q "^1.4.1" + +conventional-changelog-express@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.1.0.tgz#55c6c841c811962036c037bdbd964a54ae310fce" + dependencies: + q "^1.4.1" + +conventional-changelog-jquery@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510" + dependencies: + q "^1.4.1" + +conventional-changelog-jscs@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c" + dependencies: + q "^1.4.1" + +conventional-changelog-jshint@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.1.0.tgz#00cab8e9a3317487abd94c4d84671342918d2a07" + dependencies: + compare-func "^1.3.1" + q "^1.4.1" + +conventional-changelog-writer@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-1.4.1.tgz#3f4cb4d003ebb56989d30d345893b52a43639c8e" + dependencies: + compare-func "^1.3.1" + conventional-commits-filter "^1.0.0" + dateformat "^1.0.11" + handlebars "^4.0.2" + json-stringify-safe "^5.0.1" + lodash "^4.0.0" + meow "^3.3.0" + semver "^5.0.1" + split "^1.0.0" + through2 "^2.0.0" + +conventional-changelog@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.4.tgz#108bc750c2a317e200e2f9b413caaa1f8c7efa3b" + dependencies: + conventional-changelog-angular "^1.3.4" + conventional-changelog-atom "^0.1.0" + conventional-changelog-codemirror "^0.1.0" + conventional-changelog-core "^1.9.0" + conventional-changelog-ember "^0.2.6" + conventional-changelog-eslint "^0.1.0" + conventional-changelog-express "^0.1.0" + conventional-changelog-jquery "^0.1.0" + conventional-changelog-jscs "^0.1.0" + conventional-changelog-jshint "^0.1.0" + +conventional-commits-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.0.0.tgz#6fc2a659372bc3f2339cf9ffff7e1b0344b93039" + dependencies: + is-subset "^0.1.1" + modify-values "^1.0.0" + +conventional-commits-parser@^1.0.0, conventional-commits-parser@^1.0.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-1.3.0.tgz#e327b53194e1a7ad5dc63479ee9099a52b024865" + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.0" + lodash "^4.2.1" + meow "^3.3.0" + split2 "^2.0.0" + through2 "^2.0.0" + trim-off-newlines "^1.0.0" + +conventional-recommended-bump@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-1.0.0.tgz#6d303a27837ae938b7c68c8ddeed34559b4b0789" + dependencies: + concat-stream "^1.4.10" + conventional-commits-filter "^1.0.0" + conventional-commits-parser "^1.0.1" + git-raw-commits "^1.2.0" + git-semver-tags "^1.2.0" + meow "^3.3.0" + object-assign "^4.0.1" + convert-source-map@^1.1.0, convert-source-map@^1.2.0, convert-source-map@^1.3.0: version "1.5.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" @@ -1738,6 +1948,14 @@ cross-spawn@^4, cross-spawn@^4.0.0: lru-cache "^4.0.1" which "^1.2.9" +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" @@ -1877,6 +2095,12 @@ d@1: dependencies: es5-ext "^0.10.9" +dargs@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" + dependencies: + number-is-nan "^1.0.0" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -1891,6 +2115,13 @@ date-time@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/date-time/-/date-time-0.1.1.tgz#ed2f6d93d9790ce2fd66d5b5ff3edd5bbcbf3b07" +dateformat@^1.0.11, dateformat@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + de-indent@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" @@ -1921,6 +2152,10 @@ decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + deep-equal@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" @@ -1943,6 +2178,12 @@ default-require-extensions@^1.0.0: dependencies: strip-bom "^2.0.0" +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + define-properties@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" @@ -2079,6 +2320,12 @@ domutils@1.5.1, domutils@^1.5.1: dom-serializer "0" domelementtype "1" +dot-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + dependencies: + is-obj "^1.0.0" + dot-prop@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.1.1.tgz#a8493f0b7b5eeec82525b5c7587fa7de7ca859c1" @@ -2428,6 +2675,14 @@ estraverse@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" +estree-walker@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e" + +estree-walker@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa" + esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -2476,6 +2731,18 @@ execa@^0.5.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.6.3.tgz#57b69a594f081759c69e5370f0d17b9cb11658fe" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" @@ -2773,7 +3040,17 @@ get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" -get-port@^3.0.0: +get-pkg-repo@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.3.0.tgz#43c6b4c048b75dd604fc5388edecde557f6335df" + dependencies: + hosted-git-info "^2.1.4" + meow "^3.3.0" + normalize-package-data "^2.3.0" + parse-github-repo-url "^1.3.0" + through2 "^2.0.0" + +get-port@^3.0.0, get-port@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.1.0.tgz#ef01b18a84ca6486970ff99e54446141a73ffd3e" @@ -2798,6 +3075,40 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" +git-raw-commits@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.2.0.tgz#0f3a8bfd99ae0f2d8b9224d58892975e9a52d03c" + dependencies: + dargs "^4.0.1" + lodash.template "^4.0.2" + meow "^3.3.0" + split2 "^2.0.0" + through2 "^2.0.0" + +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.2.0.tgz#b31fd02c8ab578bd6c9b5cacca5e1c64c1177ac1" + dependencies: + meow "^3.3.0" + semver "^5.0.1" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + dependencies: + ini "^1.3.2" + +github-url-from-git@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/github-url-from-git/-/github-url-from-git-1.5.0.tgz#f985fedcc0a9aa579dc88d7aff068d55cc6251a0" + glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" @@ -2847,7 +3158,7 @@ globby@^5.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -globby@^6.0.0: +globby@^6.0.0, globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" dependencies: @@ -2887,7 +3198,7 @@ gzip-size@^3.0.0: dependencies: duplexer "^0.1.1" -handlebars@^4.0.3: +handlebars@^4.0.2, handlebars@^4.0.3: version "4.0.10" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f" dependencies: @@ -3170,7 +3481,7 @@ inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" -ini@^1.3.4, ini@~1.3.0: +ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" @@ -3238,7 +3549,7 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-ci@^1.0.7: +is-ci@^1.0.10, is-ci@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" dependencies: @@ -3306,6 +3617,10 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + is-my-json-valid@^2.12.4, is-my-json-valid@^2.16.0: version "2.16.0" resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" @@ -3395,12 +3710,22 @@ is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" +is-subset@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + is-svg@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" dependencies: html-comment-regex "^1.1.0" +is-text-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + dependencies: + text-extensions "^1.0.0" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -3634,7 +3959,7 @@ json-stable-stringify@^1.0.1: dependencies: jsonify "~0.0.0" -json-stringify-safe@~5.0.1: +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -3658,6 +3983,10 @@ jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + jsonpointer@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" @@ -3711,6 +4040,46 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +lerna@2.0.0-rc.5: + version "2.0.0-rc.5" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.0.0-rc.5.tgz#b59d168caaac6e3443078c1bce194208c9aa3090" + dependencies: + async "^1.5.0" + chalk "^1.1.1" + cmd-shim "^2.0.2" + columnify "^1.5.4" + command-join "^2.0.0" + conventional-changelog-cli "^1.3.1" + conventional-recommended-bump "^1.0.0" + dedent "^0.7.0" + execa "^0.6.3" + find-up "^2.1.0" + fs-extra "^3.0.1" + get-port "^3.1.0" + glob "^7.1.2" + globby "^6.1.0" + graceful-fs "^4.1.11" + inquirer "^3.0.6" + is-ci "^1.0.10" + load-json-file "^2.0.0" + lodash "^4.17.4" + minimatch "^3.0.4" + npmlog "^4.1.0" + p-finally "^1.0.0" + path-exists "^3.0.0" + read-cmd-shim "^1.0.1" + read-pkg "^2.0.0" + rimraf "^2.6.1" + safe-buffer "^5.0.1" + semver "^5.1.0" + signal-exit "^3.0.2" + strong-log-transformer "^1.0.6" + temp-write "^3.3.0" + write-file-atomic "^2.1.0" + write-json-file "^2.1.0" + write-pkg "^3.0.1" + yargs "^8.0.1" + leven@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" @@ -3821,7 +4190,7 @@ lodash.merge@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" -lodash.template@^4.4.0: +lodash.template@^4.0.2, lodash.template@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" dependencies: @@ -3838,7 +4207,7 @@ lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash@^4.0.0, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0: +lodash@^4.0.0, lodash@^4.1.0, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -3884,6 +4253,18 @@ macaddress@^0.2.8: version "0.2.8" resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" +magic-string@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.15.2.tgz#0681d7388741bbc3addaa65060992624c6c09e9c" + dependencies: + vlq "^0.2.1" + +magic-string@^0.19.0: + version "0.19.1" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.19.1.tgz#14d768013caf2ec8fdea16a49af82fc377e75201" + dependencies: + vlq "^0.2.1" + make-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" @@ -3937,7 +4318,7 @@ memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" -meow@^3.7.0: +meow@^3.3.0, meow@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" dependencies: @@ -4039,12 +4420,24 @@ minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" +minimist@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" + "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: minimist "0.0.8" +modify-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.0.tgz#e2b6cdeb9ce19f99317a53722f3dbf5df5eaaab2" + +moment@^2.6.0: + version "2.18.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" + ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" @@ -4162,7 +4555,7 @@ nopt@~3.0.1: dependencies: abbrev "1" -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: +normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: version "2.3.8" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" dependencies: @@ -4202,7 +4595,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npmlog@^4.0.2: +npmlog@^4.0.2, npmlog@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5" dependencies: @@ -4464,6 +4857,10 @@ parse-asn1@^5.0.0: evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" +parse-github-repo-url@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.0.tgz#286c53e2c9962e0641649ee3ac9508fca4dd959c" + parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" @@ -4563,7 +4960,7 @@ performance-now@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" -pify@^2.0.0, pify@^2.3.0: +pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -5007,7 +5404,7 @@ punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -q@^1.1.2: +q@^1.1.2, q@^1.4.1: version "1.5.0" resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" @@ -5060,6 +5457,12 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +read-cmd-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b" + dependencies: + graceful-fs "^4.1.2" + read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -5074,7 +5477,7 @@ read-pkg-up@^2.0.0: find-up "^2.0.0" read-pkg "^2.0.0" -read-pkg@^1.0.0: +read-pkg@^1.0.0, read-pkg@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" dependencies: @@ -5323,6 +5726,10 @@ require-precompiled@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/require-precompiled/-/require-precompiled-0.1.0.tgz#5a1b52eb70ebed43eb982e974c85ab59571e56fa" +require-relative@0.8.7, require-relative@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" + require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" @@ -5348,7 +5755,11 @@ resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" -resolve@^1.1.6, resolve@^1.2.0, resolve@^1.3.3: +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.2.0, resolve@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" dependencies: @@ -5380,6 +5791,75 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^2.0.0" inherits "^2.0.1" +rollup-plugin-alias@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-alias/-/rollup-plugin-alias-1.3.1.tgz#a9152fec4b6a6510dae93989517ca7853c32a6fa" + dependencies: + slash "^1.0.0" + +rollup-plugin-babel@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-2.7.1.tgz#16528197b0f938a1536f44683c7a93d573182f57" + dependencies: + babel-core "6" + babel-plugin-transform-es2015-classes "^6.9.0" + object-assign "^4.1.0" + rollup-pluginutils "^1.5.0" + +rollup-plugin-commonjs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.0.2.tgz#98b1589bfe32a6c0f67790b60c0b499972afed89" + dependencies: + acorn "^4.0.1" + estree-walker "^0.3.0" + magic-string "^0.19.0" + resolve "^1.1.7" + rollup-pluginutils "^2.0.1" + +rollup-plugin-node-resolve@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz#8b897c4c3030d5001277b0514b25d2ca09683ee0" + dependencies: + browser-resolve "^1.11.0" + builtin-modules "^1.1.0" + is-module "^1.0.0" + resolve "^1.1.6" + +rollup-plugin-replace@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-replace/-/rollup-plugin-replace-1.1.1.tgz#396315ded050a6ce43b9518a886a3f60efb1ea33" + dependencies: + magic-string "^0.15.2" + minimatch "^3.0.2" + rollup-pluginutils "^1.5.0" + +rollup-pluginutils@^1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" + dependencies: + estree-walker "^0.2.1" + minimatch "^3.0.2" + +rollup-pluginutils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz#7ec95b3573f6543a46a6461bd9a7c544525d0fc0" + dependencies: + estree-walker "^0.3.0" + micromatch "^2.3.11" + +rollup-watch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/rollup-watch/-/rollup-watch-4.0.0.tgz#309051b9403b9e5445c5746c9eba9a466951d39e" + dependencies: + chokidar "^1.7.0" + require-relative "0.8.7" + +rollup@^0.43.0: + version "0.43.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.43.0.tgz#b36bdb75fa5e0823b6de8aee18ff7b5655520543" + dependencies: + source-map-support "^0.4.0" + run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" @@ -5420,7 +5900,7 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" -"semver@2 || 3 || 4 || 5", semver@5.3.0, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: +"semver@2 || 3 || 4 || 5", semver@5.3.0, semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -5477,6 +5957,16 @@ sha.js@^2.4.0, sha.js@^2.4.8: dependencies: inherits "^2.0.1" +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + sigmund@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" @@ -5517,7 +6007,7 @@ source-list-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" -source-map-support@^0.4.0, source-map-support@^0.4.2: +source-map-support@^0.4.0, source-map-support@^0.4.15, source-map-support@^0.4.2: version "0.4.15" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1" dependencies: @@ -5564,6 +6054,18 @@ spdx-license-ids@^1.0.2: version "1.2.2" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +split2@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/split2/-/split2-2.1.1.tgz#7a1f551e176a90ecd3345f7246a0cfe175ef4fd0" + dependencies: + through2 "^2.0.2" + +split@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.0.tgz#c4395ce683abcd254bc28fe1dabb6e5c27dcffae" + dependencies: + through "2" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -5700,6 +6202,16 @@ strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" +strong-log-transformer@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-1.0.6.tgz#f7fb93758a69a571140181277eea0c2eb1301fa3" + dependencies: + byline "^5.0.0" + duplexer "^0.1.1" + minimist "^0.1.0" + moment "^2.6.0" + through "^2.3.4" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -5777,6 +6289,28 @@ tar@^2.2.1: fstream "^1.0.2" inherits "2" +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + +temp-write@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-3.3.0.tgz#c1a96de2b36061342eae81f44ff001aec8f615a9" + dependencies: + graceful-fs "^4.1.2" + is-stream "^1.1.0" + make-dir "^1.0.0" + pify "^2.2.0" + temp-dir "^1.0.0" + uuid "^3.0.1" + +tempfile@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2" + dependencies: + os-tmpdir "^1.0.0" + uuid "^2.0.1" + term-size@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/term-size/-/term-size-0.1.1.tgz#87360b96396cab5760963714cda0d0cbeecad9ca" @@ -5793,18 +6327,22 @@ test-exclude@^4.1.1: read-pkg-up "^1.0.1" require-main-filename "^1.0.1" +text-extensions@^1.0.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.5.0.tgz#d1cb2d14b5d0bc45bfdca8a08a473f68c7eb0cbc" + text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" -through2@^2.0.0: +through2@^2.0.0, through2@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" dependencies: readable-stream "^2.1.5" xtend "~4.0.1" -through@^2.3.6: +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -5859,6 +6397,10 @@ trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" +trim-off-newlines@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" @@ -5902,9 +6444,9 @@ typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -uglify-js@3.0.x: - version "3.0.15" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.15.tgz#aacb323a846b234602270dead8a32441a8806f42" +uglify-js@3.0.x, uglify-js@^3.0.17: + version "3.0.17" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.17.tgz#d228cd55c2df9b3d2f53f147568cb4cc4a72cc06" dependencies: commander "~2.9.0" source-map "~0.5.1" @@ -6037,7 +6579,11 @@ utils-merge@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" -uuid@^3.0.0: +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.1: version "3.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" @@ -6062,6 +6608,10 @@ verror@1.3.6: dependencies: extsprintf "1.0.2" +vlq@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.2.tgz#e316d5257b40b86bb43cb8d5fea5d7f54d6b0ca1" + vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" @@ -6155,6 +6705,12 @@ watchpack@^1.3.1: chokidar "^1.4.3" graceful-fs "^4.1.2" +wcwidth@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + dependencies: + defaults "^1.0.3" + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -6309,7 +6865,7 @@ write-file-atomic@^1.1.4: imurmurhash "^0.1.4" slide "^1.1.5" -write-file-atomic@^2.0.0: +write-file-atomic@^2.0.0, write-file-atomic@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.1.0.tgz#1769f4b551eedce419f0505deae2e26763542d37" dependencies: @@ -6317,7 +6873,7 @@ write-file-atomic@^2.0.0: imurmurhash "^0.1.4" slide "^1.1.5" -write-json-file@^2.0.0: +write-json-file@^2.0.0, write-json-file@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.2.0.tgz#51862506bbb3b619eefab7859f1fd6c6d0530876" dependencies: @@ -6335,6 +6891,13 @@ write-pkg@^2.0.0: sort-keys "^1.1.2" write-json-file "^2.0.0" +write-pkg@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.0.1.tgz#f95245805be6f6a4eb1d6c31c43b57226815e6e3" + dependencies: + sort-keys "^1.1.2" + write-json-file "^2.0.0" + write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"