From c769ac3a4c20a386285a575cf9df6ecaeaad3bda Mon Sep 17 00:00:00 2001 From: Marco Massarotto Date: Fri, 24 Feb 2017 18:05:01 +0000 Subject: [PATCH 01/13] fix(sourcemaps): use abs paths & remove sourceRoot --- lib/loader.js | 9 ++------- test/sourceMapTest.js | 12 ++++++------ 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/lib/loader.js b/lib/loader.js index 561cf5a1..edf273fd 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -2,7 +2,6 @@ MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ -var path = require("path"); var loaderUtils = require("loader-utils"); var processCss = require("./processCss"); var getImportPrefix = require("./getImportPrefix"); @@ -97,13 +96,9 @@ module.exports = function(content, map) { map = result.map; if(map.sources) { map.sources = map.sources.map(function(source) { - source = source.split("!").pop(); - var p = path.relative(query.context || this.options.context, source).replace(/\\/g, "/"); - if(p.indexOf("../") !== 0) - p = "./" + p; - return "/" + p; + return source.split("!").pop(); }, this); - map.sourceRoot = "webpack://"; + map.sourceRoot = ""; } map.file = map.file.split("!").pop(); map = JSON.stringify(map); diff --git a/test/sourceMapTest.js b/test/sourceMapTest.js index 9c29729a..39401e95 100644 --- a/test/sourceMapTest.js +++ b/test/sourceMapTest.js @@ -21,8 +21,8 @@ describe("source maps", function() { file: 'test.css', mappings: 'AAAA,SAAS,SAAS,EAAE', names: [], - sourceRoot: 'webpack://', - sources: [ '/./folder/test.css' ], + sourceRoot: '', + sources: [ '/folder/test.css' ], sourcesContent: [ '.class { a: b c d; }' ], version: 3 }] @@ -38,8 +38,8 @@ describe("source maps", function() { file: 'test.css', mappings: 'AAAA,SAAS,SAAS,EAAE', names: [], - sourceRoot: 'webpack://', - sources: [ '/../../folder/test.css' ], + sourceRoot: '', + sources: [ '/folder/test.css' ], sourcesContent: [ '.class { a: b c d; }' ], version: 3 }] @@ -55,8 +55,8 @@ describe("source maps", function() { file: 'test.scss', mappings: 'AAAA,SAAS,SAAS,EAAE', names: [], - sourceRoot: 'webpack://', - sources: [ '/./folder/test.scss' ], + sourceRoot: '', + sources: [ '/folder/test.scss' ], sourcesContent: [ '.class { a: b c d; }' ], version: 3 }] From 3362b106631d0c242af7072269fea4c9eb3e4379 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 20 Jan 2017 13:58:48 +0100 Subject: [PATCH 02/13] docs(readme): practical example for images & fonts --- README.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index c0a70621..d7a30265 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ To be compatible with existing css files (if not in CSS Module mode): |**`camelCase`**|`false`|Export Classnames in CamelCase| |**`importLoaders`**|`0`|Number of loaders applied before CSS loader| -This webpack config can load CSS files, embed small png images as Data URLs and JPG images as files. +The following webpack config can load CSS files, embed small PNG/JPG/GIF/SVG images as well as fonts as [Data URLs](https://tools.ietf.org/html/rfc2397) and copy larger files to the output directory. **webpack.config.js** ```js @@ -100,12 +100,11 @@ module.exports = { use: [ 'style-loader', 'css-loader' ] }, { - test: /\.png$/, - use: { loader: 'url-loader', options: { limit: 100000 } }, - }, - { - test: /\.jpg$/, - use: [ 'file-loader' ] + test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, + loader: 'url-loader', + options: { + limit: 10000 + } } ] } From d4ac0e0f0e65c53c40bec06f8c840572837770df Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 20 Jan 2017 13:52:01 +0100 Subject: [PATCH 03/13] docs(readme): add intro to usage --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d7a30265..c4aadb6d 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,8 @@ npm install --save-dev css-loader

Usage

+The `css-loader` interprets `@import` and `url()` like `requires`. + Use the loader either via your webpack config, CLI or inline. ### Via webpack config (recommended) From a2b85d7c42b63edaf7e981cd32a823a924d9d717 Mon Sep 17 00:00:00 2001 From: Joscha Feth Date: Thu, 9 Mar 2017 00:48:01 +1100 Subject: [PATCH 04/13] fix: do not export duplicate keys (#420) --- lib/compile-exports.js | 17 +++++++++++++---- package.json | 2 +- test/camelCaseTest.js | 4 ++++ test/helpers.js | 16 ++++++++++++++++ yarn.lock | 22 +++++----------------- 5 files changed, 39 insertions(+), 22 deletions(-) diff --git a/lib/compile-exports.js b/lib/compile-exports.js index 06904fac..318743ce 100644 --- a/lib/compile-exports.js +++ b/lib/compile-exports.js @@ -14,14 +14,23 @@ module.exports = function compileExports(result, importItemMatcher, camelCaseKey var exportJs = Object.keys(result.exports).reduce(function(res, key) { var valueAsString = JSON.stringify(result.exports[key]); valueAsString = valueAsString.replace(result.importItemRegExpG, importItemMatcher); - res.push("\t" + JSON.stringify(key) + ": " + valueAsString); + function addEntry(k) { + res.push("\t" + JSON.stringify(k) + ": " + valueAsString); + } + addEntry(key); + var targetKey; if (camelCaseKeys === true) { - res.push("\t" + JSON.stringify(camelCase(key)) + ": " + valueAsString); + targetKey = camelCase(key); + if (targetKey !== key) { + addEntry(targetKey); + } } else if (camelCaseKeys === 'dashes') { - res.push("\t" + JSON.stringify(dashesCamelCase(key)) + ": " + valueAsString); + targetKey = dashesCamelCase(key); + if (targetKey !== key) { + addEntry(targetKey); + } } - return res; }, []).join(",\n"); diff --git a/package.json b/package.json index d1cf44d6..b4d05d66 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "css-loader", - "version": "0.26.2", + "version": "0.26.3", "author": "Tobias Koppers @sokra", "description": "css loader module for webpack", "engines": { diff --git a/test/camelCaseTest.js b/test/camelCaseTest.js index 86803005..c8be53b3 100644 --- a/test/camelCaseTest.js +++ b/test/camelCaseTest.js @@ -1,6 +1,7 @@ /*globals describe */ var test = require("./helpers").test; +var testRaw = require("./helpers").testRaw; describe("camelCase", function() { var css = ".btn-info_is-disabled { color: blue; }"; @@ -21,4 +22,7 @@ describe("camelCase", function() { test("with", css, exports.with, "?modules"); test("without", css, exports.without, "?modules&camelCase"); test("dashes", css, exports.dashes, "?modules&camelCase=dashes"); + + testRaw("withoutRaw", '.a {}', 'exports.locals = {\n\t"a": "_1buUQJccBRS2-2i27LCoDf"\n};', "?modules&camelCase"); + testRaw("dashesRaw", '.a {}', 'exports.locals = {\n\t"a": "_1buUQJccBRS2-2i27LCoDf"\n};', "?modules&camelCase=dashes"); }); diff --git a/test/helpers.js b/test/helpers.js index f50941f2..ba7f72be 100644 --- a/test/helpers.js +++ b/test/helpers.js @@ -32,6 +32,10 @@ function assetEvaluated(output, result, modules) { exports.should.be.eql(result); } +function assertRaw(output, result) { + output.should.containEql(result); +} + function runLoader(loader, input, map, addOptions, callback) { var opt = { options: { @@ -69,6 +73,18 @@ exports.test = function test(name, input, result, query, modules) { }); }; +exports.testRaw = function testRaw(name, input, result, query, modules) { + it(name, function(done) { + runLoader(cssLoader, input, undefined, !query || typeof query === "string" ? { + query: query + } : query, function(err, output) { + if(err) return done(err); + assertRaw(output, result, modules); + done(); + }); + }); +} + exports.testError = function test(name, input, onError) { it(name, function(done) { runLoader(cssLoader, input, undefined, {}, function(err, output) { // eslint-disable-line no-unused-vars diff --git a/yarn.lock b/yarn.lock index a7894e3d..79f133ab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -165,14 +165,7 @@ browser-stdout@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" -browserslist@^1.0.1, browserslist@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.6.0.tgz#85fb7c993540d3fda31c282baf7f5aee698ac9ee" - dependencies: - caniuse-db "^1.0.30000613" - electron-to-chromium "^1.2.0" - -browserslist@~1.5.1: +browserslist@^1.0.1, browserslist@^1.5.2, browserslist@~1.5.1: version "1.5.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.5.2.tgz#1c82fde0ee8693e6d15c49b7bff209dc06298c56" dependencies: @@ -206,7 +199,7 @@ caniuse-api@^1.5.2: lodash.uniq "^4.3.0" shelljs "^0.7.0" -caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000604, caniuse-db@^1.0.30000613: +caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000604: version "1.0.30000613" resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000613.tgz#639133b7a5380c1416f9701d23d54d093dd68299" @@ -493,10 +486,6 @@ ecc-jsbn@~0.1.1: dependencies: jsbn "~0.1.0" -electron-to-chromium@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.2.0.tgz#3bd7761f85bd4163602259ae6c7ed338050b17e7" - emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -1107,14 +1096,13 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -loader-utils@~0.2.2: - version "0.2.16" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" +loader-utils@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.0.3.tgz#566c320c24c33cb3f02db4df83f3dbf60b253de3" dependencies: big.js "^3.1.3" emojis-list "^2.0.0" json5 "^0.5.0" - object-assign "^4.0.1" lodash._baseassign@^3.0.0: version "3.2.0" From 24aac1085343c8e4e46764bb6b74976882b1e4ec Mon Sep 17 00:00:00 2001 From: Joshua Wiens Date: Wed, 8 Mar 2017 07:53:15 -0600 Subject: [PATCH 05/13] chore(release): 0.26.4 --- package.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b4d05d66..c3a60cca 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,16 @@ { "name": "css-loader", - "version": "0.26.3", + "version": "0.26.4", "author": "Tobias Koppers @sokra", "description": "css loader module for webpack", "engines": { "node": ">=0.12.0 || >=4.3.0 <5.0.0 || >=5.10" }, - "files": ["index.js", "locals.js", "lib"], + "files": [ + "index.js", + "locals.js", + "lib" + ], "dependencies": { "babel-code-frame": "^6.11.0", "css-selector-tokenizer": "^0.7.0", From 2303df49859e0c9d33543069593a5f2411ae9dc3 Mon Sep 17 00:00:00 2001 From: Joshua Wiens Date: Wed, 8 Mar 2017 07:58:50 -0600 Subject: [PATCH 06/13] docs(readme): update badge URLs --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index c4aadb6d..7159e38d 100644 --- a/README.md +++ b/README.md @@ -434,14 +434,14 @@ import { className } from 'file.css'; [node]: https://img.shields.io/node/v/css-loader.svg [node-url]: https://nodejs.org -[deps]: https://david-dm.org/webpack/css-loader.svg -[deps-url]: https://david-dm.org/webpack/css-loader +[deps]: https://david-dm.org/webpack-contrib/css-loader.svg +[deps-url]: https://david-dm.org/webpack-contrib/css-loader -[tests]: http://img.shields.io/travis/webpack/css-loader.svg -[tests-url]: https://travis-ci.org/webpack/css-loader +[tests]: http://img.shields.io/travis/webpack-contrib/css-loader.svg +[tests-url]: https://travis-ci.org/webpack-contrib/css-loader -[cover]: https://coveralls.io/repos/github/webpack/css-loader/badge.svg -[cover-url]: https://coveralls.io/github/webpack/css-loader +[cover]: https://coveralls.io/repos/github/webpack-contrib/css-loader/badge.svg +[cover-url]: https://coveralls.io/github/webpack-contrib/css-loader [chat]: https://badges.gitter.im/webpack/webpack.svg [chat-url]: https://gitter.im/webpack/webpack From d7308bcbb43da317c8a9c31e3fef705f6caa952c Mon Sep 17 00:00:00 2001 From: Joscha Feth Date: Thu, 9 Mar 2017 01:00:41 +1100 Subject: [PATCH 07/13] docs: README.md line endings --- README.md | 894 +++++++++++++++++++++++++++--------------------------- 1 file changed, 447 insertions(+), 447 deletions(-) diff --git a/README.md b/README.md index 7159e38d..659b7f68 100644 --- a/README.md +++ b/README.md @@ -1,447 +1,447 @@ -[![npm][npm]][npm-url] -[![node][node]][node-url] -[![deps][deps]][deps-url] -[![tests][tests]][tests-url] -[![coverage][cover]][cover-url] -[![chat][chat]][chat-url] - -
- - - - -

CSS Loader

-
- -

Install

- -```bash -npm install --save-dev css-loader -``` - -

Usage

- -The `css-loader` interprets `@import` and `url()` like `requires`. - -Use the loader either via your webpack config, CLI or inline. - -### Via webpack config (recommended) - -**webpack.config.js** -```js -module.exports = { - module: { - rules: [ - { - test: /\.css$/, - use: [ 'style-loader', 'css-loader' ] - } - ] - } -} -``` - -**In your application** -```js -import css from 'file.css'; -``` - -### CLI - -```bash -webpack --module-bind 'css=style-loader!css-loader' -``` - -**In your application** -```js -import css from 'file.css'; -``` - -### Inline - -**In your application** -```js -import css from 'style-loader!css-loader!./file.css'; -``` - -

Options

- -`@import` and `url()` are interpreted like `import` and will be resolved by the css-loader. -Good loaders for requiring your assets are the [file-loader](https://github.com/webpack/file-loader) -and the [url-loader](https://github.com/webpack/url-loader) which you should specify in your config (see below). - -To be compatible with existing css files (if not in CSS Module mode): - -* `url(image.png)` => `require('./image.png')` -* `url(~module/image.png)` => `require('module/image.png')` - -

Options

- -|Name|Default|Description| -|:--:|:-----:|:----------| -|**`root`**|`/`|Path to resolve URLs, URLs starting with `/` will not be translated| -|**`modules`**|`false`|Enable/Disable CSS Modules| -|**`import`** |`true`| Enable/Disable @import handling| -|**`url`**|`true`| Enable/Disable `url()` handling| -|**`minimize`**|`false`|Enable/Disable minification| -|**`sourceMap`**|`false`|Enable/Disable Sourcemaps| -|**`camelCase`**|`false`|Export Classnames in CamelCase| -|**`importLoaders`**|`0`|Number of loaders applied before CSS loader| - -The following webpack config can load CSS files, embed small PNG/JPG/GIF/SVG images as well as fonts as [Data URLs](https://tools.ietf.org/html/rfc2397) and copy larger files to the output directory. - -**webpack.config.js** -```js -module.exports = { - module: { - rules: [ - { - test: /\.css$/, - use: [ 'style-loader', 'css-loader' ] - }, - { - test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, - loader: 'url-loader', - options: { - limit: 10000 - } - } - ] - } -}; -``` - -### Root - -For URLs that start with a `/`, the default behavior is to not translate them: - -* `url(/image.png)` => `url(/image.png)` - -If a `root` query parameter is set, however, it will be prepended to the URL -and then translated: - -**webpack.config.js** -```js -rules: [ - { - test: /\.css$/, - use: [ - 'style-loader', - { - loader: 'css-loader', - options: { root: '.' } - } - ] - } -] -``` - -* `url(/image.png)` => `require('./image.png')` - -Using 'Root-relative' urls is not recommended. You should only use it for legacy CSS files. - -### CSS Scope - -By default CSS exports all class names into a global selector scope. Styles can be locally scoped to avoid globally scoping styles. - -The syntax `:local(.className)` can be used to declare `className` in the local scope. The local identifiers are exported by the module. - -With `:local` (without brackets) local mode can be switched on for this selector. `:global(.className)` can be used to declare an explicit global selector. With `:global` (without brackets) global mode can be switched on for this selector. - -The loader replaces local selectors with unique identifiers. The choosen unique identifiers are exported by the module. - -**app.css** -```css -:local(.className) { background: red; } -:local .className { color: green; } -:local(.className .subClass) { color: green; } -:local .className .subClass :global(.global-class-name) { color: blue; } -``` - -**app.bundle.css** -``` css -._23_aKvs-b8bW2Vg3fwHozO { background: red; } -._23_aKvs-b8bW2Vg3fwHozO { color: green; } -._23_aKvs-b8bW2Vg3fwHozO ._13LGdX8RMStbBE9w-t0gZ1 { color: green; } -._23_aKvs-b8bW2Vg3fwHozO ._13LGdX8RMStbBE9w-t0gZ1 .global-class-name { color: blue; } -``` - -> Note: Identifiers are exported - -``` js -exports.locals = { - className: '_23_aKvs-b8bW2Vg3fwHozO', - subClass: '_13LGdX8RMStbBE9w-t0gZ1' -} -``` - -CamelCase is recommended for local selectors. They are easier to use in the within the imported JS module. - -`url()` URLs in block scoped (`:local .abc`) rules behave like requests in modules: - -* `./file.png` instead of `file.png` -* `module/file.png` instead of `~module/file.png` - -You can use `:local(#someId)`, but this is not recommended. Use classes instead of ids. - -You can configure the generated ident with the `localIdentName` query parameter (default `[hash:base64]`). - - **webpack.config.js** - ```js -{ - test: /\.css$/, - use: [ - { - loader: 'css-loader', - options: { - modules: true, - localIdentName: '[path][name]__[local]--[hash:base64:5]' - } - } - ] -} -``` - -You can also specify the absolute path to your custom `getLocalIdent` function to generate classname based on a different schema. Note that this requires `webpack >= v2.x.` since to be able to pass function in. For example: - -```js -{ - test: /\.css$/, - use: [ - { - loader: 'css-loader', - options: { - modules: true, - localIdentName: '[path][name]__[local]--[hash:base64:5]', - getLocalIdent: (context, localIdentName, localName, options) => { - return 'whatever_random_class_name' - } - } - } - ] -} -``` - -Note: For prerendering with extract-text-webpack-plugin you should use `css-loader/locals` instead of `style-loader!css-loader` **in the prerendering bundle**. It doesn't embed CSS but only exports the identifier mappings. - -### [CSS Modules](https://github.com/css-modules/css-modules) - -The query parameter `modules` enables the **CSS Modules** spec. - -This enables local scoped CSS by default. (You can switch it off with `:global(...)` or `:global` for selectors and/or rules.) - -### CSS Composing - -When declaring a local class name you can compose a local class from another local class name. - -``` css -:local(.className) { - background: red; - color: yellow; -} - -:local(.subClass) { - composes: className; - background: blue; -} -``` - -This doesn't result in any change to the CSS itself but exports multiple class names: - -```js -exports.locals = { - className: '_23_aKvs-b8bW2Vg3fwHozO', - subClass: '_13LGdX8RMStbBE9w-t0gZ1 _23_aKvs-b8bW2Vg3fwHozO' -} -``` - -``` css -._23_aKvs-b8bW2Vg3fwHozO { - background: red; - color: yellow; -} - -._13LGdX8RMStbBE9w-t0gZ1 { - background: blue; -} -``` - -### Importing CSS Locals - -To import a local class name from another module: - -``` css -:local(.continueButton) { - composes: button from 'library/button.css'; - background: red; -} -``` - -``` css -:local(.nameEdit) { - composes: edit highlight from './edit.css'; - background: red; -} -``` - -To import from multiple modules use multiple `composes:` rules. - -``` css -:local(.className) { - composes: edit hightlight from './edit.css'; - composes: button from 'module/button.css'; - composes: classFromThisModule; - background: red; -} -``` - -### SourceMaps - -To include Sourcemaps set the `sourceMap` query param. - -I. e. the extract-text-webpack-plugin can handle them. - -They are not enabled by default because they expose a runtime overhead and increase in bundle size (JS SourceMap do not). In addition to that relative paths are buggy and you need to use an absolute public path which include the server URL. - -**webpack.config.js** -```js -{ - test: /\.css$/, - use: [ - { - loader: 'css-loader', - options: { - sourceMap: true - } - } - ] -} -``` - -### ImportLoaders - -The query parameter `importLoaders` allow to configure which loaders should be applied to `@import`ed resources. - -`importLoaders`: That many loaders after the css-loader are used to import resources. - -**webpack.config.js** -```js -{ - test: /\.css$/, - use: [ - { - loader: 'css-loader', - options: { - importLoaders: 1 - } - }, - 'postcss-loader' - ] -} -``` - -This may change in the future, when the module system (i. e. webpack) supports loader matching by origin. - -### Minification - -By default the css-loader minimizes the css if specified by the module system. - -In some cases the minification is destructive to the css, so you can provide some options to it. cssnano is used for minification and you find a [list of options here](http://cssnano.co/options/). - -You can also disable or enforce minification with the `minimize` query parameter. - -**webpack.config.js** -```js -{ - test: /\.css$/, - use: [ - { - loader: 'css-loader', - options: { - minimize: true || {/* CSSNano Options */} - } - } - ] -} -``` - -### CamelCase - -By default, the exported JSON keys mirror the class names. If you want to camelize class names (useful in JS), pass the query parameter `camelCase` to css-loader. - -**webpack.config.js** -```js -{ - test: /\.css$/, - use: [ - { - loader: 'css-loader', - options: { - camelCase: true - } - } - ] -} -``` - -```css -.class-name {} -``` - -```js -import { className } from 'file.css'; -``` - -

Maintainers

- - - - - - - - - - -
- -
- Juho Vepsäläinen -
- -
- Joshua Wiens -
- -
- Kees Kluskens -
- -
- Sean Larkin -
- - -[npm]: https://img.shields.io/npm/v/css-loader.svg -[npm-url]: https://npmjs.com/package/css-loader - -[node]: https://img.shields.io/node/v/css-loader.svg -[node-url]: https://nodejs.org - -[deps]: https://david-dm.org/webpack-contrib/css-loader.svg -[deps-url]: https://david-dm.org/webpack-contrib/css-loader - -[tests]: http://img.shields.io/travis/webpack-contrib/css-loader.svg -[tests-url]: https://travis-ci.org/webpack-contrib/css-loader - -[cover]: https://coveralls.io/repos/github/webpack-contrib/css-loader/badge.svg -[cover-url]: https://coveralls.io/github/webpack-contrib/css-loader - -[chat]: https://badges.gitter.im/webpack/webpack.svg -[chat-url]: https://gitter.im/webpack/webpack +[![npm][npm]][npm-url] +[![node][node]][node-url] +[![deps][deps]][deps-url] +[![tests][tests]][tests-url] +[![coverage][cover]][cover-url] +[![chat][chat]][chat-url] + +
+ + + + +

CSS Loader

+
+ +

Install

+ +```bash +npm install --save-dev css-loader +``` + +

Usage

+ +The `css-loader` interprets `@import` and `url()` like `requires`. + +Use the loader either via your webpack config, CLI or inline. + +### Via webpack config (recommended) + +**webpack.config.js** +```js +module.exports = { + module: { + rules: [ + { + test: /\.css$/, + use: [ 'style-loader', 'css-loader' ] + } + ] + } +} +``` + +**In your application** +```js +import css from 'file.css'; +``` + +### CLI + +```bash +webpack --module-bind 'css=style-loader!css-loader' +``` + +**In your application** +```js +import css from 'file.css'; +``` + +### Inline + +**In your application** +```js +import css from 'style-loader!css-loader!./file.css'; +``` + +

Options

+ +`@import` and `url()` are interpreted like `import` and will be resolved by the css-loader. +Good loaders for requiring your assets are the [file-loader](https://github.com/webpack/file-loader) +and the [url-loader](https://github.com/webpack/url-loader) which you should specify in your config (see below). + +To be compatible with existing css files (if not in CSS Module mode): + +* `url(image.png)` => `require('./image.png')` +* `url(~module/image.png)` => `require('module/image.png')` + +

Options

+ +|Name|Default|Description| +|:--:|:-----:|:----------| +|**`root`**|`/`|Path to resolve URLs, URLs starting with `/` will not be translated| +|**`modules`**|`false`|Enable/Disable CSS Modules| +|**`import`** |`true`| Enable/Disable @import handling| +|**`url`**|`true`| Enable/Disable `url()` handling| +|**`minimize`**|`false`|Enable/Disable minification| +|**`sourceMap`**|`false`|Enable/Disable Sourcemaps| +|**`camelCase`**|`false`|Export Classnames in CamelCase| +|**`importLoaders`**|`0`|Number of loaders applied before CSS loader| + +The following webpack config can load CSS files, embed small PNG/JPG/GIF/SVG images as well as fonts as [Data URLs](https://tools.ietf.org/html/rfc2397) and copy larger files to the output directory. + +**webpack.config.js** +```js +module.exports = { + module: { + rules: [ + { + test: /\.css$/, + use: [ 'style-loader', 'css-loader' ] + }, + { + test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, + loader: 'url-loader', + options: { + limit: 10000 + } + } + ] + } +}; +``` + +### Root + +For URLs that start with a `/`, the default behavior is to not translate them: + +* `url(/image.png)` => `url(/image.png)` + +If a `root` query parameter is set, however, it will be prepended to the URL +and then translated: + +**webpack.config.js** +```js +rules: [ + { + test: /\.css$/, + use: [ + 'style-loader', + { + loader: 'css-loader', + options: { root: '.' } + } + ] + } +] +``` + +* `url(/image.png)` => `require('./image.png')` + +Using 'Root-relative' urls is not recommended. You should only use it for legacy CSS files. + +### CSS Scope + +By default CSS exports all class names into a global selector scope. Styles can be locally scoped to avoid globally scoping styles. + +The syntax `:local(.className)` can be used to declare `className` in the local scope. The local identifiers are exported by the module. + +With `:local` (without brackets) local mode can be switched on for this selector. `:global(.className)` can be used to declare an explicit global selector. With `:global` (without brackets) global mode can be switched on for this selector. + +The loader replaces local selectors with unique identifiers. The choosen unique identifiers are exported by the module. + +**app.css** +```css +:local(.className) { background: red; } +:local .className { color: green; } +:local(.className .subClass) { color: green; } +:local .className .subClass :global(.global-class-name) { color: blue; } +``` + +**app.bundle.css** +``` css +._23_aKvs-b8bW2Vg3fwHozO { background: red; } +._23_aKvs-b8bW2Vg3fwHozO { color: green; } +._23_aKvs-b8bW2Vg3fwHozO ._13LGdX8RMStbBE9w-t0gZ1 { color: green; } +._23_aKvs-b8bW2Vg3fwHozO ._13LGdX8RMStbBE9w-t0gZ1 .global-class-name { color: blue; } +``` + +> Note: Identifiers are exported + +``` js +exports.locals = { + className: '_23_aKvs-b8bW2Vg3fwHozO', + subClass: '_13LGdX8RMStbBE9w-t0gZ1' +} +``` + +CamelCase is recommended for local selectors. They are easier to use in the within the imported JS module. + +`url()` URLs in block scoped (`:local .abc`) rules behave like requests in modules: + +* `./file.png` instead of `file.png` +* `module/file.png` instead of `~module/file.png` + +You can use `:local(#someId)`, but this is not recommended. Use classes instead of ids. + +You can configure the generated ident with the `localIdentName` query parameter (default `[hash:base64]`). + + **webpack.config.js** + ```js +{ + test: /\.css$/, + use: [ + { + loader: 'css-loader', + options: { + modules: true, + localIdentName: '[path][name]__[local]--[hash:base64:5]' + } + } + ] +} +``` + +You can also specify the absolute path to your custom `getLocalIdent` function to generate classname based on a different schema. Note that this requires `webpack >= v2.x.` since to be able to pass function in. For example: + +```js +{ + test: /\.css$/, + use: [ + { + loader: 'css-loader', + options: { + modules: true, + localIdentName: '[path][name]__[local]--[hash:base64:5]', + getLocalIdent: (context, localIdentName, localName, options) => { + return 'whatever_random_class_name' + } + } + } + ] +} +``` + +Note: For prerendering with extract-text-webpack-plugin you should use `css-loader/locals` instead of `style-loader!css-loader` **in the prerendering bundle**. It doesn't embed CSS but only exports the identifier mappings. + +### [CSS Modules](https://github.com/css-modules/css-modules) + +The query parameter `modules` enables the **CSS Modules** spec. + +This enables local scoped CSS by default. (You can switch it off with `:global(...)` or `:global` for selectors and/or rules.) + +### CSS Composing + +When declaring a local class name you can compose a local class from another local class name. + +``` css +:local(.className) { + background: red; + color: yellow; +} + +:local(.subClass) { + composes: className; + background: blue; +} +``` + +This doesn't result in any change to the CSS itself but exports multiple class names: + +```js +exports.locals = { + className: '_23_aKvs-b8bW2Vg3fwHozO', + subClass: '_13LGdX8RMStbBE9w-t0gZ1 _23_aKvs-b8bW2Vg3fwHozO' +} +``` + +``` css +._23_aKvs-b8bW2Vg3fwHozO { + background: red; + color: yellow; +} + +._13LGdX8RMStbBE9w-t0gZ1 { + background: blue; +} +``` + +### Importing CSS Locals + +To import a local class name from another module: + +``` css +:local(.continueButton) { + composes: button from 'library/button.css'; + background: red; +} +``` + +``` css +:local(.nameEdit) { + composes: edit highlight from './edit.css'; + background: red; +} +``` + +To import from multiple modules use multiple `composes:` rules. + +``` css +:local(.className) { + composes: edit hightlight from './edit.css'; + composes: button from 'module/button.css'; + composes: classFromThisModule; + background: red; +} +``` + +### SourceMaps + +To include Sourcemaps set the `sourceMap` query param. + +I. e. the extract-text-webpack-plugin can handle them. + +They are not enabled by default because they expose a runtime overhead and increase in bundle size (JS SourceMap do not). In addition to that relative paths are buggy and you need to use an absolute public path which include the server URL. + +**webpack.config.js** +```js +{ + test: /\.css$/, + use: [ + { + loader: 'css-loader', + options: { + sourceMap: true + } + } + ] +} +``` + +### ImportLoaders + +The query parameter `importLoaders` allow to configure which loaders should be applied to `@import`ed resources. + +`importLoaders`: That many loaders after the css-loader are used to import resources. + +**webpack.config.js** +```js +{ + test: /\.css$/, + use: [ + { + loader: 'css-loader', + options: { + importLoaders: 1 + } + }, + 'postcss-loader' + ] +} +``` + +This may change in the future, when the module system (i. e. webpack) supports loader matching by origin. + +### Minification + +By default the css-loader minimizes the css if specified by the module system. + +In some cases the minification is destructive to the css, so you can provide some options to it. cssnano is used for minification and you find a [list of options here](http://cssnano.co/options/). + +You can also disable or enforce minification with the `minimize` query parameter. + +**webpack.config.js** +```js +{ + test: /\.css$/, + use: [ + { + loader: 'css-loader', + options: { + minimize: true || {/* CSSNano Options */} + } + } + ] +} +``` + +### CamelCase + +By default, the exported JSON keys mirror the class names. If you want to camelize class names (useful in JS), pass the query parameter `camelCase` to css-loader. + +**webpack.config.js** +```js +{ + test: /\.css$/, + use: [ + { + loader: 'css-loader', + options: { + camelCase: true + } + } + ] +} +``` + +```css +.class-name {} +``` + +```js +import { className } from 'file.css'; +``` + +

Maintainers

+ + + + + + + + + + +
+ +
+ Juho Vepsäläinen +
+ +
+ Joshua Wiens +
+ +
+ Kees Kluskens +
+ +
+ Sean Larkin +
+ + +[npm]: https://img.shields.io/npm/v/css-loader.svg +[npm-url]: https://npmjs.com/package/css-loader + +[node]: https://img.shields.io/node/v/css-loader.svg +[node-url]: https://nodejs.org + +[deps]: https://david-dm.org/webpack-contrib/css-loader.svg +[deps-url]: https://david-dm.org/webpack-contrib/css-loader + +[tests]: http://img.shields.io/travis/webpack-contrib/css-loader.svg +[tests-url]: https://travis-ci.org/webpack-contrib/css-loader + +[cover]: https://coveralls.io/repos/github/webpack-contrib/css-loader/badge.svg +[cover-url]: https://coveralls.io/github/webpack-contrib/css-loader + +[chat]: https://badges.gitter.im/webpack/webpack.svg +[chat-url]: https://gitter.im/webpack/webpack From 16c0858e21a3e938bea18cf827445bb38b8bf650 Mon Sep 17 00:00:00 2001 From: JounQin Date: Sun, 15 Jan 2017 12:29:22 +0800 Subject: [PATCH 08/13] fix: `minimizeOptions` should be `query.minimize`! It's a mistake according to the doc. Init `minimizeOptions` should be `query.minimize` rather than just query. https://github.com/webpack/css-loader#minification --- lib/processCss.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/processCss.js b/lib/processCss.js index c6e8d102..60b81360 100644 --- a/lib/processCss.js +++ b/lib/processCss.js @@ -179,7 +179,7 @@ module.exports = function processCss(inputSource, inputMap, options, callback) { ]); if(minimize) { - var minimizeOptions = assign({}, query); + var minimizeOptions = assign({}, query.minimize); ["zindex", "normalizeUrl", "discardUnused", "mergeIdents", "reduceIdents", "autoprefixer"].forEach(function(name) { if(typeof minimizeOptions[name] === "undefined") minimizeOptions[name] = false; From ac7ab1fc174c6ee62ddc4d5cb7a7f782bc81d744 Mon Sep 17 00:00:00 2001 From: JounQin Date: Thu, 9 Mar 2017 10:39:34 +0800 Subject: [PATCH 09/13] test: fix test error --- test/moduleMinimizeTest.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/moduleMinimizeTest.js b/test/moduleMinimizeTest.js index bbc47f5c..7efa9979 100644 --- a/test/moduleMinimizeTest.js +++ b/test/moduleMinimizeTest.js @@ -12,6 +12,13 @@ describe("module minimize", function() { var source = fs.readFileSync(path.join(testCasesPath, name, "source.css"), "utf-8"); var expected = fs.readFileSync(path.join(testCasesPath, name, "expected.css"), "utf-8"); - test(name, source, expected, "?module&minimize&sourceMap&-discardComments&localIdentName=_[local]_"); + test(name, source, expected, '?' + JSON.stringify({ + module: true, + sourceMap: true, + minimize: { + discardComments: false + }, + localIdentName: '_[local]_' + })); }); }); From 6da7e90748364fe61231ba71e3d9057c41271f5f Mon Sep 17 00:00:00 2001 From: Zhicheng Wang Date: Sun, 5 Feb 2017 17:43:19 +0800 Subject: [PATCH 10/13] feat: Include the sourceMappingURL & sourceURL when toString() This feature is useful when you need to pass the result of css-loader to angular: call to require('to-string-loader!css-loader? sourceMap!sass-loader?sourceMap!./ test.scss') will include source mapping, And finally assigned to the component's styles metadata --- README.md | 27 +++++++++++++++++++++++++++ lib/css-base.js | 26 +++++++++++++++++++------- package.json | 1 + test/cssBaseTest.js | 12 ++++++++++++ 4 files changed, 59 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 659b7f68..9fd5ecc7 100644 --- a/README.md +++ b/README.md @@ -320,6 +320,33 @@ They are not enabled by default because they expose a runtime overhead and incre } ``` +### toString + +You can also use the css-loader results directly as string, such as in Angular's component style. + +**webpack.config.js** + +```js +{ +   test: /\.css$/, +   use: [ +     { +       loaders: ['to-string-loader', 'css-loader'] +     } +   ] +} +``` + +or + +```js +const cssText = require('./test.css').toString(); + +console.log(cssText); +``` + +If there are SourceMaps, they will also be included in the result string. + ### ImportLoaders The query parameter `importLoaders` allow to configure which loaders should be applied to `@import`ed resources. diff --git a/lib/css-base.js b/lib/css-base.js index 3f791979..1e240e59 100644 --- a/lib/css-base.js +++ b/lib/css-base.js @@ -8,16 +8,14 @@ module.exports = function() { // return the list of modules as css string list.toString = function toString() { - var result = []; - for(var i = 0; i < this.length; i++) { - var item = this[i]; + return this.map(function (item) { + const content = cssWithMappingToString(item); if(item[2]) { - result.push("@media " + item[2] + "{" + item[1] + "}"); + return "@media " + item[2] + "{" + content + "}"; } else { - result.push(item[1]); + return content; } - } - return result.join(""); + }).join(""); }; // import a list of modules into the list @@ -48,3 +46,17 @@ module.exports = function() { }; return list; }; + +function cssWithMappingToString(item) { + var content = item[1] || ''; + var cssMapping = item[3]; + if (!cssMapping) { + return content; + } + var convertSourceMap = require('convert-source-map'); + var sourceMapping = convertSourceMap.fromObject(cssMapping).toComment({multiline: true}); + var sourceURLs = cssMapping.sources.map(function (source) { + return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */' + }); + return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); +} diff --git a/package.json b/package.json index c3a60cca..58d38167 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ ], "dependencies": { "babel-code-frame": "^6.11.0", + "convert-source-map": "^1.3.0", "css-selector-tokenizer": "^0.7.0", "cssnano": ">=2.6.1 <4", "loader-utils": "^1.0.2", diff --git a/test/cssBaseTest.js b/test/cssBaseTest.js index 73b6f79d..4e659ac0 100644 --- a/test/cssBaseTest.js +++ b/test/cssBaseTest.js @@ -34,4 +34,16 @@ describe("css-base", function() { "@media print{body { d: 4; }}" + "@media screen{body { a: 1; }}"); }); + it("should toString with source mapping", function() { + var m = base(); + m.push([1, "body { a: 1; }", "", { + file: "test.scss", + sources: [ + './path/to/test.scss' + ], + mappings: "AAAA;", + sourceRoot: "webpack://" + }]); + m.toString().should.be.eql("body { a: 1; }\n/*# sourceURL=webpack://./path/to/test.scss */\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJmaWxlIjoidGVzdC5zY3NzIiwic291cmNlcyI6WyIuL3BhdGgvdG8vdGVzdC5zY3NzIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290Ijoid2VicGFjazovLyJ9 */"); + }); }); From 17faa3139d9d2508b38fb9dff38e8c922ff19b72 Mon Sep 17 00:00:00 2001 From: Joshua Wiens Date: Thu, 9 Mar 2017 23:29:56 -0600 Subject: [PATCH 11/13] chore(release): add standard-version & update travis build (#446) * chore(release): add standard-version & scripts * docs(readme): update coverage badge * ci(travis): fix minimum nodejs version --- .travis.yml | 4 +- README.md | 4 +- package.json | 5 +- yarn.lock | 907 +++++++++++++++++++++++++++++++++++++++++++-------- 4 files changed, 777 insertions(+), 143 deletions(-) diff --git a/.travis.yml b/.travis.yml index b06ca94f..cc2779e9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,13 +13,13 @@ matrix: node_js: "6" env: WEBPACK_VERSION="2.2.0" JOB_PART=test - os: linux - node_js: "4.7" + node_js: "4.3" env: WEBPACK_VERSION="2.2.0" JOB_PART=test - os: linux node_js: "7" env: WEBPACK_VERSION="2.2.0" JOB_PART=test - os: linux - node_js: "4.7" + node_js: "4.3" env: WEBPACK_VERSION="1.14.0" JOB_PART=test before_install: - nvm --version diff --git a/README.md b/README.md index 9fd5ecc7..9cb0ac29 100644 --- a/README.md +++ b/README.md @@ -467,8 +467,8 @@ import { className } from 'file.css'; [tests]: http://img.shields.io/travis/webpack-contrib/css-loader.svg [tests-url]: https://travis-ci.org/webpack-contrib/css-loader -[cover]: https://coveralls.io/repos/github/webpack-contrib/css-loader/badge.svg -[cover-url]: https://coveralls.io/github/webpack-contrib/css-loader +[cover]: https://codecov.io/gh/webpack-contrib/css-loader/branch/master/graph/badge.svg +[cover-url]: https://codecov.io/gh/webpack-contrib/css-loader [chat]: https://badges.gitter.im/webpack/webpack.svg [chat-url]: https://gitter.im/webpack/webpack diff --git a/package.json b/package.json index 58d38167..4d4301fe 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,8 @@ "eslint": "3.14.0", "istanbul": "^0.4.5", "mocha": "^3.2.0", - "should": "^11.1.2" + "should": "^11.1.2", + "standard-version": "^4.0.0" }, "scripts": { "test": "mocha", @@ -40,7 +41,7 @@ "travis:test": "npm run cover", "travis:lint": "npm run lint", "cover": "istanbul cover node_modules/mocha/bin/_mocha", - "publish-patch": "mocha && npm version patch && git push && git push --tags && npm publish" + "release": "yarn run standard-version" }, "repository": { "type": "git", diff --git a/yarn.lock b/yarn.lock index 79f133ab..32bd1f0b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,13 @@ # yarn lockfile v1 +JSONStream@^1.0.4: + version "1.3.1" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.1.tgz#707f761e01dae9e16f1bcf93703b78c70966579a" + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + abbrev@1, abbrev@1.0.x: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" @@ -12,21 +19,21 @@ acorn-jsx@^3.0.0: dependencies: acorn "^3.0.4" +acorn@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" + acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" -acorn@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" - ajv-keywords@^1.0.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.0.tgz#c11e6859eafff83e0dafc416929472eca946aa2c" + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" -ajv@^4.7.0: - version "4.11.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.2.tgz#f166c3c11cbc6cb9dcc102a5bcfe5b72c95287e6" +ajv@^4.7.0, ajv@^4.9.1: + version "4.11.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.4.tgz#ebf3a55d4b132ea60ff5847ae85d2ef069960b45" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" @@ -69,6 +76,14 @@ argv@>=0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab" +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -99,23 +114,19 @@ async@1.x, async@^1.4.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" -async@~0.2.6: - version "0.2.10" - resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" autoprefixer@^6.3.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.6.1.tgz#11a4077abb4b313253ec2f6e1adb91ad84253519" + version "6.7.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.6.tgz#00f05656c7ef73de9d2fd9b4668f6ef6905a855a" dependencies: - browserslist "~1.5.1" - caniuse-db "^1.0.30000604" + browserslist "^1.7.5" + caniuse-db "^1.0.30000628" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^5.2.8" + postcss "^5.2.15" postcss-value-parser "^3.2.3" aws-sign2@~0.6.0: @@ -123,8 +134,8 @@ aws-sign2@~0.6.0: resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" aws4@^1.2.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" babel-code-frame@^6.11.0, babel-code-frame@^6.16.0: version "6.22.0" @@ -139,8 +150,8 @@ balanced-match@^0.4.1, balanced-match@^0.4.2: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" bcrypt-pbkdf@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" dependencies: tweetnacl "^0.14.3" @@ -165,16 +176,21 @@ browser-stdout@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" -browserslist@^1.0.1, browserslist@^1.5.2, browserslist@~1.5.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.5.2.tgz#1c82fde0ee8693e6d15c49b7bff209dc06298c56" +browserslist@^1.0.1, browserslist@^1.5.2, browserslist@^1.7.5: + version "1.7.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.6.tgz#af98589ce6e7ab09618d29451faacb81220bd3ba" dependencies: - caniuse-db "^1.0.30000604" + caniuse-db "^1.0.30000631" + electron-to-chromium "^1.2.5" buffer-shims@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" @@ -185,27 +201,41 @@ callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + caniuse-api@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.5.2.tgz#8f393c682f661c0a997b77bba6e826483fb3600e" + version "1.5.3" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.5.3.tgz#5018e674b51c393e4d50614275dc017e27c4a2a2" dependencies: browserslist "^1.0.1" caniuse-db "^1.0.30000346" lodash.memoize "^4.1.0" lodash.uniq "^4.3.0" - shelljs "^0.7.0" -caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000604: - version "1.0.30000613" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000613.tgz#639133b7a5380c1416f9701d23d54d093dd68299" +caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000628, caniuse-db@^1.0.30000631: + version "1.0.30000634" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000634.tgz#439f4b95e715b1fd105196d40c681edd7122e622" -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" center-align@^0.1.1: version "0.1.3" @@ -252,6 +282,14 @@ cliui@^2.1.0: right-align "^0.1.1" wordwrap "0.0.2" +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + clone@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" @@ -321,17 +359,24 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@2.9.0, commander@^2.9.0: +commander@2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: graceful-readlink ">= 1.0.0" +compare-func@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" + dependencies: + array-ify "^1.0.0" + dot-prop "^3.0.0" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.6: +concat-stream@^1.4.10, concat-stream@^1.4.6: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: @@ -339,6 +384,146 @@ concat-stream@^1.4.6: readable-stream "^2.2.2" typedarray "^0.0.6" +conventional-changelog-angular@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.3.0.tgz#3f64185978aa13ab0954c9e46a78969fd59c6801" + dependencies: + compare-func "^1.3.1" + github-url-from-git "^1.4.0" + q "^1.4.1" + +conventional-changelog-atom@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.1.0.tgz#67a47c66a42b2f8909ef1587c9989ae1de730b92" + dependencies: + q "^1.4.1" + +conventional-changelog-codemirror@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.1.0.tgz#7577a591dbf9b538e7a150a7ee62f65a2872b334" + dependencies: + q "^1.4.1" + +conventional-changelog-core@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-1.5.0.tgz#72b17509535a23d7c6cb70ad4384f74247748013" + dependencies: + conventional-changelog-writer "^1.1.0" + conventional-commits-parser "^1.0.0" + dateformat "^1.0.12" + get-pkg-repo "^1.0.0" + git-raw-commits "^1.1.0" + git-remote-origin-url "^2.0.0" + git-semver-tags "^1.1.0" + lodash "^4.0.0" + normalize-package-data "^2.3.5" + q "^1.4.1" + read-pkg "^1.1.0" + read-pkg-up "^1.0.1" + through2 "^2.0.0" + +conventional-changelog-ember@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.2.2.tgz#bad70a891386bc3046484a8f4f1e5aa2dc0ad208" + dependencies: + q "^1.4.1" + +conventional-changelog-eslint@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-0.1.0.tgz#a52411e999e0501ce500b856b0a643d0330907e2" + dependencies: + q "^1.4.1" + +conventional-changelog-express@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.1.0.tgz#55c6c841c811962036c037bdbd964a54ae310fce" + dependencies: + q "^1.4.1" + +conventional-changelog-jquery@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510" + dependencies: + q "^1.4.1" + +conventional-changelog-jscs@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c" + dependencies: + q "^1.4.1" + +conventional-changelog-jshint@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.1.0.tgz#00cab8e9a3317487abd94c4d84671342918d2a07" + dependencies: + compare-func "^1.3.1" + q "^1.4.1" + +conventional-changelog-writer@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-1.4.1.tgz#3f4cb4d003ebb56989d30d345893b52a43639c8e" + dependencies: + compare-func "^1.3.1" + conventional-commits-filter "^1.0.0" + dateformat "^1.0.11" + handlebars "^4.0.2" + json-stringify-safe "^5.0.1" + lodash "^4.0.0" + meow "^3.3.0" + semver "^5.0.1" + split "^1.0.0" + through2 "^2.0.0" + +conventional-changelog@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.0.tgz#8ae3fb59feb74bbee0a25833ee1f83dad4a07874" + dependencies: + conventional-changelog-angular "^1.0.0" + conventional-changelog-atom "^0.1.0" + conventional-changelog-codemirror "^0.1.0" + conventional-changelog-core "^1.3.0" + conventional-changelog-ember "^0.2.0" + conventional-changelog-eslint "^0.1.0" + conventional-changelog-express "^0.1.0" + conventional-changelog-jquery "^0.1.0" + conventional-changelog-jscs "^0.1.0" + conventional-changelog-jshint "^0.1.0" + +conventional-commits-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.0.0.tgz#6fc2a659372bc3f2339cf9ffff7e1b0344b93039" + dependencies: + is-subset "^0.1.1" + modify-values "^1.0.0" + +conventional-commits-parser@^1.0.0, conventional-commits-parser@^1.0.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-1.3.0.tgz#e327b53194e1a7ad5dc63479ee9099a52b024865" + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.0" + lodash "^4.2.1" + meow "^3.3.0" + split2 "^2.0.0" + through2 "^2.0.0" + trim-off-newlines "^1.0.0" + +conventional-recommended-bump@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-0.3.0.tgz#e839de8f57cbb43445c8b4967401de0644c425d8" + dependencies: + concat-stream "^1.4.10" + conventional-commits-filter "^1.0.0" + conventional-commits-parser "^1.0.1" + git-latest-semver-tag "^1.0.0" + git-raw-commits "^1.0.0" + meow "^3.3.0" + object-assign "^4.0.1" + +convert-source-map@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.4.0.tgz#e3dad195bf61bfe13a7a3c73e9876ec14a0268f3" + 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" @@ -410,25 +595,44 @@ cssesc@^0.1.0: postcss-value-parser "^3.2.3" postcss-zindex "^2.0.1" -csso@~2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.2.1.tgz#51fbb5347e50e81e6ed51668a48490ae6fe2afe2" +csso@~2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.1.tgz#4f8d91a156f2f1c2aebb40b8fb1b5eb83d94d3b9" dependencies: clap "^1.0.9" source-map "^0.5.3" +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + d@^0.1.1, d@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" dependencies: es5-ext "~0.10.2" +dargs@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" + dependencies: + number-is-nan "^1.0.0" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" dependencies: assert-plus "^1.0.0" +dateformat@^1.0.11, dateformat@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + debug@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" @@ -436,12 +640,12 @@ debug@2.2.0: ms "0.7.1" debug@^2.1.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" + version "2.6.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351" dependencies: ms "0.7.2" -decamelize@^1.0.0, decamelize@^1.1.2: +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -480,16 +684,32 @@ doctrine@^1.2.2: esutils "^2.0.2" isarray "^1.0.0" +dot-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + dependencies: + is-obj "^1.0.0" + ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" dependencies: jsbn "~0.1.0" +electron-to-chromium@^1.2.5: + version "1.2.6" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.2.6.tgz#f38ad51d1919b06bc07275c62629db803ddca05a" + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" +error-ex@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7: version "0.10.12" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047" @@ -606,16 +826,20 @@ eslint@3.14.0: user-home "^2.0.0" espree@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.3.2.tgz#dbf3fadeb4ecb4d4778303e50103b3d36c88b89c" + version "3.4.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.0.tgz#41656fa5628e042878025ef467e78f125cb86e1d" dependencies: - acorn "^4.0.1" + acorn "4.0.4" acorn-jsx "^3.0.0" esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" +esprima@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + esrecurse@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" @@ -672,7 +896,7 @@ fastparse@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" -figures@^1.3.5: +figures@^1.3.5, figures@^1.5.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" dependencies: @@ -686,6 +910,13 @@ file-entry-cache@^2.0.0: flat-cache "^1.2.1" object-assign "^4.0.1" +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + flat-cache@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" @@ -711,6 +942,12 @@ form-data@~2.1.1: combined-stream "^1.0.5" mime-types "^2.1.12" +fs-access@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" + dependencies: + null-check "^1.0.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -729,12 +966,71 @@ generate-object-property@^1.1.0: dependencies: is-property "^1.0.0" +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-pkg-repo@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.3.0.tgz#43c6b4c048b75dd604fc5388edecde557f6335df" + dependencies: + hosted-git-info "^2.1.4" + meow "^3.3.0" + normalize-package-data "^2.3.0" + parse-github-repo-url "^1.3.0" + through2 "^2.0.0" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + getpass@^0.1.1: version "0.1.6" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" dependencies: assert-plus "^1.0.0" +git-latest-semver-tag@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/git-latest-semver-tag/-/git-latest-semver-tag-1.0.2.tgz#061130cbf4274111cc6be4612b3ff3a6d93e2660" + dependencies: + git-semver-tags "^1.1.2" + meow "^3.3.0" + +git-raw-commits@^1.0.0, git-raw-commits@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.1.2.tgz#a12d8492aeba2881802d700825ed81c9f39e6f2f" + dependencies: + dargs "^4.0.1" + lodash.template "^4.0.2" + meow "^3.3.0" + split2 "^2.0.0" + through2 "^2.0.0" + +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^1.1.0, git-semver-tags@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.1.2.tgz#aecf9b1b2447a6b548d48647f53edba0acad879f" + dependencies: + meow "^3.3.0" + semver "^5.0.1" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + dependencies: + ini "^1.3.2" + +github-url-from-git@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/github-url-from-git/-/github-url-from-git-1.5.0.tgz#f985fedcc0a9aa579dc88d7aff068d55cc6251a0" + glob@7.0.5: version "7.0.5" resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95" @@ -768,8 +1064,8 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: path-is-absolute "^1.0.0" globals@^9.14.0: - version "9.14.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034" + version "9.16.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.16.0.tgz#63e903658171ec2d9f51b1d31de5e2b8dc01fb80" globby@^5.0.0: version "5.0.0" @@ -798,7 +1094,7 @@ growl@1.9.2: version "1.9.2" resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" -handlebars@^4.0.1: +handlebars@^4.0.1, handlebars@^4.0.2: version "4.0.6" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.6.tgz#2ce4484850537f9c97a8026d5399b935c4ed4ed7" dependencies: @@ -808,14 +1104,16 @@ handlebars@^4.0.1: optionalDependencies: uglify-js "^2.6" -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" + ajv "^4.9.1" + har-schema "^1.0.5" has-ansi@^2.0.0: version "2.0.0" @@ -846,6 +1144,10 @@ hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" +hosted-git-info@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.2.0.tgz#7a0d097863d886c0fabbdcd37bf1758d8becf8a5" + html-comment-regex@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" @@ -863,13 +1165,19 @@ icss-replace-symbols@^1.0.2: resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.0.2.tgz#cb0b6054eb3af6edc9ab1d62d01933e2d4c8bfa5" ignore@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435" + version "3.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.4.tgz#4055e03596729a8fabe45a43c100ad5ed815c4e8" imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -885,6 +1193,10 @@ inherits@2, inherits@^2.0.3, inherits@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" +ini@^1.3.2: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + inquirer@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" @@ -907,14 +1219,34 @@ interpret@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + is-buffer@^1.0.2: version "1.1.4" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" @@ -925,15 +1257,19 @@ is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" -is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: - version "2.15.0" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" +is-my-json-valid@^2.10.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" dependencies: generate-function "^2.0.0" generate-object-property "^1.1.0" jsonpointer "^4.0.0" xtend "^4.0.0" +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" @@ -964,16 +1300,30 @@ is-resolvable@^1.0.0: dependencies: tryit "^1.0.1" +is-subset@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + is-svg@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" dependencies: html-comment-regex "^1.1.0" +is-text-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + dependencies: + text-extensions "^1.0.0" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -1016,26 +1366,26 @@ js-base64@^2.1.9: resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" js-tokens@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.0.tgz#a2f2a969caae142fb3cd56228358c89366957bd1" + version "3.0.1" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" js-yaml@3.x, js-yaml@^3.5.1: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + version "3.8.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.2.tgz#02d3e2c0f6beab20248d412c352203827d786721" dependencies: argparse "^1.0.7" - esprima "^2.6.0" + esprima "^3.1.1" -js-yaml@~3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" +js-yaml@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" dependencies: argparse "^1.0.7" esprima "^2.6.0" jsbn@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" jsesc@~0.5.0: version "0.5.0" @@ -1051,7 +1401,7 @@ json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: dependencies: jsonify "~0.0.0" -json-stringify-safe@~5.0.1: +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -1067,6 +1417,10 @@ jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" +jsonparse@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.0.tgz#85fc245b1d9259acc6941960b905adf64e7de0e8" + jsonpointer@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" @@ -1089,6 +1443,12 @@ lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -1096,6 +1456,16 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +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" + 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" + loader-utils@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.0.3.tgz#566c320c24c33cb3f02db4df83f3dbf60b253de3" @@ -1127,6 +1497,10 @@ lodash._isiterateecall@^3.0.0: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" +lodash._reinterpolate@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" @@ -1139,10 +1513,6 @@ lodash.create@3.1.1: lodash._basecreate "^3.0.0" lodash._isiterateecall "^3.0.0" -lodash.indexof@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/lodash.indexof/-/lodash.indexof-4.0.5.tgz#53714adc2cddd6ed87638f893aa9b6c24e31ef3c" - lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" @@ -1163,11 +1533,24 @@ lodash.memoize@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" +lodash.template@^4.0.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" + dependencies: + lodash._reinterpolate "~3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" + dependencies: + lodash._reinterpolate "~3.0.0" + lodash.uniq@^4.3.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash@^4.0.0, lodash@^4.3.0: +lodash@^4.0.0, lodash@^4.2.1, lodash@^4.3.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -1175,15 +1558,39 @@ longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + macaddress@^0.2.8: version "0.2.8" resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + math-expression-evaluator@^1.2.14: - version "1.2.15" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.15.tgz#38dc5f0194c5bf5ff1c690ad4c4b64df71ac0187" + version "1.2.16" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.16.tgz#b357fa1ca9faefb8e48d10c14ef2bcb2d9f0a7c9" + +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" dependencies: - lodash.indexof "^4.0.5" + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" mime-db@~1.26.0: version "1.26.0" @@ -1205,6 +1612,10 @@ minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" +minimist@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" @@ -1227,6 +1638,10 @@ mocha@^3.2.0: mkdirp "0.5.1" supports-color "3.1.2" +modify-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.0.tgz#e2b6cdeb9ce19f99317a53722f3dbf5df5eaaab2" + ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" @@ -1249,6 +1664,15 @@ nopt@3.x: dependencies: abbrev "1" +normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.6.tgz#498fa420c96401f787402ba21e600def9f981fff" + 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-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" @@ -1262,6 +1686,10 @@ normalize-url@^1.4.0: query-string "^4.1.0" sort-keys "^1.0.0" +null-check@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" + num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" @@ -1310,6 +1738,28 @@ 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" + dependencies: + lcid "^1.0.0" + +parse-github-repo-url@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.0.tgz#286c53e2c9962e0641649ee3ac9508fca4dd959c" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +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-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" @@ -1318,7 +1768,19 @@ path-is-inside@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" -pify@^2.0.0: +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -1345,16 +1807,16 @@ postcss-calc@^5.2.0: reduce-css-calc "^1.2.6" postcss-colormin@^2.1.8: - version "2.2.1" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.1.tgz#dc5421b6ae6f779ef6bfd47352b94abe59d0316b" + version "2.2.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" dependencies: colormin "^1.0.5" postcss "^5.0.13" postcss-value-parser "^3.2.3" postcss-convert-values@^2.3.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.0.tgz#08c6d06130fe58a91a21ff50829e1aad6a3a1acc" + version "2.6.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" dependencies: postcss "^5.0.11" postcss-value-parser "^3.1.2" @@ -1366,8 +1828,8 @@ postcss-discard-comments@^2.0.4: postcss "^5.0.14" postcss-discard-duplicates@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.0.2.tgz#02be520e91571ffb10738766a981d5770989bb32" + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" dependencies: postcss "^5.0.4" @@ -1412,8 +1874,8 @@ postcss-merge-longhand@^2.0.1: postcss "^5.0.4" postcss-merge-rules@^2.0.3: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.1.tgz#5e5640020ce43cddd343c73bba91c9a358d1fe0f" + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" dependencies: browserslist "^1.5.2" caniuse-api "^1.5.2" @@ -1529,8 +1991,8 @@ postcss-reduce-transforms@^1.0.3: postcss-value-parser "^3.0.1" postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.2.tgz#3d70f5adda130da51c7c0c2fc023f56b1374fe08" + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" dependencies: flatten "^1.0.2" indexes-of "^1.0.1" @@ -1565,9 +2027,9 @@ postcss-zindex@^2.0.1: postcss "^5.0.4" uniqs "^2.0.0" -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.8: - version "5.2.11" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.11.tgz#ff29bcd6d2efb98bfe08a022055ec599bbe7b761" +postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.15: + version "5.2.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.16.tgz#732b3100000f9ff8379a48a53839ed097376ad57" dependencies: chalk "^1.1.3" js-base64 "^2.1.9" @@ -1594,24 +2056,39 @@ punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -q@^1.1.2: +q@^1.1.2, q@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" -qs@~6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" query-string@^4.1.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.1.tgz#54baada6713eafc92be75c47a731f2ebd09cd11d" + version "4.3.2" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.2.tgz#ec0fd765f58a50031a3968c2431386f8947a5cdd" dependencies: object-assign "^4.1.0" strict-uri-encode "^1.0.0" -readable-stream@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" +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" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0, read-pkg@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +readable-stream@^2.1.5, readable-stream@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.3.tgz#9cf49463985df016c8ae8813097a9293a9b33729" dependencies: buffer-shims "^1.0.0" core-util-is "~1.0.0" @@ -1635,6 +2112,13 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + reduce-css-calc@^1.2.6: version "1.3.0" resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" @@ -1675,18 +2159,24 @@ repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + request@>=2.42.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: aws-sign2 "~0.6.0" aws4 "^1.2.1" - caseless "~0.11.0" + caseless "~0.12.0" combined-stream "~1.0.5" extend "~3.0.0" forever-agent "~0.6.1" form-data "~2.1.1" - har-validator "~2.0.6" + har-validator "~4.2.1" hawk "~3.1.3" http-signature "~1.1.0" is-typedarray "~1.0.0" @@ -1694,12 +2184,22 @@ request@>=2.42.0: json-stringify-safe "~5.0.1" mime-types "~2.1.7" oauth-sign "~0.8.1" - qs "~6.3.0" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" stringstream "~0.0.4" tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" + tunnel-agent "^0.6.0" uuid "^3.0.0" +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + require-uncached@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" @@ -1729,8 +2229,8 @@ right-align@^0.1.1: align-text "^0.1.1" rimraf@^2.2.8: - version "2.5.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: glob "^7.0.5" @@ -1750,13 +2250,25 @@ rx-lite@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + sax@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + version "1.2.2" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828" -shelljs@^0.7.0, shelljs@^0.7.5: - version "0.7.6" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad" +"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +shelljs@^0.7.5: + version "0.7.7" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" dependencies: glob "^7.0.0" interpret "^1.0.0" @@ -1769,8 +2281,8 @@ should-equal@^1.0.0: should-type "^1.0.0" should-format@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.2.tgz#1a543ad3abfea5dc2bea4a0ba875ede60fe22b19" + version "3.0.3" + resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1" dependencies: should-type "^1.3.0" should-type-adaptors "^1.0.1" @@ -1791,8 +2303,8 @@ should-util@^1.0.0: resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.0.tgz#c98cda374aa6b190df8ba87c9889c2b4db620063" should@^11.1.2: - version "11.1.2" - resolved "https://registry.yarnpkg.com/should/-/should-11.1.2.tgz#3cad9c6fc600ffe2e1547d948be3284e984da946" + version "11.2.1" + resolved "https://registry.yarnpkg.com/should/-/should-11.2.1.tgz#90f55145552d01cfc200666e4e818a1c9670eda2" dependencies: should-equal "^1.0.0" should-format "^3.0.2" @@ -1800,6 +2312,10 @@ should@^11.1.2: should-type-adaptors "^1.0.1" should-util "^1.0.0" +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" @@ -1836,13 +2352,39 @@ source-map@~0.2.0: dependencies: amdefine ">=0.0.4" +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +split2@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/split2/-/split2-2.1.1.tgz#7a1f551e176a90ecd3345f7246a0cfe175ef4fd0" + dependencies: + through2 "^2.0.2" + +split@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.0.tgz#c4395ce683abcd254bc28fe1dabb6e5c27dcffae" + dependencies: + through "2" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa" + version "1.11.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.11.0.tgz#2d8d5ebb4a6fab28ffba37fa62a90f4a3ea59d77" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -1855,11 +2397,24 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" +standard-version@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/standard-version/-/standard-version-4.0.0.tgz#e578cefd43ab7b02944bd7569525052eac1b9787" + dependencies: + chalk "^1.1.3" + conventional-changelog "^1.1.0" + conventional-recommended-bump "^0.3.0" + figures "^1.5.0" + fs-access "^1.0.0" + object-assign "^4.1.0" + semver "^5.1.0" + yargs "^6.0.0" + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" -string-width@^1.0.1: +string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" dependencies: @@ -1882,16 +2437,28 @@ stringstream@~0.0.4: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" -strip-ansi@^3.0.0: +strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" dependencies: ansi-regex "^2.0.0" +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.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-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -1913,13 +2480,13 @@ supports-color@^3.1.0, supports-color@^3.2.3: has-flag "^1.0.0" svgo@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.1.tgz#287320fed972cb097e72c2bb1685f96fe08f8034" + version "0.7.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" dependencies: coa "~1.0.1" colors "~1.1.2" - csso "~2.2.1" - js-yaml "~3.6.1" + csso "~2.3.1" + js-yaml "~3.7.0" mkdirp "~0.5.1" sax "~1.2.1" whet.extend "~0.9.9" @@ -1941,11 +2508,22 @@ temp@~0.5.1: dependencies: rimraf "~2.1.4" +text-extensions@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.4.0.tgz#c385d2e80879fe6ef97893e1709d88d9453726e9" + text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" -through@^2.3.6: +through2@^2.0.0, through2@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through@2, "through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -1955,13 +2533,23 @@ tough-cookie@~2.3.0: dependencies: punycode "^1.4.1" +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +trim-off-newlines@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + tryit@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" -tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" @@ -1978,10 +2566,9 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" uglify-js@^2.6: - version "2.7.5" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" + version "2.8.11" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.11.tgz#11a51c43d810b47bc00aee4d512cb3947ddd1ac4" dependencies: - async "~0.2.6" source-map "~0.5.1" uglify-to-browserify "~1.0.0" yargs "~3.10.0" @@ -2022,6 +2609,13 @@ uuid@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + vendors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" @@ -2036,6 +2630,10 @@ 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" + which@^1.1.1: version "1.2.12" resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" @@ -2058,6 +2656,13 @@ wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -2068,10 +2673,38 @@ write@^0.2.1: dependencies: mkdirp "^0.5.1" -xtend@^4.0.0: +xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" +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" + dependencies: + camelcase "^3.0.0" + +yargs@^6.0.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" + dependencies: + camelcase "^3.0.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" + 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" + y18n "^3.2.1" + yargs-parser "^4.2.0" + yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" From 3f78361b66a485a7d3109d23d60addbe2a7c66c3 Mon Sep 17 00:00:00 2001 From: Joscha Feth Date: Fri, 10 Mar 2017 16:31:43 +1100 Subject: [PATCH 12/13] feat: allow removal of original class name (#445) * feat: allow removal of original class name * add comment for 1.0.0 * docs: move table * docs: consistency --- README.md | 9 +++++++++ lib/compile-exports.js | 8 +++++--- test/camelCaseTest.js | 12 ++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9cb0ac29..f36ed5ff 100644 --- a/README.md +++ b/README.md @@ -398,6 +398,15 @@ You can also disable or enforce minification with the `minimize` query parameter By default, the exported JSON keys mirror the class names. If you want to camelize class names (useful in JS), pass the query parameter `camelCase` to css-loader. +#### Possible Options + +|Option|Description| +|:----:|:--------| +|**`true`**|Class names will be camelized| +|**`'dashes'`**|Only dashes in class names will be camelized| +|**`'only'`** |Class names will be camelized, the original class name will be removed from the locals| +|**`'dashesOnly'`**|Dashes in class names will be camelized, the original class name will be removed from the locals| + **webpack.config.js** ```js { diff --git a/lib/compile-exports.js b/lib/compile-exports.js index 318743ce..04f97b0d 100644 --- a/lib/compile-exports.js +++ b/lib/compile-exports.js @@ -17,15 +17,17 @@ module.exports = function compileExports(result, importItemMatcher, camelCaseKey function addEntry(k) { res.push("\t" + JSON.stringify(k) + ": " + valueAsString); } - addEntry(key); + if (camelCaseKeys !== 'only' && camelCaseKeys !== 'dashesOnly') { + addEntry(key); + } var targetKey; - if (camelCaseKeys === true) { + if (camelCaseKeys === true || camelCaseKeys === 'only') { targetKey = camelCase(key); if (targetKey !== key) { addEntry(targetKey); } - } else if (camelCaseKeys === 'dashes') { + } else if (camelCaseKeys === 'dashes' || camelCaseKeys === 'dashesOnly') { targetKey = dashesCamelCase(key); if (targetKey !== key) { addEntry(targetKey); diff --git a/test/camelCaseTest.js b/test/camelCaseTest.js index c8be53b3..5c669e84 100644 --- a/test/camelCaseTest.js +++ b/test/camelCaseTest.js @@ -14,14 +14,26 @@ describe("camelCase", function() { ], dashes: [ [1, "._1L-rnCOXCE_7H94L5XT4uB { color: blue; }", ""] + ], + withoutOnly: [ + [1, "._1L-rnCOXCE_7H94L5XT4uB { color: blue; }", ""] + ], + dashesOnly: [ + [1, "._1L-rnCOXCE_7H94L5XT4uB { color: blue; }", ""] ] }; exports.with.locals = {'btn-info_is-disabled': '_1L-rnCOXCE_7H94L5XT4uB'}; exports.without.locals = {btnInfoIsDisabled: '_1L-rnCOXCE_7H94L5XT4uB', 'btn-info_is-disabled': '_1L-rnCOXCE_7H94L5XT4uB'}; exports.dashes.locals = {btnInfo_isDisabled: '_1L-rnCOXCE_7H94L5XT4uB', 'btn-info_is-disabled': '_1L-rnCOXCE_7H94L5XT4uB'}; + exports.withoutOnly.locals = {btnInfoIsDisabled: '_1L-rnCOXCE_7H94L5XT4uB'}; + exports.dashesOnly.locals = {btnInfo_isDisabled: '_1L-rnCOXCE_7H94L5XT4uB'}; test("with", css, exports.with, "?modules"); test("without", css, exports.without, "?modules&camelCase"); test("dashes", css, exports.dashes, "?modules&camelCase=dashes"); + // Remove this option in v1.0.0 and make the removal of the original classname the default behaviour. See #440. + test("withoutOnly", css, exports.withoutOnly, "?modules&camelCase=only"); + // Remove this option in v1.0.0 and make the removal of the original classname the default behaviour. See #440. + test("dashesOnly", css, exports.dashesOnly, "?modules&camelCase=dashesOnly"); testRaw("withoutRaw", '.a {}', 'exports.locals = {\n\t"a": "_1buUQJccBRS2-2i27LCoDf"\n};', "?modules&camelCase"); testRaw("dashesRaw", '.a {}', 'exports.locals = {\n\t"a": "_1buUQJccBRS2-2i27LCoDf"\n};', "?modules&camelCase=dashes"); From 9504ea5d751088fc41a769d7f3b74830d0827871 Mon Sep 17 00:00:00 2001 From: Joshua Wiens Date: Thu, 9 Mar 2017 23:33:35 -0600 Subject: [PATCH 13/13] chore(release): 0.27.0 --- CHANGELOG.md | 19 +++++++++++++++++++ package.json | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..5c73a0fe --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,19 @@ +# Change Log + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + + +# [0.27.0](https://github.com/webpack/css-loader/compare/v0.26.2...v0.27.0) (2017-03-10) + + +### Bug Fixes + +* **sourcemaps:** use abs paths & remove sourceRoot ([c769ac3](https://github.com/webpack/css-loader/commit/c769ac3)) +* `minimizeOptions` should be `query.minimize`! ([16c0858](https://github.com/webpack/css-loader/commit/16c0858)) +* do not export duplicate keys ([#420](https://github.com/webpack/css-loader/issues/420)) ([a2b85d7](https://github.com/webpack/css-loader/commit/a2b85d7)) + + +### Features + +* allow removal of original class name ([#445](https://github.com/webpack/css-loader/issues/445)) ([3f78361](https://github.com/webpack/css-loader/commit/3f78361)) +* Include the sourceMappingURL & sourceURL when toString() ([6da7e90](https://github.com/webpack/css-loader/commit/6da7e90)) diff --git a/package.json b/package.json index 4d4301fe..c1ab06e7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "css-loader", - "version": "0.26.4", + "version": "0.27.0", "author": "Tobias Koppers @sokra", "description": "css loader module for webpack", "engines": {