diff --git a/index.js b/index.js index 66f5dbb..c38ed1f 100644 --- a/index.js +++ b/index.js @@ -29,7 +29,6 @@ function HtmlWebpackPlugin (options) { } HtmlWebpackPlugin.prototype.apply = function (compiler) { - var self = this; var isCompilationCached = false; var compilationPromise; @@ -42,59 +41,59 @@ HtmlWebpackPlugin.prototype.apply = function (compiler) { this.options.filename = path.relative(compiler.options.output.path, filename); } - compiler.plugin('make', function (compilation, callback) { + compiler.plugin('make', (compilation, callback) => { // Compile the template (queued) - compilationPromise = childCompiler.compileTemplate(self.options.template, compiler.context, self.options.filename, compilation) - .catch(function (err) { + compilationPromise = childCompiler.compileTemplate(this.options.template, compiler.context, this.options.filename, compilation) + .catch(err => { compilation.errors.push(prettyError(err, compiler.context).toString()); return { - content: self.options.showErrors ? prettyError(err, compiler.context).toJsonHtml() : 'ERROR', - outputName: self.options.filename + content: this.options.showErrors ? prettyError(err, compiler.context).toJsonHtml() : 'ERROR', + outputName: this.options.filename }; }) - .then(function (compilationResult) { + .then(compilationResult => { // If the compilation change didnt change the cache is valid - isCompilationCached = compilationResult.hash && self.childCompilerHash === compilationResult.hash; - self.childCompilerHash = compilationResult.hash; - self.childCompilationOutputName = compilationResult.outputName; + isCompilationCached = compilationResult.hash && this.childCompilerHash === compilationResult.hash; + this.childCompilerHash = compilationResult.hash; + this.childCompilationOutputName = compilationResult.outputName; callback(); return compilationResult.content; }); }); - compiler.plugin('emit', function (compilation, callback) { - var applyPluginsAsyncWaterfall = self.applyPluginsAsyncWaterfall(compilation); + compiler.plugin('emit', (compilation, callback) => { + var applyPluginsAsyncWaterfall = this.applyPluginsAsyncWaterfall(compilation); // Get all chunks var allChunks = compilation.getStats().toJson().chunks; // Filter chunks (options.chunks and options.excludeCHunks) - var chunks = self.filterChunks(allChunks, self.options.chunks, self.options.excludeChunks); + var chunks = this.filterChunks(allChunks, this.options.chunks, this.options.excludeChunks); // Sort chunks - chunks = self.sortChunks(chunks, self.options.chunksSortMode); + chunks = this.sortChunks(chunks, this.options.chunksSortMode); // Let plugins alter the chunks and the chunk sorting - chunks = compilation.applyPluginsWaterfall('html-webpack-plugin-alter-chunks', chunks, { plugin: self }); + chunks = compilation.applyPluginsWaterfall('html-webpack-plugin-alter-chunks', chunks, { plugin: this }); // Get assets - var assets = self.htmlWebpackPluginAssets(compilation, chunks); + var assets = this.htmlWebpackPluginAssets(compilation, chunks); // If this is a hot update compilation, move on! // This solves a problem where an `index.html` file is generated for hot-update js files // It only happens in Webpack 2, where hot updates are emitted separately before the full bundle - if (self.isHotUpdateCompilation(assets)) { + if (this.isHotUpdateCompilation(assets)) { return callback(); } // If the template and the assets did not change we don't have to emit the html - var assetJson = JSON.stringify(self.getAssetFiles(assets)); - if (isCompilationCached && self.options.cache && assetJson === self.assetJson) { + var assetJson = JSON.stringify(this.getAssetFiles(assets)); + if (isCompilationCached && this.options.cache && assetJson === this.assetJson) { return callback(); } else { - self.assetJson = assetJson; + this.assetJson = assetJson; } Promise.resolve() // Favicon - .then(function () { - if (self.options.favicon) { - return self.addFileToAssets(self.options.favicon, compilation) - .then(function (faviconBasename) { + .then(() => { + if (this.options.favicon) { + return this.addFileToAssets(this.options.favicon, compilation) + .then(faviconBasename => { var publicPath = compilation.mainTemplate.getPublicPath({hash: compilation.hash}) || ''; if (publicPath && publicPath.substr(-1) !== '/') { publicPath += '/'; @@ -104,81 +103,65 @@ HtmlWebpackPlugin.prototype.apply = function (compiler) { } }) // Wait for the compilation to finish - .then(function () { - return compilationPromise; - }) - .then(function (compiledTemplate) { + .then(() => compilationPromise) + .then(compiledTemplate => { // Allow to use a custom function / string instead - if (self.options.templateContent !== undefined) { - return self.options.templateContent; + if (this.options.templateContent !== undefined) { + return this.options.templateContent; } // Once everything is compiled evaluate the html factory // and replace it with its content - return self.evaluateCompilationResult(compilation, compiledTemplate); + return this.evaluateCompilationResult(compilation, compiledTemplate); }) // Allow plugins to make changes to the assets before invoking the template // This only makes sense to use if `inject` is `false` - .then(function (compilationResult) { - return applyPluginsAsyncWaterfall('html-webpack-plugin-before-html-generation', false, { - assets: assets, - outputName: self.childCompilationOutputName, - plugin: self - }) - .then(function () { - return compilationResult; - }); + .then(compilationResult => applyPluginsAsyncWaterfall('html-webpack-plugin-before-html-generation', false, { + assets: assets, + outputName: this.childCompilationOutputName, + plugin: this }) + .then(() => compilationResult)) // Execute the template - .then(function (compilationResult) { - // If the loader result is a function execute it to retrieve the html - // otherwise use the returned html - return typeof compilationResult !== 'function' - ? compilationResult - : self.executeTemplate(compilationResult, chunks, assets, compilation); - }) + .then(compilationResult => // If the loader result is a function execute it to retrieve the html + // otherwise use the returned html + (typeof compilationResult !== 'function' ? compilationResult : this.executeTemplate(compilationResult, chunks, assets, compilation))) // Allow plugins to change the html before assets are injected - .then(function (html) { - var pluginArgs = {html: html, assets: assets, plugin: self, outputName: self.childCompilationOutputName}; + .then(html => { + var pluginArgs = {html: html, assets: assets, plugin: this, outputName: this.childCompilationOutputName}; return applyPluginsAsyncWaterfall('html-webpack-plugin-before-html-processing', true, pluginArgs); }) - .then(function (result) { + .then(result => { var html = result.html; var assets = result.assets; var chunks = result.chunks; // Prepare script and link tags - var assetTags = self.generateAssetTags(assets); - var pluginArgs = {head: assetTags.head, body: assetTags.body, plugin: self, chunks: chunks, outputName: self.childCompilationOutputName}; + var assetTags = this.generateAssetTags(assets); + var pluginArgs = {head: assetTags.head, body: assetTags.body, plugin: this, chunks: chunks, outputName: this.childCompilationOutputName}; // Allow plugins to change the assetTag definitions return applyPluginsAsyncWaterfall('html-webpack-plugin-alter-asset-tags', true, pluginArgs) - .then(function (result) { - // Add the stylesheets, scripts and so on to the resulting html - return self.postProcessHtml(html, assets, { body: result.body, head: result.head }) - .then(function (html) { - return _.extend(result, {html: html, assets: assets}); - }); - }); + .then(result => // Add the stylesheets, scripts and so on to the resulting html + this.postProcessHtml(html, assets, { body: result.body, head: result.head }) + .then(html => _.extend(result, {html: html, assets: assets}))); }) // Allow plugins to change the html after assets are injected - .then(function (result) { + .then(result => { var html = result.html; var assets = result.assets; - var pluginArgs = {html: html, assets: assets, plugin: self, outputName: self.childCompilationOutputName}; + var pluginArgs = {html: html, assets: assets, plugin: this, outputName: this.childCompilationOutputName}; return applyPluginsAsyncWaterfall('html-webpack-plugin-after-html-processing', true, pluginArgs) - .then(function (result) { - return result.html; - }); + .then(result => result.html); }) - .catch(function (err) { + .catch(err => { // In case anything went wrong the promise is resolved // with the error message and an error is logged compilation.errors.push(prettyError(err, compiler.context).toString()); // Prevent caching - self.hash = null; - return self.options.showErrors ? prettyError(err, compiler.context).toHtml() : 'ERROR'; + this.hash = null; + return this.options.showErrors ? prettyError(err, compiler.context).toHtml() : 'ERROR'; }) - .then(function (html) { + .then(html => { // Replace the compilation result with the evaluated html code - compilation.assets[self.childCompilationOutputName] = { + compilation.assets[this.childCompilationOutputName] = { source: function () { return html; }, @@ -187,21 +170,17 @@ HtmlWebpackPlugin.prototype.apply = function (compiler) { } }; }) - .then(function () { - // Let other plugins know that we are done: - return applyPluginsAsyncWaterfall('html-webpack-plugin-after-emit', false, { - html: compilation.assets[self.childCompilationOutputName], - outputName: self.childCompilationOutputName, - plugin: self - }).catch(function (err) { - console.error(err); - return null; - }).then(function () { - return null; - }); - }) + .then(() => // Let other plugins know that we are done: + applyPluginsAsyncWaterfall('html-webpack-plugin-after-emit', false, { + html: compilation.assets[this.childCompilationOutputName], + outputName: this.childCompilationOutputName, + plugin: this + }).catch(err => { + console.error(err); + return null; + }).then(() => null)) // Let webpack continue with it - .finally(function () { + .finally(() => { callback(); // Tell blue bird that we don't want to wait for callback. // Fixes "Warning: a promise was created in a handler but none were returned from it" @@ -238,7 +217,7 @@ HtmlWebpackPlugin.prototype.evaluateCompilationResult = function (compilation, s } return typeof newSource === 'string' || typeof newSource === 'function' ? Promise.resolve(newSource) - : Promise.reject('The loader "' + this.options.template + '" didn\'t return html.'); + : Promise.reject(`The loader "${this.options.template}" didn\'t return html.`); }; /** @@ -247,24 +226,23 @@ HtmlWebpackPlugin.prototype.evaluateCompilationResult = function (compilation, s * Returns a promise */ HtmlWebpackPlugin.prototype.executeTemplate = function (templateFunction, chunks, assets, compilation) { - var self = this; return Promise.resolve() // Template processing - .then(function () { + .then(() => { var templateParams = { compilation: compilation, webpack: compilation.getStats().toJson(), webpackConfig: compilation.options, htmlWebpackPlugin: { files: assets, - options: self.options + options: this.options } }; var html = ''; try { html = templateFunction(templateParams); } catch (e) { - compilation.errors.push(new Error('Template execution failed: ' + e)); + compilation.errors.push(new Error(`Template execution failed: ${e}`)); return Promise.reject(e); } return html; @@ -277,15 +255,14 @@ HtmlWebpackPlugin.prototype.executeTemplate = function (templateFunction, chunks * Returns a promise */ HtmlWebpackPlugin.prototype.postProcessHtml = function (html, assets, assetTags) { - var self = this; if (typeof html !== 'string') { - return Promise.reject('Expected html to be a string but got ' + JSON.stringify(html)); + return Promise.reject(`Expected html to be a string but got ${JSON.stringify(html)}`); } return Promise.resolve() // Inject - .then(function () { - if (self.options.inject) { - return self.injectAssetsIntoHtml(html, assets, assetTags); + .then(() => { + if (this.options.inject) { + return this.injectAssetsIntoHtml(html, assets, assetTags); } else { return html; } @@ -301,10 +278,8 @@ HtmlWebpackPlugin.prototype.addFileToAssets = function (filename, compilation) { size: fs.statAsync(filename), source: fs.readFileAsync(filename) }) - .catch(function () { - return Promise.reject(new Error('HtmlWebpackPlugin: could not load file ' + filename)); - }) - .then(function (results) { + .catch(() => Promise.reject(new Error(`HtmlWebpackPlugin: could not load file ${filename}`))) + .then(results => { var basename = path.basename(filename); compilation.fileDependencies.push(filename); compilation.assets[basename] = { @@ -339,14 +314,14 @@ HtmlWebpackPlugin.prototype.sortChunks = function (chunks, sortMode) { if (typeof chunkSorter[sortMode] !== 'undefined') { return chunkSorter[sortMode](chunks); } - throw new Error('"' + sortMode + '" is not a valid chunk sort mode'); + throw new Error(`"${sortMode}" is not a valid chunk sort mode`); }; /** * Return all chunks from the compilation result which match the exclude and include filters */ HtmlWebpackPlugin.prototype.filterChunks = function (chunks, includedChunks, excludedChunks) { - return chunks.filter(function (chunk) { + return chunks.filter(chunk => { var chunkName = chunk.names[0]; // This chunk doesn't have a name. This script can't handled it. if (chunkName === undefined) { @@ -370,13 +345,10 @@ HtmlWebpackPlugin.prototype.filterChunks = function (chunks, includedChunks, exc }; HtmlWebpackPlugin.prototype.isHotUpdateCompilation = function (assets) { - return assets.js.length && assets.js.every(function (name) { - return /\.hot-update\.js$/.test(name); - }); + return assets.js.length && assets.js.every(name => /\.hot-update\.js$/.test(name)); }; HtmlWebpackPlugin.prototype.htmlWebpackPluginAssets = function (compilation, chunks) { - var self = this; var webpackStatsJson = compilation.getStats().toJson(); // Use the configured public path or build a relative path @@ -384,7 +356,7 @@ HtmlWebpackPlugin.prototype.htmlWebpackPluginAssets = function (compilation, chu // If a hard coded public path exists use it ? compilation.mainTemplate.getPublicPath({hash: webpackStatsJson.hash}) // If no public path was set get a relative url path - : path.relative(path.resolve(compilation.options.output.path, path.dirname(self.childCompilationOutputName)), compilation.options.output.path) + : path.relative(path.resolve(compilation.options.output.path, path.dirname(this.childCompilationOutputName)), compilation.options.output.path) .split(path.sep).join('/'); if (publicPath.length && publicPath.substr(-1, 1) !== '/') { @@ -401,15 +373,13 @@ HtmlWebpackPlugin.prototype.htmlWebpackPluginAssets = function (compilation, chu // Will contain all css files css: [], // Will contain the html5 appcache manifest files if it exists - manifest: Object.keys(compilation.assets).filter(function (assetFile) { - return path.extname(assetFile) === '.appcache'; - })[0] + manifest: Object.keys(compilation.assets).filter(assetFile => path.extname(assetFile) === '.appcache')[0] }; // Append a hash for cache busting if (this.options.hash) { - assets.manifest = self.appendHash(assets.manifest, webpackStatsJson.hash); - assets.favicon = self.appendHash(assets.favicon, webpackStatsJson.hash); + assets.manifest = this.appendHash(assets.manifest, webpackStatsJson.hash); + assets.favicon = this.appendHash(assets.favicon, webpackStatsJson.hash); } for (var i = 0; i < chunks.length; i++) { @@ -419,15 +389,11 @@ HtmlWebpackPlugin.prototype.htmlWebpackPluginAssets = function (compilation, chu assets.chunks[chunkName] = {}; // Prepend the public path to all chunk files - var chunkFiles = [].concat(chunk.files).map(function (chunkFile) { - return publicPath + chunkFile; - }); + var chunkFiles = [].concat(chunk.files).map(chunkFile => publicPath + chunkFile); // Append a hash for cache busting if (this.options.hash) { - chunkFiles = chunkFiles.map(function (chunkFile) { - return self.appendHash(chunkFile, webpackStatsJson.hash); - }); + chunkFiles = chunkFiles.map(chunkFile => this.appendHash(chunkFile, webpackStatsJson.hash)); } // Webpack outputs an array for each chunk when using sourcemaps @@ -439,11 +405,9 @@ HtmlWebpackPlugin.prototype.htmlWebpackPluginAssets = function (compilation, chu assets.js.push(entry); // Gather all css files - var css = chunkFiles.filter(function (chunkFile) { - // Some chunks may contain content hash in their names, for ex. 'main.css?1e7cac4e4d8b52fd5ccd2541146ef03f'. - // We must proper handle such cases, so we use regexp testing here - return /.css($|\?)/.test(chunkFile); - }); + var css = chunkFiles.filter(chunkFile => // Some chunks may contain content hash in their names, for ex. 'main.css?1e7cac4e4d8b52fd5ccd2541146ef03f'. + // We must proper handle such cases, so we use regexp testing here + /.css($|\?)/.test(chunkFile)); assets.chunks[chunkName].css = css; assets.css = assets.css.concat(css); } @@ -460,18 +424,14 @@ HtmlWebpackPlugin.prototype.htmlWebpackPluginAssets = function (compilation, chu */ HtmlWebpackPlugin.prototype.generateAssetTags = function (assets) { // Turn script files into script tags - var scripts = assets.js.map(function (scriptPath) { - return htmlTag.createHtmlTagObject('script', { - src: scriptPath - }); - }); + var scripts = assets.js.map(scriptPath => htmlTag.createHtmlTagObject('script', { + src: scriptPath + })); // Turn css files into link tags - var styles = assets.css.map(function (stylePath) { - return htmlTag.createHtmlTagObject('link', { - href: stylePath, - rel: 'stylesheet' - }); - }); + var styles = assets.css.map(stylePath => htmlTag.createHtmlTagObject('link', { + href: stylePath, + rel: 'stylesheet' + })); // Injection targets var head = []; var body = []; @@ -513,9 +473,7 @@ HtmlWebpackPlugin.prototype.injectAssetsIntoHtml = function (html, assets, asset if (body.length) { if (bodyRegExp.test(html)) { // Append assets to body element - html = html.replace(bodyRegExp, function (match) { - return body.join('') + match; - }); + html = html.replace(bodyRegExp, (match) => body.join('') + match); } else { // Append scripts to the end of the file if no element exists: html += body.join(''); @@ -526,28 +484,24 @@ HtmlWebpackPlugin.prototype.injectAssetsIntoHtml = function (html, assets, asset // Create a head tag if none exists if (!headRegExp.test(html)) { if (!htmlRegExp.test(html)) { - html = '' + html; + html = `${html}`; } else { - html = html.replace(htmlRegExp, function (match) { - return match + ''; - }); + html = html.replace(htmlRegExp, (match) => `${match}`); } } // Append assets to head element - html = html.replace(headRegExp, function (match) { - return head.join('') + match; - }); + html = html.replace(headRegExp, match => head.join('') + match); } // Inject manifest into the opening html tag if (assets.manifest) { - html = html.replace(/(]*)(>)/i, function (match, start, end) { + html = html.replace(/(]*)(>)/i, (match, start, end) => { // Append the manifest only if no manifest was specified if (/\smanifest\s*=/.test(match)) { return match; } - return start + ' manifest="' + assets.manifest + '"' + end; + return `${start} manifest="${assets.manifest}"${end}`; }); } return html; @@ -569,14 +523,12 @@ HtmlWebpackPlugin.prototype.appendHash = function (url, hash) { HtmlWebpackPlugin.prototype.getFullTemplatePath = function (template, context) { // If the template doesn't use a loader use the lodash template loader if (template.indexOf('!') === -1) { - template = 'html-webpack-plugin/lib/loader.js!' + path.resolve(context, template); + template = `html-webpack-plugin/lib/loader.js!${path.resolve(context, template)}`; } // Resolve template path return template.replace( /([!])([^/\\][^!?]+|[^/\\!?])($|\?[^!?\n]+$)/, - function (match, prefix, filepath, postfix) { - return prefix + path.resolve(filepath) + postfix; - }); + (match, prefix, filepath, postfix) => prefix + path.resolve(filepath) + postfix); }; /** @@ -584,13 +536,12 @@ HtmlWebpackPlugin.prototype.getFullTemplatePath = function (template, context) { * asset object */ HtmlWebpackPlugin.prototype.getAssetFiles = function (assets) { - var files = _.uniq(Object.keys(assets).filter(function (assetType) { - return assetType !== 'chunks' && assets[assetType]; - }).reduce(function (files, assetType) { - return files.concat(assets[assetType]); - }, [])); - files.sort(); - return files; + var files = Object.keys(assets) + .filter(assetType => assetType !== 'chunks' && assets[assetType]) + .reduce((files, assetType) => files.concat(assets[assetType]), []); + var uniqFiles = _.uniq(files); + uniqFiles.sort(); + return uniqFiles; }; /** @@ -601,9 +552,9 @@ HtmlWebpackPlugin.prototype.applyPluginsAsyncWaterfall = function (compilation) var promisedApplyPluginsAsyncWaterfall = Promise.promisify(compilation.applyPluginsAsyncWaterfall, {context: compilation}); return function (eventName, requiresResult, pluginArgs) { return promisedApplyPluginsAsyncWaterfall(eventName, pluginArgs) - .then(function (result) { + .then(result => { if (requiresResult && !result) { - compilation.warnings.push(new Error('Using ' + eventName + ' without returning a result is deprecated.')); + compilation.warnings.push(new Error(`Using ${eventName} without returning a result is deprecated.`)); } return _.extend(pluginArgs, result); }); diff --git a/lib/chunksorter.js b/lib/chunksorter.js index 8c5faf1..c8479d4 100644 --- a/lib/chunksorter.js +++ b/lib/chunksorter.js @@ -29,17 +29,17 @@ module.exports.dependency = function (chunks) { // We build a map (chunk-id -> chunk) for faster access during graph building. var nodeMap = {}; - chunks.forEach(function (chunk) { + chunks.forEach(chunk => { nodeMap[chunk.id] = chunk; }); // Next, we add an edge for each parent relationship into the graph var edges = []; - chunks.forEach(function (chunk) { + chunks.forEach(chunk => { if (chunk.parents) { // Add an edge for each parent (parent -> child) - chunk.parents.forEach(function (parentId) { + chunk.parents.forEach(parentId => { var parentChunk = nodeMap[parentId]; // If the parent chunk does not exist (e.g. because of an excluded chunk) // we ignore that parent diff --git a/lib/compiler.js b/lib/compiler.js index 9c8a224..0c54bcd 100644 --- a/lib/compiler.js +++ b/lib/compiler.js @@ -56,7 +56,7 @@ module.exports.compileTemplate = function compileTemplate (template, context, ou // Fix for "Uncaught TypeError: __webpack_require__(...) is not a function" // Hot module replacement requires that every child compiler has its own // cache. @see https://github.com/ampedandwired/html-webpack-plugin/pull/179 - childCompiler.plugin('compilation', function (compilation) { + childCompiler.plugin('compilation', compilation => { if (compilation.cache) { if (!compilation.cache[compilerName]) { compilation.cache[compilerName] = {}; @@ -66,14 +66,12 @@ module.exports.compileTemplate = function compileTemplate (template, context, ou }); // Compile and return a promise - return new Promise(function (resolve, reject) { - childCompiler.runAsChild(function (err, entries, childCompilation) { + return new Promise((resolve, reject) => { + childCompiler.runAsChild((err, entries, childCompilation) => { // Resolve / reject the promise if (childCompilation && childCompilation.errors && childCompilation.errors.length) { - var errorDetails = childCompilation.errors.map(function (error) { - return error.message + (error.error ? ':\n' + error.error : ''); - }).join('\n'); - reject(new Error('Child compilation failed:\n' + errorDetails)); + var errorDetails = childCompilation.errors.map(error => error.message + ((error.error ? `:\n${error.error}` : ''))).join('\n'); + reject(new Error(`Child compilation failed:\n${errorDetails}`)); } else if (err) { reject(err); } else { @@ -108,5 +106,5 @@ module.exports.compileTemplate = function compileTemplate (template, context, ou function getCompilerName (context, filename) { var absolutePath = path.resolve(context, filename); var relativePath = path.relative(context, absolutePath); - return 'html-webpack-plugin for "' + (absolutePath.length < relativePath.length ? absolutePath : relativePath) + '"'; + return `html-webpack-plugin for "${absolutePath.length < relativePath.length ? absolutePath : relativePath}"`; } diff --git a/lib/errors.js b/lib/errors.js index ddf3562..18cc499 100644 --- a/lib/errors.js +++ b/lib/errors.js @@ -4,14 +4,12 @@ var prettyError = new PrettyError(); prettyError.withoutColors(); prettyError.skipPackage(['html-plugin-evaluation']); prettyError.skipNodeFiles(); -prettyError.skip(function (traceLine) { - return traceLine.path === 'html-plugin-evaluation'; -}); +prettyError.skip(traceLine => traceLine.path === 'html-plugin-evaluation'); module.exports = function (err, context) { return { toHtml: function () { - return 'Html Webpack Plugin:\n
\n' + this.toString() + '
'; + return `Html Webpack Plugin:\n
\n${this.toString()}
`; }, toJsonHtml: function () { return JSON.stringify(this.toHtml()); diff --git a/lib/html-tags.js b/lib/html-tags.js index 0015946..b64fc3a 100644 --- a/lib/html-tags.js +++ b/lib/html-tags.js @@ -8,18 +8,15 @@ */ function htmlTagObjectToString (tagDefinition, xhtml) { var attributes = Object.keys(tagDefinition.attributes || {}) - .filter(function (attributeName) { - return tagDefinition.attributes[attributeName] !== false; - }) - .map(function (attributeName) { + .filter(attributeName => tagDefinition.attributes[attributeName] !== false) + .map(attributeName => { if (tagDefinition.attributes[attributeName] === true) { - return xhtml ? attributeName + '="' + attributeName + '"' : attributeName; + return xhtml ? `${attributeName}="${attributeName}"` : attributeName; } - return attributeName + '="' + tagDefinition.attributes[attributeName] + '"'; + return `${attributeName}="${tagDefinition.attributes[attributeName]}"`; }); - return '<' + [tagDefinition.tagName].concat(attributes).join(' ') + (tagDefinition.voidTag && xhtml ? '/' : '') + '>' + - (tagDefinition.innerHTML || '') + - (tagDefinition.voidTag ? '' : ''); + + return `<${[tagDefinition.tagName].concat(attributes).join(' ')}${tagDefinition.voidTag && xhtml ? '/' : ''}>${tagDefinition.innerHTML || ''}${tagDefinition.voidTag ? '' : ``}`; } /** diff --git a/lib/loader.js b/lib/loader.js index e1af5e5..180b1b3 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -8,7 +8,7 @@ module.exports = function (source) { if (this.cacheable) { this.cacheable(); } - var allLoadersButThisOne = this.loaders.filter(function (loader) { + var allLoadersButThisOne = this.loaders.filter(loader => { // Loader API changed from `loader.module` to `loader.normal` in Webpack 2. return (loader.module || loader.normal) !== module.exports; }); @@ -38,14 +38,12 @@ module.exports = function (source) { 'webpackConfig', 'htmlWebpackPlugin' ]; - return 'var _ = require(' + loaderUtils.stringifyRequest(this, require.resolve('lodash')) + ');' + - 'module.exports = function (templateParams) {' + - // Declare the template variables in the outer scope of the + return `var _ = require(${loaderUtils.stringifyRequest(this, require.resolve('lodash'))}); + module.exports = function (templateParams) { + ${// Declare the template variables in the outer scope of the // lodash template to unwrap them - templateVariables.map(function (variableName) { - return 'var ' + variableName + ' = templateParams.' + variableName; - }).join(';') + ';' + - // Execute the lodash template - 'return (' + template.source + ')();' + - '}'; + templateVariables.map(variableName => `var ${variableName} = templateParams.${variableName}`).join(';') + }; + return (${template.source})(); + }`; }; diff --git a/package.json b/package.json index 844fb1f..86ec725 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "jade-loader": "^0.8.0", "jasmine": "^2.5.2", "rimraf": "^2.5.4", - "semistandard": "8.0.0", + "semistandard": "9.2.1", "style-loader": "^0.13.1", "underscore-template-loader": "^0.7.3", "url-loader": "^0.5.7", diff --git a/yarn.lock b/yarn.lock index 31e1d60..6dde617 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18,10 +18,6 @@ acorn-jsx@^3.0.0, acorn-jsx@^3.0.1: dependencies: acorn "^3.0.4" -acorn-to-esprima@^2.0.6, acorn-to-esprima@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/acorn-to-esprima/-/acorn-to-esprima-2.0.8.tgz#003f0c642eb92132f417d3708f14ada82adf2eb1" - acorn@^1.0.1: version "1.2.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-1.2.2.tgz#c8ce27de0acc76d896d2b1fad3df588d9e82f014" @@ -69,15 +65,11 @@ ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" -ansi-regex@^1.0.0, ansi-regex@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-1.1.1.tgz#41c847194646375e6a1a5d10c3ca054ef9fc980d" - ansi-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" -ansi-styles@^2.0.1, ansi-styles@^2.2.1: +ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -202,7 +194,7 @@ aws4@^1.2.1: version "1.5.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" -babel-code-frame@^6.11.0, babel-code-frame@^6.20.0: +babel-code-frame@^6.11.0, babel-code-frame@^6.16.0: version "6.20.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.20.0.tgz#b968f839090f9a8bc6d41938fb96cb84f7387b26" dependencies: @@ -210,46 +202,6 @@ babel-code-frame@^6.11.0, babel-code-frame@^6.20.0: esutils "^2.0.2" js-tokens "^2.0.0" -babel-messages@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.8.0.tgz#bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9" - dependencies: - babel-runtime "^6.0.0" - -babel-runtime@^6.0.0, babel-runtime@^6.20.0: - version "6.20.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.20.0.tgz#87300bdcf4cd770f09bf0048c64204e17806d16f" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.10.0" - -babel-traverse@^6.4.5, babel-traverse@^6.9.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.21.0.tgz#69c6365804f1a4f69eb1213f85b00a818b8c21ad" - dependencies: - babel-code-frame "^6.20.0" - babel-messages "^6.8.0" - babel-runtime "^6.20.0" - babel-types "^6.21.0" - babylon "^6.11.0" - debug "^2.2.0" - globals "^9.0.0" - invariant "^2.2.0" - lodash "^4.2.0" - -babel-types@^6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.21.0.tgz#314b92168891ef6d3806b7f7a917fdf87c11a4b2" - dependencies: - babel-runtime "^6.20.0" - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^1.0.1" - -babylon@6.14.1, babylon@^6.11.0, babylon@^6.8.0: - version "6.14.1" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815" - balanced-match@^0.4.1, balanced-match@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" @@ -282,7 +234,7 @@ bluebird@3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.1.tgz#b731ddf48e2dd3bedac2e75e1215a11bcb91fa07" -bluebird@^3.0.5, bluebird@^3.4.7: +bluebird@^3.4.7: version "3.4.7" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" @@ -437,10 +389,6 @@ cli-cursor@^1.0.1: dependencies: restore-cursor "^1.0.1" -cli-width@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-1.1.1.tgz#a4d293ef67ebb7b88d4a4d42c0ccf00c4d1e366d" - cli-width@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" @@ -523,7 +471,7 @@ commander@2.8.x: dependencies: graceful-readlink ">= 1.0.0" -commander@2.9.0, commander@2.9.x, commander@^2.2.0, commander@^2.9.0: +commander@2.9.0, commander@2.9.x, commander@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: @@ -537,7 +485,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.4.6, concat-stream@^1.4.7: +concat-stream@^1.4.6: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: @@ -545,13 +493,6 @@ concat-stream@^1.4.6, concat-stream@^1.4.7: readable-stream "^2.2.2" typedarray "^0.0.6" -config-chain@~1.1.5: - version "1.1.11" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -572,10 +513,6 @@ constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" -core-js@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" - core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -728,17 +665,7 @@ debug-log@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" -debug@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" - -debug@^2.1.1, debug@^2.1.3, debug@^2.2.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" - dependencies: - ms "0.7.2" - -debug@~2.2.0: +debug@^2.1.1, debug@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" dependencies: @@ -752,23 +679,17 @@ deep-extend@~0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" -deep-is@~0.1.2, deep-is@~0.1.3: +deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" -defaults@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - dependencies: - clone "^1.0.2" - defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" -deglob@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/deglob/-/deglob-1.1.2.tgz#76d577c25fe3f7329412a2b59eadea57ac500e3f" +deglob@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.0.tgz#4d44abe16ef32c779b4972bd141a80325029a14a" dependencies: find-root "^1.0.0" glob "^7.0.5" @@ -776,7 +697,6 @@ deglob@^1.0.0: pkg-config "^1.1.0" run-parallel "^1.1.2" uniq "^1.0.1" - xtend "^4.0.0" del@^2.0.2: version "2.2.2" @@ -798,10 +718,6 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" -diff@^1.3.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" - dir-compare@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-1.3.0.tgz#28c13c6b1a5801e7850a7b8fa9a6096bf686f040" @@ -812,20 +728,6 @@ dir-compare@1.3.0: commander "2.9.0" minimatch "3.0.2" -disparity@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/disparity/-/disparity-2.0.0.tgz#57ddacb47324ae5f58d2cc0da886db4ce9eeb718" - dependencies: - ansi-styles "^2.0.1" - diff "^1.3.2" - -doctrine@^0.6.2: - version "0.6.4" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.6.4.tgz#81428491a942ef18b0492056eda3800eee57d61d" - dependencies: - esutils "^1.1.6" - isarray "0.0.1" - doctrine@^1.2.2: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -883,15 +785,6 @@ ecc-jsbn@~0.1.1: dependencies: jsbn "~0.1.0" -editorconfig@^0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.13.2.tgz#8e57926d9ee69ab6cb999f027c2171467acceb35" - dependencies: - bluebird "^3.0.5" - commander "^2.9.0" - lru-cache "^3.2.0" - sigmund "^1.0.1" - emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -981,7 +874,7 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" -escope@^3.1.0, escope@^3.6.0: +escope@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" dependencies: @@ -990,160 +883,50 @@ escope@^3.1.0, escope@^3.6.0: esrecurse "^4.1.0" estraverse "^4.1.1" -esformatter-eol-last@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esformatter-eol-last/-/esformatter-eol-last-1.0.0.tgz#45a78ff4622b1d49e44f56b49905766a63290c07" - dependencies: - string.prototype.endswith "^0.2.0" +eslint-config-semistandard@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-semistandard/-/eslint-config-semistandard-7.0.0.tgz#f803493f56a5172f7f59c35ae648360b41f2ff71" -esformatter-ignore@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/esformatter-ignore/-/esformatter-ignore-0.1.3.tgz#04d3b875bfa49dde004cc58df6f6bbc3c0567f1e" +eslint-config-standard-jsx@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-3.2.0.tgz#c240e26ed919a11a42aa4de8059472b38268d620" -esformatter-jsx@^7.0.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/esformatter-jsx/-/esformatter-jsx-7.4.0.tgz#374e44d3e13775294719aa2d057500e88645eb12" - dependencies: - babylon "6.14.1" - esformatter-ignore "^0.1.3" - extend "3.0.0" - js-beautify "1.6.4" +eslint-config-standard@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-6.2.1.tgz#d3a68aafc7191639e7ee441e7348739026354292" -esformatter-literal-notation@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esformatter-literal-notation/-/esformatter-literal-notation-1.0.1.tgz#710e7b420175fe3f7e5afad5bbad329103842e2f" - dependencies: - rocambole "^0.3.6" - rocambole-token "^1.2.1" +eslint-plugin-promise@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.4.0.tgz#6ba9048c2df57be77d036e0c68918bc9b4fc4195" -esformatter-parser@^1.0, esformatter-parser@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esformatter-parser/-/esformatter-parser-1.0.0.tgz#0854072d0487539ed39cae38d8a5432c17ec11d3" - dependencies: - acorn-to-esprima "^2.0.8" - babel-traverse "^6.9.0" - babylon "^6.8.0" - rocambole "^0.7.0" - -esformatter-quotes@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/esformatter-quotes/-/esformatter-quotes-1.1.0.tgz#e22c6c445c7f306041d81c9b9e51fca6cbfaca82" - -esformatter-remove-trailing-commas@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esformatter-remove-trailing-commas/-/esformatter-remove-trailing-commas-1.0.1.tgz#9397624c1faa980fc4ecc7e5e9813eb4f2b582a7" - dependencies: - rocambole-token "^1.2.1" - -esformatter-semicolon-first@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/esformatter-semicolon-first/-/esformatter-semicolon-first-1.2.0.tgz#e3b512d1d4e07310eabcabf57277ea7c8a56e242" - dependencies: - esformatter-parser "^1.0" - rocambole ">=0.6.0 <2.0" - rocambole-linebreak "^1.0.2" - rocambole-token "^1.2.1" - -esformatter-spaced-lined-comment@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/esformatter-spaced-lined-comment/-/esformatter-spaced-lined-comment-2.0.1.tgz#dc5f3407f93c295e1e56446bd344560da5e6dcac" - -esformatter@^0.9.0: - version "0.9.6" - resolved "https://registry.yarnpkg.com/esformatter/-/esformatter-0.9.6.tgz#3608aec7828deee3cd3f46e1192aeb47268a957f" - dependencies: - acorn-to-esprima "^2.0.6" - babel-traverse "^6.4.5" - debug "^0.7.4" - disparity "^2.0.0" - esformatter-parser "^1.0.0" - glob "^5.0.3" - minimist "^1.1.1" - mout ">=0.9 <2.0" - npm-run "^2.0.0" - resolve "^1.1.5" - rocambole ">=0.7 <2.0" - rocambole-indent "^2.0.4" - rocambole-linebreak "^1.0.2" - rocambole-node "~1.0" - rocambole-token "^1.1.2" - rocambole-whitespace "^1.0.0" - stdin "*" - strip-json-comments "~0.1.1" - supports-color "^1.3.1" - user-home "^2.0.0" - -eslint-config-semistandard@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/eslint-config-semistandard/-/eslint-config-semistandard-6.0.2.tgz#257b96337d2a8f2eb20e20e5f0e8235014a190d4" - -eslint-config-standard-jsx@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-1.2.0.tgz#ca9fd593610e6af55a2ad3f4300092d1e8c0def5" - -eslint-config-standard@5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-5.3.1.tgz#591c969151744132f561d3b915a812ea413fe490" - -eslint-plugin-promise@^1.0.8: - version "1.3.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-1.3.2.tgz#fce332d6f5ff523200a537704863ec3c2422ba7c" - -eslint-plugin-react@^5.0.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-5.2.2.tgz#7db068e1f5487f6871e4deef36a381c303eac161" +eslint-plugin-react@~6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.8.0.tgz#741ab5438a094532e5ce1bbb935d6832356f492d" dependencies: doctrine "^1.2.2" - jsx-ast-utils "^1.2.1" + jsx-ast-utils "^1.3.4" -eslint-plugin-standard@^1.3.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-1.3.3.tgz#a3085451523431e76f409c70cb8f94e32bf0ec7f" +eslint-plugin-standard@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-2.0.1.tgz#3589699ff9c917f2c25f76a916687f641c369ff3" -eslint@^0.24.1: - version "0.24.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-0.24.1.tgz#54a50809855b9655721c6f2ee57b351edce28101" - dependencies: - chalk "^1.0.0" - concat-stream "^1.4.6" - debug "^2.1.1" - doctrine "^0.6.2" - escape-string-regexp "^1.0.2" - escope "^3.1.0" - espree "^2.0.1" - estraverse "^4.1.0" - estraverse-fb "^1.3.1" - globals "^8.0.0" - inquirer "^0.8.2" - is-my-json-valid "^2.10.0" - js-yaml "^3.2.5" - minimatch "^2.0.1" - mkdirp "^0.5.0" - object-assign "^2.0.0" - optionator "^0.5.0" - path-is-absolute "^1.0.0" - strip-json-comments "~1.0.1" - text-table "~0.2.0" - user-home "^1.0.0" - xml-escape "~1.0.0" - -eslint@^2.10.1: - version "2.13.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-2.13.1.tgz#e4cc8fa0f009fb829aaae23855a29360be1f6c11" +eslint@~3.11.1: + version "3.11.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.11.1.tgz#408be581041385cba947cd8d1cd2227782b55dbf" dependencies: + babel-code-frame "^6.16.0" chalk "^1.1.3" concat-stream "^1.4.6" debug "^2.1.1" doctrine "^1.2.2" - es6-map "^0.1.3" escope "^3.6.0" - espree "^3.1.6" + espree "^3.3.1" estraverse "^4.2.0" esutils "^2.0.2" - file-entry-cache "^1.1.1" + file-entry-cache "^2.0.0" glob "^7.0.3" globals "^9.2.0" - ignore "^3.1.2" + ignore "^3.2.0" imurmurhash "^0.1.4" inquirer "^0.12.0" is-my-json-valid "^2.10.0" @@ -1153,37 +936,30 @@ eslint@^2.10.1: levn "^0.3.0" lodash "^4.0.0" mkdirp "^0.5.0" - optionator "^0.8.1" - path-is-absolute "^1.0.0" + natural-compare "^1.4.0" + optionator "^0.8.2" path-is-inside "^1.0.1" pluralize "^1.2.1" progress "^1.1.8" require-uncached "^1.0.2" - shelljs "^0.6.0" + shelljs "^0.7.5" + strip-bom "^3.0.0" strip-json-comments "~1.0.1" table "^3.7.8" text-table "~0.2.0" user-home "^2.0.0" -espree@^2.0.1: - version "2.2.5" - resolved "https://registry.yarnpkg.com/espree/-/espree-2.2.5.tgz#df691b9310889402aeb29cc066708c56690b854b" - -espree@^3.1.6: +espree@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/espree/-/espree-3.3.2.tgz#dbf3fadeb4ecb4d4778303e50103b3d36c88b89c" dependencies: acorn "^4.0.1" acorn-jsx "^3.0.0" -esprima@^2.1, esprima@^2.6.0: +esprima@^2.6.0: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" -esprima@~1.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" - esprima@~3.1.0: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" @@ -1195,11 +971,7 @@ esrecurse@^4.1.0: estraverse "~4.1.0" object-assign "^4.0.1" -estraverse-fb@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/estraverse-fb/-/estraverse-fb-1.3.1.tgz#160e75a80e605b08ce894bcce2fe3e429abf92bf" - -estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" @@ -1207,10 +979,6 @@ estraverse@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" -esutils@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375" - esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -1246,7 +1014,7 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" -extend@3.0.0, extend@~3.0.0: +extend@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" @@ -1268,10 +1036,6 @@ extsprintf@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" -fast-levenshtein@~1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz#0178dcdee023b92905193af0959e8a7639cfdcb9" - fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" @@ -1287,9 +1051,9 @@ figures@^1.3.5: escape-string-regexp "^1.0.5" object-assign "^4.1.0" -file-entry-cache@^1.1.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz#44c61ea607ae4be9c1402f41f44270cbfe334ff8" +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" dependencies: flat-cache "^1.2.1" object-assign "^4.0.1" @@ -1318,10 +1082,6 @@ find-root@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.0.0.tgz#962ff211aab25c6520feeeb8d6287f8f6e95807a" -findit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/findit/-/findit-2.0.0.tgz#6509f0126af4c178551cfa99394e032e13a4d56e" - flat-cache@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" @@ -1413,10 +1173,6 @@ generate-object-property@^1.1.0: dependencies: is-property "^1.0.0" -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - get-stdin@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" @@ -1440,17 +1196,7 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@^5.0.3: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.3, glob@^7.0.5, glob@^7.0.6: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: @@ -1461,11 +1207,7 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.0.6: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^8.0.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-8.18.0.tgz#93d4a62bdcac38cfafafc47d6b034768cb0ffcb4" - -globals@^9.0.0, globals@^9.2.0: +globals@^9.2.0: version "9.14.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034" @@ -1534,6 +1276,13 @@ hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + html-comment-regex@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" @@ -1590,7 +1339,7 @@ ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" -ignore@^3.0.9, ignore@^3.1.2: +ignore@^3.0.9, ignore@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435" @@ -1621,7 +1370,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.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" @@ -1643,28 +1392,13 @@ inquirer@^0.12.0: strip-ansi "^3.0.0" through "^2.3.6" -inquirer@^0.8.2: - version "0.8.5" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.8.5.tgz#dbd740cf6ca3b731296a63ce6f6d961851f336df" - dependencies: - ansi-regex "^1.1.1" - chalk "^1.0.0" - cli-width "^1.0.1" - figures "^1.3.5" - lodash "^3.3.1" - readline2 "^0.1.1" - rx "^2.4.3" - through "^2.3.6" - interpret@^0.6.4: version "0.6.6" resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" -invariant@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" - dependencies: - loose-envify "^1.0.0" +interpret@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" is-absolute-url@^2.0.0: version "2.1.0" @@ -1793,10 +1527,6 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" -isexe@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" - isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -1849,27 +1579,11 @@ js-base64@^2.1.9: version "2.1.9" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" -js-beautify@1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.6.4.tgz#a9af79699742ac9a1b6fddc1fdbc78bc4d515fc3" - dependencies: - config-chain "~1.1.5" - editorconfig "^0.13.2" - mkdirp "~0.5.0" - nopt "~3.0.1" - js-tokens@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" -js-yaml@^3.2.5, js-yaml@^3.5.1: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -js-yaml@~3.6.1: +js-yaml@^3.5.1, js-yaml@~3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" dependencies: @@ -1925,7 +1639,7 @@ jstransformer@0.0.2: is-promise "^2.0.0" promise "^6.0.1" -jsx-ast-utils@^1.2.1: +jsx-ast-utils@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.3.5.tgz#9ba6297198d9f754594d62e59496ffb923778dd4" dependencies: @@ -1949,13 +1663,6 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -levn@~0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.2.5.tgz#ba8d339d0ca4a610e3a3f145b9caf48807155054" - dependencies: - prelude-ls "~1.1.0" - type-check "~0.3.1" - loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@^0.2.3, loader-utils@^0.2.7, loader-utils@~0.2.2, loader-utils@~0.2.5: version "0.2.16" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" @@ -1973,11 +1680,7 @@ lodash.indexof@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/lodash.indexof/-/lodash.indexof-4.0.5.tgz#53714adc2cddd6ed87638f893aa9b6c24e31ef3c" -lodash@^3.3.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" - -lodash@^4.0.0, lodash@^4.17.3, lodash@^4.2.0, lodash@^4.3.0: +lodash@^4.0.0, lodash@^4.17.3, lodash@^4.3.0: version "4.17.3" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.3.tgz#557ed7d2a9438cac5fd5a43043ca60cb455e01f7" @@ -1985,22 +1688,10 @@ longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" -loose-envify@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.0.tgz#6b26248c42f6d4fa4b0d8542f78edfcde35642a8" - dependencies: - js-tokens "^2.0.0" - lower-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.3.tgz#c92393d976793eee5ba4edb583cf8eae35bd9bfb" -lru-cache@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee" - dependencies: - pseudomap "^1.0.1" - macaddress@^0.2.8: version "0.2.8" resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" @@ -2054,23 +1745,17 @@ mime@1.2.x: version "1.2.11" resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" -"minimatch@2 || 3", minimatch@3.0.2, minimatch@^3.0.0, minimatch@^3.0.2: +minimatch@3.0.2, minimatch@^3.0.0, minimatch@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.2.tgz#0f398a7300ea441e9c348c83d98ab8c9dbf9c40a" dependencies: brace-expansion "^1.0.0" -minimatch@^2.0.1: - version "2.0.10" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" - dependencies: - brace-expansion "^1.0.0" - 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@^1.1.0, minimist@^1.1.1, minimist@^1.2.0: +minimist@^1.1.0, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -2080,32 +1765,10 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0: dependencies: minimist "0.0.8" -"mout@>=0.9 <2.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/mout/-/mout-1.0.0.tgz#9bdf1d4af57d66d47cb353a6335a3281098e1501" - -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: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - -multiline@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/multiline/-/multiline-1.0.2.tgz#69b1f25ff074d2828904f244ddd06b7d96ef6c93" - dependencies: - strip-indent "^1.0.0" - -mute-stream@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.4.tgz#a9219960a6d5d5d046597aee51252c6655f7177e" - mute-stream@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" @@ -2114,6 +1777,10 @@ nan@^2.3.0: version "2.5.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.0.tgz#aa8f1e34531d807e9e27755b234b4a6ec0c152a8" +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + ncname@1.0.x: version "1.0.0" resolved "https://registry.yarnpkg.com/ncname/-/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c" @@ -2168,7 +1835,7 @@ node-pre-gyp@^0.6.29: tar "~2.2.1" tar-pack "~3.3.0" -nopt@~3.0.1, nopt@~3.0.6: +nopt@~3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: @@ -2191,31 +1858,6 @@ normalize-url@^1.4.0: query-string "^4.1.0" sort-keys "^1.0.0" -npm-path@^1.0.0, npm-path@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-1.1.0.tgz#0474ae00419c327d54701b7cf2cd05dc88be1140" - dependencies: - which "^1.2.4" - -npm-run@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/npm-run/-/npm-run-2.0.0.tgz#28dfc0ad5e2e46fe0848e2bd58ddf002e7b73c15" - dependencies: - minimist "^1.1.1" - npm-path "^1.0.1" - npm-which "^2.0.0" - serializerr "^1.0.1" - spawn-sync "^1.0.5" - sync-exec "^0.5.0" - -npm-which@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-2.0.0.tgz#0c46982160b783093661d1d01bd4496d2feabbac" - dependencies: - commander "^2.2.0" - npm-path "^1.0.0" - which "^1.0.5" - npmlog@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" @@ -2243,10 +1885,6 @@ oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" - object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" @@ -2287,18 +1925,7 @@ optimist@~0.6.0: minimist "~0.0.1" wordwrap "~0.0.2" -optionator@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.5.0.tgz#b75a8995a2d417df25b6e4e3862f50aa88651368" - dependencies: - deep-is "~0.1.2" - fast-levenshtein "~1.0.0" - levn "~0.2.5" - prelude-ls "~1.1.1" - type-check "~0.3.1" - wordwrap "~0.0.2" - -optionator@^0.8.1: +optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: @@ -2317,9 +1944,9 @@ os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" -os-shim@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" +os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" pako@~0.2.0: version "0.2.9" @@ -2617,7 +2244,7 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0 source-map "^0.5.6" supports-color "^3.1.2" -prelude-ls@~1.1.0, prelude-ls@~1.1.1, prelude-ls@~1.1.2: +prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -2664,22 +2291,10 @@ promise@~2.0: dependencies: is-promise "~1" -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - -protochain@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/protochain/-/protochain-1.0.5.tgz#991c407e99de264aadf8f81504b5e7faf7bfa260" - prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" -pseudomap@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" @@ -2769,13 +2384,6 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" -readline2@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/readline2/-/readline2-0.1.1.tgz#99443ba6e83b830ef3051bfd7dc241a82728d568" - dependencies: - mute-stream "0.0.4" - strip-ansi "^2.0.1" - readline2@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" @@ -2793,6 +2401,12 @@ recast@~0.11.12: private "~0.1.5" source-map "~0.5.0" +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + reduce-css-calc@^1.2.6: version "1.3.0" resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" @@ -2811,10 +2425,6 @@ regenerate@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" -regenerator-runtime@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz#257f41961ce44558b18f7814af48c17559f9faeb" - regex-cache@^0.4.2: version "0.4.3" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" @@ -2858,7 +2468,7 @@ repeat-element@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" -repeat-string@^1.5.0, repeat-string@^1.5.2: +repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -2898,7 +2508,7 @@ resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" -resolve@^1.1.5: +resolve@^1.1.6: version "1.2.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c" @@ -2925,50 +2535,6 @@ ripemd160@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" -rocambole-indent@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/rocambole-indent/-/rocambole-indent-2.0.4.tgz#a18a24977ca0400b861daa4631e861dcb52d085c" - dependencies: - debug "^2.1.3" - mout "^0.11.0" - rocambole-token "^1.2.1" - -rocambole-linebreak@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/rocambole-linebreak/-/rocambole-linebreak-1.0.2.tgz#03621515b43b4721c97e5a1c1bca5a0366368f2f" - dependencies: - debug "^2.1.3" - rocambole-token "^1.2.1" - semver "^4.3.1" - -rocambole-node@~1.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rocambole-node/-/rocambole-node-1.0.0.tgz#db5b49de7407b0080dd514872f28e393d0f7ff3f" - -rocambole-token@^1.1.2, rocambole-token@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/rocambole-token/-/rocambole-token-1.2.1.tgz#c785df7428dc3cb27ad7897047bd5238cc070d35" - -rocambole-whitespace@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rocambole-whitespace/-/rocambole-whitespace-1.0.0.tgz#63330949256b29941f59b190459f999c6b1d3bf9" - dependencies: - debug "^2.1.3" - repeat-string "^1.5.0" - rocambole-token "^1.2.1" - -"rocambole@>=0.6.0 <2.0", "rocambole@>=0.7 <2.0", rocambole@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/rocambole/-/rocambole-0.7.0.tgz#f6c79505517dc42b6fb840842b8b953b0f968585" - dependencies: - esprima "^2.1" - -rocambole@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/rocambole/-/rocambole-0.3.6.tgz#4debbf5943144bc7b6006d95be8facc0b74352a7" - dependencies: - esprima "~1.0" - run-async@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" @@ -2983,60 +2549,27 @@ rx-lite@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" -rx@^2.4.3: - version "2.5.3" - resolved "https://registry.yarnpkg.com/rx/-/rx-2.5.3.tgz#21adc7d80f02002af50dae97fd9dbf248755f566" - sax@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" -semi@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/semi/-/semi-4.0.5.tgz#4b995c0c16639238f6ae298c840582a8bf0511ee" +semistandard@9.2.1: + version "9.2.1" + resolved "https://registry.yarnpkg.com/semistandard/-/semistandard-9.2.1.tgz#65d0e99deb63225250b8a993cec8174b54593a9d" dependencies: - eslint "^0.24.1" - findit "^2.0.0" - minimist "^1.1.0" - mkdirp "^0.5.0" - -semistandard-format@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/semistandard-format/-/semistandard-format-3.0.0.tgz#785f1500dc8405dd561dd0b8afc1971448f523eb" - dependencies: - minimist "^1.1.0" - semi "^4.0.4" - standard-format "^2.1.1" - stdin "0.0.1" - -semistandard@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/semistandard/-/semistandard-8.0.0.tgz#fd869e2e4d7d2ebfc65b046625c189b78b67dd1e" - dependencies: - eslint "^2.10.1" - eslint-config-semistandard "^6.0.2" - eslint-config-standard "5.3.1" - eslint-config-standard-jsx "1.2.0" - eslint-plugin-promise "^1.0.8" - eslint-plugin-react "^5.0.1" - eslint-plugin-standard "^1.3.1" - semistandard-format "^3.0.0" - standard-engine "^4.0.0" - -semver@^4.3.1: - version "4.3.6" - resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + eslint "~3.11.1" + eslint-config-semistandard "7.0.0" + eslint-config-standard "6.2.1" + eslint-config-standard-jsx "3.2.0" + eslint-plugin-promise "~3.4.0" + eslint-plugin-react "~6.8.0" + eslint-plugin-standard "~2.0.1" + standard-engine "~5.3.0" semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" -serializerr@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/serializerr/-/serializerr-1.0.3.tgz#12d4c5aa1c3ffb8f6d1dc5f395aa9455569c3f91" - dependencies: - protochain "^1.0.5" - set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -3053,13 +2586,13 @@ sha.js@2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" -shelljs@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" - -sigmund@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" +shelljs@^0.7.5: + version "0.7.6" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" signal-exit@^3.0.0: version "3.0.2" @@ -3101,13 +2634,6 @@ source-map@~0.1.7: dependencies: amdefine ">=0.0.4" -spawn-sync@^1.0.5: - version "1.0.15" - resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" - dependencies: - concat-stream "^1.4.7" - os-shim "^0.1.2" - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -3127,38 +2653,16 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" -standard-engine@^4.0.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-4.1.3.tgz#7a31aad54f03d9f39355f43389ce0694f4094155" +standard-engine@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-5.3.0.tgz#fa254d7e068d92de8019d9945d420286d1ce04c9" dependencies: - defaults "^1.0.2" - deglob "^1.0.0" + deglob "^2.1.0" find-root "^1.0.0" get-stdin "^5.0.1" + home-or-tmp "^2.0.0" minimist "^1.1.0" - multiline "^1.0.2" pkg-config "^1.0.1" - xtend "^4.0.0" - -standard-format@^2.1.1: - version "2.2.4" - resolved "https://registry.yarnpkg.com/standard-format/-/standard-format-2.2.4.tgz#b90fb39a635f749cd4fd117fe4730d31179aaeef" - dependencies: - deglob "^1.0.0" - esformatter "^0.9.0" - esformatter-eol-last "^1.0.0" - esformatter-jsx "^7.0.0" - esformatter-literal-notation "^1.0.0" - esformatter-quotes "^1.0.0" - esformatter-remove-trailing-commas "^1.0.1" - esformatter-semicolon-first "^1.1.0" - esformatter-spaced-lined-comment "^2.0.0" - minimist "^1.1.0" - stdin "0.0.1" - -stdin@*, stdin@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/stdin/-/stdin-0.0.1.tgz#d3041981aaec3dfdbc77a1b38d6372e38f5fb71e" stream-browserify@^2.0.1: version "2.0.1" @@ -3196,10 +2700,6 @@ string-width@^2.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^3.0.0" -string.prototype.endswith@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/string.prototype.endswith/-/string.prototype.endswith-0.2.0.tgz#a19c20dee51a98777e9a47e10f09be393b9bba75" - string_decoder@^0.10.25, string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -3208,27 +2708,15 @@ stringstream@~0.0.4: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" -strip-ansi@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-2.0.1.tgz#df62c1aa94ed2f114e1d0f21fd1d50482b79a60e" - dependencies: - ansi-regex "^1.0.0" - strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" dependencies: ansi-regex "^2.0.0" -strip-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - dependencies: - get-stdin "^4.0.1" - -strip-json-comments@~0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-0.1.3.tgz#164c64e370a8a3cc00c9e01b539e569823f0ee54" +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" strip-json-comments@~1.0.1, strip-json-comments@~1.0.4: version "1.0.4" @@ -3244,10 +2732,6 @@ supports-color@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" -supports-color@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.3.1.tgz#15758df09d8ff3b4acc307539fabe27095e1042d" - supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -3270,10 +2754,6 @@ svgo@^0.7.0: sax "~1.2.1" whet.extend "~0.9.9" -sync-exec@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/sync-exec/-/sync-exec-0.5.0.tgz#3f7258e4a5ba17245381909fa6a6f6cf506e1661" - table@^3.7.8: version "3.8.3" resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" @@ -3334,10 +2814,6 @@ to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" -to-fast-properties@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" - toposort@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.0.tgz#b66cf385a1a8a8e68e45b8259e7f55875e8b06ef" @@ -3372,7 +2848,7 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" -type-check@~0.3.1, type-check@~0.3.2: +type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" dependencies: @@ -3445,10 +2921,6 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" -user-home@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - user-home@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" @@ -3549,12 +3021,6 @@ whet.extend@~0.9.9: version "0.9.9" resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" -which@^1.0.5, which@^1.2.4: - version "1.2.12" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" - dependencies: - isexe "^1.1.1" - wide-align@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" @@ -3598,10 +3064,6 @@ xml-char-classes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" -xml-escape@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/xml-escape/-/xml-escape-1.0.0.tgz#00963d697b2adf0c185c4e04e73174ba9b288eb2" - xtend@^4.0.0, xtend@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"