From 82f2b76e25a4a67e01ec67e5ebe39d14ad771ea8 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 20 Apr 2017 03:09:25 +0200 Subject: Reorganize module loading. We now use webpack instead of SystemJS, effectively bundling modules into one file (plus commons chunks) for every entry point. This results in a much smaller extension size (almost half). Furthermore we use yarn/npm even for extension run-time dependencies. This relieves us from manually vendoring and building dependencies. It's also easier to understand for new developers familiar with node. --- node_modules/gulp-util/.npmignore | 7 - node_modules/gulp-util/.travis.yml | 5 - node_modules/gulp-util/README.md | 33 +- node_modules/gulp-util/index.js | 14 +- node_modules/gulp-util/lib/File.js | 1 - node_modules/gulp-util/lib/PluginError.js | 114 ++- node_modules/gulp-util/lib/beep.js | 3 - node_modules/gulp-util/lib/buffer.js | 2 +- node_modules/gulp-util/lib/colors.js | 1 - node_modules/gulp-util/lib/date.js | 1 - node_modules/gulp-util/lib/env.js | 2 +- node_modules/gulp-util/lib/isBuffer.js | 2 +- node_modules/gulp-util/lib/isNull.js | 2 +- node_modules/gulp-util/lib/isStream.js | 2 +- node_modules/gulp-util/lib/linefeed.js | 1 - node_modules/gulp-util/lib/log.js | 16 +- node_modules/gulp-util/lib/replaceExtension.js | 9 - node_modules/gulp-util/lib/template.js | 14 +- .../gulp-util/node_modules/.bin/dateformat | 1 - .../gulp-util/node_modules/ansi-regex/index.js | 4 - .../gulp-util/node_modules/ansi-regex/package.json | 51 -- .../gulp-util/node_modules/ansi-regex/readme.md | 33 - .../gulp-util/node_modules/ansi-styles/index.js | 40 - .../node_modules/ansi-styles/package.json | 46 - .../gulp-util/node_modules/ansi-styles/readme.md | 70 -- node_modules/gulp-util/node_modules/chalk/index.js | 95 -- .../node_modules/chalk/node_modules/.bin/has-ansi | 1 - .../chalk/node_modules/.bin/strip-ansi | 1 - .../chalk/node_modules/.bin/supports-color | 1 - .../gulp-util/node_modules/chalk/package.json | 53 -- .../gulp-util/node_modules/chalk/readme.md | 175 ---- .../gulp-util/node_modules/clone-stats/LICENSE.md | 21 - .../gulp-util/node_modules/clone-stats/README.md | 17 - .../gulp-util/node_modules/clone-stats/index.js | 13 - .../node_modules/clone-stats/package.json | 31 - .../gulp-util/node_modules/clone-stats/test.js | 36 - .../gulp-util/node_modules/has-ansi/cli.js | 53 -- .../gulp-util/node_modules/has-ansi/index.js | 4 - .../gulp-util/node_modules/has-ansi/package.json | 57 -- .../gulp-util/node_modules/has-ansi/readme.md | 45 - .../gulp-util/node_modules/isarray/README.md | 54 -- .../gulp-util/node_modules/isarray/build/build.js | 209 ----- .../gulp-util/node_modules/isarray/component.json | 19 - .../gulp-util/node_modules/isarray/index.js | 3 - .../gulp-util/node_modules/isarray/package.json | 25 - .../gulp-util/node_modules/minimist/.travis.yml | 4 - .../gulp-util/node_modules/minimist/LICENSE | 18 - .../node_modules/minimist/example/parse.js | 2 - .../gulp-util/node_modules/minimist/index.js | 200 ----- .../gulp-util/node_modules/minimist/package.json | 40 - .../node_modules/minimist/readme.markdown | 86 -- .../node_modules/minimist/test/all_bool.js | 32 - .../gulp-util/node_modules/minimist/test/bool.js | 119 --- .../gulp-util/node_modules/minimist/test/dash.js | 31 - .../node_modules/minimist/test/default_bool.js | 20 - .../gulp-util/node_modules/minimist/test/dotted.js | 22 - .../gulp-util/node_modules/minimist/test/long.js | 31 - .../gulp-util/node_modules/minimist/test/num.js | 36 - .../gulp-util/node_modules/minimist/test/parse.js | 197 ----- .../node_modules/minimist/test/parse_modified.js | 9 - .../gulp-util/node_modules/minimist/test/short.js | 67 -- .../node_modules/minimist/test/whitespace.js | 8 - .../node_modules/readable-stream/.npmignore | 5 - .../gulp-util/node_modules/readable-stream/LICENSE | 18 - .../node_modules/readable-stream/README.md | 15 - .../node_modules/readable-stream/duplex.js | 1 - .../readable-stream/lib/_stream_duplex.js | 89 -- .../readable-stream/lib/_stream_passthrough.js | 46 - .../readable-stream/lib/_stream_readable.js | 982 --------------------- .../readable-stream/lib/_stream_transform.js | 210 ----- .../readable-stream/lib/_stream_writable.js | 386 -------- .../node_modules/readable-stream/package.json | 32 - .../node_modules/readable-stream/passthrough.js | 1 - .../node_modules/readable-stream/readable.js | 11 - .../node_modules/readable-stream/transform.js | 1 - .../node_modules/readable-stream/writable.js | 1 - .../gulp-util/node_modules/strip-ansi/cli.js | 39 - .../gulp-util/node_modules/strip-ansi/index.js | 6 - .../gulp-util/node_modules/strip-ansi/package.json | 56 -- .../gulp-util/node_modules/strip-ansi/readme.md | 43 - .../gulp-util/node_modules/supports-color/cli.js | 28 - .../gulp-util/node_modules/supports-color/index.js | 32 - .../node_modules/supports-color/package.json | 50 -- .../node_modules/supports-color/readme.md | 44 - .../gulp-util/node_modules/through2/.npmignore | 3 - .../gulp-util/node_modules/through2/LICENSE | 39 - .../gulp-util/node_modules/through2/README.md | 140 --- .../gulp-util/node_modules/through2/package.json | 32 - .../gulp-util/node_modules/through2/through2.js | 78 -- .../gulp-util/node_modules/vinyl/.npmignore | 6 - .../gulp-util/node_modules/vinyl/.travis.yml | 6 - node_modules/gulp-util/node_modules/vinyl/LICENSE | 0 .../gulp-util/node_modules/vinyl/README.md | 156 +++- node_modules/gulp-util/node_modules/vinyl/index.js | 125 ++- .../node_modules/vinyl/lib/cloneBuffer.js | 2 +- .../node_modules/vinyl/lib/inspectStream.js | 5 +- .../gulp-util/node_modules/vinyl/lib/isBuffer.js | 8 +- .../gulp-util/node_modules/vinyl/lib/isNull.js | 2 +- .../gulp-util/node_modules/vinyl/package.json | 40 +- .../gulp-util/node_modules/vinyl/test/File.js | 540 ----------- .../node_modules/vinyl/test/cloneBuffer.js | 28 - .../node_modules/vinyl/test/inspectStream.js | 53 -- .../gulp-util/node_modules/vinyl/test/isBuffer.js | 29 - .../gulp-util/node_modules/vinyl/test/isNull.js | 23 - .../gulp-util/node_modules/vinyl/test/isStream.js | 29 - .../gulp-util/node_modules/xtend/.jshintrc | 30 - .../gulp-util/node_modules/xtend/.npmignore | 1 - node_modules/gulp-util/node_modules/xtend/LICENCE | 19 - node_modules/gulp-util/node_modules/xtend/Makefile | 4 - .../gulp-util/node_modules/xtend/README.md | 28 - node_modules/gulp-util/node_modules/xtend/index.js | 17 - .../gulp-util/node_modules/xtend/mutable.js | 15 - .../gulp-util/node_modules/xtend/package.json | 60 -- node_modules/gulp-util/node_modules/xtend/test.js | 63 -- node_modules/gulp-util/package.json | 69 +- 115 files changed, 422 insertions(+), 5633 deletions(-) delete mode 100644 node_modules/gulp-util/.npmignore delete mode 100644 node_modules/gulp-util/.travis.yml delete mode 100644 node_modules/gulp-util/lib/File.js delete mode 100644 node_modules/gulp-util/lib/beep.js delete mode 100644 node_modules/gulp-util/lib/colors.js delete mode 100644 node_modules/gulp-util/lib/date.js delete mode 100644 node_modules/gulp-util/lib/linefeed.js delete mode 100644 node_modules/gulp-util/lib/replaceExtension.js delete mode 120000 node_modules/gulp-util/node_modules/.bin/dateformat delete mode 100644 node_modules/gulp-util/node_modules/ansi-regex/index.js delete mode 100644 node_modules/gulp-util/node_modules/ansi-regex/package.json delete mode 100644 node_modules/gulp-util/node_modules/ansi-regex/readme.md delete mode 100644 node_modules/gulp-util/node_modules/ansi-styles/index.js delete mode 100644 node_modules/gulp-util/node_modules/ansi-styles/package.json delete mode 100644 node_modules/gulp-util/node_modules/ansi-styles/readme.md delete mode 100644 node_modules/gulp-util/node_modules/chalk/index.js delete mode 120000 node_modules/gulp-util/node_modules/chalk/node_modules/.bin/has-ansi delete mode 120000 node_modules/gulp-util/node_modules/chalk/node_modules/.bin/strip-ansi delete mode 120000 node_modules/gulp-util/node_modules/chalk/node_modules/.bin/supports-color delete mode 100644 node_modules/gulp-util/node_modules/chalk/package.json delete mode 100644 node_modules/gulp-util/node_modules/chalk/readme.md delete mode 100644 node_modules/gulp-util/node_modules/clone-stats/LICENSE.md delete mode 100644 node_modules/gulp-util/node_modules/clone-stats/README.md delete mode 100644 node_modules/gulp-util/node_modules/clone-stats/index.js delete mode 100644 node_modules/gulp-util/node_modules/clone-stats/package.json delete mode 100644 node_modules/gulp-util/node_modules/clone-stats/test.js delete mode 100755 node_modules/gulp-util/node_modules/has-ansi/cli.js delete mode 100644 node_modules/gulp-util/node_modules/has-ansi/index.js delete mode 100644 node_modules/gulp-util/node_modules/has-ansi/package.json delete mode 100644 node_modules/gulp-util/node_modules/has-ansi/readme.md delete mode 100644 node_modules/gulp-util/node_modules/isarray/README.md delete mode 100644 node_modules/gulp-util/node_modules/isarray/build/build.js delete mode 100644 node_modules/gulp-util/node_modules/isarray/component.json delete mode 100644 node_modules/gulp-util/node_modules/isarray/index.js delete mode 100644 node_modules/gulp-util/node_modules/isarray/package.json delete mode 100644 node_modules/gulp-util/node_modules/minimist/.travis.yml delete mode 100644 node_modules/gulp-util/node_modules/minimist/LICENSE delete mode 100644 node_modules/gulp-util/node_modules/minimist/example/parse.js delete mode 100644 node_modules/gulp-util/node_modules/minimist/index.js delete mode 100644 node_modules/gulp-util/node_modules/minimist/package.json delete mode 100644 node_modules/gulp-util/node_modules/minimist/readme.markdown delete mode 100644 node_modules/gulp-util/node_modules/minimist/test/all_bool.js delete mode 100644 node_modules/gulp-util/node_modules/minimist/test/bool.js delete mode 100644 node_modules/gulp-util/node_modules/minimist/test/dash.js delete mode 100644 node_modules/gulp-util/node_modules/minimist/test/default_bool.js delete mode 100644 node_modules/gulp-util/node_modules/minimist/test/dotted.js delete mode 100644 node_modules/gulp-util/node_modules/minimist/test/long.js delete mode 100644 node_modules/gulp-util/node_modules/minimist/test/num.js delete mode 100644 node_modules/gulp-util/node_modules/minimist/test/parse.js delete mode 100644 node_modules/gulp-util/node_modules/minimist/test/parse_modified.js delete mode 100644 node_modules/gulp-util/node_modules/minimist/test/short.js delete mode 100644 node_modules/gulp-util/node_modules/minimist/test/whitespace.js delete mode 100644 node_modules/gulp-util/node_modules/readable-stream/.npmignore delete mode 100644 node_modules/gulp-util/node_modules/readable-stream/LICENSE delete mode 100644 node_modules/gulp-util/node_modules/readable-stream/README.md delete mode 100644 node_modules/gulp-util/node_modules/readable-stream/duplex.js delete mode 100644 node_modules/gulp-util/node_modules/readable-stream/lib/_stream_duplex.js delete mode 100644 node_modules/gulp-util/node_modules/readable-stream/lib/_stream_passthrough.js delete mode 100644 node_modules/gulp-util/node_modules/readable-stream/lib/_stream_readable.js delete mode 100644 node_modules/gulp-util/node_modules/readable-stream/lib/_stream_transform.js delete mode 100644 node_modules/gulp-util/node_modules/readable-stream/lib/_stream_writable.js delete mode 100644 node_modules/gulp-util/node_modules/readable-stream/package.json delete mode 100644 node_modules/gulp-util/node_modules/readable-stream/passthrough.js delete mode 100644 node_modules/gulp-util/node_modules/readable-stream/readable.js delete mode 100644 node_modules/gulp-util/node_modules/readable-stream/transform.js delete mode 100644 node_modules/gulp-util/node_modules/readable-stream/writable.js delete mode 100755 node_modules/gulp-util/node_modules/strip-ansi/cli.js delete mode 100644 node_modules/gulp-util/node_modules/strip-ansi/index.js delete mode 100644 node_modules/gulp-util/node_modules/strip-ansi/package.json delete mode 100644 node_modules/gulp-util/node_modules/strip-ansi/readme.md delete mode 100755 node_modules/gulp-util/node_modules/supports-color/cli.js delete mode 100644 node_modules/gulp-util/node_modules/supports-color/index.js delete mode 100644 node_modules/gulp-util/node_modules/supports-color/package.json delete mode 100644 node_modules/gulp-util/node_modules/supports-color/readme.md delete mode 100644 node_modules/gulp-util/node_modules/through2/.npmignore delete mode 100644 node_modules/gulp-util/node_modules/through2/LICENSE delete mode 100644 node_modules/gulp-util/node_modules/through2/README.md delete mode 100644 node_modules/gulp-util/node_modules/through2/package.json delete mode 100644 node_modules/gulp-util/node_modules/through2/through2.js delete mode 100644 node_modules/gulp-util/node_modules/vinyl/.npmignore delete mode 100644 node_modules/gulp-util/node_modules/vinyl/.travis.yml mode change 100755 => 100644 node_modules/gulp-util/node_modules/vinyl/LICENSE delete mode 100644 node_modules/gulp-util/node_modules/vinyl/test/File.js delete mode 100644 node_modules/gulp-util/node_modules/vinyl/test/cloneBuffer.js delete mode 100644 node_modules/gulp-util/node_modules/vinyl/test/inspectStream.js delete mode 100644 node_modules/gulp-util/node_modules/vinyl/test/isBuffer.js delete mode 100644 node_modules/gulp-util/node_modules/vinyl/test/isNull.js delete mode 100644 node_modules/gulp-util/node_modules/vinyl/test/isStream.js delete mode 100644 node_modules/gulp-util/node_modules/xtend/.jshintrc delete mode 100644 node_modules/gulp-util/node_modules/xtend/.npmignore delete mode 100644 node_modules/gulp-util/node_modules/xtend/LICENCE delete mode 100644 node_modules/gulp-util/node_modules/xtend/Makefile delete mode 100644 node_modules/gulp-util/node_modules/xtend/README.md delete mode 100644 node_modules/gulp-util/node_modules/xtend/index.js delete mode 100644 node_modules/gulp-util/node_modules/xtend/mutable.js delete mode 100644 node_modules/gulp-util/node_modules/xtend/package.json delete mode 100644 node_modules/gulp-util/node_modules/xtend/test.js (limited to 'node_modules/gulp-util') diff --git a/node_modules/gulp-util/.npmignore b/node_modules/gulp-util/.npmignore deleted file mode 100644 index 5cdb2e5e9..000000000 --- a/node_modules/gulp-util/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -.DS_Store -*.log -node_modules -build -*.node -components -test \ No newline at end of file diff --git a/node_modules/gulp-util/.travis.yml b/node_modules/gulp-util/.travis.yml deleted file mode 100644 index 7c1662070..000000000 --- a/node_modules/gulp-util/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - "0.10" -after_script: - - npm run coveralls \ No newline at end of file diff --git a/node_modules/gulp-util/README.md b/node_modules/gulp-util/README.md index a8d9b19ef..65209b57f 100644 --- a/node_modules/gulp-util/README.md +++ b/node_modules/gulp-util/README.md @@ -12,7 +12,7 @@ Node Version ->= 0.9 +>= 0.10 @@ -21,8 +21,7 @@ ```javascript var gutil = require('gulp-util'); -gutil.log('stuff happened', 'Really it did', gutil.colors.cyan('123')); -gutil.beep(); +gutil.log('stuff happened', 'Really it did', gutil.colors.magenta('123')); gutil.replaceExtension('file.coffee', '.js'); // file.js @@ -35,13 +34,18 @@ gutil.template('test <%= name %> <%= file.path %>', opt) // test todd /js/hi.js ### log(msg...) -Logs stuff. Already prefixed with [gulp] and all that. Use the right colors for values. If you pass in multiple arguments it will join them by a space. +Logs stuff. Already prefixed with [gulp] and all that. If you pass in multiple arguments it will join them by a space. +The default gulp coloring using gutil.colors.: ``` -values (files, module names, etc.) = magenta -numbers (times, counts, etc) = cyan +values (files, module names, etc.) = cyan +numbers (times, counts, etc) = magenta ``` +### colors + +Is an instance of [chalk](https://github.com/sindresorhus/chalk). + ### replaceExtension(path, newExtension) Replaces a file extension in a path. Returns the new path. @@ -64,9 +68,9 @@ This is just [vinyl](https://github.com/wearefractal/vinyl) ```javascript var file = new gutil.File({ - base: join(__dirname, './fixtures/'), + base: path.join(__dirname, './fixtures/'), cwd: __dirname, - path: join(__dirname, './fixtures/test.coffee') + path: path.join(__dirname, './fixtures/test.coffee') }); ``` @@ -81,7 +85,7 @@ gulp.task('scripts', function() { gulp.src('src/**/*.js') .pipe(concat('script.js')) .pipe(gutil.env.type === 'production' ? uglify() : gutil.noop()) - .pipe(gulp.dest('dist/'); + .pipe(gulp.dest('dist/')); }); ``` @@ -97,9 +101,9 @@ Callback is optional and receives two arguments: error and data ```javascript gulp.src('stuff/*.js') - .pipe(gutil.buffer(function(err, files){ + .pipe(gutil.buffer(function(err, files) { - }); + })); ``` ## new PluginError(pluginName, message[, options]) @@ -109,6 +113,7 @@ gulp.src('stuff/*.js') - By default the stack will not be shown. Set `options.showStack` to true if you think the stack is important for your error. - If you pass an error in as the message the stack will be pulled from that, otherwise one will be created. - Note that if you pass in a custom stack string you need to include the message along with that. +- Error properties will be included in `err.toString()`. Can be omitted by including `{showProperties: false}` in the options. These are all acceptable forms of instantiation: @@ -130,11 +135,11 @@ var existingError = new Error('OMG'); var err = new gutil.PluginError('test', existingError, {showStack: true}); ``` -[npm-url]: https://npmjs.org/package/gulp-util +[npm-url]: https://www.npmjs.com/package/gulp-util [npm-image]: https://badge.fury.io/js/gulp-util.svg [travis-url]: https://travis-ci.org/gulpjs/gulp-util -[travis-image]: https://travis-ci.org/gulpjs/gulp-util.svg?branch=master +[travis-image]: https://img.shields.io/travis/gulpjs/gulp-util.svg?branch=master [coveralls-url]: https://coveralls.io/r/gulpjs/gulp-util -[coveralls-image]: https://coveralls.io/repos/gulpjs/gulp-util/badge.png +[coveralls-image]: https://img.shields.io/coveralls/gulpjs/gulp-util.svg [depstat-url]: https://david-dm.org/gulpjs/gulp-util [depstat-image]: https://david-dm.org/gulpjs/gulp-util.svg diff --git a/node_modules/gulp-util/index.js b/node_modules/gulp-util/index.js index 6746ee4be..199713c94 100644 --- a/node_modules/gulp-util/index.js +++ b/node_modules/gulp-util/index.js @@ -1,18 +1,18 @@ module.exports = { - File: require('./lib/File'), - replaceExtension: require('./lib/replaceExtension'), - colors: require('./lib/colors'), - date: require('./lib/date'), + File: require('vinyl'), + replaceExtension: require('replace-ext'), + colors: require('chalk'), + date: require('dateformat'), log: require('./lib/log'), template: require('./lib/template'), env: require('./lib/env'), - beep: require('./lib/beep'), + beep: require('beeper'), noop: require('./lib/noop'), isStream: require('./lib/isStream'), isBuffer: require('./lib/isBuffer'), isNull: require('./lib/isNull'), - linefeed: require('./lib/linefeed'), + linefeed: '\n', combine: require('./lib/combine'), buffer: require('./lib/buffer'), PluginError: require('./lib/PluginError') -}; \ No newline at end of file +}; diff --git a/node_modules/gulp-util/lib/File.js b/node_modules/gulp-util/lib/File.js deleted file mode 100644 index 690a508a6..000000000 --- a/node_modules/gulp-util/lib/File.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('vinyl'); \ No newline at end of file diff --git a/node_modules/gulp-util/lib/PluginError.js b/node_modules/gulp-util/lib/PluginError.js index 6640346ed..d60159ab1 100644 --- a/node_modules/gulp-util/lib/PluginError.js +++ b/node_modules/gulp-util/lib/PluginError.js @@ -1,22 +1,32 @@ var util = require('util'); -var colors = require('./colors'); +var arrayDiffer = require('array-differ'); +var arrayUniq = require('array-uniq'); +var chalk = require('chalk'); +var objectAssign = require('object-assign'); + +var nonEnumberableProperties = ['name', 'message', 'stack']; +var propertiesNotToDisplay = nonEnumberableProperties.concat(['plugin', 'showStack', 'showProperties', '__safety', '_stack']); // wow what a clusterfuck var parseOptions = function(plugin, message, opt) { - if (!opt) opt = {}; + opt = opt || {}; if (typeof plugin === 'object') { opt = plugin; - } else if (message instanceof Error) { - opt.error = message; - opt.plugin = plugin; - } else if (typeof message === 'object') { - opt = message; - opt.plugin = plugin; - } else if (typeof opt === 'object') { + } else { + if (message instanceof Error) { + opt.error = message; + } else if (typeof message === 'object') { + opt = message; + } else { + opt.message = message; + } opt.plugin = plugin; - opt.message = message; } - return opt; + + return objectAssign({ + showStack: false, + showProperties: true + }, opt); }; function PluginError(plugin, message, opt) { @@ -25,19 +35,19 @@ function PluginError(plugin, message, opt) { Error.call(this); var options = parseOptions(plugin, message, opt); - - this.plugin = options.plugin; - this.showStack = options.showStack === true; - - var properties = ['name', 'message', 'fileName', 'lineNumber', 'stack']; + var self = this; // if options has an error, grab details from it if (options.error) { - properties.forEach(function(prop) { - if (prop in options.error) this[prop] = options.error[prop]; - }, this); + // These properties are not enumerable, so we have to add them explicitly. + arrayUniq(Object.keys(options.error).concat(nonEnumberableProperties)) + .forEach(function(prop) { + self[prop] = options.error[prop]; + }); } + var properties = ['name', 'message', 'fileName', 'lineNumber', 'stack', 'showStack', 'showProperties', 'plugin']; + // options object can override properties.forEach(function(prop) { if (prop in options) this[prop] = options[prop]; @@ -46,8 +56,18 @@ function PluginError(plugin, message, opt) { // defaults if (!this.name) this.name = 'Error'; - // TODO: figure out why this explodes mocha - if (!this.stack) Error.captureStackTrace(this, arguments.callee || this.constructor); + if (!this.stack) { + // Error.captureStackTrace appends a stack property which relies on the toString method of the object it is applied to. + // Since we are using our own toString method which controls when to display the stack trace if we don't go through this + // safety object, then we'll get stack overflow problems. + var safety = { + toString: function() { + return this._messageWithDetails() + '\nStack:'; + }.bind(this) + }; + Error.captureStackTrace(safety, arguments.callee || this.constructor); + this.__safety = safety; + } if (!this.plugin) throw new Error('Missing plugin name'); if (!this.message) throw new Error('Missing error message'); @@ -55,10 +75,56 @@ function PluginError(plugin, message, opt) { util.inherits(PluginError, Error); +PluginError.prototype._messageWithDetails = function() { + var messageWithDetails = 'Message:\n ' + this.message; + var details = this._messageDetails(); + + if (details !== '') { + messageWithDetails += '\n' + details; + } + + return messageWithDetails; +}; + +PluginError.prototype._messageDetails = function() { + if (!this.showProperties) { + return ''; + } + + var properties = arrayDiffer(Object.keys(this), propertiesNotToDisplay); + + if (properties.length === 0) { + return ''; + } + + var self = this; + properties = properties.map(function stringifyProperty(prop) { + return ' ' + prop + ': ' + self[prop]; + }); + + return 'Details:\n' + properties.join('\n'); +}; + PluginError.prototype.toString = function () { - var sig = this.name+' in plugin \''+colors.cyan(this.plugin)+'\''; - var msg = this.showStack ? (this._stack || this.stack) : this.message; - return sig+'\n'+msg; + var sig = chalk.red(this.name) + ' in plugin \'' + chalk.cyan(this.plugin) + '\''; + var detailsWithStack = function(stack) { + return this._messageWithDetails() + '\nStack:\n' + stack; + }.bind(this); + + var msg; + if (this.showStack) { + if (this.__safety) { // There is no wrapped error, use the stack captured in the PluginError ctor + msg = this.__safety.stack; + } else if (this._stack) { + msg = detailsWithStack(this._stack); + } else { // Stack from wrapped error + msg = detailsWithStack(this.stack); + } + } else { + msg = this._messageWithDetails(); + } + + return sig + '\n' + msg; }; module.exports = PluginError; diff --git a/node_modules/gulp-util/lib/beep.js b/node_modules/gulp-util/lib/beep.js deleted file mode 100644 index 5473d7548..000000000 --- a/node_modules/gulp-util/lib/beep.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = function() { - process.stdout.write('\x07'); -}; diff --git a/node_modules/gulp-util/lib/buffer.js b/node_modules/gulp-util/lib/buffer.js index 4cb064aca..26c940db1 100644 --- a/node_modules/gulp-util/lib/buffer.js +++ b/node_modules/gulp-util/lib/buffer.js @@ -12,4 +12,4 @@ module.exports = function(fn) { cb(); }; return through.obj(push, end); -}; \ No newline at end of file +}; diff --git a/node_modules/gulp-util/lib/colors.js b/node_modules/gulp-util/lib/colors.js deleted file mode 100644 index bc8049406..000000000 --- a/node_modules/gulp-util/lib/colors.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('chalk'); \ No newline at end of file diff --git a/node_modules/gulp-util/lib/date.js b/node_modules/gulp-util/lib/date.js deleted file mode 100644 index 935793cc6..000000000 --- a/node_modules/gulp-util/lib/date.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('dateformat'); \ No newline at end of file diff --git a/node_modules/gulp-util/lib/env.js b/node_modules/gulp-util/lib/env.js index ea1e03e4a..ee17c0e30 100644 --- a/node_modules/gulp-util/lib/env.js +++ b/node_modules/gulp-util/lib/env.js @@ -1,4 +1,4 @@ var parseArgs = require('minimist'); var argv = parseArgs(process.argv.slice(2)); -module.exports = argv; \ No newline at end of file +module.exports = argv; diff --git a/node_modules/gulp-util/lib/isBuffer.js b/node_modules/gulp-util/lib/isBuffer.js index 0e23782c4..7c52f78c9 100644 --- a/node_modules/gulp-util/lib/isBuffer.js +++ b/node_modules/gulp-util/lib/isBuffer.js @@ -4,4 +4,4 @@ var Buffer = buf.Buffer; // could use Buffer.isBuffer but this is the same exact thing... module.exports = function(o) { return typeof o === 'object' && o instanceof Buffer; -}; \ No newline at end of file +}; diff --git a/node_modules/gulp-util/lib/isNull.js b/node_modules/gulp-util/lib/isNull.js index 403bb30e8..7f22c63ae 100644 --- a/node_modules/gulp-util/lib/isNull.js +++ b/node_modules/gulp-util/lib/isNull.js @@ -1,3 +1,3 @@ module.exports = function(v) { return v === null; -}; \ No newline at end of file +}; diff --git a/node_modules/gulp-util/lib/isStream.js b/node_modules/gulp-util/lib/isStream.js index 9ce0929b0..6b54e123b 100644 --- a/node_modules/gulp-util/lib/isStream.js +++ b/node_modules/gulp-util/lib/isStream.js @@ -2,4 +2,4 @@ var Stream = require('stream').Stream; module.exports = function(o) { return !!o && o instanceof Stream; -}; \ No newline at end of file +}; diff --git a/node_modules/gulp-util/lib/linefeed.js b/node_modules/gulp-util/lib/linefeed.js deleted file mode 100644 index 5b0dfa4b1..000000000 --- a/node_modules/gulp-util/lib/linefeed.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = '\n'; \ No newline at end of file diff --git a/node_modules/gulp-util/lib/log.js b/node_modules/gulp-util/lib/log.js index e33d15ed9..bb843beef 100644 --- a/node_modules/gulp-util/lib/log.js +++ b/node_modules/gulp-util/lib/log.js @@ -1,10 +1,14 @@ -var colors = require('./colors'); -var date = require('./date'); +var hasGulplog = require('has-gulplog'); module.exports = function(){ - var time = '['+colors.grey(date(new Date(), 'HH:MM:ss'))+']'; - var args = Array.prototype.slice.call(arguments); - args.unshift(time); - console.log.apply(console, args); + if(hasGulplog()){ + // specifically deferring loading here to keep from registering it globally + var gulplog = require('gulplog'); + gulplog.info.apply(gulplog, arguments); + } else { + // specifically defering loading because it might not be used + var fancylog = require('fancy-log'); + fancylog.apply(null, arguments); + } return this; }; diff --git a/node_modules/gulp-util/lib/replaceExtension.js b/node_modules/gulp-util/lib/replaceExtension.js deleted file mode 100644 index 3f76938e4..000000000 --- a/node_modules/gulp-util/lib/replaceExtension.js +++ /dev/null @@ -1,9 +0,0 @@ -var path = require('path'); - -module.exports = function(npath, ext) { - if (typeof npath !== 'string') return npath; - if (npath.length === 0) return npath; - - var nFileName = path.basename(npath, path.extname(npath))+ext; - return path.join(path.dirname(npath), nFileName); -}; \ No newline at end of file diff --git a/node_modules/gulp-util/lib/template.js b/node_modules/gulp-util/lib/template.js index c467820f3..eef3bb376 100644 --- a/node_modules/gulp-util/lib/template.js +++ b/node_modules/gulp-util/lib/template.js @@ -1,17 +1,21 @@ var template = require('lodash.template'); +var reEscape = require('lodash._reescape'); +var reEvaluate = require('lodash._reevaluate'); var reInterpolate = require('lodash._reinterpolate'); var forcedSettings = { - escape: /<%-([\s\S]+?)%>/g, - evaluate: /<%([\s\S]+?)%>/g, + escape: reEscape, + evaluate: reEvaluate, interpolate: reInterpolate }; -module.exports = function(tmpl, data){ - var fn = template(tmpl, null, forcedSettings); +module.exports = function(tmpl, data) { + var fn = template(tmpl, forcedSettings); var wrapped = function(o) { - if (typeof o === 'undefined' || typeof o.file === 'undefined') throw new Error('Failed to provide the current file as "file" to the template'); + if (typeof o === 'undefined' || typeof o.file === 'undefined') { + throw new Error('Failed to provide the current file as "file" to the template'); + } return fn(o); }; diff --git a/node_modules/gulp-util/node_modules/.bin/dateformat b/node_modules/gulp-util/node_modules/.bin/dateformat deleted file mode 120000 index 017f21508..000000000 --- a/node_modules/gulp-util/node_modules/.bin/dateformat +++ /dev/null @@ -1 +0,0 @@ -../../../dateformat/bin/cli.js \ No newline at end of file diff --git a/node_modules/gulp-util/node_modules/ansi-regex/index.js b/node_modules/gulp-util/node_modules/ansi-regex/index.js deleted file mode 100644 index 783c5c7bb..000000000 --- a/node_modules/gulp-util/node_modules/ansi-regex/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -module.exports = function () { - return /\u001b\[(?:[0-9]{1,3}(?:;[0-9]{1,3})*)?[m|K]/g; -}; diff --git a/node_modules/gulp-util/node_modules/ansi-regex/package.json b/node_modules/gulp-util/node_modules/ansi-regex/package.json deleted file mode 100644 index 2734a7873..000000000 --- a/node_modules/gulp-util/node_modules/ansi-regex/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "ansi-regex", - "version": "0.2.1", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "sindresorhus/ansi-regex", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "http://sindresorhus.com" - }, - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern" - ], - "devDependencies": { - "mocha": "*" - } -} diff --git a/node_modules/gulp-util/node_modules/ansi-regex/readme.md b/node_modules/gulp-util/node_modules/ansi-regex/readme.md deleted file mode 100644 index ae876e729..000000000 --- a/node_modules/gulp-util/node_modules/ansi-regex/readme.md +++ /dev/null @@ -1,33 +0,0 @@ -# ansi-regex [![Build Status](https://travis-ci.org/sindresorhus/ansi-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/ansi-regex) - -> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) - - -## Install - -```sh -$ npm install --save ansi-regex -``` - - -## Usage - -```js -var ansiRegex = require('ansi-regex'); - -ansiRegex().test('\u001b[4mcake\u001b[0m'); -//=> true - -ansiRegex().test('cake'); -//=> false - -'\u001b[4mcake\u001b[0m'.match(ansiRegex()); -//=> ['\u001b[4m', '\u001b[0m'] -``` - -*It's a function so you can create multiple instances. Regexes with the global flag will have the `.lastIndex` property changed for each call to methods on the instance. Therefore reusing the instance with multiple calls will not work as expected for `.test()`.* - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/gulp-util/node_modules/ansi-styles/index.js b/node_modules/gulp-util/node_modules/ansi-styles/index.js deleted file mode 100644 index 2d8b4726d..000000000 --- a/node_modules/gulp-util/node_modules/ansi-styles/index.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; -var styles = module.exports; - -var codes = { - reset: [0, 0], - - bold: [1, 22], // 21 isn't widely supported and 22 does the same thing - dim: [2, 22], - italic: [3, 23], - underline: [4, 24], - inverse: [7, 27], - hidden: [8, 28], - strikethrough: [9, 29], - - black: [30, 39], - red: [31, 39], - green: [32, 39], - yellow: [33, 39], - blue: [34, 39], - magenta: [35, 39], - cyan: [36, 39], - white: [37, 39], - gray: [90, 39], - - bgBlack: [40, 49], - bgRed: [41, 49], - bgGreen: [42, 49], - bgYellow: [43, 49], - bgBlue: [44, 49], - bgMagenta: [45, 49], - bgCyan: [46, 49], - bgWhite: [47, 49] -}; - -Object.keys(codes).forEach(function (key) { - var val = codes[key]; - var style = styles[key] = {}; - style.open = '\u001b[' + val[0] + 'm'; - style.close = '\u001b[' + val[1] + 'm'; -}); diff --git a/node_modules/gulp-util/node_modules/ansi-styles/package.json b/node_modules/gulp-util/node_modules/ansi-styles/package.json deleted file mode 100644 index a9ba60766..000000000 --- a/node_modules/gulp-util/node_modules/ansi-styles/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "ansi-styles", - "version": "1.1.0", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "sindresorhus/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "http://sindresorhus.com" - }, - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "devDependencies": { - "mocha": "*" - } -} diff --git a/node_modules/gulp-util/node_modules/ansi-styles/readme.md b/node_modules/gulp-util/node_modules/ansi-styles/readme.md deleted file mode 100644 index 73584cc95..000000000 --- a/node_modules/gulp-util/node_modules/ansi-styles/readme.md +++ /dev/null @@ -1,70 +0,0 @@ -# ansi-styles [![Build Status](https://travis-ci.org/sindresorhus/ansi-styles.svg?branch=master)](https://travis-ci.org/sindresorhus/ansi-styles) - -> [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal - -You probably want the higher-level [chalk](https://github.com/sindresorhus/chalk) module for styling your strings. - -![screenshot](screenshot.png) - - -## Install - -```sh -$ npm install --save ansi-styles -``` - - -## Usage - -```js -var ansi = require('ansi-styles'); - -console.log(ansi.green.open + 'Hello world!' + ansi.green.close); -``` - - -## API - -Each style has an `open` and `close` property. - - -## Styles - -### General - -- `reset` -- `bold` -- `dim` -- `italic` *(not widely supported)* -- `underline` -- `inverse` -- `hidden` -- `strikethrough` *(not widely supported)* - -### Text colors - -- `black` -- `red` -- `green` -- `yellow` -- `blue` -- `magenta` -- `cyan` -- `white` -- `gray` - -### Background colors - -- `bgBlack` -- `bgRed` -- `bgGreen` -- `bgYellow` -- `bgBlue` -- `bgMagenta` -- `bgCyan` -- `bgWhite` - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/gulp-util/node_modules/chalk/index.js b/node_modules/gulp-util/node_modules/chalk/index.js deleted file mode 100644 index ac1f16820..000000000 --- a/node_modules/gulp-util/node_modules/chalk/index.js +++ /dev/null @@ -1,95 +0,0 @@ -'use strict'; -var escapeStringRegexp = require('escape-string-regexp'); -var ansiStyles = require('ansi-styles'); -var stripAnsi = require('strip-ansi'); -var hasAnsi = require('has-ansi'); -var supportsColor = require('supports-color'); -var defineProps = Object.defineProperties; -var chalk = module.exports; - -function build(_styles) { - var builder = function builder() { - return applyStyle.apply(builder, arguments); - }; - builder._styles = _styles; - // __proto__ is used because we must return a function, but there is - // no way to create a function with a different prototype. - builder.__proto__ = proto; - return builder; -} - -var styles = (function () { - var ret = {}; - - ansiStyles.grey = ansiStyles.gray; - - Object.keys(ansiStyles).forEach(function (key) { - ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g'); - - ret[key] = { - get: function () { - return build(this._styles.concat(key)); - } - }; - }); - - return ret; -})(); - -var proto = defineProps(function chalk() {}, styles); - -function applyStyle() { - // support varags, but simply cast to string in case there's only one arg - var args = arguments; - var argsLen = args.length; - var str = argsLen !== 0 && String(arguments[0]); - if (argsLen > 1) { - // don't slice `arguments`, it prevents v8 optimizations - for (var a = 1; a < argsLen; a++) { - str += ' ' + args[a]; - } - } - - if (!chalk.enabled || !str) { - return str; - } - - /*jshint validthis: true*/ - var nestedStyles = this._styles; - - for (var i = 0; i < nestedStyles.length; i++) { - var code = ansiStyles[nestedStyles[i]]; - // Replace any instances already present with a re-opening code - // otherwise only the part of the string until said closing code - // will be colored, and the rest will simply be 'plain'. - str = code.open + str.replace(code.closeRe, code.open) + code.close; - } - - return str; -} - -function init() { - var ret = {}; - - Object.keys(styles).forEach(function (name) { - ret[name] = { - get: function () { - return build([name]); - } - }; - }); - - return ret; -} - -defineProps(chalk, init()); - -chalk.styles = ansiStyles; -chalk.hasColor = hasAnsi; -chalk.stripColor = stripAnsi; -chalk.supportsColor = supportsColor; - -// detect mode if not set manually -if (chalk.enabled === undefined) { - chalk.enabled = chalk.supportsColor; -} diff --git a/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/has-ansi b/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/has-ansi deleted file mode 120000 index 957e9f8cf..000000000 --- a/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/has-ansi +++ /dev/null @@ -1 +0,0 @@ -../../../has-ansi/cli.js \ No newline at end of file diff --git a/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/strip-ansi b/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/strip-ansi deleted file mode 120000 index f7646606c..000000000 --- a/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/strip-ansi +++ /dev/null @@ -1 +0,0 @@ -../../../strip-ansi/cli.js \ No newline at end of file diff --git a/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/supports-color b/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/supports-color deleted file mode 120000 index 886732fac..000000000 --- a/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/supports-color +++ /dev/null @@ -1 +0,0 @@ -../../../supports-color/cli.js \ No newline at end of file diff --git a/node_modules/gulp-util/node_modules/chalk/package.json b/node_modules/gulp-util/node_modules/chalk/package.json deleted file mode 100644 index e58fe486a..000000000 --- a/node_modules/gulp-util/node_modules/chalk/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "chalk", - "version": "0.5.1", - "description": "Terminal string styling done right. Created because the `colors` module does some really horrible things.", - "license": "MIT", - "repository": "sindresorhus/chalk", - "maintainers": [ - "Sindre Sorhus (http://sindresorhus.com)", - "Joshua Appelman " - ], - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha", - "bench": "matcha benchmark.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "ansi", - "styles", - "tty", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "ansi-styles": "^1.1.0", - "escape-string-regexp": "^1.0.0", - "has-ansi": "^0.1.0", - "strip-ansi": "^0.3.0", - "supports-color": "^0.2.0" - }, - "devDependencies": { - "matcha": "^0.5.0", - "mocha": "*" - } -} diff --git a/node_modules/gulp-util/node_modules/chalk/readme.md b/node_modules/gulp-util/node_modules/chalk/readme.md deleted file mode 100644 index 239c791f8..000000000 --- a/node_modules/gulp-util/node_modules/chalk/readme.md +++ /dev/null @@ -1,175 +0,0 @@ -# chalk - -> Terminal string styling done right - -[![Build Status](https://travis-ci.org/sindresorhus/chalk.svg?branch=master)](https://travis-ci.org/sindresorhus/chalk) -![](http://img.shields.io/badge/unicorn-approved-ff69b4.svg) - -[colors.js](https://github.com/Marak/colors.js) is currently the most popular string styling module, but it has serious deficiencies like extending String.prototype which causes all kinds of [problems](https://github.com/yeoman/yo/issues/68). Although there are other ones, they either do too much or not enough. - -**Chalk is a clean and focused alternative.** - -![screenshot](https://github.com/sindresorhus/ansi-styles/raw/master/screenshot.png) - - -## Why - -- Highly performant -- Doesn't extend String.prototype -- Expressive API -- Ability to nest styles -- Clean and focused -- Auto-detects color support -- Actively maintained -- [Used by 1000+ modules](https://npmjs.org/browse/depended/chalk) - - -## Install - -```sh -$ npm install --save chalk -``` - - -## Usage - -Chalk comes with an easy to use composable API where you just chain and nest the styles you want. - -```js -var chalk = require('chalk'); - -// style a string -console.log( chalk.blue('Hello world!') ); - -// combine styled and normal strings -console.log( chalk.blue('Hello'), 'World' + chalk.red('!') ); - -// compose multiple styles using the chainable API -console.log( chalk.blue.bgRed.bold('Hello world!') ); - -// pass in multiple arguments -console.log( chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz') ); - -// nest styles -console.log( chalk.red('Hello', chalk.underline.bgBlue('world') + '!') ); - -// nest styles of the same type even (color, underline, background) -console.log( chalk.green('I am a green line ' + chalk.blue('with a blue substring') + ' that becomes green again!') ); -``` - -Easily define your own themes. - -```js -var chalk = require('chalk'); -var error = chalk.bold.red; -console.log(error('Error!')); -``` - -Take advantage of console.log [string substitution](http://nodejs.org/docs/latest/api/console.html#console_console_log_data). - -```js -var name = 'Sindre'; -console.log(chalk.green('Hello %s'), name); -//=> Hello Sindre -``` - - -## API - -### chalk.`