From e893f29575f481242211a08b435d5154ef6abde8 Mon Sep 17 00:00:00 2001 From: Guy Campbell Date: Mon, 29 Jan 2018 23:39:17 +0000 Subject: [PATCH] completed work to enable use of webpack relative and aliased paths --- index.js | 518 ++++++---- package.json | 21 +- spec/build.js | 29 + spec/fixtures/blank.html | 21 + spec/fixtures/images/not-an-svg.png | Bin 0 -> 35727 bytes spec/fixtures/index.html | 15 +- spec/fixtures/partial.html | 8 +- spec/index.spec.js | 101 +- spec/webpack.base.config.js | 79 ++ yarn.lock | 1490 +++++++++++++++++---------- 10 files changed, 1501 insertions(+), 781 deletions(-) create mode 100644 spec/build.js create mode 100644 spec/fixtures/blank.html create mode 100644 spec/fixtures/images/not-an-svg.png create mode 100644 spec/webpack.base.config.js diff --git a/index.js b/index.js index b5a7d62..765efb3 100755 --- a/index.js +++ b/index.js @@ -1,6 +1,5 @@ 'use strict' -const assert = require('assert') const path = require('path') const chalk = require('chalk') const parse5 = require('parse5') @@ -9,170 +8,285 @@ const fs = require('fs') const SVGO = require('svgo') const svgoDefaultConfig = require(path.resolve(__dirname, 'svgo-config.js')) -// let $ -let outputHtml +/** + * class to inline SVGs within html-webpack-plugin templates + * + */ +class HtmlWebpackInlineSVGPlugin { -let userConfig + constructor (options = null) { -function HtmlWebpackInlineSVGPlugin (options) { + if (options !== null) console.log(chalk.yellow('The HtmlWebpackInlineSVGPlugin does not accept any options')) - assert.equal(options, undefined, 'The HtmlWebpackInlineSVGPlugin does not accept any options') + this.userConfig = '' + this.outputPath = '' -} + this.files = [] + + } + + + /** + * required to create a webpack plugin + * @param {object} compiler - webpack compiler + * + */ + apply (compiler) { + + + // Hook into the html-webpack-plugin processing -HtmlWebpackInlineSVGPlugin.prototype.apply = function (compiler) { + compiler.plugin('compilation', (compilation) => { - // Hook into the html-webpack-plugin processing - compiler.plugin('compilation', (compilation) => { + compilation.plugin('html-webpack-plugin-after-emit', (htmlPluginData, callback) => { - compilation.plugin('html-webpack-plugin-after-html-processing', (htmlPluginData, callback) => { - // build the custom config - userConfig = - htmlPluginData.plugin.options.svgoConfig && - _.isObject(htmlPluginData.plugin.options.svgoConfig) ? - htmlPluginData.plugin.options.svgoConfig : - {} + // fetch the output path from webpack - this.processImages(htmlPluginData.html) - .then((html) => { + this.outputPath = compilation.outputOptions && + compilation.outputOptions.path ? + compilation.outputOptions.path : + '' - htmlPluginData.html = html || htmlPluginData.html + if (!this.outputPath) { + + console.log(chalk.red('no output path found on compilation.outputOptions')) callback(null, htmlPluginData) + return + + } + + + // get the custom config + + this.userConfig = + htmlPluginData.plugin.options.svgoConfig && + _.isObject(htmlPluginData.plugin.options.svgoConfig) ? + htmlPluginData.plugin.options.svgoConfig : + {} + + + // get the filename + + const filename = htmlPluginData.outputName ? htmlPluginData.outputName : '' + + if (!filename) { + + console.log(chalk.red('no filename found on htmlPluginData.outputName')) + + callback(null, htmlPluginData) + + return + + } + + + // get the emitted HTML - prior to SVG's being inlined + + const originalHtml = htmlPluginData.html.source() + + + // add filename and original html to the file array + + this.files.push({ + filename, + originalHtml, }) - .catch((err) => callback(null, htmlPluginData)) + + + // fire callback to pass control to any further plugins + + callback(null, htmlPluginData) + + }) }) - }) -} + // hook after-emit so we can read the generated SVG assets within + // the output directory + compiler.plugin('after-emit', (compilation, callback) => { -/** - * find all inline images and replace their html within the output - * @param {string} html - * @returns {Promise} - * - */ -HtmlWebpackInlineSVGPlugin.prototype.processImages = function (html) { + if (!this.files.length) { - return new Promise((resolve, reject) => { + console.log(chalk.green('no files passed for SVG inline to process')) - const documentFragment = parse5.parseFragment(html, { - locationInfo: true - }) + return - // grab the images to process from the original DOM fragment - const inlineImages = this.getInlineImages(documentFragment) + } + + + // iterate over each file and inline it's SVGs - // if we have no inlined images return the html - if (!inlineImages.length) return resolve(html) + this.files.forEach((file) => { - // process the imageNodes - this.updateHTML(html, inlineImages) - .then((html) => resolve(html)) - .catch((err) => { + this.processImages(file.originalHtml) + .then((html) => this.updateOutputFile(html, file.filename)) + .then(() => { - console.log(chalk.underline.red('processImages hit error')) - console.log(chalk.red(err)) + // console.log(chalk.green('SVGs inlining complete: ' + file.filename)) - reject(err) + }) + .catch((err) => console.log(chalk.red(err.message))) }) - }) -} + // notify webpack that this process is complete + callback() -/** - * run the Promises in a synchronous order - * allows us to ensure we have completed processing of an inline image - * before the next ones Promise is called (via then chaining) - * @param {object} html - * @param {array} inlineImages - * @returns {Promise} - * - */ -HtmlWebpackInlineSVGPlugin.prototype.updateHTML = function (html, inlineImages) { + }) - return inlineImages.reduce((promise, imageNode) => { + } - return promise.then((html) => { - return this.processImage(html) + /** + * once we've inlined all SVGs and generated the final html + * we need to write it to the file output by html-webpack-plugin + * Note: we can not simply update the callbacks html as we are + * working with the emitted data due to allowing for webpack to first + * resolve and output all files + * @param {string} html - processed and updated html with inlined SVGs + * @param {string} filename - the template file we are currently processing + * @returns {Promise} + * + */ + updateOutputFile (html, filename) { - }) + if (!this.outputPath || !filename) return Promise.reject(new Error('outputPath & filename must be set to update output file')) - }, Promise.resolve(html)) + else if (!html) return Promise.resolve() -} + return new Promise((resolve, reject) => { -/** - * get the first inline image and replace it with its inline SVG - * @returns {Promise} - * - */ -HtmlWebpackInlineSVGPlugin.prototype.processImage = function (html) { + // set the output file to the updated html + + fs.writeFile(path.resolve(this.outputPath, filename), html, (err) => { + + if (err) { + + reject(err) + + return - return new Promise((resolve, reject) => { + } + + resolve() + + }) - // rebuild the document fragment each time with the updated html - const documentFragment = parse5.parseFragment(html, { - locationInfo: true, }) - const inlineImage = this.getFirstInlineImage(documentFragment) + } + + + /** + * find all inline images and replace their html within the output + * @param {string} html - generated html from html-webpack-plugin + * @returns {Promise} + * + */ + processImages (html) { + + return new Promise((resolve, reject) => { + + const documentFragment = parse5.parseFragment(html, { + locationInfo: true + }) + - if (inlineImage) { + // grab the images to process from the original DOM fragment - this.processOutputHtml(html, inlineImage) - .then((html) => { + const inlineImages = this.getInlineImages(documentFragment) - resolve(html) + + // if we have no inlined images return the html + + if (!inlineImages.length) return resolve() + + + // process the imageNodes + + this.updateHTML(html, inlineImages) + .then((html) => resolve(html)) + .catch((err) => { + + console.log(chalk.underline.red('processImages hit error')) + console.log(chalk.red(err)) + + reject(err) }) - .catch((err) => reject(err)) - } else { + }) + + } - // no inline image - just resolve - resolve(html) - } + /** + * run the Promises in a synchronous order + * allows us to ensure we have completed processing of an inline image + * before the next ones Promise is called (via then chaining) + * @param {object} html + * @param {array} inlineImages + * @returns {Promise} + * + */ + updateHTML (html, inlineImages) { - }) + return inlineImages.reduce((promise, imageNode) => { -} + return promise.then((html) => { + return this.processImage(html) -/** - * get a count for how many inline images the html document contains - * @param {Object} documentFragment - parse5 processed html - * @param {array} inlineImages - * @returns {array} - * - */ -HtmlWebpackInlineSVGPlugin.prototype.getInlineImages = function (documentFragment, inlineImages) { + }) + + }, Promise.resolve(html)) + + } - if (!inlineImages) inlineImages = [] - if (documentFragment.childNodes && documentFragment.childNodes.length) { + /** + * get the first inline image and replace it with its inline SVG + * @returns {Promise} + * + */ + processImage (html) { - documentFragment.childNodes.forEach((childNode) => { + return new Promise((resolve, reject) => { - if (this.isNodeValidInlineImage(childNode)) { - inlineImages.push(childNode) + // rebuild the document fragment each time with the updated html + + const documentFragment = parse5.parseFragment(html, { + locationInfo: true, + }) + + const inlineImage = this.getFirstInlineImage(documentFragment) + + if (inlineImage) { + + this.processOutputHtml(html, inlineImage) + .then((html) => { + + resolve(html) + + }) + .catch((err) => reject(err)) } else { - inlineImages = this.getInlineImages(childNode, inlineImages) + + // no inline image - just resolve + + resolve(html) } @@ -180,129 +294,181 @@ HtmlWebpackInlineSVGPlugin.prototype.getInlineImages = function (documentFragmen } - return inlineImages -} + /** + * get a count for how many inline images the html document contains + * @param {Object} documentFragment - parse5 processed html + * @param {array} inlineImages + * @returns {array} + * + */ + getInlineImages (documentFragment, inlineImages) { + if (!inlineImages) inlineImages = [] -/** - * return the first inline image or false if none - * @param {Object} documentFragment - parse5 processed html - * @returns {null|Object} - null if no inline image - parse5 documentFragment if there is - * - */ -HtmlWebpackInlineSVGPlugin.prototype.getFirstInlineImage = function (documentFragment) { + if (documentFragment.childNodes && documentFragment.childNodes.length) { - const inlineImages = this.getInlineImages(documentFragment) + documentFragment.childNodes.forEach((childNode) => { - if (!inlineImages.length) return null + if (this.isNodeValidInlineImage(childNode)) { - return inlineImages[0] + inlineImages.push(childNode) -} + } else { + inlineImages = this.getInlineImages(childNode, inlineImages) -/** - * check if a node is a valid inline image - * @param {Object} node - parse5 documentFragment - * @returns {boolean} - * - */ -HtmlWebpackInlineSVGPlugin.prototype.isNodeValidInlineImage = function (node) { + } - return !!( - node.nodeName === 'img' && - _.filter(node.attrs, { name: 'inline' }).length && - this.getImagesSrc(node)) + }) + } -} + return inlineImages + } -/** - * get an inlined images src - * @param {Object} inlineImage - parse5 document - * @returns {string} - * - */ -HtmlWebpackInlineSVGPlugin.prototype.getImagesSrc = function (inlineImage) { - const svgSrcObject = _.find(inlineImage.attrs, { name: 'src' }) + /** + * return the first inline image or false if none + * @param {Object} documentFragment - parse5 processed html + * @returns {null|Object} - null if no inline image - parse5 documentFragment if there is + * + */ + getFirstInlineImage (documentFragment) { - // image does not have a src attribute - if (!svgSrcObject) return '' + const inlineImages = this.getInlineImages(documentFragment) - const svgSrc = svgSrcObject.value + if (!inlineImages.length) return null - // image src attribute must not be blank and it must be referencing a file with a .svg extension - return svgSrc && svgSrc.indexOf('.svg') !== -1 ? svgSrc : '' + return inlineImages[0] -} + } -/** - * append the inlineImages SVG data to the output HTML and remove the original img - * @param {string} html - * @param {Object} inlineImage - parse5 document - * @returns {Promise} - * - */ -HtmlWebpackInlineSVGPlugin.prototype.processOutputHtml = function (html, inlineImage) { + /** + * check if a node is a valid inline image + * @param {Object} node - parse5 documentFragment + * @returns {boolean} + * + */ + isNodeValidInlineImage (node) { - return new Promise((resolve, reject) => { + return !!( + node.nodeName === 'img' && + _.filter(node.attrs, { name: 'inline' }).length && + this.getImagesSrc(node)) - const svgSrc = this.getImagesSrc(inlineImage) - // if the image isn't valid resolve - if (!svgSrc) return resolve(html) + } - fs.readFile(path.resolve(svgSrc), 'utf8', (err, data) => { - if (err) reject(err) + /** + * get an inlined images src + * @param {Object} inlineImage - parse5 document + * @returns {string} + * + */ + getImagesSrc (inlineImage) { - const configObj = Object.assign(svgoDefaultConfig, userConfig) + const svgSrcObject = _.find(inlineImage.attrs, { name: 'src' }) - const config = {} - // pass all objects to the config.plugins array - config.plugins = _.map(configObj, (value, key) => ({ [key]: value })); + // image does not have a src attribute - const svgo = new SVGO(config) + if (!svgSrcObject) return '' - svgo.optimize(data, (result) => { - if (result.error) return reject(result.error) + // grab the image src - const optimisedSVG = result.data + const svgSrc = svgSrcObject.value - html = this.replaceImageWithSVG(html, inlineImage, optimisedSVG) - resolve(html) + // image src attribute must not be blank and it must be referencing a file with a .svg extension + + return svgSrc && svgSrc.indexOf('.svg') !== -1 ? svgSrc : '' + + } + + + /** + * append the inlineImages SVG data to the output HTML and remove the original img + * @param {string} html + * @param {Object} inlineImage - parse5 document + * @returns {Promise} + * + */ + processOutputHtml (html, inlineImage) { + + return new Promise((resolve, reject) => { + + const svgSrc = this.getImagesSrc(inlineImage) + + + // if the image isn't valid resolve + + if (!svgSrc) return resolve(html) + + + // read in the svg + + fs.readFile(path.resolve(this.outputPath, svgSrc), 'utf8', (err, data) => { + + if (err) reject(err) + + const configObj = Object.assign(svgoDefaultConfig, this.userConfig) + + const config = {} + + + // pass all objects to the config.plugins array + + config.plugins = _.map(configObj, (value, key) => ({ [key]: value })); + + + // create a new instance of SVGO + // passing it the merged config, to optimize the svg + + const svgo = new SVGO(config) + + svgo.optimize(data) + .then((result) => { + + const optimisedSVG = result.data + + html = this.replaceImageWithSVG(html, inlineImage, optimisedSVG) + + resolve(html) + + }) + .catch((err) => console.log(chalk.red(err.message))) }) }) - }) + } -} + /** + * replace the img with the optimised SVG + * @param {string} html + * @param {Object} inlineImage - parse5 document + * @param {Object} svg + * + */ + replaceImageWithSVG (html, inlineImage, svg) { -/** - * replace the img with the optimised SVG - * @param {string} html - * @param {Object} inlineImage - parse5 document - * @param {Object} svg - * - */ -HtmlWebpackInlineSVGPlugin.prototype.replaceImageWithSVG = function (html, inlineImage, svg) { + const start = inlineImage.__location.startOffset + + const end = inlineImage.__location.endOffset - const start = inlineImage.__location.startOffset - const end = inlineImage.__location.endOffset + // remove the img tag and add the svg content - // remove the img tag and add the svg content - return html.substring(0, start) + svg + html.substring(end) + return html.substring(0, start) + svg + html.substring(end) + + } } diff --git a/package.json b/package.json index 75372b6..266a7bc 100755 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "scripts": { "prepublish": "npm run test", "test": "jasmine", - "debug": "node-debug jasmine" + "debug": "node-debug jasmine", + "build": "node spec/build.js" }, "repository": { "type": "git", @@ -30,16 +31,18 @@ }, "homepage": "https://github.com/thegc/html-webpack-inline-svg-plugin", "devDependencies": { - "html-webpack-plugin": "^2.28.0", - "jasmine": "^2.4.1", - "rimraf": "^2.5.2", - "webpack": "^2.4.1" + "file-loader": "^1.1.6", + "html-loader": "^0.5.5", + "html-webpack-plugin": "^2.30.1", + "jasmine": "^2.9.0", + "rimraf": "^2.6.2", + "webpack": "^3.10.0" }, "dependencies": { - "chalk": "^1.1.3", - "cheerio": "^0.22.0", + "chalk": "^2.3.0", + "cheerio": "^1.0.0-rc.2", "lodash": "^4.17.4", - "parse5": "^3.0.2", - "svgo": "^0.7.2" + "parse5": "^4.0.0", + "svgo": "^1.0.3" } } diff --git a/spec/build.js b/spec/build.js new file mode 100644 index 0000000..1322e2d --- /dev/null +++ b/spec/build.js @@ -0,0 +1,29 @@ +var webpack = require('webpack') +var webpackConfig = require('./webpack.base.config') +var chalk = require('chalk') +var rm = require('rimraf') + +rm(webpackConfig.outputDir, (err) => { + + if (err) console.log(chalk.red(err)) + +}) + +/** + * no testing - just attempt to output the dist folder and files + * + */ + +webpack(webpackConfig.options, function (err) { + + if (err) { + + console.log(chalk.red(err)) + + return + + } + + console.log(chalk.green('build complete')) + +}) diff --git a/spec/fixtures/blank.html b/spec/fixtures/blank.html new file mode 100644 index 0000000..4db0d1e --- /dev/null +++ b/spec/fixtures/blank.html @@ -0,0 +1,21 @@ + + + + + + + Inline SVG Tests blank + + + + + + + +
+

should not touch this:

+
+ + + + diff --git a/spec/fixtures/images/not-an-svg.png b/spec/fixtures/images/not-an-svg.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ba3e4008bbe5ec07f70a26d434b84c2497aa45 GIT binary patch literal 35727 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 q^Q=GnAJK&5|6TTfQ
-

should not touch this:

+

should not touch this:

if below SVG is inlined correctly we can reference its content: @@ -33,18 +33,23 @@

+

Deep Replace

- +
- +

Inline images

- + - + + + + +
bar; ?>
diff --git a/spec/fixtures/partial.html b/spec/fixtures/partial.html index 638e5b4..4d0e501 100644 --- a/spec/fixtures/partial.html +++ b/spec/fixtures/partial.html @@ -3,17 +3,17 @@
-

should not touch this:

+

should not touch this:

if below SVG is inlined correctly we can reference its content: - +

- + - +
bar; ?>
diff --git a/spec/index.spec.js b/spec/index.spec.js index 8f9eb84..4cedc23 100755 --- a/spec/index.spec.js +++ b/spec/index.spec.js @@ -4,13 +4,10 @@ var fs = require('fs') var chalk = require('chalk') var cheerio = require('cheerio') var webpack = require('webpack') +var webpackConfig = require('./webpack.base.config') var rm = require('rimraf') -var HtmlWebpackPlugin = require('html-webpack-plugin') -var HtmlWebpackInlineSVGPlugin = require('../') -var OUTPUT_DIR = path.join(__dirname, '../dist') - -rm(OUTPUT_DIR, (err) => { +rm(webpackConfig.outputDir, (err) => { if (err) console.log(chalk.red(err)) @@ -18,28 +15,16 @@ rm(OUTPUT_DIR, (err) => { describe('HtmlWebpackInlineSVGPlugin', function () { - beforeEach(function (done) { - - webpack({ - entry: path.join(__dirname, 'fixtures', 'entry.js'), - output: { - path: OUTPUT_DIR, - }, - plugins: [ - new HtmlWebpackPlugin({ - template: path.join(__dirname, 'fixtures', 'index.html'), - }), - new HtmlWebpackPlugin({ - filename: path.resolve(OUTPUT_DIR, 'partial.html'), - template: path.join(__dirname, 'fixtures', 'partial.html'), - }), - new HtmlWebpackInlineSVGPlugin(), - ], - }, function (err) { + beforeAll(function (done) { + + webpack(webpackConfig.options, (err) => { expect(err).toBeFalsy() - done() + // callbck is fired before all files hve been written to disk + // due to use of after-emit - place a timeout to try and avoid the issue + + setTimeout(done, 2000) }) @@ -47,11 +32,11 @@ describe('HtmlWebpackInlineSVGPlugin', function () { it('should not inline imgs without inline attribute', function (done) { - var htmlFile = path.resolve(OUTPUT_DIR, 'index.html') + var htmlFile = path.resolve(webpackConfig.outputDir, 'index.html') - fs.readFile(htmlFile, 'utf8', function (er, data) { + fs.readFile(htmlFile, 'utf8', function (err, data) { - expect(er).toBeFalsy() + expect(err).toBeFalsy() var $ = cheerio.load(data) @@ -65,11 +50,11 @@ describe('HtmlWebpackInlineSVGPlugin', function () { it('should inline imgs with inline attribute', function (done) { - var htmlFile = path.resolve(OUTPUT_DIR, 'index.html') + var htmlFile = path.resolve(webpackConfig.outputDir, 'index.html') - fs.readFile(htmlFile, 'utf8', function (er, data) { + fs.readFile(htmlFile, 'utf8', function (err, data) { - expect(er).toBeFalsy() + expect(err).toBeFalsy() var $ = cheerio.load(data) @@ -83,11 +68,11 @@ describe('HtmlWebpackInlineSVGPlugin', function () { it('should remove img tags with inline attribute', function (done) { - var htmlFile = path.resolve(OUTPUT_DIR, 'index.html') + var htmlFile = path.resolve(webpackConfig.outputDir, 'index.html') - fs.readFile(htmlFile, 'utf8', function (er, data) { + fs.readFile(htmlFile, 'utf8', function (err, data) { - expect(er).toBeFalsy() + expect(err).toBeFalsy() var $ = cheerio.load(data) @@ -101,11 +86,11 @@ describe('HtmlWebpackInlineSVGPlugin', function () { it('should remove multiple inlined img tags within the same document', function (done) { - var htmlFile = path.resolve(OUTPUT_DIR, 'index.html') + var htmlFile = path.resolve(webpackConfig.outputDir, 'index.html') - fs.readFile(htmlFile, 'utf8', function (er, data) { + fs.readFile(htmlFile, 'utf8', function (err, data) { - expect(er).toBeFalsy() + expect(err).toBeFalsy() var $ = cheerio.load(data) @@ -119,11 +104,11 @@ describe('HtmlWebpackInlineSVGPlugin', function () { it('should ignore images that are not svg', function (done) { - var htmlFile = path.resolve(OUTPUT_DIR, 'index.html') + var htmlFile = path.resolve(webpackConfig.outputDir, 'index.html') - fs.readFile(htmlFile, 'utf8', function (er, data) { + fs.readFile(htmlFile, 'utf8', function (err, data) { - expect(er).toBeFalsy() + expect(err).toBeFalsy() var $ = cheerio.load(data) @@ -137,18 +122,14 @@ describe('HtmlWebpackInlineSVGPlugin', function () { it('do not html decode content', function (done) { - var htmlFile = path.resolve(OUTPUT_DIR, 'index.html') - - fs.readFile(htmlFile, 'utf8', function (er, data) { + var htmlFile = path.resolve(webpackConfig.outputDir, 'index.html') - expect(er).toBeFalsy() + fs.readFile(htmlFile, 'utf8', function (err, data) { - var $ = cheerio.load(data, { - decodeEntities: false, - }) + expect(err).toBeFalsy() - expect($('#do-not-decode').html()) - .toBe('bar; ?>') + expect(data.indexOf('bar; ?>')) + .not.toBe(-1) done() @@ -158,11 +139,11 @@ describe('HtmlWebpackInlineSVGPlugin', function () { it('do not touch broken tags', function (done) { - var htmlFile = path.resolve(OUTPUT_DIR, 'index.html') + var htmlFile = path.resolve(webpackConfig.outputDir, 'index.html') - fs.readFile(htmlFile, 'utf8', function (er, data) { + fs.readFile(htmlFile, 'utf8', function (err, data) { - expect(er).toBeFalsy() + expect(err).toBeFalsy() var re1 = /should output broken tags<\/p>/gi; @@ -188,11 +169,11 @@ describe('HtmlWebpackInlineSVGPlugin', function () { */ it('allow partials to have broken tags', function (done) { - var htmlFile = path.resolve(OUTPUT_DIR, 'partial.html') + var htmlFile = path.resolve(webpackConfig.outputDir, 'partial.html') - fs.readFile(htmlFile, 'utf8', function (er, data) { + fs.readFile(htmlFile, 'utf8', function (err, data) { - expect(er).toBeFalsy() + expect(err).toBeFalsy() const dataSquashed = data.replace(/\s/g,'') @@ -207,11 +188,11 @@ describe('HtmlWebpackInlineSVGPlugin', function () { it('should replace nested inline imgs', function (done) { - var htmlFile = path.resolve(OUTPUT_DIR, 'index.html') + var htmlFile = path.resolve(webpackConfig.outputDir, 'index.html') - fs.readFile(htmlFile, 'utf8', function (er, data) { + fs.readFile(htmlFile, 'utf8', function (err, data) { - expect(er).toBeFalsy() + expect(err).toBeFalsy() var $ = cheerio.load(data) @@ -225,11 +206,11 @@ describe('HtmlWebpackInlineSVGPlugin', function () { it('should contain deep inline SVG', function (done) { - var htmlFile = path.resolve(OUTPUT_DIR, 'index.html') + var htmlFile = path.resolve(webpackConfig.outputDir, 'index.html') - fs.readFile(htmlFile, 'utf8', function (er, data) { + fs.readFile(htmlFile, 'utf8', function (err, data) { - expect(er).toBeFalsy() + expect(err).toBeFalsy() var $ = cheerio.load(data) diff --git a/spec/webpack.base.config.js b/spec/webpack.base.config.js new file mode 100644 index 0000000..5c41130 --- /dev/null +++ b/spec/webpack.base.config.js @@ -0,0 +1,79 @@ +var path = require('path') +var HtmlWebpackPlugin = require('html-webpack-plugin') +var HtmlWebpackInlineSVGPlugin = require('../') +var OUTPUT_DIR = path.join(__dirname, '../dist') + +module.exports = { + + outputDir: OUTPUT_DIR, + + options: { + + watch: false, + + entry: path.join(__dirname, 'fixtures', 'entry.js'), + + output: { + path: OUTPUT_DIR, + }, + + resolve: { + alias: { + 'img': path.join(__dirname, 'fixtures', 'images'), + }, + }, + + module: { + rules: [ + { + test: /\.(svg)(\?.*)?$/, + use: [ + { + loader: 'file-loader', + options: { + name: 'images/svgs/[name].[ext]', + } + } + ], + }, + { + test: /\.(png|jpe?g|gif)(\?.*)?$/, + use: [ + { + loader: 'file-loader', + options: { + name: 'images/[name].[ext]', + } + } + ], + }, + { + test: /\.(html)$/, + use: [ + { + loader: 'html-loader', + options: {} + } + ], + }, + ] + }, + + plugins: [ + new HtmlWebpackPlugin({ + template: path.join(__dirname, 'fixtures', 'index.html'), + }), + new HtmlWebpackPlugin({ + filename: path.resolve(OUTPUT_DIR, 'blank.html'), + template: path.join(__dirname, 'fixtures', 'blank.html'), + }), + new HtmlWebpackPlugin({ + filename: path.resolve(OUTPUT_DIR, 'partial.html'), + template: path.join(__dirname, 'fixtures', 'partial.html'), + }), + new HtmlWebpackInlineSVGPlugin(), + ], + + }, + +} diff --git a/yarn.lock b/yarn.lock index a70330b..859c1aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,13 +2,13 @@ # yarn lockfile v1 -"@types/node@^6.0.46": - version "6.0.73" - resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.73.tgz#85dc4bb6f125377c75ddd2519a1eeb63f0a4ed70" +"@types/node@*": + version "9.4.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-9.4.0.tgz#b85a0bcf1e1cc84eb4901b7e96966aedc6f078d1" abbrev@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" acorn-dynamic-import@^2.0.0: version "2.0.2" @@ -17,24 +17,33 @@ acorn-dynamic-import@^2.0.0: acorn "^4.0.3" acorn@^4.0.3: - version "4.0.11" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0" + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" acorn@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" + version "5.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822" -ajv-keywords@^1.1.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" +ajv-keywords@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" -ajv@^4.7.0, ajv@^4.9.1: +ajv@^4.9.1: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" +ajv@^5.0.0, ajv@^5.1.5: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" @@ -47,20 +56,26 @@ ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" + dependencies: + color-convert "^1.9.0" anymatch@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" dependencies: - arrify "^1.0.0" micromatch "^2.1.5" + normalize-path "^2.0.0" aproba@^1.0.3: - version "1.1.1" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" are-we-there-yet@~1.1.2: version "1.1.4" @@ -82,20 +97,16 @@ arr-diff@^2.0.0: arr-flatten "^1.0.1" arr-flatten@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1" + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - asn1.js@^4.0.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" + version "4.9.2" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a" dependencies: bn.js "^4.0.0" inherits "^2.0.1" @@ -119,13 +130,17 @@ assert@^1.1.1: dependencies: util "0.10.3" +ast-types@0.9.6: + version "0.9.6" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" + async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" async@^2.1.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.4.0.tgz#4990200f18ea5b837c2cc4f8c031a6985c385611" + version "2.6.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" dependencies: lodash "^4.14.0" @@ -141,13 +156,13 @@ aws4@^1.2.1: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" -balanced-match@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" base64-js@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" + version "1.2.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" bcrypt-pbkdf@^1.0.0: version "1.0.1" @@ -156,12 +171,12 @@ bcrypt-pbkdf@^1.0.0: tweetnacl "^0.14.3" big.js@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" binary-extensions@^1.0.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" block-stream@*: version "0.0.9" @@ -170,14 +185,14 @@ block-stream@*: inherits "~2.0.0" bluebird@^3.4.7: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" -boolbase@~1.0.0: +boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" @@ -187,11 +202,11 @@ boom@2.x.x: dependencies: hoek "2.x.x" -brace-expansion@^1.0.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" +brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" dependencies: - balanced-match "^0.4.1" + balanced-match "^1.0.0" concat-map "0.0.1" braces@^1.8.2: @@ -207,14 +222,15 @@ brorand@^1.0.1: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 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" + version "1.1.1" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" dependencies: - buffer-xor "^1.0.2" + buffer-xor "^1.0.3" cipher-base "^1.0.0" create-hash "^1.1.0" - evp_bytestokey "^1.0.0" + evp_bytestokey "^1.0.3" inherits "^2.0.1" + safe-buffer "^5.0.1" browserify-cipher@^1.0.0: version "1.0.0" @@ -251,17 +267,13 @@ browserify-sign@^4.0.0: inherits "^2.0.1" parse-asn1 "^5.0.0" -browserify-zlib@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" dependencies: - pako "~0.2.0" - -buffer-shims@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + pako "~1.0.5" -buffer-xor@^1.0.2: +buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -292,9 +304,9 @@ camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" caseless@~0.12.0: version "0.12.0" @@ -307,40 +319,28 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" +chalk@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" -cheerio@^0.22.0: - version "0.22.0" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" +cheerio@^1.0.0-rc.2: + version "1.0.0-rc.2" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" dependencies: css-select "~1.2.0" dom-serializer "~0.1.0" entities "~1.1.1" htmlparser2 "^3.9.1" - lodash.assignin "^4.0.9" - lodash.bind "^4.1.4" - lodash.defaults "^4.0.1" - lodash.filter "^4.4.0" - lodash.flatten "^4.2.0" - lodash.foreach "^4.3.0" - lodash.map "^4.4.0" - lodash.merge "^4.4.0" - lodash.pick "^4.2.1" - lodash.reduce "^4.4.0" - lodash.reject "^4.4.0" - lodash.some "^4.4.0" - -chokidar@^1.4.3: - version "1.6.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" + lodash "^4.15.0" + parse5 "^3.0.1" + +chokidar@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" dependencies: anymatch "^1.3.0" async-each "^1.0.0" @@ -353,21 +353,16 @@ chokidar@^1.4.3: optionalDependencies: fsevents "^1.0.0" -cipher-base@^1.0.0, cipher-base@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" dependencies: inherits "^2.0.1" + safe-buffer "^5.0.1" -clap@^1.0.9: - version "1.1.3" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.1.3.tgz#b3bd36e93dd4cbfb395a3c26896352445265c05b" - dependencies: - chalk "^1.1.3" - -clean-css@4.0.x: - version "4.0.12" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.0.12.tgz#a02e61707f1840bd3338f54dbc9acbda4e772fa3" +clean-css@4.1.x: + version "4.1.9" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.9.tgz#35cee8ae7687a49b98034f70de00c4edd3826301" dependencies: source-map "0.5.x" @@ -391,9 +386,9 @@ co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" -coa@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.1.tgz#7f959346cfc8719e3f7233cd6852854a7c67d8a3" +coa@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.1.tgz#f3f8b0b15073e35d70263fb1042cb2c023db38af" dependencies: q "^1.1.2" @@ -401,6 +396,16 @@ code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" +color-convert@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" + dependencies: + color-name "^1.1.1" + +color-name@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" @@ -411,11 +416,13 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@2.9.x: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: - graceful-readlink ">= 1.0.0" +commander@2.12.x: + version "2.12.2" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555" + +commander@~2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" concat-map@0.0.1: version "0.0.1" @@ -435,7 +442,7 @@ constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" -core-util-is@~1.0.0: +core-util-is@1.0.2, 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" @@ -446,21 +453,33 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" -create-hash@^1.1.0, create-hash@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.2.tgz#51210062d7bb7479f6c65bb41a92208b1d61abad" +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" dependencies: cipher-base "^1.0.1" inherits "^2.0.1" - ripemd160 "^1.0.0" - sha.js "^2.3.6" + ripemd160 "^2.0.0" + sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.4.tgz#d3fb4ba253eb8b3f56e39ea2fbcb8af747bd3170" +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.6" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" dependencies: + cipher-base "^1.0.3" create-hash "^1.1.0" inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +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" @@ -469,8 +488,8 @@ cryptiles@2.x.x: boom "2.x.x" crypto-browserify@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.0.tgz#3652a0906ab9b2a7e0c3ce66a408e957a2485522" + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" @@ -482,6 +501,11 @@ crypto-browserify@^3.11.0: pbkdf2 "^3.0.3" public-encrypt "^4.0.0" randombytes "^2.0.0" + randomfill "^1.0.3" + +css-select-base-adapter@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz#0102b3d14630df86c3eb9fa9f5456270106cf990" css-select@^1.1.0, css-select@~1.2.0: version "1.2.0" @@ -492,16 +516,48 @@ css-select@^1.1.0, css-select@~1.2.0: domutils "1.5.1" nth-check "~1.0.1" +css-select@~1.3.0-rc0: + version "1.3.0-rc0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.3.0-rc0.tgz#6f93196aaae737666ea1036a8cb14a8fcb7a9231" + dependencies: + boolbase "^1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "^1.0.1" + +css-tree@1.0.0-alpha.27: + version "1.0.0-alpha.27" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.27.tgz#f211526909c7dc940843d83b9376ed98ddb8de47" + dependencies: + mdn-data "^1.0.0" + source-map "^0.5.3" + +css-tree@1.0.0-alpha25: + version "1.0.0-alpha25" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha25.tgz#1bbfabfbf6eeef4f01d9108ff2edd0be2fe35597" + dependencies: + mdn-data "^1.0.0" + source-map "^0.5.3" + +css-url-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec" + css-what@2.1: version "2.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" -csso@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" +csso@^3.3.1: + version "3.5.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.0.tgz#acdbba5719e2c87bc801eadc032764b2e4b9d4e7" dependencies: - clap "^1.0.9" - source-map "^0.5.3" + css-tree "1.0.0-alpha.27" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" dashdash@^1.12.0: version "1.14.1" @@ -514,18 +570,25 @@ date-now@^0.1.4: resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" debug@^2.2.0: - version "2.6.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.6.tgz#a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a" + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: - ms "0.7.3" + ms "2.0.0" decamelize@^1.0.0, decamelize@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" deep-extend@~0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" delayed-stream@~1.0.0: version "1.0.0" @@ -542,6 +605,10 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + diffie-hellman@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" @@ -564,8 +631,8 @@ dom-serializer@0, dom-serializer@~0.1.0: entities "~1.1.1" domain-browser@^1.1.1: - version "1.1.7" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" domelementtype@1, domelementtype@^1.3.0: version "1.3.0" @@ -593,13 +660,20 @@ domutils@1.1: dependencies: domelementtype "1" -domutils@1.5.1, domutils@^1.5.1: +domutils@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" dependencies: dom-serializer "0" domelementtype "1" +domutils@^1.5.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz#1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff" + dependencies: + dom-serializer "0" + domelementtype "1" + ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" @@ -622,24 +696,24 @@ emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" -enhanced-resolve@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz#9f4b626f577245edcf4b2ad83d86e17f4f421dec" +enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" object-assign "^4.0.1" - tapable "^0.2.5" + tapable "^0.2.7" entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" errno@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" + version "0.1.6" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026" dependencies: - prr "~0.0.0" + prr "~1.0.1" error-ex@^1.2.0: version "1.3.1" @@ -647,23 +721,144 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" -escape-string-regexp@^1.0.2: +es-abstract@^1.5.1, es-abstract@^1.6.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.38" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.38.tgz#fa7d40d65bbc9bb8a67e1d3f9cc656a00530eed3" + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + +es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-templates@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4" + dependencies: + recast "~0.11.12" + through "~2.3.6" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-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" -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +esprima@~3.1.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + +esrecurse@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + dependencies: + estraverse "^4.1.0" + object-assign "^4.0.1" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" -evp_bytestokey@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" dependencies: - create-hash "^1.1.1" + 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" exit@^0.1.2: version "0.1.2" @@ -691,9 +886,32 @@ extglob@^0.3.1: dependencies: is-extglob "^1.0.0" -extsprintf@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + +fastparse@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + +file-loader@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.6.tgz#7b9a8f2c58f00a77fddf49e940f7ac978a3ea0e8" + dependencies: + loader-utils "^1.0.2" + schema-utils "^0.3.0" filename-regex@^2.0.0: version "2.0.1" @@ -709,12 +927,11 @@ fill-range@^2.1.0: repeat-element "^1.1.2" repeat-string "^1.5.2" -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" + locate-path "^2.0.0" for-in@^1.0.1: version "1.0.2" @@ -726,6 +943,10 @@ for-own@^0.1.4: dependencies: for-in "^1.0.1" +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -743,11 +964,11 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" fsevents@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff" + version "1.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" dependencies: nan "^2.3.0" - node-pre-gyp "^0.6.29" + node-pre-gyp "^0.6.39" fstream-ignore@^1.0.5: version "1.0.5" @@ -766,7 +987,11 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: mkdirp ">=0.5 0" rimraf "2" -gauge@~2.7.1: +function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" dependencies: @@ -783,6 +1008,10 @@ 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-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -803,13 +1032,13 @@ glob-parent@^2.0.0: is-glob "^2.0.0" glob@^7.0.5, glob@^7.0.6: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.2" + minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" @@ -817,10 +1046,6 @@ graceful-fs@^4.1.2: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - har-schema@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" @@ -832,27 +1057,41 @@ har-validator@~4.2.1: ajv "^4.9.1" har-schema "^1.0.5" -has-ansi@^2.0.0: +has-flag@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573" +has@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hash-base@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" + dependencies: + inherits "^2.0.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" dependencies: inherits "^2.0.1" + safe-buffer "^5.0.1" -hawk@~3.1.3: +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hawk@3.1.3, hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" dependencies: @@ -878,25 +1117,35 @@ hoek@2.x.x: resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" hosted-git-info@^2.1.4: - version "2.4.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" + version "2.5.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" -html-minifier@^3.2.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.4.3.tgz#eb3a7297c804611f470454eeebe0aacc427e424a" +html-loader@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-0.5.5.tgz#6356dbeb0c49756d8ebd5ca327f16ff06ab5faea" + dependencies: + es6-templates "^0.2.3" + fastparse "^1.1.1" + html-minifier "^3.5.8" + loader-utils "^1.1.0" + object-assign "^4.1.1" + +html-minifier@^3.2.3, html-minifier@^3.5.8: + version "3.5.8" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.8.tgz#5ccdb1f73a0d654e6090147511f6e6b2ee312700" dependencies: camel-case "3.0.x" - clean-css "4.0.x" - commander "2.9.x" + clean-css "4.1.x" + commander "2.12.x" he "1.1.x" ncname "1.0.x" param-case "2.1.x" relateurl "0.2.x" - uglify-js "~2.8.22" + uglify-js "3.3.x" -html-webpack-plugin@^2.28.0: - version "2.28.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.28.0.tgz#2e7863b57e5fd48fe263303e2ffc934c3064d009" +html-webpack-plugin@^2.30.1: + version "2.30.1" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz#7f9c421b7ea91ec460f56527d78df484ee7537d5" dependencies: bluebird "^3.4.7" html-minifier "^3.2.3" @@ -933,9 +1182,9 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" ieee754@^1.1.4: version "1.1.8" @@ -952,7 +1201,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -961,12 +1210,12 @@ inherits@2.0.1: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" ini@~1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" interpret@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" + version "1.1.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" invert-kv@^1.0.0: version "1.0.0" @@ -983,8 +1232,8 @@ is-binary-path@^1.0.0: binary-extensions "^1.0.0" is-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" is-builtin-module@^1.0.0: version "1.0.0" @@ -992,9 +1241,17 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + is-dotfile@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" is-equal-shallow@^0.1.3: version "0.1.3" @@ -1016,18 +1273,28 @@ is-fullwidth-code-point@^1.0.0: dependencies: number-is-nan "^1.0.0" +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" dependencies: is-extglob "^1.0.0" -is-number@^2.0.2, is-number@^2.1.0: +is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" dependencies: kind-of "^3.0.2" +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + is-posix-bracket@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" @@ -1036,14 +1303,24 @@ is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^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-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -1052,6 +1329,10 @@ 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@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -1062,38 +1343,36 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -jasmine-core@~2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.6.1.tgz#66a61cddb699958e3613edef346c996f6311fc3b" +jasmine-core@~2.9.0: + version "2.9.1" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.9.1.tgz#b6bbc1d8e65250d56f5888461705ebeeeb88f22f" -jasmine@^2.4.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.6.0.tgz#6b22e70883e8e589d456346153b4d206ddbe217f" +jasmine@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.9.0.tgz#76571f925c8783409e7c6153572e5a6341cf93eb" dependencies: exit "^0.1.2" glob "^7.0.6" - jasmine-core "~2.6.0" - -jodid25519@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" - dependencies: - jsbn "~0.1.0" + jasmine-core "~2.9.0" -js-yaml@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" +js-yaml@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" dependencies: argparse "^1.0.7" - esprima "^2.6.0" + esprima "^4.0.0" jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" json-loader@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" json-schema@0.2.3: version "0.2.3" @@ -1118,17 +1397,23 @@ jsonify@~0.0.0: resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" jsprim@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" dependencies: assert-plus "1.0.0" - extsprintf "1.0.2" + extsprintf "1.3.0" json-schema "0.2.3" - verror "1.3.6" + verror "1.10.0" kind-of@^3.0.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07" + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" dependencies: is-buffer "^1.1.5" @@ -1142,15 +1427,14 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" + strip-bom "^3.0.0" loader-runner@^2.3.0: version "2.3.0" @@ -1165,55 +1449,22 @@ loader-utils@^0.2.16: json5 "^0.5.0" object-assign "^4.0.1" -lodash.assignin@^4.0.9: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" - -lodash.bind@^4.1.4: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" - -lodash.defaults@^4.0.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - -lodash.filter@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" - -lodash.flatten@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - -lodash.foreach@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" - -lodash.map@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - -lodash.merge@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" - -lodash.pick@^4.2.1: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - -lodash.reduce@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" - -lodash.reject@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" +loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" -lodash.some@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" -lodash@^4.14.0, lodash@^4.17.3, lodash@^4.17.4: +lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.3, lodash@^4.17.4: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -1225,6 +1476,30 @@ lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" +lru-cache@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +mdn-data@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.0.tgz#a7056319da95a2d0881267d7263075042eb061e2" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -1251,21 +1526,25 @@ micromatch@^2.1.5: regex-cache "^0.4.2" miller-rabin@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" dependencies: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@~1.27.0: - version "1.27.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" +mime-db@~1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" mime-types@^2.1.12, mime-types@~2.1.7: - version "2.1.15" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" + version "2.1.17" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" dependencies: - mime-db "~1.27.0" + mime-db "~1.30.0" + +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" minimalistic-assert@^1.0.0: version "1.0.0" @@ -1275,11 +1554,11 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" -minimatch@^3.0.0, minimatch@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: - brace-expansion "^1.0.0" + brace-expansion "^1.1.7" minimist@0.0.8: version "0.0.8" @@ -1295,13 +1574,13 @@ minimist@^1.2.0: dependencies: minimist "0.0.8" -ms@0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" nan@^2.3.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" + version "2.8.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" ncname@1.0.x: version "1.0.0" @@ -1310,48 +1589,50 @@ ncname@1.0.x: xml-char-classes "^1.0.0" no-case@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.1.tgz#7aeba1c73a52184265554b7dc03baf720df80081" + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" dependencies: lower-case "^1.1.1" node-libs-browser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" + version "2.1.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" dependencies: assert "^1.1.1" - browserify-zlib "^0.1.4" + browserify-zlib "^0.2.0" buffer "^4.3.0" console-browserify "^1.1.0" constants-browserify "^1.0.0" crypto-browserify "^3.11.0" domain-browser "^1.1.1" events "^1.0.0" - https-browserify "0.0.1" - os-browserify "^0.2.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" path-browserify "0.0.0" - process "^0.11.0" + process "^0.11.10" punycode "^1.2.4" querystring-es3 "^0.2.0" - readable-stream "^2.0.5" + readable-stream "^2.3.3" stream-browserify "^2.0.1" - stream-http "^2.3.1" - string_decoder "^0.10.25" - timers-browserify "^2.0.2" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" tty-browserify "0.0.0" url "^0.11.0" util "^0.10.3" vm-browserify "0.0.4" -node-pre-gyp@^0.6.29: - version "0.6.34" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" +node-pre-gyp@^0.6.39: + version "0.6.39" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" dependencies: + detect-libc "^1.0.2" + hawk "3.1.3" mkdirp "^0.5.1" nopt "^4.0.1" npmlog "^4.0.2" rc "^1.1.7" - request "^2.81.0" + request "2.81.0" rimraf "^2.6.1" semver "^5.3.0" tar "^2.2.1" @@ -1365,30 +1646,36 @@ nopt@^4.0.1: osenv "^0.1.4" normalize-package-data@^2.3.2: - version "2.3.8" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" dependencies: hosted-git-info "^2.1.4" is-builtin-module "^1.0.0" semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.1: +normalize-path@^2.0.0, normalize-path@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: remove-trailing-separator "^1.0.1" +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + npmlog@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" - gauge "~2.7.1" + gauge "~2.7.3" set-blocking "~2.0.0" -nth-check@~1.0.1: +nth-check@^1.0.1, nth-check@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" dependencies: @@ -1402,10 +1689,21 @@ 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@^4.0.1, object-assign@^4.1.0: +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" +object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -1413,25 +1711,36 @@ object.omit@^2.0.0: for-own "^0.1.4" is-extendable "^0.1.1" +object.values@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.6.1" + function-bind "^1.1.0" + has "^1.0.1" + once@^1.3.0, once@^1.3.3: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" -os-browserify@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" dependencies: + execa "^0.7.0" lcid "^1.0.0" + mem "^1.1.0" os-tmpdir@^1.0.0: version "1.0.2" @@ -1444,9 +1753,29 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -pako@~0.2.0: - version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + +pako@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" param-case@2.1.x: version "2.1.1" @@ -1479,39 +1808,47 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" -parse5@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.2.tgz#05eff57f0ef4577fb144a79f8b9a967a6cc44510" +parse5@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" dependencies: - "@types/node" "^6.0.46" + "@types/node" "*" + +parse5@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" path-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" dependencies: - graceful-fs "^4.1.2" pify "^2.0.0" - pinkie-promise "^2.0.0" pbkdf2@^3.0.3: - version "3.0.9" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693" + version "3.0.14" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" dependencies: - create-hmac "^1.1.2" + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" performance-now@^0.2.0: version "0.2.0" @@ -1521,38 +1858,36 @@ pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" pretty-error@^2.0.2: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.0.tgz#87f4e9d706a24c87d6cbee9fabec001fcf8c75d8" + version "2.1.1" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" dependencies: renderkid "^2.0.1" utila "~0.4" +private@~0.1.5: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" -process@^0.11.0: +process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" -prr@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" public-encrypt@^4.0.0: version "4.0.0" @@ -1573,8 +1908,8 @@ punycode@^1.2.4, punycode@^1.4.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" q@^1.1.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" qs@~6.4.0: version "6.4.0" @@ -1589,39 +1924,48 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" randomatic@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" dependencies: - is-number "^2.0.2" - kind-of "^3.0.2" + is-number "^3.0.0" + kind-of "^4.0.0" -randombytes@^2.0.0, randombytes@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec" +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.3.tgz#b96b7df587f01dd91726c418f30553b1418e3d62" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" rc@^1.1.7: - version "1.2.1" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" + version "1.2.4" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.4.tgz#a0f606caae2a3b862bbd0ef85482c0125b315fa3" dependencies: deep-extend "~0.4.0" ini "~1.3.0" minimist "^1.2.0" strip-json-comments "~2.0.1" -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" +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" + find-up "^2.0.0" + read-pkg "^2.0.0" -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" dependencies: - load-json-file "^1.0.0" + load-json-file "^2.0.0" normalize-package-data "^2.3.2" - path-type "^1.0.0" + path-type "^2.0.0" readable-stream@1.0: version "1.0.34" @@ -1632,16 +1976,16 @@ readable-stream@1.0: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.6: - version "2.2.9" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" dependencies: - buffer-shims "~1.0.0" core-util-is "~1.0.0" - inherits "~2.0.1" + inherits "~2.0.3" isarray "~1.0.0" process-nextick-args "~1.0.6" - string_decoder "~1.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" util-deprecate "~1.0.1" readdirp@^2.0.0: @@ -1653,20 +1997,28 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" +recast@~0.11.12: + version "0.11.23" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" + dependencies: + ast-types "0.9.6" + esprima "~3.1.0" + private "~0.1.5" + source-map "~0.5.0" + regex-cache@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" dependencies: is-equal-shallow "^0.1.3" - is-primitive "^2.0.0" relateurl@0.2.x: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" remove-trailing-separator@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" renderkid@^2.0.1: version "2.0.1" @@ -1686,7 +2038,7 @@ repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" -request@^2.81.0: +request@2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: @@ -1727,27 +2079,36 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" +rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1, rimraf@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: glob "^7.0.5" -ripemd160@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + dependencies: + hash-base "^2.0.0" + inherits "^2.0.1" -safe-buffer@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" -sax@~1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828" +sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + +schema-utils@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" + dependencies: + ajv "^5.0.0" "semver@2 || 3 || 4 || 5", semver@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" @@ -1761,11 +2122,22 @@ setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" -sha.js@^2.3.6: - version "2.4.8" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.10" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz#b1fde5cd7d11a5626638a07c604ab909cfa31f9b" dependencies: inherits "^2.0.1" + safe-buffer "^5.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" signal-exit@^3.0.0: version "3.0.2" @@ -1777,13 +2149,17 @@ sntp@1.x.x: dependencies: hoek "2.x.x" -source-list-map@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.1.tgz#1a33ac210ca144d1e561f906ebccab5669ff4cb4" +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@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" -source-map@0.5.x, source-map@^0.5.3, source-map@~0.5.1, source-map@~0.5.3: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" +source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" spdx-correct@~1.0.0: version "1.0.2" @@ -1804,8 +2180,8 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -1814,10 +2190,13 @@ sshpk@^1.7.0: optionalDependencies: bcrypt-pbkdf "^1.0.0" ecc-jsbn "~0.1.1" - jodid25519 "^1.0.0" jsbn "~0.1.0" tweetnacl "~0.14.0" +stable@~0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.6.tgz#910f5d2aed7b520c6e777499c1f32e139fdecb10" + stream-browserify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" @@ -1825,13 +2204,13 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" -stream-http@^2.3.1: - version "2.7.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.0.tgz#cec1f4e3b494bc4a81b451808970f8b20b4ed5f6" +stream-http@^2.7.2: + version "2.8.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10" dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" - readable-stream "^2.2.6" + readable-stream "^2.3.3" to-arraybuffer "^1.0.0" xtend "^4.0.0" @@ -1843,15 +2222,22 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -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" +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" -string_decoder@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667" +string_decoder@^1.0.0, string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" dependencies: - buffer-shims "~1.0.0" + safe-buffer "~5.1.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" stringstream@~0.0.4: version "0.0.5" @@ -1863,45 +2249,56 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" dependencies: - is-utf8 "^0.2.0" + ansi-regex "^3.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 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" -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.1.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" +supports-color@^4.0.0, supports-color@^4.2.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" dependencies: - has-flag "^1.0.0" + has-flag "^2.0.0" -svgo@^0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" +svgo@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.0.3.tgz#c93be52d98ffa2a7273c7a0ac5bf34f470973dad" dependencies: - coa "~1.0.1" + coa "~2.0.0" colors "~1.1.2" - csso "~2.3.1" - js-yaml "~3.7.0" + css-select "~1.3.0-rc0" + css-select-base-adapter "~0.1.0" + css-tree "1.0.0-alpha25" + css-url-regex "^1.1.0" + csso "^3.3.1" + js-yaml "~3.10.0" mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" + object.values "^1.0.4" + sax "~1.2.4" + stable "~0.1.6" + unquote "^1.1.0" + util.promisify "~1.0.0" -tapable@^0.2.5, tapable@~0.2.5: - version "0.2.6" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d" +tapable@^0.2.7: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" tar-pack@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + version "3.4.1" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" dependencies: debug "^2.2.0" fstream "^1.0.10" @@ -1920,9 +2317,13 @@ tar@^2.2.1: fstream "^1.0.2" inherits "2" -timers-browserify@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86" +through@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +timers-browserify@^2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" dependencies: setimmediate "^1.0.4" @@ -1931,12 +2332,12 @@ to-arraybuffer@^1.0.0: resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" toposort@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.3.tgz#f02cd8a74bd8be2fc0e98611c3bacb95a171869c" + version "1.0.6" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec" tough-cookie@~2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + version "2.3.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" dependencies: punycode "^1.4.1" @@ -1954,9 +2355,16 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" -uglify-js@^2.8.5, uglify-js@~2.8.22: - version "2.8.22" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.22.tgz#d54934778a8da14903fa29a326fb24c0ab51a1a0" +uglify-js@3.3.x: + version "3.3.9" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.9.tgz#33869666c8ab7f7658ce3d22f0f1ced40097d33a" + dependencies: + commander "~2.13.0" + source-map "~0.6.1" + +uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" dependencies: source-map "~0.5.1" yargs "~3.10.0" @@ -1967,10 +2375,22 @@ uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + uid-number@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" +unquote@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + upper-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" @@ -1986,6 +2406,13 @@ util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" +util.promisify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + util@0.10.3, util@^0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" @@ -2001,8 +2428,8 @@ utila@~0.4: resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" uuid@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" + version "3.2.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" validate-npm-package-license@^3.0.1: version "3.0.1" @@ -2011,11 +2438,13 @@ validate-npm-package-license@^3.0.1: spdx-correct "~1.0.0" spdx-expression-parse "~1.0.0" -verror@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" dependencies: - extsprintf "1.0.2" + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" vm-browserify@0.0.4: version "0.0.4" @@ -2023,60 +2452,63 @@ vm-browserify@0.0.4: dependencies: indexof "0.0.1" -watchpack@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.3.1.tgz#7d8693907b28ce6013e7f3610aa2a1acf07dad87" +watchpack@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" dependencies: async "^2.1.2" - chokidar "^1.4.3" + chokidar "^1.7.0" graceful-fs "^4.1.2" -webpack-sources@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.2.3.tgz#17c62bfaf13c707f9d02c479e0dcdde8380697fb" +webpack-sources@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" dependencies: - source-list-map "^1.1.1" - source-map "~0.5.3" + source-list-map "^2.0.0" + source-map "~0.6.1" -webpack@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.4.1.tgz#15a91dbe34966d8a4b99c7d656efd92a2e5a6f6a" +webpack@^3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.10.0.tgz#5291b875078cf2abf42bdd23afe3f8f96c17d725" dependencies: acorn "^5.0.0" acorn-dynamic-import "^2.0.0" - ajv "^4.7.0" - ajv-keywords "^1.1.1" + ajv "^5.1.5" + ajv-keywords "^2.0.0" async "^2.1.2" - enhanced-resolve "^3.0.0" + enhanced-resolve "^3.4.0" + escope "^3.6.0" interpret "^1.0.0" json-loader "^0.5.4" json5 "^0.5.1" loader-runner "^2.3.0" - loader-utils "^0.2.16" + loader-utils "^1.1.0" memory-fs "~0.4.1" mkdirp "~0.5.0" node-libs-browser "^2.0.0" source-map "^0.5.3" - supports-color "^3.1.0" - tapable "~0.2.5" - uglify-js "^2.8.5" - watchpack "^1.3.1" - webpack-sources "^0.2.3" - yargs "^6.0.0" - -whet.extend@~0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" - -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@^1.2.9: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" wide-align@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" + version "1.1.2" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" dependencies: - string-width "^1.0.1" + string-width "^1.0.2" window-size@0.1.0: version "0.1.0" @@ -2109,29 +2541,33 @@ y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" -yargs-parser@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" dependencies: - camelcase "^3.0.0" + camelcase "^4.1.0" -yargs@^6.0.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" dependencies: - camelcase "^3.0.0" + camelcase "^4.1.0" cliui "^3.2.0" decamelize "^1.1.1" get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" require-directory "^2.1.1" require-main-filename "^1.0.1" set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" + string-width "^2.0.0" + which-module "^2.0.0" y18n "^3.2.1" - yargs-parser "^4.2.0" + yargs-parser "^7.0.0" yargs@~3.10.0: version "3.10.0"