├── test ├── fixtures │ ├── layout.css │ ├── simple.css │ └── buttons.css ├── expect │ └── simple.css └── main.js ├── .npmignore ├── .travis.yml ├── .gitignore ├── index.js ├── README.md ├── package.json ├── LICENSE └── yarn.lock /test/fixtures/layout.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | test/ 2 | node_modules/ 3 | -------------------------------------------------------------------------------- /test/expect/simple.css: -------------------------------------------------------------------------------- 1 | a{border-color:mediumvioletred;border-size:2px;border-style:dashed} 2 | -------------------------------------------------------------------------------- /test/fixtures/simple.css: -------------------------------------------------------------------------------- 1 | /* That's a beautiful comment. */ 2 | a { 3 | border-color: mediumvioletred; 4 | border-size: 2px; 5 | border-style: dashed; /* Pwouet? */ 6 | } 7 | -------------------------------------------------------------------------------- /test/fixtures/buttons.css: -------------------------------------------------------------------------------- 1 | input[type=button] { 2 | background-color: #880000; 3 | } 4 | 5 | input[type=button].important{ 6 | font-size: 2em; 7 | font-weight: bolder; 8 | } 9 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | node_js: 4 | - "10" 5 | - "8" 6 | - "6" 7 | 8 | before_script: 9 | - yarn install --pure-install 10 | 11 | script: 12 | - yarn run test 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | 5 | # Runtime data 6 | pids 7 | *.pid 8 | *.seed 9 | 10 | # Directory for instrumented libs generated by jscoverage/JSCover 11 | lib-cov 12 | 13 | # Coverage directory used by tools like istanbul 14 | coverage 15 | 16 | # Compiled binary addons (http://nodejs.org/api/addons.html) 17 | build/Release 18 | 19 | # Dependency directory 20 | # Commenting this out is preferred by some people, see 21 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git- 22 | node_modules 23 | 24 | # Users Environment Variables 25 | .lock-wscript 26 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var PluginError = require('plugin-error');; 2 | var through2 = require('through2'); 3 | var uglifycss = require('uglifycss'); 4 | 5 | module.exports = function (options) { 6 | return through2.obj(function (file, enc, cb) { 7 | if (file.isNull()) { 8 | return cb(null, file); 9 | } 10 | 11 | if (file.isStream()) { 12 | return cb(new PluginError('gulp-uglifycss', 'Stream is not supported')); 13 | } 14 | 15 | var str = file.contents.toString('utf8'); 16 | file.contents = new Buffer(uglifycss.processString(str, options)); 17 | 18 | return cb(null, file); 19 | }); 20 | }; 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | gulp-uglifycss 2 | ============== 3 | 4 | Gulp plugin to use [UglifyCSS](https://github.com/fmarcia/UglifyCSS). 5 | 6 | [![Build Status](https://travis-ci.org/ubirak/gulp-uglifycss.svg?branch=master)](https://travis-ci.org/ubirak/gulp-uglifycss) 7 | 8 | ## Install 9 | 10 | ``` 11 | npm install --save gulp-uglifycss 12 | ``` 13 | 14 | ## Usage 15 | ```javascript 16 | var uglifycss = require('gulp-uglifycss'); 17 | 18 | gulp.task('css', function () { 19 | gulp.src('./styles/**/*.css') 20 | .pipe(uglifycss({ 21 | "maxLineLen": 80, 22 | "uglyComments": true 23 | })) 24 | .pipe(gulp.dest('./dist/')); 25 | }); 26 | ``` 27 | 28 | ## Options 29 | 30 | No specific options. You can use all the [UglifyCSS](https://github.com/fmarcia/UglifyCSS) options. 31 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gulp-uglifycss", 3 | "version": "1.1.0", 4 | "description": "Gulp plugin to use uglifycss", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "./node_modules/.bin/mocha -R spec" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/ubirak/gulp-uglifycss.git" 12 | }, 13 | "keywords": [ 14 | "gulpplugin", 15 | "gulp", 16 | "uglifycss", 17 | "css", 18 | "uglify", 19 | "compress" 20 | ], 21 | "author": "Ubirak", 22 | "license": "MIT", 23 | "bugs": { 24 | "url": "https://github.com/ubirak/gulp-uglifycss/issues" 25 | }, 26 | "homepage": "https://github.com/ubirak/gulp-uglifycss", 27 | "dependencies": { 28 | "plugin-error": "^1.0.1", 29 | "through2": "^2.0.3", 30 | "uglifycss": "^0.0.25", 31 | "vinyl": "^2.1.0" 32 | }, 33 | "devDependencies": { 34 | "mocha": "^3.2.0", 35 | "should": "^11.2.1" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 VeryLastRoom 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /test/main.js: -------------------------------------------------------------------------------- 1 | var uglifycss = require('../'); 2 | var should = require('should'); 3 | var Vinyl = require('vinyl'); 4 | var fs = require('fs'); 5 | var pj = require('path').join; 6 | 7 | function createVinyl(filename, contents) { 8 | var base = pj(__dirname, 'fixtures'); 9 | var filePath = pj(base, filename); 10 | 11 | return new Vinyl({ 12 | cwd: __dirname, 13 | base: base, 14 | path: filePath, 15 | contents: contents || fs.readFileSync(filePath) 16 | }); 17 | } 18 | 19 | describe('gulp-uglifycss', function () { 20 | describe('uglifycss()', function () { 21 | it('should pass file when it isNull()', function (done) { 22 | var stream = uglifycss(); 23 | var emptyFile = { 24 | isNull: function () { return true; } 25 | }; 26 | stream.on('data', function (data) { 27 | data.should.equal(emptyFile); 28 | done(); 29 | }); 30 | stream.write(emptyFile); 31 | }); 32 | 33 | it('should emit error when file isStream()', function (done) { 34 | var stream = uglifycss(); 35 | var streamFile = { 36 | isNull: function () { return false; }, 37 | isStream: function () { return true; } 38 | }; 39 | stream.on('error', function (err) { 40 | err.message.should.equal('Stream is not supported'); 41 | done(); 42 | }); 43 | stream.write(streamFile); 44 | }); 45 | 46 | it('should uglify single css file', function (done) { 47 | var styleFile = createVinyl('simple.css'); 48 | 49 | var stream = uglifycss(); 50 | stream.on('data', function (cssFile) { 51 | should.exist(cssFile); 52 | should.exist(cssFile.path); 53 | should.exist(cssFile.relative); 54 | should.exist(cssFile.contents); 55 | cssFile.path.should.equal(pj(__dirname, 'fixtures', 'simple.css')); 56 | String(cssFile.contents + "\n").should.equal( 57 | fs.readFileSync(pj(__dirname, 'expect/simple.css'), 'utf8')); 58 | done(); 59 | }); 60 | stream.write(styleFile); 61 | }); 62 | 63 | it('should compile multiple css files', function (done) { 64 | var files = [ 65 | createVinyl('buttons.css'), 66 | createVinyl('layout.css'), 67 | createVinyl('simple.css') 68 | ]; 69 | 70 | var stream = uglifycss(); 71 | var count = files.length; 72 | stream.on('data', function (cssFile) { 73 | should.exist(cssFile); 74 | should.exist(cssFile.path); 75 | should.exist(cssFile.relative); 76 | should.exist(cssFile.contents); 77 | if (!--count) { done(); } 78 | }); 79 | 80 | files.forEach(function (file) { 81 | stream.write(file); 82 | }); 83 | }); 84 | }); 85 | }); 86 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | ansi-colors@^1.0.1: 6 | version "1.1.0" 7 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" 8 | dependencies: 9 | ansi-wrap "^0.1.0" 10 | 11 | ansi-wrap@^0.1.0: 12 | version "0.1.0" 13 | resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" 14 | 15 | arr-diff@^4.0.0: 16 | version "4.0.0" 17 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" 18 | 19 | arr-union@^3.1.0: 20 | version "3.1.0" 21 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" 22 | 23 | assign-symbols@^1.0.0: 24 | version "1.0.0" 25 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" 26 | 27 | balanced-match@^1.0.0: 28 | version "1.0.0" 29 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 30 | 31 | brace-expansion@^1.1.7: 32 | version "1.1.11" 33 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 34 | dependencies: 35 | balanced-match "^1.0.0" 36 | concat-map "0.0.1" 37 | 38 | browser-stdout@1.3.0: 39 | version "1.3.0" 40 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" 41 | 42 | buffer-shims@^1.0.0: 43 | version "1.0.0" 44 | resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" 45 | 46 | clone-buffer@^1.0.0: 47 | version "1.0.0" 48 | resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" 49 | 50 | clone-stats@^1.0.0: 51 | version "1.0.0" 52 | resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" 53 | 54 | clone@^2.1.1: 55 | version "2.1.1" 56 | resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" 57 | 58 | cloneable-readable@^1.0.0: 59 | version "1.1.2" 60 | resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" 61 | dependencies: 62 | inherits "^2.0.1" 63 | process-nextick-args "^2.0.0" 64 | readable-stream "^2.3.5" 65 | 66 | commander@2.9.0: 67 | version "2.9.0" 68 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" 69 | dependencies: 70 | graceful-readlink ">= 1.0.0" 71 | 72 | concat-map@0.0.1: 73 | version "0.0.1" 74 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 75 | 76 | core-util-is@~1.0.0: 77 | version "1.0.2" 78 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 79 | 80 | debug@2.6.8: 81 | version "2.6.8" 82 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" 83 | dependencies: 84 | ms "2.0.0" 85 | 86 | diff@3.2.0: 87 | version "3.2.0" 88 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" 89 | 90 | escape-string-regexp@1.0.5: 91 | version "1.0.5" 92 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 93 | 94 | extend-shallow@^3.0.2: 95 | version "3.0.2" 96 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" 97 | dependencies: 98 | assign-symbols "^1.0.0" 99 | is-extendable "^1.0.1" 100 | 101 | fs.realpath@^1.0.0: 102 | version "1.0.0" 103 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 104 | 105 | glob@7.1.1: 106 | version "7.1.1" 107 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" 108 | dependencies: 109 | fs.realpath "^1.0.0" 110 | inflight "^1.0.4" 111 | inherits "2" 112 | minimatch "^3.0.2" 113 | once "^1.3.0" 114 | path-is-absolute "^1.0.0" 115 | 116 | "graceful-readlink@>= 1.0.0": 117 | version "1.0.1" 118 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" 119 | 120 | growl@1.9.2: 121 | version "1.9.2" 122 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" 123 | 124 | has-flag@^1.0.0: 125 | version "1.0.0" 126 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 127 | 128 | he@1.1.1: 129 | version "1.1.1" 130 | resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" 131 | 132 | inflight@^1.0.4: 133 | version "1.0.6" 134 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 135 | dependencies: 136 | once "^1.3.0" 137 | wrappy "1" 138 | 139 | inherits@2, inherits@^2.0.1, inherits@~2.0.1, inherits@~2.0.3: 140 | version "2.0.3" 141 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 142 | 143 | is-extendable@^1.0.1: 144 | version "1.0.1" 145 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" 146 | dependencies: 147 | is-plain-object "^2.0.4" 148 | 149 | is-plain-object@^2.0.4: 150 | version "2.0.4" 151 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 152 | dependencies: 153 | isobject "^3.0.1" 154 | 155 | isarray@~1.0.0: 156 | version "1.0.0" 157 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 158 | 159 | isobject@^3.0.1: 160 | version "3.0.1" 161 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 162 | 163 | json3@3.3.2: 164 | version "3.3.2" 165 | resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" 166 | 167 | lodash._baseassign@^3.0.0: 168 | version "3.2.0" 169 | resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" 170 | dependencies: 171 | lodash._basecopy "^3.0.0" 172 | lodash.keys "^3.0.0" 173 | 174 | lodash._basecopy@^3.0.0: 175 | version "3.0.1" 176 | resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" 177 | 178 | lodash._basecreate@^3.0.0: 179 | version "3.0.3" 180 | resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" 181 | 182 | lodash._getnative@^3.0.0: 183 | version "3.9.1" 184 | resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" 185 | 186 | lodash._isiterateecall@^3.0.0: 187 | version "3.0.9" 188 | resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" 189 | 190 | lodash.create@3.1.1: 191 | version "3.1.1" 192 | resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" 193 | dependencies: 194 | lodash._baseassign "^3.0.0" 195 | lodash._basecreate "^3.0.0" 196 | lodash._isiterateecall "^3.0.0" 197 | 198 | lodash.isarguments@^3.0.0: 199 | version "3.1.0" 200 | resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" 201 | 202 | lodash.isarray@^3.0.0: 203 | version "3.0.4" 204 | resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" 205 | 206 | lodash.keys@^3.0.0: 207 | version "3.1.2" 208 | resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" 209 | dependencies: 210 | lodash._getnative "^3.0.0" 211 | lodash.isarguments "^3.0.0" 212 | lodash.isarray "^3.0.0" 213 | 214 | minimatch@^3.0.2: 215 | version "3.0.4" 216 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 217 | dependencies: 218 | brace-expansion "^1.1.7" 219 | 220 | minimist@0.0.8: 221 | version "0.0.8" 222 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 223 | 224 | mkdirp@0.5.1: 225 | version "0.5.1" 226 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 227 | dependencies: 228 | minimist "0.0.8" 229 | 230 | mocha@^3.2.0: 231 | version "3.5.3" 232 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" 233 | dependencies: 234 | browser-stdout "1.3.0" 235 | commander "2.9.0" 236 | debug "2.6.8" 237 | diff "3.2.0" 238 | escape-string-regexp "1.0.5" 239 | glob "7.1.1" 240 | growl "1.9.2" 241 | he "1.1.1" 242 | json3 "3.3.2" 243 | lodash.create "3.1.1" 244 | mkdirp "0.5.1" 245 | supports-color "3.1.2" 246 | 247 | ms@2.0.0: 248 | version "2.0.0" 249 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 250 | 251 | once@^1.3.0: 252 | version "1.4.0" 253 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 254 | dependencies: 255 | wrappy "1" 256 | 257 | path-is-absolute@^1.0.0: 258 | version "1.0.1" 259 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 260 | 261 | plugin-error@^1.0.1: 262 | version "1.0.1" 263 | resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" 264 | dependencies: 265 | ansi-colors "^1.0.1" 266 | arr-diff "^4.0.0" 267 | arr-union "^3.1.0" 268 | extend-shallow "^3.0.2" 269 | 270 | process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: 271 | version "2.0.0" 272 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 273 | 274 | process-nextick-args@~1.0.6: 275 | version "1.0.7" 276 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 277 | 278 | readable-stream@^2.1.5: 279 | version "2.2.6" 280 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.6.tgz#8b43aed76e71483938d12a8d46c6cf1a00b1f816" 281 | dependencies: 282 | buffer-shims "^1.0.0" 283 | core-util-is "~1.0.0" 284 | inherits "~2.0.1" 285 | isarray "~1.0.0" 286 | process-nextick-args "~1.0.6" 287 | string_decoder "~0.10.x" 288 | util-deprecate "~1.0.1" 289 | 290 | readable-stream@^2.3.5: 291 | version "2.3.6" 292 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 293 | dependencies: 294 | core-util-is "~1.0.0" 295 | inherits "~2.0.3" 296 | isarray "~1.0.0" 297 | process-nextick-args "~2.0.0" 298 | safe-buffer "~5.1.1" 299 | string_decoder "~1.1.1" 300 | util-deprecate "~1.0.1" 301 | 302 | remove-trailing-separator@^1.0.1: 303 | version "1.1.0" 304 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 305 | 306 | replace-ext@^1.0.0: 307 | version "1.0.0" 308 | resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" 309 | 310 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 311 | version "5.1.2" 312 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 313 | 314 | should-equal@^1.0.0: 315 | version "1.0.1" 316 | resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-1.0.1.tgz#0b6e9516f2601a9fb0bb2dcc369afa1c7e200af7" 317 | dependencies: 318 | should-type "^1.0.0" 319 | 320 | should-format@^3.0.2: 321 | version "3.0.3" 322 | resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1" 323 | dependencies: 324 | should-type "^1.3.0" 325 | should-type-adaptors "^1.0.1" 326 | 327 | should-type-adaptors@^1.0.1: 328 | version "1.0.1" 329 | resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.0.1.tgz#efe5553cdf68cff66e5c5f51b712dc351c77beaa" 330 | dependencies: 331 | should-type "^1.3.0" 332 | should-util "^1.0.0" 333 | 334 | should-type@^1.0.0, should-type@^1.3.0, should-type@^1.4.0: 335 | version "1.4.0" 336 | resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3" 337 | 338 | should-util@^1.0.0: 339 | version "1.0.0" 340 | resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.0.tgz#c98cda374aa6b190df8ba87c9889c2b4db620063" 341 | 342 | should@^11.2.1: 343 | version "11.2.1" 344 | resolved "https://registry.yarnpkg.com/should/-/should-11.2.1.tgz#90f55145552d01cfc200666e4e818a1c9670eda2" 345 | dependencies: 346 | should-equal "^1.0.0" 347 | should-format "^3.0.2" 348 | should-type "^1.4.0" 349 | should-type-adaptors "^1.0.1" 350 | should-util "^1.0.0" 351 | 352 | string_decoder@~0.10.x: 353 | version "0.10.31" 354 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 355 | 356 | string_decoder@~1.1.1: 357 | version "1.1.1" 358 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 359 | dependencies: 360 | safe-buffer "~5.1.0" 361 | 362 | supports-color@3.1.2: 363 | version "3.1.2" 364 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" 365 | dependencies: 366 | has-flag "^1.0.0" 367 | 368 | through2@^2.0.3: 369 | version "2.0.3" 370 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" 371 | dependencies: 372 | readable-stream "^2.1.5" 373 | xtend "~4.0.1" 374 | 375 | uglifycss@^0.0.25: 376 | version "0.0.25" 377 | resolved "https://registry.yarnpkg.com/uglifycss/-/uglifycss-0.0.25.tgz#bea72bf4979eacef13a302cf47b2d1af3f344197" 378 | 379 | util-deprecate@~1.0.1: 380 | version "1.0.2" 381 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 382 | 383 | vinyl@^2.1.0: 384 | version "2.1.0" 385 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.1.0.tgz#021f9c2cf951d6b939943c89eb5ee5add4fd924c" 386 | dependencies: 387 | clone "^2.1.1" 388 | clone-buffer "^1.0.0" 389 | clone-stats "^1.0.0" 390 | cloneable-readable "^1.0.0" 391 | remove-trailing-separator "^1.0.1" 392 | replace-ext "^1.0.0" 393 | 394 | wrappy@1: 395 | version "1.0.2" 396 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 397 | 398 | xtend@~4.0.1: 399 | version "4.0.1" 400 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 401 | --------------------------------------------------------------------------------